Редактор Atom: как по-разному выделять строки одинарной и двойной кавычки для php - PullRequest
0 голосов
/ 10 июля 2019

Я недавно установил Clear Linux и по умолчанию используется редактор Atom, поэтому я попробовал. С php-autocomplete я был почти очень взволнован. До тех пор, пока я не понял, что я настроен по-своему, и мне нужно по-разному выделять строки одинарные и двойные кавычки.

В php строки в двойных кавычках будут по-прежнему анализироваться для $variables и экранирующих символов, таких как \n и \t; в то время как строки в одинарных кавычках являются буквальными, и между одинарными кавычками нет интерпретации.

Я выработал привычку всегда использовать одинарные кавычки для ключей массива, и мое подсознание беспокоило, что строки в одинарных кавычках не отличаются от строк в двойных кавычках. Я долго искал и не мог найти решение.

Кто-нибудь знает способ достижения этой схемы выделения?

Скриншот от Джани. И даже в 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 Ответ

1 голос
/ 12 июля 2019

Используйте команду 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" ?>.

...