summaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2018-12-19 11:37:49 +0800
committer最萌小汐 <sumneko@hotmail.com>2018-12-19 11:37:49 +0800
commit8b1e9fd0702f4ad74482b10b6b5330e69d53260a (patch)
treefc2404fc04043a7827d1164712b6dc5391484549 /server/src
parent1eaca995d45ad52e6f8d68ac71f54e6663f275e6 (diff)
downloadlua-language-server-8b1e9fd0702f4ad74482b10b6b5330e69d53260a.zip
自动完成的基础测试
Diffstat (limited to 'server/src')
-rw-r--r--server/src/matcher/completion.lua8
-rw-r--r--server/src/matcher/init.lua1
-rw-r--r--server/src/method/init.lua1
-rw-r--r--server/src/method/initialize.lua5
-rw-r--r--server/src/method/textDocument/completion.lua39
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