Редактор исходного кода — это текстовый редактор, специально разработанный для редактирования исходного кода компьютерных программ . Это может быть отдельное приложение или оно может быть встроено в интегрированную среду разработки (IDE).
Редакторы исходного кода имеют функции, специально разработанные для упрощения и ускорения ввода исходного кода, такие как подсветка синтаксиса , отступы , автозаполнение и функциональность сопоставления фигурных скобок . Эти редакторы также предоставляют удобный способ запуска компилятора , интерпретатора , отладчика или другой программы, относящейся к процессу разработки программного обеспечения . Таким образом, хотя многие текстовые редакторы, такие как Блокнот, можно использовать для редактирования исходного кода, если они не улучшают, не автоматизируют и не упрощают редактирование кода, они не являются редакторами исходного кода .
Редакторы структуры — это другая форма редактора исходного кода, где вместо редактирования сырого текста, человек манипулирует структурой кода, как правило, абстрактным синтаксическим деревом . В этом случае такие функции, как подсветка синтаксиса, проверка и форматирование кода, легко и эффективно реализуются из конкретного синтаксического дерева или абстрактного синтаксического дерева, но редактирование часто более жесткое, чем текст свободной формы. Редакторы структуры также требуют обширной поддержки для каждого языка, и поэтому их сложнее расширить на новые языки, чем текстовые редакторы, где базовая поддержка требует только поддержки подсветки синтаксиса или отступов. По этой причине строгие редакторы структуры не популярны для редактирования исходного кода, хотя некоторые IDE предоставляют схожую функциональность.
Редактор исходного кода может проверять синтаксис во время ввода кода и немедленно предупреждать о проблемах с синтаксисом. Некоторые редакторы исходного кода сжимают исходный код, обычно преобразуя общие ключевые слова в однобайтовые токены , удаляя ненужные пробелы и преобразуя числа в двоичную форму. Такие редакторы токенизирования позже распаковывают исходный код при его просмотре, возможно, красиво печатая его с постоянным использованием заглавных букв и пробелов. Некоторые редакторы исходного кода делают и то, и другое. [ необходима цитата ]
Протокол языкового сервера , впервые использованный в Visual Studio Code от Microsoft , позволяет редакторам исходного кода реализовать клиент LSP, который может считывать информацию о синтаксисе любого языка с помощью сервера LSP. Это позволяет редакторам исходного кода легко поддерживать больше языков с подсветкой синтаксиса, рефакторингом и поиском ссылок. [1] Многие редакторы исходного кода, такие как Neovim [2] и Brackets [3], добавили встроенный клиент LSP, в то время как другие редакторы, такие как Emacs, [4] vim, [5] и Sublime Text [6], поддерживают клиент LSP через отдельный плагин.
В 1985 году Майк Коулишоу из IBM создал LEXX , будучи прикомандированным к Oxford University Press . LEXX использовал живой парсинг и использовал цвет и шрифты для подсветки синтаксиса. LPEX (Live Parsing Extensible Editor) от IBM [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 IDE. [11] В 2016 году Visual Studio Code стал продуктом Microsoft, использующим протокол Language Server Protocol. [1]
Редактор исходного кода является одним из компонентов интегрированной среды разработки. В отличие от автономного редактора исходного кода, IDE обычно также включает в себя отладчик и инструменты сборки.
Некоторые разработчики предпочитают автономные редакторы исходного кода средам разработки (IDE), поскольку считают, что среды разработки перегружены функциями, которые им не нужны. [12]
Многие редакторы исходного кода и IDE были вовлечены в постоянные споры пользователей, которые сообщество программистов иногда шутливо называет «священными войнами». [14] [ требуется лучший источник ] Известные примеры включают vi против Emacs и Eclipse против NetBeans . Эти споры сформировали значительную часть интернет-культуры , и они часто начинаются всякий раз, когда какой-либо редактор упоминается где-либо.
Основные игроки, работающие на рынке текстовых редакторов, включают: Visual Studio Code, Notepad++, Sublime, Brackets, UltraEdit, Atom