【VSCode】作成 20【開発記】


今回の概略

関数宣言部は名前と @ でカテゴリが違うので分けていたけれど1つの式で処理するようにしたら文中コメントとかも判別されるようになった🤤

#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

Visual Studio CodeやAtomのシンタックスハイライト拡張機能を作る
https://qiita.com/maxfie1d/items/51af2984b7a628c41a94

----備忘録
文字列中のカスタム絵文字
文字列中の MFM
宣言変数を使ってるところ
括弧階層内の判別方法は?


前回の粗筋

再帰的に検査する方法が分からない…😞



ブロックコメント

ふと。コメントだけ残して他を切ったら、文の途中も判定されるんだろうか?🤔
もし判定されなかったらそもそも文中のコメントが取れる式じゃないという事に😑
判定されればどれかが邪魔をしているというワケなんだけど…判っても直せるかっていうと順番入れ替えるくらいしか浮かばない😞

とりあえず、試すお😑

これを
ばっさり

おやおや?🤔
ちゃんと判定されてるぽ😑
てことは…やっぱ括弧対応片方しかない関数判定の方なのかな🙄
1つずつ戻して確認するぽ😑

entity 以外を戻しても大丈夫…という事は やっぱり function のとこが良くないっぽい🙄
でもこれ、 keyword のとこにもほぼ同じ物が書いてあって、そっちはおかしくなってないのよね🤔

………😑
うーん…どうもこの `\w` の解決の仕方が良くない…のかな😞

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

  \w       単語構成文字
           Unicode以外の場合:
             英数字, "_" および 多バイト文字。
           Unicodeの場合:
             General_Category -- (Letter|Mark|Number|Connector_Punctuation)

………🤔
Connector_Punctuation って?🙄

………出てこないんだけど………?😑❓❓❓
何この「知ってて当然」みたいなの😞
語としては記事が幾つも有るのにこの語自体が指す内容についての説明が書かれた記事が全然出てこない🙄
カテゴリの名前であるというのは分かるんだけど…😭

集合と範囲 [...]
https://ja.javascript.info/regexp-character-sets-and-ranges

Connector_Punctuation (Pc) – アンダースコア '_' 及び同様の文字,

有った🤤
………とすると Mark 辺りを調べないと駄目かな?🤔
なんかこれに @ が混ざってる気がしてならない😞

Glossary of Unicode Terms
https://unicode.org/glossary/#combining_mark

Combining Mark. A commonly used synonym for combining character.

Glossary of Unicode Terms
https://unicode.org/glossary/#combining_character

Combining Character. A character with the General Category of Combining Mark (M). (See definition D52 in Section 3.6, Combination.) (See also nonspacing mark.)

一般的な合成用の文字…みたいな事が書かれてるけど具体的な記述が無い…😞いいから出せ
色々見る限りだとウムラウト付きの文字とか全角の文字みたいのがそれに相当するっぽい🤔
Unicode 環境だと特にそういう文字としての認識が強いみたいだから単純に `\w` だと変数名や関数名として不適切になりやすいって事かな?😑

文字種を狭めてみたけどこれも変わらず…😑

………

ちょっと発想を変えて、1回の式で得たキャプチャを割り振るやり方にしてみたら成功🤤
どうやら似ている、というかほぼ1つの塊で有る筈の関数定義を複数に分けたのが良くなかったっぽい🙄


次回は

安心してスニペットに戻れるお🤤

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