## 経緯
[[📜2024-01-28 Neovimのcoc.nvimからLSPに移行してみる]] で以下を利用してきた。
- [[nvim-lspconfig]]
- [[mason.nvim]]
- [[mason-lspconfig.nvim]]
- [[none-ls.nvim]]
だが、[[mason.nvim]]を利用しなくてもいいのではという気がしてきた。理由は以下。
- [[mise]]があればほとんどのツールはインストールできる
- localや仮想環境のツールを利用したい場合は各言語システムの流儀に従った方がよい
- ツールの一覧情報だけなら[[mason.nvim]]のREADMEで分かる
- [[mason.nvim]]に関するトラブルに巻き込まれる可能性が低くなる
- [[mason-lspconfig.nvim]]との依存もなくせて設定がシンプルになる
## ツール選定の参考
- [nvim-lspconfigの対応ツール一覧](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md)
- [none-lsの対応ツール一覧](https://github.com/nvimtools/none-ls.nvim/blob/main/doc/BUILTINS.md)
## タスク
- [ ] ファイルを作成したときにLSPをリロードしたい
- [ ] [[TypeScript]]
- [ ] [[Node.js]]
- [x] 文法 ([[Volar]])
- [ ] [[Takeover Mode]]を使っているけどそれでいいのか...?
- [x] フォーマッター ([[Prettier]])
- [ ] リンター ([[ESLint]])
- [x] インポート最適化 ([[Prettier Plugin Organize Imports]])
- [ ] スニペット
- [x] [[mason.nvim]]からの脱却 ([[TypeScript Language Server]])
- [ ] [[Bun]]
- [x] 文法 ([[Volar]])
- [ ] [[Takeover Mode]]を使っているけどそれでいいのか...?
- [x] フォーマッター ([[Biome]])
- [x] リンター ([[Biome]])
- [ ] インポート最適化
- [ ] スニペット
- [x] [[mason.nvim]]からの脱却 ([[TypeScript Language Server]])
- [ ] [[Vue3]]
- [x] 文法 ([[Volar]])
- [x] フォーマッター ([[Prettier]])
- [ ] リンター
- [x] インポート最適化 ([[Prettier Plugin Organize Imports]] )
- [ ] スニペット(独自)
- [ ] [[Volar]]のフォーマットと[[Prettier]]のフォーマットが同時に発生する問題
- [x] [[mason.nvim]]からの脱却 ([[Volar]])
- [ ] [[React]]
- [ ] 文法
- [ ] フォーマッター
- [ ] リンター
- [ ] インポート最適化
- [ ] スニペット(独自)
- [ ] Type 'Element' is not assignable to ...
- [ ] [[Prettier]]より[[Biome]]を優先する
- [ ] [[Go]]の開発で利用できるようにする
- [x] 文法 ([[gopls]])
- [x] フォーマッター ([[gofumpt]])
- [x] インポート最適化 ([[goimports]])
- [ ] スニペット([[LuaSnip]])
- [x] [[mason.nvim]]からの脱却 ([[gopls]])
- [ ] [[Python]]の開発できるようにする
- [x] 文法 ([[pyright-langserver]])
- [x] フォーマッター ([[Ruff]])
- [x] リンター ([[Ruff]])
- [ ] インポート最適化
- [ ] スニペット(独自)
- [x] [[Lua]]で[[init.lua]]を開発できるようにする
- [x] 文法 ([[lua-language-server]])
- [x] フォーマッタ ([[StyLua]])
- [x] vimなどのグローバル変数が未解決
- [x] [[mason.nvim]]からの脱却 ([[lua-language-server]]])
- [x] HTMLの開発をできるようにする
- [x] 文法 ([[vscode-html-language-server]])
- [x] 補完 ([[vscode-html-language-server]] / [[emmet-language-server]])
- [x] フォーマット ([[Prettier]])
- [x] CSSの開発をできるようにする
- [x] 文法 ([[vscode-css-language-server]])
- [x] 補完 ([[vscode-css-language-server]])
- [x] フォーマット ([[Prettier]])
- [x] [[mason.nvim]]からの脱却 ([[vscode-css-languageservice]])
- [x] JSONのサポート
- [x] 文法 ([[vscode-json-language-server]])
- [x] 補完 ([[SchemaStore.nvim]])
- [x] フォーマット ([[Prettier]] / [[Biome]])
- [x] YAMLのサポート
- [x] 文法 ([[yaml-language-server]])
- [x] 補完 ([[SchemaStore.nvim]] with extra)
- [x] `bitbucket-pipelines.yml`
- [x] フォーマット ([[Prettier]])
- [x] Markdownのサポート
- [x] 文法 ([[Marksman]])
- [x] 補完 ([[Marksman]])
- [x] フォーマット ([[Prettier]])
- [x] ジャンプ ([[Marksman]])
- [x] [[mason.nvim]]からの脱却 ([[Marksman]])
- [x] [[Bash]]の開発をできるようにする
- [x] 文法 ([[Bash Language Server]])
- [x] 補完 ([[Bash Language Server]])
- [x] フォーマッター ([[sh]])
- [x] リンター ([[ShellCheck]])