Skip to content

Commit f29abc7

Browse files
committed
#259 客户端不支持动态注册启用自动完成时,总是启用自动完成
1 parent 7822d4f commit f29abc7

File tree

3 files changed

+56
-32
lines changed

3 files changed

+56
-32
lines changed

Diff for: script-beta/provider/capability.lua

+54-31
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,61 @@
1-
local sp = require 'bee.subprocess'
1+
local sp = require 'bee.subprocess'
2+
local nonil = require 'without-check-nil'
3+
local client = require 'provider.client'
24

35
local m = {}
46

5-
m.initer = {
6-
-- 文本同步方式
7-
textDocumentSync = {
8-
-- 打开关闭文本时通知
9-
openClose = true,
10-
-- 文本改变时完全通知 TODO 支持差量更新(2)
11-
change = 1,
12-
},
7+
local function allWords()
8+
local str = [[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.:('"[,#*@| ]]
9+
local list = {}
10+
for c in str:gmatch '.' do
11+
list[#list+1] = c
12+
end
13+
return list
14+
end
1315

14-
hoverProvider = true,
15-
definitionProvider = true,
16-
referencesProvider = true,
17-
renameProvider = {
18-
prepareProvider = true,
19-
},
20-
documentSymbolProvider = true,
21-
workspaceSymbolProvider = true,
22-
documentHighlightProvider = true,
23-
codeActionProvider = true,
24-
signatureHelpProvider = {
25-
triggerCharacters = { '(', ',' },
26-
},
27-
executeCommandProvider = {
28-
commands = {
29-
'lua.removeSpace:' .. sp:get_id(),
30-
'lua.solve:' .. sp:get_id(),
16+
function m.getIniter()
17+
local initer = {
18+
-- 文本同步方式
19+
textDocumentSync = {
20+
-- 打开关闭文本时通知
21+
openClose = true,
22+
-- 文本改变时完全通知 TODO 支持差量更新(2)
23+
change = 1,
3124
},
32-
},
33-
--documentOnTypeFormattingProvider = {
34-
-- firstTriggerCharacter = '}',
35-
--},
36-
}
25+
26+
hoverProvider = true,
27+
definitionProvider = true,
28+
referencesProvider = true,
29+
renameProvider = {
30+
prepareProvider = true,
31+
},
32+
documentSymbolProvider = true,
33+
workspaceSymbolProvider = true,
34+
documentHighlightProvider = true,
35+
codeActionProvider = true,
36+
signatureHelpProvider = {
37+
triggerCharacters = { '(', ',' },
38+
},
39+
executeCommandProvider = {
40+
commands = {
41+
'lua.removeSpace:' .. sp:get_id(),
42+
'lua.solve:' .. sp:get_id(),
43+
},
44+
}
45+
--documentOnTypeFormattingProvider = {
46+
-- firstTriggerCharacter = '}',
47+
--},
48+
}
49+
50+
nonil.enable()
51+
if not client.info.capabilities.textDocument.completion.dynamicRegistration then
52+
initer.completionProvider = {
53+
triggerCharacters = allWords(),
54+
}
55+
end
56+
nonil.disable()
57+
58+
return initer
59+
end
3760

3861
return m

Diff for: script-beta/provider/completion.lua

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ local function allWords()
1212
end
1313

1414
local function enable()
15+
-- TODO 检查客户端是否支持动态注册自动完成
1516
if isEnable then
1617
return
1718
end

Diff for: script-beta/provider/provider.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ proto.on('initialize', function (params)
8787
library.init()
8888
workspace.init(params.rootUri)
8989
return {
90-
capabilities = cap.initer,
90+
capabilities = cap.getIniter(),
9191
serverInfo = {
9292
name = 'sumneko.lua',
9393
version = 'beta',

0 commit comments

Comments
 (0)