VSCode と hspc v3 で構文エラーをエディタ上に表示する
本記事では、VSCodeのタスク機能を使用してhspc v3で実装されたhspc lint --background
コマンドによる構文エラー診断結果をエディタ上に表示させるタスク設定を説明します。
必要なもの
VSCodeのタスク機能を使用しますので、language-hsp3拡張機能の導入は任意になります。
簡単な設定方法
VSCodeのメニューバーから、"ターミナル">"タスク構成...">"テンプレートから tasks.json を生成">"Others"と進み、開かれたtasks.jsonファイルに下記を上書き、もしくは追記します。
必要に応じて、tasks.jsonファイルは編集できます。
hspcにpathを通していない場合、tasks[{"command"}]
の文字列にhspcの絶対パスを記入してください。
- "command": "hspc", + "command": "C:\\hsp36\\hspc.exe",
未初期化変数を診断結果に表示したい場合、"--iniv"を削除してください。
- "args": ["lint", "--background", "--iniv", "${workspaceFolder}\\src"], + "args": ["lint", "--background", "${workspaceFolder}\\src"],
診断する対象ディレクトリを指定するには、"${workspaceFolder}\src"を書き換えてください。プロジェクトディレクトリ直下を指定する場合は
- "args": ["lint", "--background", "--iniv", "${workspaceFolder}\\src"], + "args": ["lint", "--background", "--iniv", "${workspaceFolder}"],
に書き換えてください。
vscode/tasks.json
{ "version": "2.0.0", "tasks": [{ "label": "hspc lint", "type": "shell", "args": ["lint", "--background", "--iniv", "${workspaceFolder}\\src"], "command": "hspc", "group": "none", "problemMatcher": [ { "owner": "hsp3", "fileLocation": "autoDetect", "pattern": [ { "regexp": "^(.+)\\((\\d+)\\): (info|error) (?:\\d+)?(.+)$", "file": 1, "line": 2, "severity": 3, "message": 4 } ], "background": { "activeOnStart": true, "beginsPattern": "^\\d{1,2}:\\d{1,2}:\\d{1,2} - File change detected\\. Starting compilation\\.$", "endsPattern": "^\\d{1,2}:\\d{1,2}:\\d{1,2} - Compilation complete\\. Watching for file changes\\.$" } } ], "isBackground": true }] }
Wineについて
Ubuntu 21.04 のWine環境にて、子ディレクトリを監視できない症状を確認しました。解決予定はありませんが、迂回策として--nosubdirオプションの併用と、複数のタスク実行で補えます。
hspc v3 のリリースノートは執筆中なので、でき次第公開します。