icon

nazo6.dev

一覧に戻る
2021/5/15 2022/5/7 3 min read

nvim-lspでtsconfig.jsonとかの補完をする方法(JSON schema)

この記事はZennにも投稿しています

目次


nvim-lspでtsconfig.jsonとかの補完をする方法(JSON schema)


#追記

SchemaStore.nvim というプラグインが出てきました。 基本的にこの記事で説明されていることをやってくれてさらに定期的に更新されるのでこのプラグインを使うのがおすすめです。


neovim の built-in lsp の話です。lspconfig が入ってるのが前提です。

基本的にはjsonlsの設定で

require("lspconfig")["jsonls"].setup({
    filetypes = {"json", "jsonc"},
    settings = {
        json = {
            schemas = {
                {fileMatch = {"package.json"}, url = "https://json.schemastore.org/package.json"},
                {fileMatch = {"tsconfig*.json"}, url = "https://json.schemastore.org/tsconfig.json"},
            }
        }
    },
})

みたいな感じでつらつらと schema を探して書いていけばできます。 しかしこれを一々書くのはとても面倒臭いです。そこで上のコードの URL にもあるschemastoreというサイトを使います。 このサイトの

にはまさに上の設定通りの schema のカタログが用意されており、これを使えたら便利だと思いませんか? ただ、json をパースしてとかやるのも面倒臭いのでTypescriptToLuaというツールを使います。

ここの playground に先程のカタログの json を Typescript のオブジェクトとして貼り付けると、なんと lua のコードで出力してくれます。あとはそのコードをコピペしてくるだけです。

変換したものを一応 gist に用意しておきました。

このファイルを適当なところに置いて

local catalog_data = require("schema-catalog")
local schemas = catalog_data.schemas
 
require("lspconfig")["jsonls"].setup({
    filetypes = {"json", "jsonc"},
    settings = {
        json = {
            schemas = schemas
        }
    },
})

みたいな感じにすればこれでほぼ全てのナントカ config みたいな JSON ファイルが補完できるようになります。ドキュメントもあります。

Share this article:
一覧に戻る

関連記事

2021/8/21

2024/3/14

#tech/software/neovim
blog

Neovim builtin LSP設定入門

<div class="message-warning"> Neovim 0.11においてLSP関連の大きな変更があり、この記事の内容は若干古くなっています(古いというだけでこの記事の内容自体は有効であり、コードも動くはずです)。 最新の設定を試したいという方は記事の更新をお待ちください </div>

Read Article

2023/5/1

#tech/software/neovim
blog

Neovimを再起動するコマンドを作ったら結構よかった

Neovim盆栽をしていると設定をリロードしたい時が結構というかかなりあります。Vimscriptであればsource ~/.vimrcとすればまあ大体うまくいっていた気がするのですがLuaではそうもいきません。 Luaのrequireのキャッシュを消してやればもう一度読み込めるとかは言われていますが世の中のLuaプラグインはsetupを2回以上呼んだりするとおかしくなったりする物が大抵なのでこの方法でもあんまりうまくいきません。

Read Article

2021/3/28

2021/10/23

#tech/lang/js-ts#tech/software/neovim
blog

Typescriptでneovimの設定を書く!

vim を使い始めて 2 週間ほどたったある日、せっかく neovim を使っているんだし設定が少ない今のうちに init.vim を init.lua に書き換えようと思いこちらの文章を読んでいたところ、最後にこんなものがあるのに気づきました。

Read Article

2021/3/14

2021/3/15

#tech/software/neovim
memo

Vim初心者がNeovimを試す

VSCodeを使っているとコマンド操作できることでも覚えるのがめんどくさくてついマウスでポチポチしてしまうので自分を律したい

Read Article

2024/1/31

#tech/software/neovim
memo

Windows Terminal上のNeovimでundercurlを表示する(wslのみ)

最近ついにWindows Terminalでもundercurlの表示ができるようになった(これを書いた時点ではプレビュー版のみ)。

Read Article

2023/10/31

#tech/software/neovim
blog

lemonadeでssh先のneovimとクリップボードを共有

lemonadeを使えばTCP通信を用いてクリップボードを共有できます。

Read Article

2021/9/4

2023/4/28

#tech/software/neovim
blog

neovim luaのパフォーマンス計測方法

最初は下の方法2を使用していましたが、profile.nvimという素晴らしいプラグインが出ていたので今はこれを使用するのがおすすめです。

Read Article

2023/8/22

#tech/software/neovim
memo

telescope.nvim拡張の作り方

telescope.nvimの拡張(ソース)の作り方のいい文献があまり見つからなかったのでメモ。

Read Article

© 2025 nazo6. All rights reserved.