diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2018-12-19 11:37:49 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2018-12-19 11:37:49 +0800 |
commit | 8b1e9fd0702f4ad74482b10b6b5330e69d53260a (patch) | |
tree | fc2404fc04043a7827d1164712b6dc5391484549 /server/src | |
parent | 1eaca995d45ad52e6f8d68ac71f54e6663f275e6 (diff) | |
download | lua-language-server-8b1e9fd0702f4ad74482b10b6b5330e69d53260a.zip |
自动完成的基础测试
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/matcher/completion.lua | 8 | ||||
-rw-r--r-- | server/src/matcher/init.lua | 1 | ||||
-rw-r--r-- | server/src/method/init.lua | 1 | ||||
-rw-r--r-- | server/src/method/initialize.lua | 5 | ||||
-rw-r--r-- | server/src/method/textDocument/completion.lua | 39 |
5 files changed, 54 insertions, 0 deletions
diff --git a/server/src/matcher/completion.lua b/server/src/matcher/completion.lua new file mode 100644 index 00000000..66b993a4 --- /dev/null +++ b/server/src/matcher/completion.lua @@ -0,0 +1,8 @@ +local findResult = require 'matcher.find_result' + +return function (vm, pos) + local result = findResult(vm, pos) + if not result then + return nil + end +end diff --git a/server/src/matcher/init.lua b/server/src/matcher/init.lua index 9174d839..27adbbea 100644 --- a/server/src/matcher/init.lua +++ b/server/src/matcher/init.lua @@ -7,6 +7,7 @@ local api = { diagnostics = require 'matcher.diagnostics', findResult = require 'matcher.find_result', findLib = require 'matcher.find_lib', + completion = require 'matcher.completion', vm = require 'matcher.vm', } diff --git a/server/src/method/init.lua b/server/src/method/init.lua index 80619cbe..2aaa2b24 100644 --- a/server/src/method/init.lua +++ b/server/src/method/init.lua @@ -8,6 +8,7 @@ init 'exit' init 'initialize' init 'initialized' init 'shutdown' +init 'textDocument/completion' init 'textDocument/definition' init 'textDocument/didOpen' init 'textDocument/didChange' diff --git a/server/src/method/initialize.lua b/server/src/method/initialize.lua index 8b71e8fd..8daa2ae6 100644 --- a/server/src/method/initialize.lua +++ b/server/src/method/initialize.lua @@ -19,6 +19,11 @@ return function (lsp) -- 文本改变时完全通知 TODO 支持差量更新(2) change = 1, }, + -- 自动完成 + --completionProvider = { + -- resolveProvider = false, + --}, + -- 工作目录 workspace = { workspaceFolders = { supported = true, diff --git a/server/src/method/textDocument/completion.lua b/server/src/method/textDocument/completion.lua new file mode 100644 index 00000000..9b040f17 --- /dev/null +++ b/server/src/method/textDocument/completion.lua @@ -0,0 +1,39 @@ +local CompletionItemKind = { + Text = 1, + Method = 2, + Function = 3, + Constructor = 4, + Field = 5, + Variable = 6, + Class = 7, + Interface = 8, + Module = 9, + Property = 10, + Unit = 11, + Value = 12, + Enum = 13, + Keyword = 14, + Snippet = 15, + Color = 16, + File = 17, + Reference = 18, + Folder = 19, + EnumMember = 20, + Constant = 21, + Struct = 22, + Event = 23, + Operator = 24, + TypeParameter = 25, +} + +return function (lsp, params) + return { + isIncomplete = true, + items = { + { + label = 'xxxx', + kind = CompletionItemKind.Method, + } + } + } +end |