skk-vscode README
VSCode エディタ内で動作する SKK の、コンセプト実証のための実装です。
DDSKK と同じ振舞いを目指していますが、 VSCode 拡張機能の制約のため、変換候補の表示などに違いがあります。
Features
- 見出し語への変換ができます。送り有りと送り無しの両方に対応しています。
- 最初の3つの見出し語まではインラインで表示され、4つ目以降の候補は、7つづつメニューで表示されます。
- 選択された見出し語は、次の同じ単語の変換の際に、先頭に表示されます。
- ひらがな、カタカナ、半角英数、全角英数モードの間の遷移ができます。
- 単語登録
- 接頭辞・接尾辞変換: 「だい>」のような形式での接頭辞検索や、変換中の「>」入力による接尾辞入力モードへの移行が可能です。
- Web Extensions 対応: VS Code for the Web(vscode.dev / github.dev)を含むブラウザ環境でも利用可能です。
プロジェクトの目的
このプロジェクトは、SKK(Simple Kana to Kanji conversion program)の接頭辞・接尾辞入力機能を実装し、ユーザーの入力体験を向上させることを目的としています。
技術スタックと開発
- 主要技術: TypeScript, Node.js
- 開発環境: VSCode拡張機能として開発・デバッグを行います。
- テスト:
npm run test:unit および npm run test:integration で実行します。
- パッケージング:
npm run package で .vsix パッケージを生成します。
- リリース: リリース手順の詳細は リリースガイド を参照してください。
- バージョン管理: Gitを使用し、
featureやbugfixブランチで開発を行います。
Requirements
特に事前の準備は必要ありません。
ただし、 IME やキーバインド変更ソフトウェアがキーを優先して処理する場合、本拡張のキー操作が上手く動かない場合があります。
適宜、 IME や キーバインド変更ソフトウェアを無効化するなどして対応してください。
Extension Settings
Known Issues / Limitations
- 変換候補のメニューは、 編集中の行の行頭に表示されます。
そのため、長い行を編集しているときなどには、候補がエディタに表示されない場合があります。
Release Notes
0.2.0 (2026-09-07)
機能追加
- 接頭辞・接尾辞変換機能: 「だい>」のような形式での接頭辞検索が可能になりました。また、変換中に「>」を入力することで、確定後に続けて「>」から始まる新たな見出し語入力へスムーズに移行できます。
- Web Extensions 対応: ブラウザ版 VS Code(vscode.dev や github.dev)上でも拡張機能を利用できるようになりました(Webpack によるバンドル構成と Web 標準 API への移行)。
- リリース自動化: VS Code Marketplace への公開および Git タグ作成に連動した GitHub Releases 自動発行パイプラインを整備しました。
改善
- キー操作の安定性向上: 入力モードに合わせてキーバインディングを動的に最適化することで、他の拡張機能との干渉を減らし、より安定した操作が可能になりました。
- 見出し語モードの利便性向上: 見出し語入力中に数字や改行を入力した際の挙動を改善し、より自然な入力が可能になりました。
- テスト基盤の強化: ヘッドレス環境における統合テストの安定化と、ブラウザ環境向け自動テスト(
@vscode/test-web)を追加しました。
バグ修正
- コマンド排他制御と非同期処理の適正化: 入力ハンドラの非同期処理が未待機のまま完了していた不具合を解消し、高速打鍵時やモード遷移時にキー入力順序や状態が乱れるレースコンディションを修正しました。
- Abbrevモードの辞書登録不具合の修正: Abbrevモード(スラッシュ入力による検索)から辞書登録画面を開いた際の表示や動作の不具合を修正しました。
0.1.0
機能追加
- 辞書登録機能: 変換候補の末尾に到達したり、辞書に存在しない見出し語を変換した時に、辞書へ単語を登録できるようになりました。また、辞書に登録した後は、その単語が自動的に挿入されます。
- 候補削除機能: インライン変換中に "x" キーを入力することで、ユーザー辞書から変換候補を削除できるようになりました。不要な候補や、間違って登録してしまった候補を整理することができます。
パフォーマンスの改善
- 辞書管理の効率化: 辞書のキャッシュ機構を改善し、メモリ使用量とロード時間を最適化しました。特に変換後の応答性が向上しました。
問題の修正
- 見出し語モードの挙動改善: 送り仮名付きの変換から見出し語モードに戻る際、語幹モードに適切に戻るよう修正しました。その際、送り仮名として入力した文字は語幹に取り入れられます。 (DDSKK と同じ挙動)
- 「n」の後に大文字が続く場合の処理修正: 未確定の「n」の後に大文字が入力された場合の動作を修正しました。n は確定した「ん」となり、入力した大文字によってモードが遷移します。確定モードだった場合は見出し語モードへ、見出し語モードだった場合は送りがな入力状態へ遷移します。(DDSKK と同じ挙動。大文字の母音が入力された場合も、「な行」とはならず、「ん」が確定します。)
内部的な改善
- テストケースの追加と改善:各機能の安定性を担保するテストケースを拡充しました。
- コードのリファクタリング:依存関係の整理やディレクトリ構造の最適化を行い、保守性が向上しました
- コマンド実行の排他制御: 複数のコマンドが同時に実行されることを防ぎ、安定した動作を実現しました。
0.0.2
- Abbrev モードを実装しました。スラッシュ記号の入力で、英数字での見出し語検索ができます。これにより,郵便番号辞書も利用できるようになりました。
- 複数の辞書を検索できるようになりました。また、利用する辞書を設定できるようになりました。
0.0.1
最小限の機能でのリリースです。
文字の入力と、見出し語への変換が出来ます。
| |