【VSCode】作成 10【開発記】

今回の概略

なんとか希望の正規表現文字列を得るものの破損したのか( tmLanguage.json の分は)真っ白に😱

#VSCode #拡張機能
#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

----備忘録
文字列中のカスタム絵文字
文字列中の MFM


前回の粗筋

自作 play だとコードが少なすぎて色付けの正当性が良くわからない😞



keyword

規模のデカいソースを参考にするぽ😑
大人気アドベンチャーゲームで良いかな🤤

そこそこ色が付いてるけれど関数は色が付いてないお…😞

VSCodeを自分の好きな色に染める
https://creators.members.co.jp/2021/02/knowledge_007/

色定義キーの調べ方
コマンドパレットから「token」と入力すると出てくる「開発者: エディター トークンとスコープの検査 / Developer: Inspect Editor Tokens and Scopes」を選択します。

拾われてない…😞

……… '@' が特殊記号なのかしら?🙄

………
改行\nタブ\tドルマーク\$については公式でも出てくるけど…😑
バッククォートやアットマークについては言及が無い…😞

とりあえずエスケープしてみる

………ダメぽ🙄ナンデ?

試しに VSCode の検索で '@(\w+)' で検索するとちゃんと掛かる…😞
………となると手前の '\b' が邪魔をしている…?🤔
………あ、これ1文字は何か手前に無いといけないっぽ?🤪コレダ
そうすると行頭に有る let や var が反応してるのがおかしいという事に…😑

[アンカー]単語の先頭と単語の末尾にマッチする:\b \B
https://www.javadrive.jp/regex-basic/meta/index4.html

\b は単語の末尾とマッチします。

ははぁ '^' とか '$' と同じ手合のシロモノで1文字とかそういう概念の物ではないのね🤔
で '@' は「単語『ではない』」…と😑

こう?かな?🤔
\b の代わりになる定義で @ の手前に有っても良い文字………公式の parse はどうなってるぽ?😑

src/parser/parser.peggy をチラ見する限りではこれと言った制限っぽいのは見当たらないぽ…🙄
コロンの後でも行ける気がするけどとりあえず走らせてみるぽ👇

関数定義に色が付くどころかコメントも行頭にない var,let も for,if も死亡…😭
………順番…?🤔
いやまて、そもそもこの正規表現で掛かるのかから見ないと?🙄

'invalid escapeそんなエスケープだめよ' だってさ😞
まぁ、角括弧の文字重合で括弧のエスケープが怒られてるんだろうけど🙄

んんんん?🙄
過去括弧のエスケープ取り払ったらエラーではなくなったけど全ての行頭が選択されてるお😞
やはり '@' が特殊な文字の様だけど…エスケープしてみるぽ😑

😭😭😭
うーん…とりあえず '@' をどうにかするだけなら角括弧で囲えば良いんだけどそうじゃない解決が有る気がするから調べるぽ😞

oniguruma/doc/RE.ja
https://github.com/kkos/oniguruma/blob/master/doc/RE.ja

………そもそも '@' という文字が出てこない…🙄

………

答え
丸括弧'()'で括ってなかったので '|選択肢' が機能していませんでしたとさ🙄

😞😞😞


次回は

死亡原因を特定するぽ😑
多分単純に json としての書式を壊してしまったと思われ🙄

この記事が気に入ったらサポートをしてみませんか?