Недавно я заинтересовался тем, как работает подсветка кода изнутри.
Сначала казалось, что все дико сложно — синтаксическое дерево, рекурсия и все.
Однако при ближайшем рассмотрении оказалось, что ничего сложного здесь нет. Всю работу можно выполнить за один цикл, глядя вперед и назад; более того, полученный скрипт практически не использует регулярные выражения.
Демо-страница: Выделение кода Javascript
Основная идея
Объявить переменную состояние , в котором будет храниться информация о том, в какой части кода мы находимся.Если, например, состояние равен единице, то это означает, что мы находимся внутри строки, заключенной в одинарные кавычки.
Скрипт будет ждать закрывающую кавычку и игнорировать все остальное.
То же самое и с подсветкой комментариев, регулярных выражений и других элементов, каждый из которых имеет свое значение.
состояние .
Таким образом, разные открывающие и закрывающие символы не будут конфликтовать; другими словами, код такой:
будут правильно выделены, и именно такие случаи вызывали больше всего затруднений.let a = '"\'"';
Начало работы
Определяем возможные значения переменной состояния, а также цвет, в который будет окрашена та или иная часть кода, а также список ключевых слов Javascript (которые также будут подсвечены): константные состояния = {.
const states = {
Теги: #JavaScript #js #highlighting #подсветка синтаксиса #syntax #highlight #highlighter #highlighting #highlighter
-
Aio Api-Сканер
19 Oct, 24 -
Google Цюрих Глазами Сибирского Фрилансера
19 Oct, 24 -
Графический Манипулятор
19 Oct, 24