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/

它提供了一个示例,说明如何new为 VBScript 的关键字添加语法高亮:

  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>
于 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>
(这个必须至少有一个空格字符以避免与行尾注释冲突)

<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 回答