Skip to content

Commit 6713a8f

Browse files
authored
Merge pull request #22 from shun095/fix/fix-completion-offset
Fix completion offset
2 parents bd1e66f + caa36c9 commit 6713a8f

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

autoload/ddc_vim_lsp.vim

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,22 @@ function! ddc_vim_lsp#_callback(server, position, id, data) abort
88
\ 'position': a:position,
99
\ 'response': a:data['response'],
1010
\ }
11-
let lspitems = lsp#omni#get_vim_completion_items(l:options)['items']
11+
let completionResult = lsp#omni#get_vim_completion_items(l:options)
12+
let startcol = completionResult['startcol']
13+
let lspitems = completionResult['items']
14+
1215
let isIncomplete = (
1316
\ type(a:data['response']['result']) == 4
1417
\ && has_key(a:data['response']['result'], 'isIncomplete')
1518
\ ) ?
1619
\ a:data['response']['result']['isIncomplete'] : v:false
1720

18-
call ddc#callback(a:id, {'items': lspitems, 'isIncomplete': isIncomplete})
21+
call ddc#callback(a:id, {
22+
\ 'items': lspitems,
23+
\ 'isIncomplete': isIncomplete,
24+
\ 'startcol': startcol,
25+
\ 'currentcol': col('.'),
26+
\})
1927
endfunction
2028

2129
function! ddc_vim_lsp#request(server_name, id) abort

denops/@ddc-sources/vim-lsp.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,18 @@ export class Source extends BaseSource<Params> {
3333
args.onCallback(id) as Promise<{
3434
items: DdcItem[];
3535
isIncomplete: boolean;
36+
startcol: number;
37+
currentcol: number;
3638
}>,
3739
args.denops.call("ddc_vim_lsp#request", lspservers[0], id),
3840
]);
3941
return {
40-
items: payload.items,
42+
items: payload.items.map((elem: DdcItem) => {
43+
elem.word = elem.word.slice(
44+
payload.currentcol - payload.startcol,
45+
);
46+
return elem;
47+
}),
4148
isIncomplete: payload.isIncomplete,
4249
};
4350
}

0 commit comments

Comments
 (0)