diff --git a/autoload/langserver/completion.vim b/autoload/langserver/completion.vim new file mode 100644 index 0000000..81b0efa --- /dev/null +++ b/autoload/langserver/completion.vim @@ -0,0 +1,38 @@ +function! langserver#completion#callback(id, data, event) abort + let l:parsed_data = langserver#callbacks#data(a:id, a:data, a:event) + if l:parsed_data == {} + return + endif + + " {'isIncomplete': bool, 'items': [CompletionItems]} + let l:completion_items = l:parsed_data['items'] + +endfunction + +function! langserver#completion#request(...) abort + return langserver#client#send(langserver#util#get_lsp_id(), { + \ 'method': 'textDocument/completion', + \ 'params': langserver#util#get_text_document_position_params(), + \ }) +endfunction + +let s:CompletionItemKind = { + \ 'Text': 1, + \ 'Method': 2, + \ 'Function': 3, + \ 'Constructor': 4, + \ 'Field': 5, + \ 'Variable': 6, + \ 'Class': 7, + \ 'Interface': 8, + \ 'Module': 9, + \ 'Property': 10, + \ 'Unit': 11, + \ 'Value': 12, + \ 'Enum': 13, + \ 'Keyword': 14, + \ 'Snippet': 15, + \ 'Color': 16, + \ 'File': 17, + \ 'Reference': 18 + \ } diff --git a/rplugin/python3/deoplete/langserver.py b/rplugin/python3/deoplete/langserver.py new file mode 100644 index 0000000..118b88c --- /dev/null +++ b/rplugin/python3/deoplete/langserver.py @@ -0,0 +1,24 @@ +from .base import Base + + +class Source(Base): + def __init__(self, nvim): + super(Source, self).__init__(nvim) + + self.nvim = nvim + self.name = langserver + self.mark = '[LSP]' + + def on_event(self, context, filename=''): + pass + + def gather_candidates(self, context): + user_input = context['input'] + filetype = context.get('filetype', '') + complete_str context['complete_str'] + + return [ + { + 'word': user_input + '_hello', + } + ]