2

次のような JavaScript 行があります。

var a = (b / 2) + (c / 2);

Dreamweaver では、このセグメントがコメントとして強調表示され、次のように処理されます。

var a = (b /* 2 ) + (c */ 2);

これは構文の強調表示が正しくなく、非常に煩わしいものです。構文強調表示の定義はどこにありますか? また、これを修正するにはどうすればよいですか?

4

4 に答える 4

3

Dreamweaver の構成パスで CodeColoring.xml を見つけることにより、正規表現定義を自分で削除/変更できます。Windows 7 の CS6 の場合、デフォルトは次のとおりです。

C:\Program Files (x86)\Adobe\Adobe Dreamweaver CS6\configuration\

次に、JavaScript スキームを見つける必要があります。

<scheme MMString:name="JavaScript/scheme/name" id="JavaScript" ...>

その中に正規表現の定義があります。

<regexp name="RegExp" id="CodeColor_JavascriptRegexp" delimiter="/" escape="\\">
    <searchPattern><![CDATA[/\e+\\/]]></searchPattern>
</regexp>

これはおそらく洗練される可能性がありますが、ほとんどのシナリオで正規表現を使用しないため、このセグメントを削除しました. DW を再起動してください。

定義を絞り込みたい場合は、StackOverflow の正規表現が強調表示されているようです。

var regex = /a+b/;
var number = (window.innerWidth / window.innerHeight) / 2;
于 2012-10-17T17:54:47.063 に答える
1

この記事では、その方法について説明します。

Dreamweaverの構文の強調表示を変更する
http://realworldz.wordpress.com/2007/10/04/modifying-dreamweavers-syntax-highlighting/

newVBScriptのキーワードに構文の強調表示を追加する方法の例を示します。

  1. Dreamweaverが既に開いている場合は、閉じます。
  2. に移動C:\Documents and Settings\<YOUR USERNAME>\Application Data\Macromedia\Dreamweaver 8\Configuration\CodeColoring
  3. メモ帳で「ASPVBScript.xml」ファイルを開きます。
  4. タグを探し、「Mod」のタグの後に、このように「New」というキーワードで呼び出される新しいタグを追加します。<keyword>New</keyword>
于 2012-10-14T18:08:00.807 に答える
0

私はどこを見ても、この前の質問からの答えに同意します: Dreamweaver CS5 コードヒント

構文の強調表示をそれほど制御することはできません。Robert's answer here で説明されている方法を使用して、予約語などを追加できます。ただし、そのファイルを編集しても、Dreamweaver が定数と演算子の強調表示を処理する方法を変更することはできません。

コードの記述方法を変更して、このような例で構文が引き続き強調表示されるようにする合理的な方法を次に示します。

<script>
            var a = 
               (b/2)         //Because the forward slashes are not on the same line,
              +(c/2);        //Dreamweaver will not stop highlighting the numbers 
                             //and operators   

    document.write(a);

</script>

:この特定の例では、コードを次のように簡略化することもできますvar a = (b+c)/2;

于 2012-10-14T18:14:05.283 に答える
0

文字の/([{;,=!|&~^<>+-*%?:}後に除算記号を付けることができないため、これが私が思いついたものです。

<searchPattern><![CDATA[/\s+/\e+\\/]]></searchPattern>
(これには、行末コメントとの競合を避けるために、少なくとも 1 つの空白文字が必要です)

<searchPattern><![CDATA[(\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[[\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[{\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[;\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[,\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[=\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[!\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[|\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[&\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[~\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[^\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[<\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[>\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[+\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[-\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[*\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[%\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[?\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[:\s*/\e+\\/]]></searchPattern>
<searchPattern><![CDATA[}\s*/\e+\\/]]></searchPattern>

のようなシナリオif (x) /foo/.exec('bar')では、RegExp を括弧に入れて適切にフォーマットします。他の唯一の悪影響は、前の文字が通常のテキスト (太字や色なし) として書式設定されることです。

于 2013-10-21T15:40:22.723 に答える