次のような JavaScript 行があります。
var a = (b / 2) + (c / 2);
Dreamweaver では、このセグメントがコメントとして強調表示され、次のように処理されます。
var a = (b /* 2 ) + (c */ 2);
これは構文の強調表示が正しくなく、非常に煩わしいものです。構文強調表示の定義はどこにありますか? また、これを修正するにはどうすればよいですか?
次のような JavaScript 行があります。
var a = (b / 2) + (c / 2);
Dreamweaver では、このセグメントがコメントとして強調表示され、次のように処理されます。
var a = (b /* 2 ) + (c */ 2);
これは構文の強調表示が正しくなく、非常に煩わしいものです。構文強調表示の定義はどこにありますか? また、これを修正するにはどうすればよいですか?
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;
この記事では、その方法について説明します。
Dreamweaverの構文の強調表示を変更する
http://realworldz.wordpress.com/2007/10/04/modifying-dreamweavers-syntax-highlighting/
new
VBScriptのキーワードに構文の強調表示を追加する方法の例を示します。
C:\Documents and Settings\<YOUR USERNAME>\Application Data\Macromedia\Dreamweaver 8\Configuration\CodeColoring
<keyword>New</keyword>
私はどこを見ても、この前の質問からの答えに同意します: 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;
文字の/([{;,=!|&~^<>+-*%?:}
後に除算記号を付けることができないため、これが私が思いついたものです。
<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 を括弧に入れて適切にフォーマットします。他の唯一の悪影響は、前の文字が通常のテキスト (太字や色なし) として書式設定されることです。