Skip to content

Commit 8996296

Browse files
committed
chore: rename lsp to opencode_ls
1 parent 17e80b4 commit 8996296

4 files changed

Lines changed: 36 additions & 79 deletions

File tree

ftplugin/opencode.lua

Lines changed: 2 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ vim.b.did_ftplugin = true
99

1010
local bufnr = vim.api.nvim_get_current_buf()
1111

12-
local opencode_completion_ls = require('opencode.lsp.opencode_completion_ls')
13-
local client_id = opencode_completion_ls.start(bufnr)
12+
local opencode_ls = require('opencode.lsp.opencode_ls')
13+
local client_id = opencode_ls.start(bufnr)
1414
local completion = require('opencode.ui.completion')
1515
local config = require('opencode.config')
1616
local use_native_completion = config.ui.completion.use_native_completion
@@ -34,54 +34,3 @@ if client_id then
3434
end,
3535
})
3636
end
37-
-- blink.cmp capabilities
38-
-- completion = {
39-
-- completionItem = {
40-
-- commitCharactersSupport = false,
41-
-- deprecatedSupport = true,
42-
-- documentationFormat = { "markdown", "plaintext" },
43-
-- insertReplaceSupport = true,
44-
-- preselectSupport = false,
45-
-- resolveSupport = {
46-
-- properties = { "additionalTextEdits", "command" }
47-
-- },
48-
-- snippetSupport = true,
49-
-- tagSupport = {
50-
-- valueSet = { 1 }
51-
-- }
52-
-- },
53-
-- completionItemKind = {
54-
-- valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }
55-
-- },
56-
-- completionList = {
57-
-- itemDefaults = { "editRange", "insertTextFormat", "insertTextMode", "data" }
58-
-- },
59-
-- contextSupport = true,
60-
-- dynamicRegistration = false
61-
-- },
62-
63-
-- cmp capabilities
64-
-- completion = {
65-
-- completionItem = {
66-
-- commitCharactersSupport = false,
67-
-- deprecatedSupport = true,
68-
-- documentationFormat = { "markdown", "plaintext" },
69-
-- insertReplaceSupport = true,
70-
-- preselectSupport = false,
71-
-- resolveSupport = {
72-
-- properties = { "additionalTextEdits", "command" }
73-
-- },
74-
-- snippetSupport = true,
75-
-- tagSupport = {
76-
-- valueSet = { 1 }
77-
-- }
78-
-- },
79-
-- completionItemKind = {
80-
-- valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }
81-
-- },
82-
-- completionList = {
83-
-- itemDefaults = { "editRange", "insertTextFormat", "insertTextMode", "data" }
84-
-- },
85-
-- contextSupport = true,
86-
-- dynamicRegistration = false
87-
-- },

lua/opencode/lsp/opencode_completion_ls.lua renamed to lua/opencode/lsp/opencode_ls.lua

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ handlers[ms.initialize] = function(params, callback)
2323
},
2424
},
2525
serverInfo = {
26-
name = 'opencode_completion_ls',
26+
name = 'opencode_ls',
2727
version = '1.0.0',
2828
},
2929
})
@@ -44,6 +44,7 @@ local function get_completion_context(params)
4444
local line = lines[1] or ''
4545
local line_to_cursor = line:sub(1, col)
4646

47+
local trigger_char = ''
4748
local triggers = completion.get_trigger_characters()
4849
for _, t in ipairs(triggers) do
4950
if t and line_to_cursor:match(vim.pesc(t) .. '[^%s]*$') then
@@ -140,21 +141,28 @@ handlers[ms.textDocument_completion] = function(params, callback)
140141
:catch(function(err)
141142
local log = require('opencode.log')
142143
log.error('Error in completion handler: ' .. tostring(err))
143-
callback(nil, {})
144+
callback(nil, { isIncomplete = false, items = {} })
144145
end)
145146
end
146147

147148
---Create the LSP server configuration
148149
---@return vim.lsp.ClientConfig
149150
function M.create_config()
150151
return {
151-
name = 'opencode_completion_ls',
152+
name = 'opencode_ls',
152153
cmd = function(dispatchers, config)
153154
return {
154155
request = function(method, params, callback)
155156
if handlers[method] then
156157
handlers[method](params, callback)
158+
return
157159
end
160+
-- Ensure every request receives a response to avoid hanging the client.
161+
-- Use JSON-RPC "MethodNotFound" error code (-32601).
162+
callback({
163+
code = -32601,
164+
message = 'Method not found: ' .. tostring(method),
165+
}, nil)
158166
end,
159167
notify = function() end,
160168
is_closing = function()

lua/opencode/ui/completion/commands.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ local command_source = {
5454
kind_icon = icons.get('command'),
5555
detail = command.description,
5656
documentation = command.documentation .. (command.args and '\n\n* This command takes arguments.' or ''),
57-
insert_text = command.name:sub(2),
57+
insert_text = command.name:sub(2), -- remove the trigger char from the inserted text
5858
source_name = 'commands',
5959
data = {
6060
name = command.name,
@@ -73,7 +73,7 @@ local command_source = {
7373
return items
7474
end),
7575
on_complete = function(item)
76-
if item.kind == 'command' then
76+
if item.kind == 'commands' then
7777
if item.data.fn then
7878
if item.data.args then
7979
require('opencode.ui.input_window').set_content(item.insert_text .. ' ')

tests/unit/completion_lsp_spec.lua

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ describe('opencode LSP completion', function()
3636
after_each(function()
3737
package.loaded['opencode.config'] = nil
3838
package.loaded['opencode.ui.completion'] = nil
39-
package.loaded['opencode.lsp.opencode_completion_ls'] = nil
39+
package.loaded['opencode.lsp.opencode_ls'] = nil
4040
package.loaded['blink.cmp'] = nil
4141
end)
4242

@@ -358,24 +358,24 @@ describe('opencode LSP completion', function()
358358
end)
359359
end)
360360

361-
describe('opencode_completion_ls module', function()
361+
describe('opencode_ls module', function()
362362
local ls
363363

364364
before_each(function()
365-
package.loaded['opencode.lsp.opencode_completion_ls'] = nil
366-
ls = require('opencode.lsp.opencode_completion_ls')
365+
package.loaded['opencode.lsp.opencode_ls'] = nil
366+
ls = require('opencode.lsp.opencode_ls')
367367
end)
368368

369369
after_each(function()
370-
package.loaded['opencode.lsp.opencode_completion_ls'] = nil
370+
package.loaded['opencode.lsp.opencode_ls'] = nil
371371
end)
372372

373373
describe('create_config', function()
374374
it('returns a valid LSP client config', function()
375375
local config = ls.create_config()
376376

377377
assert.is_not_nil(config)
378-
assert.are.equal('opencode_completion_ls', config.name)
378+
assert.are.equal('opencode_ls', config.name)
379379
assert.is_function(config.cmd)
380380
end)
381381

@@ -418,8 +418,8 @@ describe('opencode LSP completion', function()
418418
end,
419419
})
420420

421-
package.loaded['opencode.lsp.opencode_completion_ls'] = nil
422-
ls = require('opencode.lsp.opencode_completion_ls')
421+
package.loaded['opencode.lsp.opencode_ls'] = nil
422+
ls = require('opencode.lsp.opencode_ls')
423423

424424
local config_obj = ls.create_config()
425425
local server = config_obj.cmd({}, {})
@@ -435,7 +435,7 @@ describe('opencode LSP completion', function()
435435
local triggers = result.capabilities.completionProvider.triggerCharacters
436436
assert.is_true(vim.tbl_contains(triggers, '@'))
437437
assert.is_true(vim.tbl_contains(triggers, '/'))
438-
assert.are.equal('opencode_completion_ls', result.serverInfo.name)
438+
assert.are.equal('opencode_ls', result.serverInfo.name)
439439
end)
440440
end)
441441

@@ -461,8 +461,8 @@ describe('opencode LSP completion', function()
461461
return { 1, 5 }
462462
end
463463

464-
package.loaded['opencode.lsp.opencode_completion_ls'] = nil
465-
ls = require('opencode.lsp.opencode_completion_ls')
464+
package.loaded['opencode.lsp.opencode_ls'] = nil
465+
ls = require('opencode.lsp.opencode_ls')
466466
end)
467467

468468
it('returns completion items from registered sources', function()
@@ -671,8 +671,8 @@ describe('opencode LSP completion', function()
671671

672672
describe('unregistered handler', function()
673673
it('does not error when an unknown method is called', function()
674-
package.loaded['opencode.lsp.opencode_completion_ls'] = nil
675-
ls = require('opencode.lsp.opencode_completion_ls')
674+
package.loaded['opencode.lsp.opencode_ls'] = nil
675+
ls = require('opencode.lsp.opencode_ls')
676676

677677
local config_obj = ls.create_config()
678678
local server = config_obj.cmd({}, {})
@@ -687,8 +687,8 @@ describe('opencode LSP completion', function()
687687
it('includes kind_icon when supports_kind_icons is true', function()
688688
-- Simulate supports_kind_icons = true in config
689689
mock_config.ui.completion.supports_kind_icons = true
690-
package.loaded['opencode.lsp.opencode_completion_ls'] = nil
691-
ls = require('opencode.lsp.opencode_completion_ls')
690+
package.loaded['opencode.lsp.opencode_ls'] = nil
691+
ls = require('opencode.lsp.opencode_ls')
692692

693693
package.loaded['opencode.ui.completion'] = nil
694694
local completion = require('opencode.ui.completion')
@@ -753,8 +753,8 @@ describe('opencode LSP completion', function()
753753

754754
it('prefixes label with kind_icon when supports_kind_icons is false', function()
755755
mock_config.ui.completion.supports_kind_icons = false
756-
package.loaded['opencode.lsp.opencode_completion_ls'] = nil
757-
ls = require('opencode.lsp.opencode_completion_ls')
756+
package.loaded['opencode.lsp.opencode_ls'] = nil
757+
ls = require('opencode.lsp.opencode_ls')
758758

759759
package.loaded['opencode.ui.completion'] = nil
760760
local completion = require('opencode.ui.completion')
@@ -817,8 +817,8 @@ describe('opencode LSP completion', function()
817817

818818
it('sets insertText from item.insert_text', function()
819819
package.loaded['blink.cmp'] = nil
820-
package.loaded['opencode.lsp.opencode_completion_ls'] = nil
821-
ls = require('opencode.lsp.opencode_completion_ls')
820+
package.loaded['opencode.lsp.opencode_ls'] = nil
821+
ls = require('opencode.lsp.opencode_ls')
822822

823823
package.loaded['opencode.ui.completion'] = nil
824824
local completion = require('opencode.ui.completion')
@@ -876,8 +876,8 @@ describe('opencode LSP completion', function()
876876

877877
it('embeds the original item in data._opencode_item', function()
878878
package.loaded['blink.cmp'] = nil
879-
package.loaded['opencode.lsp.opencode_completion_ls'] = nil
880-
ls = require('opencode.lsp.opencode_completion_ls')
879+
package.loaded['opencode.lsp.opencode_ls'] = nil
880+
ls = require('opencode.lsp.opencode_ls')
881881

882882
package.loaded['opencode.ui.completion'] = nil
883883
local completion = require('opencode.ui.completion')

0 commit comments

Comments
 (0)