Atom Editor:如何以不同的方式突出显示sing和双引号字符串

时间:2019-07-10 15:36:18

标签: php atom-editor

我最近安装了Clear Linux,它们的默认值为Atom编辑器,因此我尝试了一下。使用php-autocomplete,我几乎感到非常兴奋。直到我意识到自己已经习惯了,并且需要对单引号和双引号字符串进行不同的突出显示。

php中,双引号字符串仍然会被解析为$variables和空白转义字符,例如\n\t;而单引号字符串是文字,单引号之间没有任何解释。

我已经养成了始终对数组键使用单引号的习惯,这让我的下意识无法让单引号的字符串看起来与双引号的字符串不同。我搜索了很多,却找不到解决方案。

有人知道实现此突出显示方案的方法吗?

该屏幕截图来自Geany。即使在Geany中,获得此设置也不是标准的。值得庆幸的是,十年前,这在他们的主题中很正常,因此我可以更改当前可用的主题以查找string_2并将其更改为与string_2=string_1不同的颜色。

为了更好地帮助人们理解php以及'"之间的差异如何具有重要性,这是字符串在上下文中表现不同的一种方式:

    $customer = "Bill Hawthorne";
    $_address = "123 Main St\nGlendale, CA 91202";

    $output = "Dear $customer, please confirm the below address is correct:\n\n$_address\n";

    // $output renders as:
    // Dear Bill Waltz, please confirm the below address is correct:
    //
    // 123 Main St
    // Glendale, CA 91202
    // 

    $output = 'Dear $customer, please confirm the below address is correct:\n\n$_address\n';
    // $output renders as:
    // Dear $customer, please confirm the below address is correct:\n\n$_address\n

screenshot of Geany editor showing different highlight colors for php strings of type single quote and double quote

1 个答案:

答案 0 :(得分:1)

在命令面板中使用命令Editor: Log cursor scope来查看应用于文本部分的范围。此范围适用于DOM中的文本,syntax--放在每个段之前。

对于language-php,双引号字符串的范围是string.quoted.double.php,单引号的范围是string.quoted.single.php。以下是如何定位目标的示例。注意这部分是纯CSS / Less;我不太了解,所以这里可能更简洁。

// ~/.atom/styles.less
atom-text-editor[data-grammar="text html php"] { // target PHP
  .syntax--string.syntax--quoted {
    &.syntax--double,
    &.syntax--double .syntax--punctuation.syntax--definition.syntax--string { // get the quote chars too
      color: red;
    }

    &.syntax--single,
    &.syntax--single .syntax--punctuation.syntax--definition.syntax--string {
      color: yellow;
    }
  }
}

例如,尝试使用此<?php "foo $bar" ?>