Neovim의 Builtin을 사용하는 LSP 클라이언트

9197 단어 Neovimtech
Neovim의 LSP 클라이언트를 사용합니다.
>>> nvim --version
NVIM v0.5.0-dev+nightly
플러그인 관리 사용vim-plug.

구성 세트 설치


nvim-lspconfig


LS의 설정 세트입니다.
설치된 LS를 자동으로 시작합니다.
Plug 'neovim/nvim-lspconfig'

자동 완성


omnifunc를 사용하거나 플러그인을 가져와야 합니다.
Builtin의 LSP 클라이언트를 자동으로 보충하는 Lua 플러그인을 사용합니다.

completion-nvim


Plug 'nvim-lua/completion-nvim'
이렇게 하면 위에 버퍼 메모리가 나와서 좀 귀찮아서 추천 설정을 직접 씁니다.
set completeopt=menuone,noinsert,noselect
set shortmess+=c

설정


키 맵 및 자동 완성 구성 예
루아로 쓴 것 같은데.
나는 예에 따라hia 문서에 쓸 것이다. 그러나 이렇게 하면 색칠을 하지 않기 때문에 문법이 밝게 설정해야 한다.
let g:vimsyn_embed='lPr'
개인 최소 설정.
lua << EOF
    local on_attach = function (client, bufnr)
        vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', {noremap = true, silent = true})
        vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', {noremap = true, silent = true})
        vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', {noremap = true, silent = true})
        require('completion').on_attach(client)
    end
    require('lspconfig').vimls.setup({on_attach = on_attach})
    require('lspconfig').tsserver.setup({on_attach = on_attach})
    require('lspconfig').intelephense.setup({on_attach = on_attach})
EOF

오류 표시가 걱정됨


오류와 프롬프트가 행 끝에 virtual text로 표시됩니다.
  • 화면을 분할할 때 볼 수 있는 경우가 많다
  • 많이 나오면 힘들어
  • 가상 텍스트에 표시되지 않는 설정


    vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
        vim.lsp.diagnostic.on_publish_diagnostics, { virtual_text = false }
    )
    
    오류 정보는 vim.lsp.diagnostic.show_line_diagnostics()에서 볼 수 있습니다.

    색칠하다


    :help lsp-highlight
    
    사용한 주제가 대응하지 않기 때문에 오류와 힌트의 기호만 색칠합니다.
    highlight LspDiagnosticsSignError ctermbg=9 ctermfg=15
    highlight LspDiagnosticsSignHint ctermbg=142 ctermfg=15
    

    사용


    LSP 관련 물건을 제대로 사용하지 못했기 때문인지 평범하게 느껴진다.
    예전에 코크롬을 사용해 왔습니다.

    좋은 웹페이지 즐겨찾기