Могу ли я настроить подсветку экранированных символов в строке?
Учитывая простую ошибку, например
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("\"); // note: " is escaped, so this won't compile
}
Это отображается в Arduino IDE 2.0.3 как

и проблему трудно обнаружить.
В средах разработки Jetbrains предусмотрена специальная подсветка экранированных символов, например

что делает проблему более очевидной, поскольку две кавычки имеют разный цвет.
Есть ли шанс, что это можно настроить и в новой среде Arduino IDE 2.0.3?
Потому что в комментариях был задан вопрос: нет, подсветка синтаксиса не выделяет экранированный символ, когда строка завершена. Обратная косая черта и кавычки по-прежнему зеленые.

@Thomas Weller, 👍0
Обсуждение1 ответ
Есть ли шанс, что это можно настроить и в новой среде Arduino IDE 2.0.3?
Да. Вам потребуется включить языковые функции Arduino, предоставляемые языковым сервером. По умолчанию они отключены.
- Нажмите F1,
- Введите
Настройки: Открыть настройки (JSON), - Нажмите Ввод,
- Откроется файл
settings.json.
Добавьте в JSON следующее и сохраните его, если у вас не включено автосохранение:
{
"arduino.language.realTimeDiagnostics": true
}

Мой settings.json с включенными функциями языка Arduino.

Выберите плату. Вы можете игнорировать выбор порта, если хотите. Языковая функция должна запуститься, и вы увидите ошибку в редакторе.

Дополнительные сведения о расширенных настройках можно найти здесь. .
Спасибо. Несомненно, это очень полезно. Однако цвет сбежавшего символа остается прежним., @Thomas Weller
В IDE JetBrains вы написали Serial.println("\");, а в IDE Arduino Serial.println("\"); // примечание: " экранировано, поэтому это не будет компилироваться. Не могли бы вы дополнить свой вопрос о выделении синтаксиса в JetBrains более длинным примером? Спасибо! Я сравнил встроенное расширение C++ в VS Code с Arduino IDE, и они ведут себя одинаково. Ошибка компилятора кажется действительной: _Ожидаемое выражение_ clang (ожидаемое_выражение). Я не думаю, что вы сможете настроить [подсветку синтаксиса](https://code.visualstudio.com/api/language -extensions/syntax-highlight-guide) в Arduino IDE., @dankeboy36
Мой VSCode имеет подсветку синтаксиса в строках: https://i.stack.imgur.com/Tq9iS.png Давно им не пользовался, но ИМХО использую его только для Typescript, а не C++, поэтому не думаю, что у меня установлены какие-либо расширения для С++, и он даже спрашивает меня, хочу ли я установить некоторые из них., @Thomas Weller
Мне жаль, что я не мог помочь вам с этим. Этот разговор возможен только в том случае, если мы сравним одни и те же фрагменты кода в разных IDE и редакторах. Я не говорил, что VS Code, Arduino IDE или другие инструменты не могут применять различную окраску синтаксиса к токену регулярного выражения, но ваш первоначальный вариант использования отличается; это чистая ошибка компилятора. Даже встроенная подсветка фрагментов StackOverflow показывает тот же результат, что и Arduino IDE; пожалуйста, посмотрите на свой исходный вопрос и проверьте фрагмент., @dankeboy36
Я сделал еще одну проверку и могу подтвердить ошибку в Arduino IDE, которая не выделяет совпадения с регулярными выражениями. Если ошибок компилятора нет, VS Code правильно выделяет \d в строке "\d+". Arduino IDE 2.0.3 не может этого сделать., @dankeboy36
Еще одно обновление. Подсветка синтаксиса регулярных выражений работает в Arduino IDE как с темами «Светлая (Theia)», так и с «Темной (Theia)», но не с темами Arduino. Действия по воспроизведению. Ваш скетч: void setup() {} void loop() { Serial.println("\d"); }. \d не выделен. Откройте настройки с помощью Ctrl/⌘+,. Выберите одну из тем Theia из раскрывающегося списка и закройте диалоговое окно, нажав «ОК». \d выделено. Если я выберу любую из тем Arduino, это не сработает. Это баг темы., @dankeboy36
Если вы хотите дать дополнительный ответ, я с радостью проголосую и приму его., @Thomas Weller
- Ошибка при загрузке «Произошла фатальная ошибка esptool.py: тайм-аут записи»
- Загрузка данных SPIFFS в Arduino IDE 2.0.0-rc3 (ESP32 & TTGO) - Ubuntu
- Arduino IDE 2.3.2 не запускает новую установку
- Только что установил Arduino 2.0.3 - каков путь Windows к связанным библиотекам?
- Ошибка Chrome-sandbox в Arduino IDE 2.3 в Ubuntu 24.04
- Arduino IDE 2.0 Beta не запускается
- Как сжечь предохранители в Digistump ATTiny85 с помощью Arduino IDE
- Как избавиться от второй вкладки в Arduino IDE 2?
@hcheung
"\"не является строкой, так как не имеет закрывающей кавычки.\"— это экранированный символ в строке., @Thomas Weller"\"- это escape"без закрытия", вы можете получить правильную подсветку синтаксиса, если сделаете"\""., @hcheungиспользуйте текстовый редактор, который его поддерживает, @jsotola
@jsotola: я работаю с детьми в возрасте 10 лет. Я не могу просто сказать им, чтобы они переключили редактор., @Thomas Weller
@hcheung: Нет, когда строка завершена, она не выделяется: https://i.stack.imgur.com/Dbb6x.png, @Thomas Weller