1

Intellij Vala プラグインを開発しています。ファイルの編集中にキーワードの強調表示を機能させることに固執しています。

ファイルを開くと、すべてのキーワード (これまでのところclassとのみref) が正しく強調表示されます。ただし、入力classしているときは強調表示されません (ファイルを再度開いた後のみ)。興味深いのは、refすべてが機能することです。

各文字を入力すると、レクサーがわずか 4 文字の長さのテキスト セグメントで開始されることがわかりました。その結果、refそれよりも短いものが強調表示されますが、そうではclassありません。文字列の場合も同様です。文字列が 4 文字より短い場合は強調表示されます (例: "a")。Intellij SDK のソース コードを調べたところ、ドキュメントが変更されるたびに分析されるテキストの長さは、何らかのセグメントを使用して計算されます。私は Intellij アーキテクチャの経験が十分ではありませんが、それを理解することはできません。誰か助けてくれませんか?

私のプラグインのソース (これまでのところ特別なものはありません) はこちらです。Intellij Community ビルド139.225.3を使用しています

4

1 に答える 1

2

OK、解決策を見つけました。lexerIdentifierにトークンを追加すると、強調表示が機能し始めました。

識別子トークンを使用すると、英数字を見るとレクサーが識別子を構築するためにある種のバッファにそれらを追加し、突然それらがキーワードを形成すると強調表示されると推測しています。それ以前は、レクサーが悪いキャラクターに遭遇したとき、それを忘れて先に進んでいたと思います。繰り返しますが、これらは単なる私の仮定です。以前に正確に 4 文字が分析された理由はまだわかりません。

于 2014-12-18T06:57:35.110 に答える