Введение

Редактор текста, специализирующийся на программном коде.

Редактор исходного кода — это программа-текстовый редактор, разработанная специально для редактирования исходного кода компьютерных программ. Он может быть самостоятельным приложением или встроен в интегрированную среду разработки (IDE).

Особенности

Редакторы исходного кода имеют функции, специально разработанные для упрощения и ускорения ввода исходного кода, такие как подсветка синтаксиса, отступы, автодополнение и сопоставление скобок. Эти редакторы также предоставляют удобный способ запуска компилятора, интерпретатора, отладчика или другой программы, необходимой в процессе разработки программного обеспечения. Таким образом, хотя многие текстовые редакторы, такие как Notepad, могут использоваться для редактирования исходного кода, они не являются редакторами исходного кода, если не улучшают, не автоматизируют и не облегчают редактирование кода. Структурные редакторы – это другая форма редактора исходного кода, в которой вместо редактирования обычного текста происходит манипулирование структурой кода, как правило, абстрактным синтаксическим деревом. В этом случае такие функции, как подсветка синтаксиса, проверка и форматирование кода легко и эффективно реализуются на основе конкретного или абстрактного синтаксического дерева, но редактирование часто более жёсткое, чем при работе со свободным текстом. Структурные редакторы также требуют обширной поддержки для каждого языка, поэтому их сложнее адаптировать к новым языкам, чем текстовые редакторы, где базовая поддержка требует лишь поддержки подсветки синтаксиса или отступов. По этой причине строгие структурные редакторы не получили широкого распространения для редактирования исходного кода, хотя некоторые IDE предоставляют аналогичную функциональность. Редактор исходного кода может проверять синтаксис по мере ввода и немедленно предупреждать о синтаксических ошибках. Некоторые редакторы исходного кода сжимают исходный код, обычно преобразуя часто используемые ключевые слова в однобайтовые токены, удаляя ненужные пробелы и преобразуя числа в двоичный формат. Такие редакторы, использующие токенизацию, распаковывают исходный код при просмотре, возможно, форматируя его с единообразным регистром и интервалами. Некоторые редакторы исходного кода выполняют оба действия. Протокол языкового сервера (Language Server Protocol), впервые использованный в Microsoft Visual Studio Code, позволяет редакторам исходного кода реализовывать LSP-клиент, который может считывать синтаксическую информацию о любом языке, для которого существует LSP-сервер. Это позволяет редакторам исходного кода легко поддерживать больше языков с подсветкой синтаксиса, рефакторингом и поиском ссылок. Многие редакторы исходного кода, такие как Neovim и Brackets, добавили встроенный LSP-клиент, в то время как другие редакторы, такие как Emacs, vim и Sublime Text, поддерживают LSP-клиент через отдельный плагин.

История

В 1985 году Майк Коулишоу из IBM создал LEXX, работая в командировке в Оксфордском университетском издательстве. В LEXX использовался динамический разбор и цвет и шрифты для подсветки синтаксиса. LPEX (Live Parsing Extensible Editor) от IBM был основан на LEXX и работал в средах VM/CMS, OS/2, OS/400, Windows и Java.

Хотя первая публичная версия vim была выпущена в 1991 году, функция подсветки синтаксиса появилась только в версии 5.0 в 1998 году. В 2003 году Дон Хо выпустил Notepad++, редактор исходного кода для Windows. Его целью было создание альтернативы редактору исходного кода JEXT, написанному на Java.

В 2015 году Microsoft выпустила Visual Studio Code как легковесную и кроссплатформенную альтернативу своей IDE Visual Studio. В 2016 году Visual Studio Code стал продуктом Microsoft, использующим протокол языкового сервера.