如何修复DreamWeaver的评论突出显示javascript?

时间:2012-10-14 18:03:18

标签: comments syntax-highlighting dreamweaver

我有一个类似于:

的JavaScript行
var a = (b / 2) + (c / 2);

在Dreamweaver中,它会将此段突出显示为注释,并将其视为:

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

语法突出显示不正确,非常烦人。我在哪里可以找到语法高亮定义,如何修改它们来纠正它?

4 个答案:

答案 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添加语法突出显示:

  1. 关闭Dreamweaver,如果它已经打开。
  2. 转到C:\Documents and Settings\<YOUR USERNAME>\Application Data\Macromedia\Dreamweaver 8\Configuration\CodeColoring
  3. 在记事本中打开“ASP VBScript.xml”文件。
  4. 查找标签,在“Mod”之后,添加一个名为关键字“New”的新标签,如下所示; <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放在括号中即可正确格式化。唯一的另一个不良影响是前面的字符将被格式化为常规文本(非粗体或彩色)。