Как автоматически экранировать специальный символ в VS Code Snippets? - PullRequest
0 голосов
/ 21 ноября 2018

Я хочу написать фрагмент для отладки в TYPO3.

Это мой фрагмент кода в файле php.json:

"TYPO3 Extbase DebuggerUtility": {
    "prefix": "ee",
    "body": [
        "\\TYPO3\\CMS\\Extbase\\Utility\\DebuggerUtility::var_dump($1,'$1');",
        "$0"
    ],
    "description": "TYPO3 Extbase DebuggerUtility"
},

Если я хочу отладить что-то вроде этого: $ this-> settings ['key'] Я получаю этот код:

\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($this->settings['key'],'$this->settings['key']');

Но он должен выглядеть следующим образом

\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($this->settings['key'],'$this->settings[\'key\']');

С экранированием 'ввторая часть этого фрагмента.

РЕДАКТИРОВАТЬ

Спасибо, но я думаю, что вы неправильно поняли вопрос.

Я не хочу сбежатьстатичность.Я хочу использовать фрагмент, и когда я набираю первый $ 1-контент, это должно быть $ this-> settings ['someKey'] , но второй $ 1 (который почти такой же) должен автоматически экранировать 'Я пишу, что я не делаю это вручную.

Так что, если я наберу 'first $ 1: ' second $ 1: \', мой Debug будет выглядеть так

Отладка:

$ this-> settings ['someKey']

contentOfsomeKey

Я не экранирую знаки ' внутри "заголовка отладки" он разрывает строку, потому что "оборачивает заголовок отладки.

Другими словами: я хочу экранировать содержимое второй переменной $ 1, а не переменной или '-wrapво фрагменте.

Я надеюсь, что смогу прояснить мою проблему.

1 Ответ

0 голосов
/ 21 ноября 2018

Если вам нужны экранирующие символы \ в выводе, вам нужно вставить экранированные экранирующие символы: \\ это должно привести к одиночным экранирующим символам.
Вам может понадобиться дополнительный escape-символ, если следующему символу требуется дополнительныйэкранирование: один обратный слеш перед кавычкой \' = \\ + \' = \\\'

`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...