diff --git a/.DS_Store b/.DS_Store index fd0f421f..e1afaa09 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Applications/.DS_Store b/Applications/.DS_Store index 830ba0fe..f0250a31 100644 Binary files a/Applications/.DS_Store and b/Applications/.DS_Store differ diff --git a/Applications/MineCodeIDE/Localization/English.lang b/Applications/MineCodeIDE/Localization/English.lang index fcd1668e..fd0d9fd6 100755 --- a/Applications/MineCodeIDE/Localization/English.lang +++ b/Applications/MineCodeIDE/Localization/English.lang @@ -1,6 +1,7 @@ { debugging = "Debugger on line ", runtimeError = "Runtime error", + variablesNotAvailable = "No variables found", variables = "Values of the variables:", scalePlus = "Increase scale", scaleMinus = "Decrease scale", diff --git a/Applications/MineCodeIDE/Localization/Russian.lang b/Applications/MineCodeIDE/Localization/Russian.lang index bc588ca7..d92b3ae5 100755 --- a/Applications/MineCodeIDE/Localization/Russian.lang +++ b/Applications/MineCodeIDE/Localization/Russian.lang @@ -1,6 +1,7 @@ { debugging = "Отладчик на строке ", runtimeError = "Ошибка при выполнении программы", + variablesNotAvailable = "Не найдено возможных переменных", variables = "Значения переменных:", scalePlus = "Увеличить масштаб", scaleMinus = "Уменьшить масштаб", diff --git a/Applications/MineCodeIDE/MineCodeIDE.lua b/Applications/MineCodeIDE/MineCodeIDE.lua index 84e58cd3..c397aa13 100755 --- a/Applications/MineCodeIDE/MineCodeIDE.lua +++ b/Applications/MineCodeIDE/MineCodeIDE.lua @@ -254,15 +254,19 @@ local function showBreakpointMessage(variables) mainWindow.errorMessage.isHidden = false mainWindow.errorMessage.errorTextBox:setAlignment(GUI.alignment.horizontal.center, GUI.alignment.vertical.top) - mainWindow.errorMessage.errorTextBox.lines = { - {text = localization.variables, color = 0x0}, - " ", - } + mainWindow.errorMessage.errorTextBox.lines = {} for variable, value in pairs(variables) do table.insert(mainWindow.errorMessage.errorTextBox.lines, variable .. " = " .. value) end + if #mainWindow.errorMessage.errorTextBox.lines > 0 then + table.insert(mainWindow.errorMessage.errorTextBox.lines, 1, " ") + table.insert(mainWindow.errorMessage.errorTextBox.lines, 1, {text = localization.variables, color = 0x0}) + else + table.insert(mainWindow.errorMessage.errorTextBox.lines, 1, {text = localization.variablesNotAvailable, color = 0x0}) + end + calculateErrorMessageSizeAndBeep() end @@ -551,15 +555,16 @@ local function getVariables(codePart) word ~= "nil" and word ~= "not" and word ~= "and" and - word ~= "or" + word ~= "or" and + -- А вот это надо на всякий пожарный, вдруг это ебучая строка с дохуяллионом кавычек + not word:match("^\".+\"$") then -- Затем извлекаем из наших слов куски без всяких хитрожопых символов, оставляя лишь буковки с циферками for variable in word:gmatch("[^%[%]%{%}%(%)%;%,%=%+%-%*%/%^%%%>%<]+") do - -- Попутно чекаем, не является ли этот кусок числом или строкой + -- Попутно чекаем, не является ли этот кусок числом if not variable:match("^%d+$") and - not variable:match("^0x%x+$") and - not variable:match("^\".+\"$") + not variable:match("^0x%x+$") then variables[variable] = true end