summaryrefslogtreecommitdiff
path: root/script/method/textDocument/documentSymbol.lua
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2020-11-20 21:55:41 +0800
committer最萌小汐 <sumneko@hotmail.com>2020-11-20 21:55:41 +0800
commitc63b2e404d8d2bb984afe3678a5ba2b2836380cc (patch)
treea70661effacc7a29caa8d49583673ac4be2faaf5 /script/method/textDocument/documentSymbol.lua
parent85c5a4210e4447422cd5677369ae740ed65725a0 (diff)
downloadlua-language-server-c63b2e404d8d2bb984afe3678a5ba2b2836380cc.zip
remove the old version
Diffstat (limited to 'script/method/textDocument/documentSymbol.lua')
-rw-r--r--script/method/textDocument/documentSymbol.lua75
1 files changed, 0 insertions, 75 deletions
diff --git a/script/method/textDocument/documentSymbol.lua b/script/method/textDocument/documentSymbol.lua
deleted file mode 100644
index a84afb7a..00000000
--- a/script/method/textDocument/documentSymbol.lua
+++ /dev/null
@@ -1,75 +0,0 @@
-local core = require 'core'
-local lang = require 'language'
-
-local timerCache = {}
-
-local function posToRange(lines, start, finish)
- local start_row, start_col = lines:rowcol(start)
- local finish_row, finish_col = lines:rowcol(finish)
- return {
- start = {
- line = start_row - 1,
- character = start_col - 1,
- },
- ['end'] = {
- line = finish_row - 1,
- character = finish_col,
- },
- }
-end
-
-local function convertRange(lines, symbol)
- symbol.range = posToRange(lines, symbol.range[1], symbol.range[2])
- symbol.selectionRange = posToRange(lines, symbol.selectionRange[1], symbol.selectionRange[2])
- if symbol.name == '' then
- symbol.name = lang.script.SYMBOL_ANONYMOUS
- end
-
- if symbol.children then
- for _, child in ipairs(symbol.children) do
- convertRange(lines, child)
- end
- end
-end
-
---- @param lsp LSP
---- @param params table
---- @return function
-return function (lsp, params)
- local uri = params.textDocument.uri
-
- if timerCache[uri] then
- timerCache[uri]:remove()
- timerCache[uri] = nil
- end
-
- return function (response)
- local clock = os.clock()
- timerCache[uri] = ac.loop(0.1, function (t)
- local vm, lines = lsp:getVM(uri)
- if not vm then
- if os.clock() - clock > 10 then
- t:remove()
- timerCache[uri] = nil
- response(nil)
- end
- return
- end
-
- t:remove()
- timerCache[uri] = nil
-
- local symbols = core.documentSymbol(vm)
- if not symbols then
- response(nil)
- return
- end
-
- for _, symbol in ipairs(symbols) do
- convertRange(lines, symbol)
- end
-
- response(symbols)
- end)
- end
-end