Skip to content
This repository was archived by the owner on Oct 13, 2021. It is now read-only.

Commit ade764f

Browse files
authored
Merge pull request #172 from runiq/snippets.nvim+completion-nvim
Use snippets.nvim to handle LSP snippets
2 parents 654c795 + 17c9cdb commit ade764f

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

lua/completion.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ local function hasConfirmedCompletion()
9797
local completed_item = api.nvim_get_vvar('completed_item')
9898
if completed_item.user_data.lsp ~= nil then
9999
applyAddtionalTextEdits(completed_item)
100+
if vim.g.completion_enable_snippet == "snippets.nvim" then
101+
require 'snippets'.expand_at_cursor(completed_item.user_data.actual_item, completed_item.word)
102+
end
100103
end
101104
if opt.get_option('enable_auto_paren') == 1 then
102105
autoAddParens(completed_item)

lua/completion/source/lsp.lua

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,15 @@ local function get_completion_word(item, prefix, suffix)
2424
else
2525
newText = item.textEdit.newText
2626
end
27-
if protocol.InsertTextFormat[item.insertTextFormat] == "PlainText" then
27+
if protocol.InsertTextFormat[item.insertTextFormat] == "PlainText"
28+
or vim.g.completion_enable_snippet == "snippets.nvim" then
2829
return newText
2930
else
3031
return vim.lsp.util.parse_snippet(newText)
3132
end
3233
elseif item.insertText ~= nil and item.insertText ~= vim.NIL then
33-
if protocol.InsertTextFormat[item.insertTextFormat] == "PlainText" then
34+
if protocol.InsertTextFormat[item.insertTextFormat] == "PlainText"
35+
or vim.g.completion_enable_snippet == "snippets.nvim" then
3436
return item.insertText
3537
else
3638
return vim.lsp.util.parse_snippet(item.insertText)
@@ -95,6 +97,11 @@ local function text_document_completion_list_to_complete_items(result, params)
9597
completion_item = completion_item,
9698
}
9799
}
100+
if protocol.InsertTextFormat[completion_item.insertTextFormat] == 'Snippet'
101+
and vim.g.completion_enable_snippet == "snippets.nvim" then
102+
item.user_data.actual_item = item.word
103+
item.word = completion_item.label
104+
end
98105
local kind = protocol.CompletionItemKind[completion_item.kind]
99106
item.kind = customize_label[kind] or kind
100107
item.abbr = completion_item.label

0 commit comments

Comments
 (0)