summaryrefslogtreecommitdiff
path: root/server-beta/src/provider
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2019-11-16 01:39:01 +0800
committer最萌小汐 <sumneko@hotmail.com>2019-11-16 01:39:01 +0800
commitf2c235601da54117b803e084d94bbf88ba53b891 (patch)
tree53a5da83000c2f862357fe2b137dea335821cb45 /server-beta/src/provider
parent333a10fd656b48a063092127c610348d861c2f74 (diff)
downloadlua-language-server-f2c235601da54117b803e084d94bbf88ba53b891.zip
实现高亮
Diffstat (limited to 'server-beta/src/provider')
-rw-r--r--server-beta/src/provider/capability.lua2
-rw-r--r--server-beta/src/provider/init.lua23
2 files changed, 24 insertions, 1 deletions
diff --git a/server-beta/src/provider/capability.lua b/server-beta/src/provider/capability.lua
index c5762f0b..5cefd0c5 100644
--- a/server-beta/src/provider/capability.lua
+++ b/server-beta/src/provider/capability.lua
@@ -14,7 +14,7 @@ m.initer = {
referencesProvider = true,
--renameProvider = true,
--documentSymbolProvider = true,
- --documentHighlightProvider = true,
+ documentHighlightProvider = true,
--codeActionProvider = true,
--signatureHelpProvider = {
-- triggerCharacters = { '(', ',' },
diff --git a/server-beta/src/provider/init.lua b/server-beta/src/provider/init.lua
index 5e1a1a2a..0a70763e 100644
--- a/server-beta/src/provider/init.lua
+++ b/server-beta/src/provider/init.lua
@@ -207,6 +207,29 @@ proto.on('textDocument/references', function (params)
return response
end)
+proto.on('textDocument/documentHighlight', function (params)
+ local core = require 'core.highlight'
+ local uri = params.textDocument.uri
+ if not files.exists(uri) then
+ return nil
+ end
+ local lines = files.getLines(uri)
+ local text = files.getText(uri)
+ local offset = define.offset(lines, text, params.position)
+ local result = core(uri, offset)
+ if not result then
+ return nil
+ end
+ local response = {}
+ for _, info in ipairs(result) do
+ response[#response+1] = {
+ range = define.range(lines, text, info.start, info.finish),
+ kind = info.kind,
+ }
+ end
+ return response
+end)
+
proto.on('textDocument/completion', function (params)
--log.info(util.dump(params))
return nil