diff options
-rw-r--r-- | .vscode/settings.json | 4 | ||||
-rw-r--r-- | script-beta/core/completion.lua | 28 |
2 files changed, 22 insertions, 10 deletions
diff --git a/.vscode/settings.json b/.vscode/settings.json index 68661581..2bd043e4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -30,7 +30,5 @@ "script/meta" : true, }, "Lua.plugin.enable": true, - "Lua.zzzzzz.cat": true, - "Lua.completion.callSnippet": "Both", - "Lua.completion.keywordSnippet": "Both" + "Lua.zzzzzz.cat": true } diff --git a/script-beta/core/completion.lua b/script-beta/core/completion.lua index 52c8e1d9..b69e19a6 100644 --- a/script-beta/core/completion.lua +++ b/script-beta/core/completion.lua @@ -343,6 +343,7 @@ do end]], } end + return true end, function (ast, start) return guide.eachSourceContain(ast.ast, start, function (source) if source.type == 'while' @@ -375,6 +376,7 @@ end}, insertText = [[elseif $1 then]], } end + return true end}, {'end'}, {'false'}, @@ -418,6 +420,7 @@ for ${1:i} = ${2:1}, ${3:10, 1} do end]] } end + return true end}, {'function', function (hasSpace, results) if hasSpace then @@ -441,6 +444,7 @@ function $1($2) end]] } end + return true end}, {'goto'}, {'if', function (hasSpace, results) @@ -465,6 +469,7 @@ if $1 then end]] } end + return true end}, {'in', function (hasSpace, results) if hasSpace then @@ -488,6 +493,7 @@ in ${1:pairs(${2:t})} do end]] } end + return true end}, {'local', function (hasSpace, results) if hasSpace then @@ -511,6 +517,7 @@ local function $1($2) end]] } end + return false end}, {'nil'}, {'not'}, @@ -534,6 +541,7 @@ repeat until $1]] } end + return true end}, {'return', function (hasSpace, results) if not hasSpace then @@ -544,6 +552,7 @@ end}, insertText = [[do return $1end]] } end + return false end}, {'then'}, {'true'}, @@ -570,6 +579,7 @@ while ${1:true} do end]] } end + return true end}, } @@ -587,7 +597,17 @@ local function checkKeyWord(ast, text, start, word, hasSpace, afterLocal, result eq = false end if eq then - if snipType == 'Both' or snipType == 'Disable' then + local replaced + if snipType == 'Both' or snipType == 'Replace' then + local func = data[2] + if func then + replaced = func(hasSpace, results) + end + end + if snipType == 'Both' then + replaced = false + end + if not replaced then if not hasSpace then results[#results+1] = { label = key, @@ -595,12 +615,6 @@ local function checkKeyWord(ast, text, start, word, hasSpace, afterLocal, result } end end - if snipType == 'Both' or snipType == 'Replace' then - local func = data[2] - if func then - func(hasSpace, results) - end - end local checkStop = data[3] if checkStop then local stop = checkStop(ast, start) |