🦕
neovim lsp でdenolsとtsserverを自動で切り替える
こんにちは、もちです。最近 deno を触り始めたのですが、neovimlsp で自動で denols と tsserver をいい感じに方法を調べたのでまとめます。
結論
まずは結論から。これで動きました。
lua
lspconfig["denols"].setup({
root_dir = lspconfig.util.root_pattern("deno.json"),
init_options = {
lint = true,
unstable = true,
suggest = {
imports = {
hosts = {
["https://deno.land"] = true,
["https://cdn.nest.land"] = true,
["https://crux.land"] = true,
},
},
},
},
})
lspconfig["tsserver"].setup({
root_dir = lspconfig.util.root_pattern("package.json"),
})
僕のコード
解説
root_dir = lspconfig.util.root_pattern("deno.json")
この関数の root_pattern()
の引数の部分にあるファイルがあるとそれぞれの LSP が有効になるようです。
denols ではdeno.json
を、tsserver はpackage.json
があるかどうかで起動するように設定しました。
参考にしたもの
Discussion