言語サーバー
vize lsp は Vue 用の Language Server Protocol
サーバーです。Vize の lint ルール、型チェッカー、フォーマッターをエディターで使えるようにし、
.vue と Musea の .art.vue に補完とナビゲーションを提供します。
Warning
エディター対応は実験的な機能です。まずは 1 つのワークスペースで試してください。現在 Vue - Official (
vuejs/language-tools)を使っている場合は、同じ問題が二重に報告されないよう lint のみのプロファイルから始めてください。
機能
| 分類 | 内容 |
|---|---|
| 診断 | 入力中の lint ルールと型エラー、クイックフィックス |
| 補完 | テンプレート内のコンポーネント、props、イベント、ディレクティブ、スクリプトのバインディング |
| ナビゲーション | ホバー、定義へ移動、参照の検索、ドキュメントとワークスペースのシンボル |
| 編集 | リネーム、ファイル名変更時の更新、シグネチャヘルプ、インレイヒント、自動挿入、折りたたみ |
| 整形 | .vue ファイルの Vize フォーマッター |
| エコシステム | Vue Router のルート名とパラメーター、Vue I18n のキー、Nuxt、Void Vue の補助 |
プロファイル
どのエディター連携も、同じサーバーを 3 つのプロファイルのいずれかで起動します。エディターで Vue の 言語機能をどのツールに任せるかで選んでください。
| プロファイル | 有効になる機能 | 選ぶ場面 |
|---|---|---|
recommended |
lint、型チェック、エディター機能、エコシステム | Vue の言語サーバーを Vize だけにする |
lint |
lint の診断だけ | 型、補完、ナビゲーションは Vue - Official に任せる |
off |
なし | アンインストールせずに Vize を止める |
hover と references だけ、のように個別の機能を有効にすることもできます。設定場所は以下の
エディターごとの説明を参照してください。
vize バイナリを用意する
VS Code 拡張機能はサーバーを自動で検出またはダウンロードします。その他のエディターは PATH 上の
vize lsp を実行します。CLI をグローバルにインストールするか、
GitHub Releases のバイナリをエディターに指定してください。
npm install -g vize
vize --version
サーバーは CLI と同じプロジェクト設定(vite.config.* と tsconfig.json)を読み込みます。
設定を参照してください。
VS Code
Marketplace から拡張機能をインストールします。
code --install-extension ubugeeei.vize
code --install-extension vize.vize-art
.vue ファイルを開いてセットアップの案内を受け入れるか、Vize: Show Status を実行してプロファイルを
選びます。Vite+ プロジェクトでは vp run editor:setup がワークスペースの設定を書き込みます。
Vite+ のエディター設定を参照してください。すべての設定とコマンドは
VS Code にまとめています。
Zed
Zed に Vize 拡張機能をインストールします。Vize リポジトリのクローンでは、vize ide zed --install が
editors/zed を Zed にコピーします。そのうえで、Zed の settings.json でサーバーを選びます。
{
"languages": {
"Vue.js": { "language_servers": ["vize", "..."] },
"Art Vue": { "language_servers": ["vize"] }
},
"lsp": {
"vize": {
"initialization_options": {
"lint": true,
"typecheck": true,
"editor": true,
"ecosystem": true
}
}
}
}
Neovim
Neovim 0.11 以降が必要です。プラグインマネージャーで Vize リポジトリの editors/nvim を追加し、
次のように設定します。
require("vize").setup({ profile = "recommended" })
プラグインは vim.lsp.config("vize", ...) でサーバーを登録します。個別の機能を選ぶ場合は
init_options を渡します。
require("vize").setup({
init_options = { lint = true, hover = true, references = true },
})
Vim
Vim では vim-lsp が必要です。
Plug 'prabirshrestha/vim-lsp'
Plug 'ubugeeei-prod/vize', { 'rtp': 'editors/vim' }
call vize#setup({'profile': 'recommended'})
Helix
次の内容を ~/.config/helix/languages.toml にマージします。art-vue 言語を含む完全なファイルは、
リポジトリの editors/helix/languages.toml にあります。
[language-server.vize]
command = "vize"
args = ["lsp"]
[language-server.vize.config]
editor = true
ecosystem = true
lint = true
typecheck = true
Emacs
Vize は Eglot で動作します。
(add-to-list 'load-path "/path/to/vize/editors/emacs")
(require 'vize)
(vize-setup-eglot 'recommended)
その他のエディター
LSP クライアントであれば、stdio でサーバーを起動できます。プロセスを起動できないクライアントでは TCP を 使ってください。
vize lsp
vize lsp --port 9527
vize lsp --debug
プロファイルのスイッチ(lint、typecheck、editor、ecosystem、または hover などの個別機能)は
initializationOptions で渡します。
トラブルシューティング
| 症状 | 確認すること |
|---|---|
| 診断がまったく表示されない | プロファイルが off か、機能が 1 つも有効でない。VS Code では Vize: Show Status を実行する |
| 同じ型エラーが 2 回表示される | Vue - Official も型をチェックしている。lint プロファイルにするか、どちらかを無効にする |
$t などのグローバルが存在しないと報告される |
宣言ファイルが tsconfig.json の include の外にある。型チェックを参照 |
| サーバーが起動しない | エディターの環境で vize --version が失敗している。バイナリのフルパスを設定する |
--debug を付けてサーバーを起動するか、VS Code の Vize: Show Output Channel でログを確認し、
問題を報告するときに添えてください。