🎃
NeoVimでprisma-language-serverを使用する手順
株式会社トリドリのfujitani soraです。
NeoVim環境でPrismaのLSP適用とハイライト設定まで行う手順を解説します。
短めです。簡潔とも言えます。
prisma-language-server
.prismaファイルの言語サポートを受けるためにprisma-language-server
をインストールします。
Mason経由かnpm経由を選んでください。(自分はLSPをまとめて管理したいのでMasonから)
:MasonInstall prisma-language-server
npm install -g @prisma/language-server
.prismaファイルのload後に:LspInfo
を実行してLSP情報を確認し、起動していればOK
syntax highlight
テキストが白だけだとやる気が出ないので、nvim_create_autocmd
でハイライトを設定していきます。
- 下記は自分の設定です。色を変えたい場合は
nvim_set_hl
のカラーコードを変更してください。
vim.api.nvim_create_autocmd("FileType", {
pattern = "prisma",
callback = function()
vim.api.nvim_set_hl(0, 'SignColumn', { bg = 'NONE' })
vim.api.nvim_set_hl(0, 'LineNr', { fg = '#777777', bg = 'NONE', bold = false })
vim.api.nvim_set_hl(0, 'Normal', { fg = '#EEFFFF', bold = false })
vim.api.nvim_set_hl(0, 'Search', { fg = '#FF99FF', bold = false })
vim.api.nvim_set_hl(0, 'Keyword', { fg = '#66CCFF', bold = false })
vim.api.nvim_set_hl(0, 'Function', { fg = '#46EEFF', bold = false })
vim.api.nvim_set_hl(0, 'Identifier', { fg = '#0099FF', bold = false, undercurl = false})
vim.api.nvim_set_hl(0, 'Statement', { fg = '#0099FF', bold = false, undercurl = false})
vim.api.nvim_set_hl(0, 'String', { fg = '#EEFFFF', bold = false })
vim.api.nvim_set_hl(0, 'Type', { fg = '#33CCFF', bold = false, undercurl = false})
vim.api.nvim_set_hl(0, 'Special', { fg = '#CC99FF', bold = false })
vim.api.nvim_set_hl(0, 'Directory', { fg = '#11FFFF', bold = false })
vim.api.nvim_set_hl(0, 'DiagnosticUnderlineError', { sp = '#FFFAFA', undercurl = true })
vim.api.nvim_set_hl(0, 'Symbol', { fg = '#FF3333', undercurl = false })
vim.api.nvim_set_hl(0, 'Symbol', { fg = '#FF3333', undercurl = false })
vim.api.nvim_set_hl(0, 'Character', { fg = '#FF3333', undercurl = false })
vim.api.nvim_set_hl(0, 'Statement', { fg = '#0099CC', bold = false, undercurl = false })
vim.api.nvim_set_hl(0, 'Variable', { fg = '#008080', bold = false, undercurl = false })
vim.api.nvim_set_hl(0, 'Constant', { fg = '#339999', bold = false, undercurl = false })
end,
})
補完とハイライトが効いていい感じです。
vim.lsp.buf.definition
を使用したDefinitionJumpも可能です。
Discussion