Редактор исходного кода — это программа текстового редактора , разработанная специально для редактирования исходного кода компьютерных программ . Это может быть отдельное приложение или оно может быть встроено в интегрированную среду разработки (IDE).
Редакторы исходного кода имеют функции, специально разработанные для упрощения и ускорения ввода исходного кода, такие как подсветка синтаксиса , отступы , автозаполнение и функции сопоставления фигурных скобок . Эти редакторы также предоставляют удобный способ запуска компилятора , интерпретатора , отладчика или другой программы, необходимой для процесса разработки программного обеспечения . Таким образом, хотя многие текстовые редакторы, такие как «Блокнот» , можно использовать для редактирования исходного кода, если они не улучшают, не автоматизируют и не упрощают редактирование кода, они не являются редакторами исходного кода .
Редакторы структуры — это другая форма редактора исходного кода, в которой вместо редактирования необработанного текста манипулируют структурой кода, обычно абстрактным синтаксическим деревом . В этом случае такие функции, как подсветка синтаксиса, проверка и форматирование кода, легко и эффективно реализуются из конкретного синтаксического дерева или абстрактного синтаксического дерева, но редактирование часто более жесткое, чем текст произвольной формы. Редакторы структур также требуют обширной поддержки для каждого языка, и поэтому их труднее распространить на новые языки, чем текстовые редакторы, где базовая поддержка требует только поддержки выделения синтаксиса или отступов. По этой причине редакторы со строгой структурой не пользуются популярностью для редактирования исходного кода, хотя некоторые IDE предоставляют аналогичные функции.
Редактор исходного кода может проверять синтаксис во время ввода кода и немедленно предупреждать о проблемах с синтаксисом. Некоторые редакторы исходного кода сжимают исходный код, обычно преобразуя общие ключевые слова в однобайтовые токены , удаляя ненужные пробелы и преобразуя числа в двоичную форму. Такие редакторы токенизации позже распаковывают исходный код при его просмотре, возможно , печатая его с одинаковыми заглавными буквами и интервалами. Некоторые редакторы исходного кода делают и то, и другое. [ нужна цитата ]
Протокол языкового сервера , впервые использованный в Microsoft Visual Studio Code , позволяет редакторам исходного кода реализовать клиент LSP, который может читать синтаксическую информацию о любом языке с помощью LSP-сервера. Это позволяет редакторам исходного кода легко поддерживать больше языков с подсветкой синтаксиса, рефакторингом и поиском ссылок. [1] Многие редакторы исходного кода, такие как Neovim [2] и Brackets [3], добавили встроенный клиент LSP, в то время как другие редакторы, такие как Emacs, [4] vim, [5] и Sublime Text [6], поддерживают LSP-клиент через отдельный плагин.
В 1985 году Майк Коулишоу из IBM создал LEXX , будучи прикомандированным к издательству Oxford University Press . LEXX использовал динамический анализ и использовал цвет и шрифты для подсветки синтаксиса. IBM LPEX (Live Parsing Extensible Editor) [7] был основан на LEXX и работал на VM/CMS , OS/2 , OS/400 , Windows и Java [8].
Хотя первоначальный общедоступный выпуск vim состоялся в 1991 году, функция подсветки синтаксиса не была представлена до версии 5.0 в 1998 году. [9] [ нужен лучший исходный код ]
В 2003 году Дон Хо выпустил Notepad++ , редактор исходного кода для Windows. Намерение состояло в том, чтобы создать альтернативу редактору исходного кода на основе Java JEXT [10].
В 2015 году Microsoft выпустила Visual Studio Code как легкую и кроссплатформенную альтернативу своей интегрированной среде разработки Visual Studio . [11] В 2016 году Visual Studio Code стал продуктом Microsoft, использующим протокол языкового сервера. [1]
Редактор исходного кода является одним из компонентов интегрированной среды разработки. В отличие от автономного редактора исходного кода, IDE обычно также включает в себя отладчик и инструменты сборки.
Некоторые разработчики предпочитают автономные редакторы исходного кода IDE, поскольку считают, что IDE перегружены функциями, которые им не нужны. [12]
Многие редакторы исходного кода и IDE были вовлечены в постоянные споры между пользователями, которые сообщество программистов иногда весело называет «священными войнами». [14] [ нужен лучший источник ] Яркие примеры включают vi против Emacs и Eclipse против NetBeans . Эти споры составляют значительную часть интернет-культуры , и они часто возникают всякий раз, когда где-либо упоминается какой-либо редактор.
Основные игроки, работающие на рынке текстовых редакторов, включают: Visual Studio Code, Notepad++, Sublime, Brackets, UltraEdit, Atom.