Подсве́тка си́нтаксиса — выделение синтаксических конструкций текста с использованием различных цветов, шрифтов и начертаний. Обычно применяется для облегчения чтения исходного текста компьютерных программ, улучшения визуального восприятия. Подсветка синтаксиса — важная функция текстовых редакторов, сред разработки, отладчиков и других инструментов разработки программного обеспечения. Подсветка синтаксиса также применяется при публикации исходных кодов в интернете и на бумажных носителях.

Принцип При подсветке синтаксиса в исходном тексте языков программирования выделяются: конструкции языка; комментарии числовые и строковые данные Более продвинутые системы подсветки синтаксиса также выделяют: переменные скобки стандартные функции языка Многие текстовые редакторы и среды разработки имеют также функцию подсветки парных скобок под курсором: при приближении текстового курсора к скобке выделяется как скобка, возле которой находится курсор, так и парная ей.

Подсветка синтаксиса кроме удобства чтения позволяет избегать также синтаксических ошибок: неправильного написания конструкций языка, незакрытых кавычек и т. д. Может присутствовать также подсветка заведомо некорректного кода: например, непарных скобок, или недопустимых символов вне строковых данных в кавычках.

История ( или ) на , написанный для оцифровки Оксфордского словаря в 1985 году, был одним из первых редакторов с подсветкой синтаксиса.

Примеры Ниже сравниваются сниппеты кода Си: обычное отображение с подсветкой синтаксиса/* Hello World */ #include <stdlib.h> #include <stdio.h>

int main() { printf("Hello World\n"); return 0; }/* Hello World */ #include <stdlib.h> #include <stdio.h>

int main() { printf("Hello World\n"); return 0; }

А вот — другой пример синтаксической подсветки: уже в коде C++: // Create "window_count" Window objects: const auto window_count = int{10}; auto windows = std::array<std::shared_ptr<Window>, max_window_count>{}; for (auto i = int{0}; i < window_count; ++i) { windows[i] = std::make_shared<Window>(); }

В этом примере редактор распознаёт ключевые слова auto, const, int и for; комментарии в начале также выделены особым образом для отличия от действующего кода.

См. также Стиль отступов Colorer — библиотека подсветки синтаксиса исходных текстов программ в текстовом редакторе, разработанный Игорем Русских.  — Python-библиотека подсветки синтаксиса Scintilla — компонент редактирования (имеющий, в том числе, подсветку синтаксиса) с открытым исходным кодом для Microsoft Windows и Linux с GTK+, разработанный Нейлом Ходжсоном SynEdit — компонент многострочного редактирования с открытым исходным кодом для Delphi, Kylix, C++ Builder; разработка больше не поддерживается.

Примечания

Ссылки

Категория:Текстовые редакторы