Interested Article - Подсветка синтаксиса


- 2021-08-21
- 1
// комментарий
int main()
{
for (int i = 0; i < MAX; i++)
printf ("%d\n", i);
return 0;
}
Подсве́тка си́нтаксиса — выделение синтаксических конструкций текста с использованием различных цветов , шрифтов и начертаний. Обычно применяется для облегчения чтения исходного текста компьютерных программ, улучшения визуального восприятия. Подсветка синтаксиса — важная функция текстовых редакторов , сред разработки , отладчиков и других инструментов разработки программного обеспечения. Подсветка синтаксиса также применяется при публикации исходных кодов в интернете и на бумажных носителях.
Принцип
При подсветке синтаксиса в исходном тексте языков программирования выделяются:
- конструкции языка;
- комментарии
- числовые и строковые данные
Более продвинутые системы подсветки синтаксиса также выделяют:
- переменные
- скобки
- стандартные функции языка
Многие текстовые редакторы и среды разработки имеют также функцию подсветки парных скобок под курсором: при приближении текстового курсора к скобке выделяется как скобка, возле которой находится курсор, так и парная ей.
Подсветка синтаксиса кроме удобства чтения позволяет избегать также синтаксических ошибок: неправильного написания конструкций языка, незакрытых кавычек и т.д. Может присутствовать также подсветка заведомо некорректного кода: например, непарных скобок, или недопустимых символов вне строковых данных в кавычках.
История
Live Parsing Editor ( LEXX или LPEX ) на VM , написанный для оцифровки Оксфордского словаря в 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; разработка больше не поддерживается.
Примечания
- . Дата обращения: 30 января 2008. 25 марта 2009 года.
Ссылки
- (англ.) . — конвертер из исходных кодов в HTML с подсветкой. Дата обращения: 22 ноября 2009. 12 февраля 2012 года.
- (англ.) . — подсветка синтаксиса кода на веб-странице. Дата обращения: 22 ноября 2009. Архивировано из 12 февраля 2012 года.
- . — автоматическая подсветка синтаксиса на веб-страницах с использованием JavaScript . Дата обращения: 22 ноября 2009. 12 февраля 2012 года.
- . — Особенности подсветки синтаксиса для Веб. Дата обращения: 1 декабря 2010. Архивировано из 12 февраля 2012 года.

- 2021-08-21
- 1