-1

私は非常に一般的なエディターを作成しようとしており、既知のキーワードを強調表示したいと考えていました。コンテキストの認識は必要ありません。

次の正規表現を作成しました

    var commonAttributes = ["var", "val", "let", "if", "else", "export", "import", "return", "static", "fun", "function", "func", "class", "open", "new", "as", "where", "select", "delete", "add", "limit", "update", "insert"]
    let standalonePrefix = "(?<=[\\s]|^|[\\(,:])"
    let standaloneSuffix = "(?=[\\s\\?\\!,:\\)\\();]|$)"

そして以下の状態。

    {
          regex: new RegExp(standalonePrefix+"("+commonAttributes.join("|")+")"+standaloneSuffix, "i"),
          token: "keyword"
    },

行頭で一致させるには、sol: true を使用する必要があることを理解しています。これは、このコンテキストでは ^ が意味を持たないためです。しかし、これは私にとって問題を引き起こします。sol なし: true、書き込み

リーフレットレットレットレットレットレットレットレットレットレットレットレットレットレットレットレットレット レット

すべてのレットを強調表示します。sol: true の場合、最初の let のみが一致します

リーフレットを聞かせ

私の望む結果は、私が得ることです、

リーフレットを聞かせ

どうすればそうできますか?

4

1 に答える 1