【VSCode】作成 4【開発記】
今回の概略
TextMate 形式のスコープ名は複雑でも大丈夫だったけど開始の文字列に決まりが有ったお🙄
コメントの設定を書いてみたけど正しくないっぽくて動作しない😞
【AiScript/原典】
aiscript/src/parser/
https://github.com/syuilo/aiscript/tree/master/src/parser
【VSCode/拡張/本家】
Your First Extension
https://code.visualstudio.com/api/get-started/your-first-extension
【TextMate/本家】
Language Grammars
https://macromates.com/manual/ja/language_grammars
【VSCode/拡張/正規表現での注意】
VSCodeのシンタックスハイライトの作り方
https://techblog.kayac.com/vscode-extension-syntax-highlight
【VSCode/拡張/txLaungage/name 付けるのに欲しい情報】
TextMate における文字色一覧
https://qiita.com/GET/items/a077f059da5e1a675107
前回の粗筋
ハイライトを TextMate に差し替えた🤤
lsp
なんか LSP というのが有るみたいだけど前回記事書いた後に少しだけ調べたのよ🤔
したらこれは いわゆるスペルチェックっぽい物で他の対応アプリでも使えるプラグインみたいなシロモノだという事がわかったお🤤
修正候補とか出してくれるアレ😑
欲しい機能ではあるけど本来の目的はシンタックスハイライトなので一旦これは保留で🤪
scomeName
ではここで、前回のスコープ名のイチャモン画像を見てほしい😑
このイチャモン見てスコープ名を "source.aiscript" と短くしたわけだけどこの文句をよーく見ると…
^(text|source)(\.[\w0-9-]+)+$
注目は行末の $ の手前🤔
そう、プラスが付いてた🙄
$2 のグループが1回以上の繰り返しなので前回単純 match の json の時のスコープ名の頭に source か text 付ければ通るんじゃね?ってのがこの話😑
では早速…✍️
ヨシ!👈🤪
コメント
それじゃ の前には片付いたし、まずはコメントの色分けを実装するお🤤
………
なんか当たり前のように \b って記述してるけど…どういう事?🙄
\b ってバックスペースよね?😑
🤔🤔🤔
あ、そういう事ね🤔
区切り文字や改行とかを一々書いてられないから行頭行末と同じく \w の句切れを記号化してるだけでバックスペース的な意味では無い…と😑
て事はコメントは単語境界とか無関係に始まるから \b を使わなくて良い…のかな、多分🤔
本家の TypeScript の実装をみてみるぽ🤤
………🤔
これは見た限り "#dockblock" とあるのでドキュメントの `/** */` の定義かな🤤
特殊文字のエスケープは "\\" じゃないと効かないみたいでちょっとめんどいなって思った😑
もしかしてスニペットで記号使うエスケープってこの方式…?🙄
備忘録入れて後で試すぽ😑
この本家の TypeScript の実装見てると、コメント中でも更に文法解析に掛けられるみたいで正直良くわからない😑
これが有ると有り難いみたいな表が出てきた🤤
"comment-line" と "comment-block" を実装すれば良さそう🤔
なんか急に資料が無くなるんだけど…😞
TextMate の資料は有るけどそれはそもそも JSON 形式じゃないのに皆なんか変換できて当たり前みたいな感じで記法とか書いてる記事が殆ど無いお🙄
もう判ってて「はい、できあがり(ポン」ばっかり😭
正直この beginCaptures の項が何を表してるのかも分からない😞
とりあえずこれで動作するのか試すお👇
範囲どころか行の方も色が変わってない😞
次回は
多分、 TextMate の資料を読み込まないと駄目ぽ🙄