Thai Lint — VSCode Extension
タイ語テキスト内の重複結合文字(例: SARA UU ู が2つ連続)を検出・修正するVSCode拡張機能です。
問題の背景
タイ語の母音・声調記号は Unicode の「結合文字 (Combining character, Mn)」として定義されており、
同じ文字が2つ連続しても見た目は全く同じに描画されます。
ดูู ← U+0E14 + U+0E39 + U+0E39(問題あり・3コードポイント)
ดู ← U+0E14 + U+0E39 (正常・2コードポイント)
VLOOKUP・EXACT・データベース照合などで「見つからない」不具合の原因になります。
機能
| 機能 |
説明 |
| リアルタイム検出 |
ファイルを開く・編集するたびに波線で警告 |
| ホバー詳細 |
U+XXXX 形式でコードポイントを表示 |
| クイックフィックス |
電球アイコンから1クリックで修正 |
| Fix All コマンド |
ファイル全体を一括修正 |
| 保存時自動修正 |
設定で有効化可能 |
| ステータスバー |
問題数をリアルタイム表示 |
検出対象の文字
| コードポイント |
文字名 |
| U+0E30–U+0E3A |
タイ語母音記号(上・下) |
| U+0E47–U+0E4E |
声調記号・補助記号 |
インストール・起動方法
# 1. 依存パッケージをインストール
npm install
# 2. TypeScript をコンパイル
npm run compile
# 3. VSCode でこのフォルダを開き F5 キーで拡張機能ホストを起動
設定
settings.json で以下の設定が可能です。
{
"thaiLint.enable": true,
"thaiLint.fixOnSave": false,
"thaiLint.severity": "warning"
}
| 設定キー |
型 |
デフォルト |
説明 |
thaiLint.enable |
boolean |
true |
拡張機能の有効/無効 |
thaiLint.fixOnSave |
boolean |
false |
保存時に自動修正 |
thaiLint.severity |
string |
"warning" |
"error" / "warning" / "information" |
コマンド
Thai Lint: Fix All Duplicate Combining Characters in File
コマンドパレット(Ctrl+Shift+P)から実行、またはステータスバーをクリック
vsix パッケージ化(配布用)
npm install -g @vscode/vsce
vsce package
# → thai-lint-0.1.0.vsix が生成される
# VSCode の「拡張機能」→「VSIXからインストール」で導入可能
| |