2017-05-08 5 views
0

これを理解しようと多くの時間を無駄にしました。エースエディタで引用符付き文字列内にカスタムトークンをハイライト表示

私がしようとしているのは、引用符付きの文字列内のカスタムトークンを強調表示することです。

例:

Dim code As String = "SELECT G123C432 FROM table WHERE G321C234 = G87C1" 

私はエースにvb.net言語の文法を輸入してきたが、それは大丈夫だが、今はG123C432G321C234G87C1を強調したいです。 「私は正規表現G[\d]+C[\d]+を試みたが、それはdoesnの

"#mlkField": [{ 
     token: "mlkfield.vbnet", 
     regex: /G[\d]+C[\d]+/ 
    }] 

vb.net文法ファイルには、引用符で囲まれた文字列のため、このトークンがあります。

"#quotedString": [{ 
     token: "string.quoted.double.vbnet", 
     regex: /"(?:[^"]|"")*"/ 
    }] 

をそして私は、このルールを追加しましたStringの中に見つかったときに働く。予想される最終結果の

例: editor snippet

+0

のための別々の状態を使用するが、これはハイライト表示競合ですか?私。あなたの正規表現は動作しますが、矛盾するルールのために文字列全体が強調表示されていますか? (カスタムルールが優先される場合は、それをリストの上位に置くことで、それは期待通りの動作ですか?) –

+0

@TomLord、注文を変更することもできません。競合の問題かどうかは不明です。期待される結果のスクリーンショットを見ましたか? – rromao

+0

はい、実際の結果のスクリーンショットを提供していません。 (引用符で囲まれた文字列がハイライト表示されますか?文字列内にないカスタムトークンはハイライト表示されますか?) –

答えて

0

文字列

"#quotedString": [{ 
    token: "string", 
    regex: /"/, 
    push: [{ 
     token: "mlkfield.vbnet", 
     regex: /G[\d]+C[\d]+/ 
    }, { 
     token: "string", 
     regex: /"/, 
     next: "pop" 
    }, { 
     defaultToken: "string" 
    }] 
}] 
+0

おかげさまで@ユーザー、完璧に動作します。私は[リンク](https://ace.c9.io/#nav=higlighter)のガイドに従ってみましたが、成功しませんでした。 – rromao

関連する問題