Open5
init.vim -> init.lua
init.vimからinit.luaの移行をおこなっている。coc.nvimにすべてを任せていたけど、下記を真面目に設定していこうと思う。
- nvim-lspconfig
- mason
- nvim-lint
- formatter.nvim
- nvim-cmp
vimスクリプト自体をluaに変換していくのはChatGPTにでも投げとけば一瞬
packer.nvimもメンテナンスされなくなったらしいので、lazy.nvimに乗り換える。また、null-lsも候補になっていたがこちらもメンテナンス終了ぽいので使わない。これがあると、nvim-lintとformatter.nvimでやるべきLint/Formatterの設定がまとめてできたっぽい。OSSの維持も大変だなぁ
だいぶシンプルになった
- ./config/nvim/init.luaは他のファイルを呼ぶのに特化
- ./config/nvim/lsp/lsp.luaからlinter設定ファイルとformatter設定ファイルとcmp設定ファイルを読み込む
- そんな感じでlspの設定ができたら、あとはfzf-luaの設定でlspの機能を呼び出せるようにする
:w時にformatter.nvimで設定したformatが実行されるようにしていたのだけど、文法エラーがあると当然FormatWriteが失敗するのでうざい。
vim.api.nvim_exec(
[[
augroup FormatAutogroup
autocmd!
autocmd BufWritePost * FormatWrite
augroup END
]],
文法エラーをチェックしてエラーがないときだけformatOnSaveを実行したいけど難しいなぁと思っていたけど、formatのエラーとか無視すりゃいいだけなので下記でOKだった。
vim.api.nvim_exec(
[[
augroup FormatAutogroup
autocmd!
autocmd BufWritePost * silent! FormatWrite
augroup END
]],
nvim-treesitter で indent: true
しても状況に応じて適切なインデントが挿入されなかったので、 indent: false
にして、インデント関連は vim-polyglot
に任せた。