我有一个类似于:
的JavaScript行var a = (b / 2) + (c / 2);
在Dreamweaver中,它会将此段突出显示为注释,并将其视为:
var a = (b /* 2 ) + (c */ 2);
语法突出显示不正确,非常烦人。我在哪里可以找到语法高亮定义,如何修改它们来纠正它?
答案 0 :(得分: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;
答案 1 :(得分:1)
本文介绍了如何操作:
修改Dreamweaver的语法突出显示
http://realworldz.wordpress.com/2007/10/04/modifying-dreamweavers-syntax-highlighting/
它提供了一个示例,说明如何为VBScript的关键字new
添加语法突出显示:
C:\Documents and Settings\<YOUR USERNAME>\Application Data\Macromedia\Dreamweaver 8\Configuration\CodeColoring
<keyword>New</keyword>
答案 2 :(得分:0)
我到处寻找,我同意上一个问题的回答:Dreamweaver CS5 code hinting
对语法高亮的控制不是很多。你可以使用Robert在这里回答的方法来添加更多保留字等。但编辑该文件不适用于更改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;
答案 3 :(得分:0)
由于字符/([{;,=!|&~^<>+-*%?:}
后面没有分号,所以我想出了这个:
<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>
<searchPattern><![CDATA[}\s*/\e+\\/]]></searchPattern>
对于像if (x) /foo/.exec('bar')
这样的场景,只需将RegExp放在括号中即可正确格式化。唯一的另一个不良影响是前面的字符将被格式化为常规文本(非粗体或彩色)。