X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5a4872f466ebd76ddd532bdf2798554421c53df4..fe3919e725e156d751069662d11e38f7b4791de1:/.vim/bundle/vim-lsp/plugin/lsp.vim?ds=sidebyside diff --git a/.vim/bundle/vim-lsp/plugin/lsp.vim b/.vim/bundle/vim-lsp/plugin/lsp.vim new file mode 100644 index 00000000..11a2b442 --- /dev/null +++ b/.vim/bundle/vim-lsp/plugin/lsp.vim @@ -0,0 +1,240 @@ +if exists('g:lsp_loaded') || !exists('*json_encode') || !has('timers') || !has('lambda') + finish +endif +let g:lsp_loaded = 1 + +let g:lsp_use_lua = get(g:, 'lsp_use_lua', has('nvim-0.4.0') || (has('lua') && has('patch-8.2.0775'))) +let g:lsp_use_native_client = get(g:, 'lsp_use_native_client', 0) +let g:lsp_auto_enable = get(g:, 'lsp_auto_enable', 1) +let g:lsp_async_completion = get(g:, 'lsp_async_completion', 0) +let g:lsp_log_file = get(g:, 'lsp_log_file', '') +let g:lsp_log_verbose = get(g:, 'lsp_log_verbose', 1) +let g:lsp_debug_servers = get(g:, 'lsp_debug_servers', []) +let g:lsp_format_sync_timeout = get(g:, 'lsp_format_sync_timeout', -1) +let g:lsp_max_buffer_size = get(g:, 'lsp_max_buffer_size', 5000000) + +let g:lsp_completion_documentation_enabled = get(g:, 'lsp_completion_documentation_enabled', 1) +let g:lsp_completion_documentation_delay = get(g:, 'lsp_completion_documention_delay', 80) + +let g:lsp_diagnostics_enabled = get(g:, 'lsp_diagnostics_enabled', 1) +let g:lsp_diagnostics_echo_cursor = get(g:, 'lsp_diagnostics_echo_cursor', 0) +let g:lsp_diagnostics_echo_delay = get(g:, 'lsp_diagnostics_echo_delay', 500) +let g:lsp_diagnostics_float_cursor = get(g:, 'lsp_diagnostics_float_cursor', 0) +let g:lsp_diagnostics_float_delay = get(g:, 'lsp_diagnostics_float_delay', 500) +let g:lsp_diagnostics_float_insert_mode_enabled = get(g:, 'lsp_diagnostics_float_insert_mode_enabled', 1) +let g:lsp_diagnostics_highlights_enabled = get(g:, 'lsp_diagnostics_highlights_enabled', lsp#utils#_has_highlights()) +let g:lsp_diagnostics_highlights_insert_mode_enabled = get(g:, 'lsp_diagnostics_highlights_insert_mode_enabled', 1) +let g:lsp_diagnostics_highlights_delay = get(g:, 'lsp_diagnostics_highlights_delay', 500) +let g:lsp_diagnostics_signs_enabled = get(g:, 'lsp_diagnostics_signs_enabled', lsp#utils#_has_signs()) +let g:lsp_diagnostics_signs_insert_mode_enabled = get(g:, 'lsp_diagnostics_signs_insert_mode_enabled', 1) +let g:lsp_diagnostics_signs_delay = get(g:, 'lsp_diagnostics_signs_delay', 500) +let g:lsp_diagnostics_signs_error = get(g:, 'lsp_diagnostics_signs_error', {}) +let g:lsp_diagnostics_signs_warning = get(g:, 'lsp_diagnostics_signs_warning', {}) +let g:lsp_diagnostics_signs_information = get(g:, 'lsp_diagnostics_signs_information', {}) +let g:lsp_diagnostics_signs_hint = get(g:, 'lsp_diagnostics_signs_hint', {}) +let g:lsp_diagnostics_signs_priority = get(g:, 'lsp_diagnostics_signs_priority', 10) +let g:lsp_diagnostics_signs_priority_map = get(g:, 'lsp_diagnostics_signs_priority_map', {}) +let g:lsp_diagnostics_virtual_text_enabled = get(g:, 'lsp_diagnostics_virtual_text_enabled', lsp#utils#_has_nvim_virtual_text() || lsp#utils#_has_vim_virtual_text()) +let g:lsp_diagnostics_virtual_text_insert_mode_enabled = get(g:, 'lsp_diagnostics_virtual_text_insert_mode_enabled', 0) +let g:lsp_diagnostics_virtual_text_delay = get(g:, 'lsp_diagnostics_virtual_text_delay', 500) +let g:lsp_diagnostics_virtual_text_prefix = get(g:, 'lsp_diagnostics_virtual_text_prefix', '') +let g:lsp_diagnostics_virtual_text_align = get(g:, 'lsp_diagnostics_virtual_text_align', 'below') +let g:lsp_diagnostics_virtual_text_wrap = get(g:, 'lsp_diagnostics_virtual_text_wrap', 'wrap') +let g:lsp_diagnostics_virtual_text_padding_left = get(g:, 'lsp_diagnostics_virtual_text_padding_left', 1) + +let g:lsp_document_code_action_signs_enabled = get(g:, 'lsp_document_code_action_signs_enabled', 1) +let g:lsp_document_code_action_signs_delay = get(g:, 'lsp_document_code_action_signs_delay', 500) +let g:lsp_document_code_action_signs_hint = get(g:, 'lsp_document_code_action_signs_hint', {}) +let g:lsp_document_code_action_signs_priority = get(g:, 'lsp_document_code_action_signs_priority', 10) + +let g:lsp_tree_incoming_prefix = get(g:, 'lsp_tree_incoming_prefix', '<= ') + +let g:lsp_preview_keep_focus = get(g:, 'lsp_preview_keep_focus', 1) +let g:lsp_use_event_queue = get(g:, 'lsp_use_event_queue', has('nvim') || has('patch-8.1.0889')) +let g:lsp_insert_text_enabled= get(g:, 'lsp_insert_text_enabled', 1) +let g:lsp_text_edit_enabled = get(g:, 'lsp_text_edit_enabled', has('patch-8.0.1493')) +let g:lsp_document_highlight_enabled = get(g:, 'lsp_document_highlight_enabled', 1) +let g:lsp_document_highlight_delay = get(g:, 'lsp_document_highlight_delay', 350) +let g:lsp_preview_float = get(g:, 'lsp_preview_float', 1) +let g:lsp_preview_autoclose = get(g:, 'lsp_preview_autoclose', 1) +let g:lsp_preview_doubletap = get(g:, 'lsp_preview_doubletap', [function('lsp#ui#vim#output#focuspreview')]) +let g:lsp_preview_fixup_conceal = get(g:, 'lsp_preview_fixup_conceal', 0) +let g:lsp_peek_alignment = get(g:, 'lsp_peek_alignment', 'center') +let g:lsp_preview_max_width = get(g:, 'lsp_preview_max_width', -1) +let g:lsp_preview_max_height = get(g:, 'lsp_preview_max_height', -1) +let g:lsp_float_max_width = get(g:, 'lsp_float_max_width', -1) +let g:lsp_signature_help_enabled = get(g:, 'lsp_signature_help_enabled', 1) +let g:lsp_signature_help_delay = get(g:, 'lsp_signature_help_delay', 200) +let g:lsp_show_workspace_edits = get(g:, 'lsp_show_workspace_edits', 0) +let g:lsp_fold_enabled = get(g:, 'lsp_fold_enabled', 1) +let g:lsp_hover_conceal = get(g:, 'lsp_hover_conceal', 1) +let g:lsp_hover_ui = get(g:, 'lsp_hover_ui', '') +let g:lsp_ignorecase = get(g:, 'lsp_ignorecase', &ignorecase) +let g:lsp_semantic_enabled = get(g:, 'lsp_semantic_enabled', 0) +let g:lsp_semantic_delay = get(g:, 'lsp_semantic_delay', 500) +let g:lsp_text_document_did_save_delay = get(g:, 'lsp_text_document_did_save_delay', -1) +let g:lsp_completion_resolve_timeout = get(g:, 'lsp_completion_resolve_timeout', 200) +let g:lsp_tagfunc_source_methods = get(g:, 'lsp_tagfunc_source_methods', ['definition', 'declaration', 'implementation', 'typeDefinition']) +let g:lsp_show_message_request_enabled = get(g:, 'lsp_show_message_request_enabled', 1) +let g:lsp_show_message_log_level = get(g:, 'lsp_show_message_log_level', 'warning') +let g:lsp_work_done_progress_enabled = get(g:, 'lsp_work_done_progress_enabled', 0) +let g:lsp_untitled_buffer_enabled = get(g:, 'lsp_untitled_buffer_enabled', 1) +let g:lsp_inlay_hints_enabled = get(g:, 'lsp_inlay_hints_enabled', 0) +let g:lsp_inlay_hints_delay = get(g:, 'lsp_inlay_hints_delay', 350) +let g:lsp_code_action_ui = get(g:, 'lsp_code_action_ui', 'preview') + +let g:lsp_get_supported_capabilities = get(g:, 'lsp_get_supported_capabilities', [function('lsp#default_get_supported_capabilities')]) + +let g:lsp_document_symbol_detail = get(g:, 'lsp_document_symbol_detail', 0) + +let g:lsp_experimental_workspace_folders = get(g:, 'lsp_experimental_workspace_folders', 0) + +if g:lsp_auto_enable + augroup lsp_auto_enable + autocmd! + autocmd VimEnter * call lsp#enable() + augroup END +endif + +command! LspAddTreeCallHierarchyIncoming call lsp#ui#vim#add_tree_call_hierarchy_incoming() +command! LspCallHierarchyIncoming call lsp#ui#vim#call_hierarchy_incoming({}) +command! LspCallHierarchyOutgoing call lsp#ui#vim#call_hierarchy_outgoing() +command! -range -nargs=* -complete=customlist,lsp#ui#vim#code_action#complete LspCodeAction call lsp#ui#vim#code_action#do( + \ extend({ 'sync': v:false, 'selection': != 0 }, lsp#utils#args#_parse(, { + \ 'ui': { 'type': type('') }, + \ }, 'query'))) +command! -range -nargs=* -complete=customlist,lsp#ui#vim#code_action#complete LspCodeActionSync call lsp#ui#vim#code_action#do( + \ extend({ 'sync': v:true, 'selection': != 0 }, lsp#utils#args#_parse(, { + \ 'ui': { 'type': type('') }, + \ }, 'query'))) +command! LspCodeLens call lsp#ui#vim#code_lens#do({}) +command! LspDeclaration call lsp#ui#vim#declaration(0, ) +command! LspPeekDeclaration call lsp#ui#vim#declaration(1) +command! LspDefinition call lsp#ui#vim#definition(0, ) +command! LspPeekDefinition call lsp#ui#vim#definition(1) +command! LspDocumentSymbol call lsp#ui#vim#document_symbol() +command! LspDocumentSymbolSearch call lsp#internal#document_symbol#search#do({}) +command! -nargs=? LspDocumentDiagnostics call lsp#internal#diagnostics#document_diagnostics_command#do( + \ extend({}, lsp#utils#args#_parse(, { + \ 'buffers': {'type': type('')}, + \ }, v:null))) +command! -nargs=? -complete=customlist,lsp#utils#empty_complete LspHover call lsp#internal#document_hover#under_cursor#do( + \ extend({}, lsp#utils#args#_parse(, { + \ 'ui': { 'type': type('') }, + \ }, v:null))) +command! -nargs=* LspNextError call lsp#internal#diagnostics#movement#_next_error() +command! -nargs=* LspPreviousError call lsp#internal#diagnostics#movement#_previous_error() +command! -nargs=* LspNextWarning call lsp#internal#diagnostics#movement#_next_warning() +command! -nargs=* LspPreviousWarning call lsp#internal#diagnostics#movement#_previous_warning() +command! -nargs=* LspNextDiagnostic call lsp#internal#diagnostics#movement#_next_diagnostics() +command! -nargs=* LspPreviousDiagnostic call lsp#internal#diagnostics#movement#_previous_diagnostics() +command! LspReferences call lsp#ui#vim#references({}) +command! LspAddTreeReferences call lsp#ui#vim#add_tree_references() +command! LspRename call lsp#ui#vim#rename() +command! LspTypeDefinition call lsp#ui#vim#type_definition(0, ) +command! LspTypeHierarchy call lsp#internal#type_hierarchy#show() +command! LspPeekTypeDefinition call lsp#ui#vim#type_definition(1) +command! -nargs=? LspWorkspaceSymbol call lsp#ui#vim#workspace_symbol() +command! -nargs=? LspWorkspaceSymbolSearch call lsp#internal#workspace_symbol#search#do({'query': }) +command! -range LspDocumentFormat call lsp#internal#document_formatting#format({ 'bufnr': bufnr('%') }) +command! -range -nargs=? LspDocumentFormatSync call lsp#internal#document_formatting#format( + \ extend({'bufnr': bufnr('%'), 'sync': 1 }, lsp#utils#args#_parse(, { + \ 'timeout': {'type': type(0)}, + \ 'sleep': {'type': type(0)}, + \ }, v:null))) +command! -range LspDocumentRangeFormat call lsp#internal#document_range_formatting#format({ 'bufnr': bufnr('%') }) +command! -range -nargs=? LspDocumentRangeFormatSync call lsp#internal#document_range_formatting#format( + \ extend({'bufnr': bufnr('%'), 'sync': 1 }, lsp#utils#args#_parse(, { + \ 'timeout': {'type': type(0)}, + \ 'sleep': {'type': type(0)}, + \ }, v:null))) +command! LspImplementation call lsp#ui#vim#implementation(0, ) +command! LspPeekImplementation call lsp#ui#vim#implementation(1) +command! -nargs=0 LspStatus call lsp#print_server_status() +command! LspNextReference call lsp#internal#document_highlight#jump(+1) +command! LspPreviousReference call lsp#internal#document_highlight#jump(-1) +command! -nargs=? -bang -complete=customlist,lsp#server_complete_running LspStopServer call lsp#ui#vim#stop_server("", ) +command! -nargs=? -complete=customlist,lsp#utils#empty_complete LspSignatureHelp call lsp#ui#vim#signature_help#get_signature_help_under_cursor() +command! LspDocumentFold call lsp#ui#vim#folding#fold(0) +command! LspDocumentFoldSync call lsp#ui#vim#folding#fold(1) +command! -nargs=0 LspSemanticTokenTypes echo lsp#internal#semantic#get_token_types() +command! -nargs=0 LspSemanticTokenModifiers echo lsp#internal#semantic#get_token_modifiers() + +nnoremap (lsp-call-hierarchy-incoming) :call lsp#ui#vim#call_hierarchy_incoming({}) +nnoremap (lsp-call-hierarchy-outgoing) :call lsp#ui#vim#call_hierarchy_outgoing() +nnoremap (lsp-code-action) :call lsp#ui#vim#code_action({}) +nnoremap (lsp-code-action-float) :call lsp#ui#vim#code_action({ 'ui': 'float' }) +nnoremap (lsp-code-action-preview) :call lsp#ui#vim#code_action({ 'ui': 'preview' }) +nnoremap (lsp-code-lens) :call lsp#ui#vim#code_lens() +nnoremap (lsp-declaration) :call lsp#ui#vim#declaration(0) +nnoremap (lsp-peek-declaration) :call lsp#ui#vim#declaration(1) +nnoremap (lsp-definition) :call lsp#ui#vim#definition(0) +nnoremap (lsp-peek-definition) :call lsp#ui#vim#definition(1) +nnoremap (lsp-document-symbol) :call lsp#ui#vim#document_symbol() +nnoremap (lsp-document-symbol-search) :call lsp#internal#document_symbol#search#do({}) +nnoremap (lsp-document-diagnostics) :call lsp#internal#diagnostics#document_diagnostics_command#do({}) +nnoremap (lsp-hover) :call lsp#internal#document_hover#under_cursor#do({}) +nnoremap (lsp-hover-float) :call lsp#internal#document_hover#under_cursor#do({ 'ui': 'float' }) +nnoremap (lsp-hover-preview) :call lsp#internal#document_hover#under_cursor#do({ 'ui': 'preview' }) +nnoremap (lsp-preview-close) :call lsp#ui#vim#output#closepreview() +nnoremap (lsp-preview-focus) :call lsp#ui#vim#output#focuspreview() +nnoremap (lsp-next-error) :call lsp#internal#diagnostics#movement#_next_error() +nnoremap (lsp-next-error-nowrap) :call lsp#internal#diagnostics#movement#_next_error("-wrap=0") +nnoremap (lsp-previous-error) :call lsp#internal#diagnostics#movement#_previous_error() +nnoremap (lsp-previous-error-nowrap) :call lsp#internal#diagnostics#movement#_previous_error("-wrap=0") +nnoremap (lsp-next-warning) :call lsp#internal#diagnostics#movement#_next_warning() +nnoremap (lsp-next-warning-nowrap) :call lsp#internal#diagnostics#movement#_next_warning("-wrap=0") +nnoremap (lsp-previous-warning) :call lsp#internal#diagnostics#movement#_previous_warning() +nnoremap (lsp-previous-warning-nowrap) :call lsp#internal#diagnostics#movement#_previous_warning("-wrap=0") +nnoremap (lsp-next-diagnostic) :call lsp#internal#diagnostics#movement#_next_diagnostics() +nnoremap (lsp-next-diagnostic-nowrap) :call lsp#internal#diagnostics#movement#_next_diagnostics("-wrap=0") +nnoremap (lsp-previous-diagnostic) :call lsp#internal#diagnostics#movement#_previous_diagnostics() +nnoremap (lsp-previous-diagnostic-nowrap) :call lsp#internal#diagnostics#movement#_previous_diagnostics("-wrap=0") +nnoremap (lsp-references) :call lsp#ui#vim#references({}) +nnoremap (lsp-rename) :call lsp#ui#vim#rename() +nnoremap (lsp-type-definition) :call lsp#ui#vim#type_definition(0) +nnoremap (lsp-type-hierarchy) :call lsp#internal#type_hierarchy#show() +nnoremap (lsp-peek-type-definition) :call lsp#ui#vim#type_definition(1) +nnoremap (lsp-workspace-symbol) :call lsp#ui#vim#workspace_symbol('') +nnoremap (lsp-workspace-symbol-search) :call lsp#internal#workspace_symbol#search#do({}) +nnoremap (lsp-document-format) :call lsp#internal#document_formatting#format({ 'bufnr': bufnr('%') }) +vnoremap (lsp-document-format) :silent call lsp#internal#document_range_formatting#format({ 'bufnr': bufnr('%') }) +nnoremap (lsp-document-range-format) :set opfunc=lsp#internal#document_range_formatting#opfuncg@ +xnoremap (lsp-document-range-format) :silent call lsp#internal#document_range_formatting#format({ 'bufnr': bufnr('%') }) +nnoremap (lsp-implementation) :call lsp#ui#vim#implementation(0) +nnoremap (lsp-peek-implementation) :call lsp#ui#vim#implementation(1) +nnoremap (lsp-status) :echo lsp#get_server_status() +nnoremap (lsp-next-reference) :call lsp#internal#document_highlight#jump(+1) +nnoremap (lsp-previous-reference) :call lsp#internal#document_highlight#jump(-1) +nnoremap (lsp-signature-help) :call lsp#ui#vim#signature_help#get_signature_help_under_cursor() + +if has('gui_running') + anoremenu L&sp.Goto.Definition :LspDefinition + anoremenu L&sp.Goto.Declaration :LspDeclaration + anoremenu L&sp.Goto.Implementation :LspImplementation + anoremenu L&sp.Goto.TypeDef :LspTypeDefinition + + anoremenu L&sp.Show\ Signature :LspShowSignature + anoremenu L&sp.Show\ References :LspReferences + anoremenu L&sp.Show\ Detail :LspHover + + anoremenu L&sp.Symbol\ Search :LspDocumentSymbolSearch + anoremenu L&sp.Outgoing\ Calls :LspCallHierarchyOutgoing + anoremenu L&sp.Incoming\ Calls :LspCallHierarchyIncoming + anoremenu L&sp.Rename :LspRename + anoremenu L&sp.Code\ Action :LspCodeAction + + anoremenu L&sp.Diagnostics.Next :LspNextDiagnostic + anoremenu L&sp.Diagnostics.Prev :LspPrevDiagnostic + + if &mousemodel =~? 'popup' + anoremenu PopUp.L&sp.Go\ to\ Definition + \ :LspDefinition + anoremenu PopUp.L&sp.Go\ to\ Declaration + \ :LspDeclaration + anoremenu PopUp.L&sp.Find\ All\ References + \ :LspReferences + anoremenu PopUp.L&sp.Show\ Detail + \ :LspHover + endif +endif