😁

Neovim に dcc.nvim を導入する

に公開

環境

  • Windows 11
  • Neovim v0.10.4

方針

パッケージマネージャー

  • Lazy.nvim

LSP関連

  • vim-lsp // Vim, Neovim 用の LSP プラグイン
  • vim-lsp-settings // vim-lsp の設定を自動でできるプラグイン

Deno関連 (dccがdenoに依存しているため)

  • Deno
  • denops.vim

dcc関連

  • dcc.vim
  • ddc-ui-native // UI
  • ddc-source-around // バッファの中のアイテムを集める source
  • ddc-source-vim-lsp // lsp 用の source。vim-lsp以外も対応しているらしい。
  • ddc-fuzzy // 曖昧な filter
  • ddc-filter-matcher_head // 文字列の頭による filter
  • ddc-filter-sorter_rank // 入力・挿入した文字列を優先的に並び替えてくれる filter

個別の設定

  • vim-lsp, vim-lsp-settings
    https://github.com/prabirshrestha/vim-lsp
    https://github.com/mattn/vim-lsp-settings

    vim-lsp.lua
    return {
      {'prabirshrestha/vim-lsp'},
      {'mattn/vim-lsp-settings'},
    }
    

    自動補完をしたいファイル、例えば .html とか .tex のファイルを開いて、:LspInstallServer をすると LSP サーバをインストールできる。

    今回の記事に関係ないけど init.lua に追加した LSP の設定

    定義へジャンプなどのショートカットなどです。

    vim.cmd[[
    nmap gd :LspDefinition<Enter>
    nmap gr :LspReferences<Enter>
    nmap gt :LspTypeDefinition<Enter>
    nmap rn :LspRename<Enter>
    nmap K :LspHover<Enter>
    nmap [g :LspPreviousDiagnostic<Enter>
    nmap ]g :LspNextDiagnostic<Enter> 
    ]]
    
  • Deno
    https://deno.land/

    Windows PowerShell
    iwr https://deno.land/x/install/install.ps1 -useb | iex
    
  • denops.vim
    https://github.com/vim-denops/denops.vim

    denops.lua
    return {
      {
        'vim-denops/denops.vim',
      },
      {
        'vim-denops/denops-helloworld.vim',
        config = function()
        vim.g.denops_deno = "C:/Users/名前/.deno/bin/deno.exe"
       end,
      },
    }
    

動作確認

  • Tex -> OK!
  • C -> OK!
  • C++ -> clangd のバージョンが古かったことによりエラーとなった

    https://github.com/clangd/clangd/releases/tag/19.1.2 より最新版をダウンロードし、C:\Users\名前\AppData\Local\vim-lsp-settings\servers\clangd の中にある clangd.exe を入れ替えることにより解決。
  • Lua -> エラーになる。原因不明。未解決。

Discussion