Un editor de código fuente es un programa editor de texto diseñado específicamente para editar el código fuente de programas informáticos . Puede ser una aplicación independiente o puede estar integrada en un entorno de desarrollo integrado (IDE).
Los editores de código fuente tienen funciones diseñadas específicamente para simplificar y acelerar la escritura del código fuente, como resaltado de sintaxis , sangría , autocompletar y funcionalidad de coincidencia de llaves . Estos editores también proporcionan una manera conveniente de ejecutar un compilador , intérprete , depurador u otro programa relevante para el proceso de desarrollo de software . Entonces, si bien muchos editores de texto como el Bloc de notas se pueden usar para editar el código fuente, si no mejoran, automatizan o facilitan la edición del código, no son editores de código fuente .
Los editores de estructura son una forma diferente de editor de código fuente, donde en lugar de editar texto sin formato, se manipula la estructura del código, generalmente el árbol de sintaxis abstracta . En este caso, funciones como el resaltado de sintaxis, la validación y el formato de código se implementan fácil y eficientemente desde el árbol de sintaxis concreta o el árbol de sintaxis abstracta, pero la edición suele ser más rígida que el texto de formato libre. Los editores de estructura también requieren un amplio soporte para cada idioma y, por lo tanto, son más difíciles de extender a nuevos idiomas que los editores de texto, donde el soporte básico solo requiere resaltado de sintaxis o sangría. Por esta razón, los editores de estructura estricta no son populares para la edición de código fuente, aunque algunos IDE proporcionan una funcionalidad similar.
Un editor de código fuente puede verificar la sintaxis mientras se ingresa el código y advertir inmediatamente sobre problemas de sintaxis. Algunos editores de código fuente comprimen el código fuente, normalmente convirtiendo palabras clave comunes en tokens de un solo byte , eliminando espacios en blanco innecesarios y convirtiendo números a un formato binario. Estos editores de tokenización luego descomprimen el código fuente al verlo, posiblemente imprimiéndolo con mayúsculas y espacios consistentes. Algunos editores de código fuente hacen ambas cosas. [ cita necesaria ]
El protocolo de servidor de idiomas , utilizado por primera vez en Visual Studio Code de Microsoft , permite a los editores de código fuente implementar un cliente LSP que puede leer información de sintaxis sobre cualquier idioma con un servidor LSP. Esto permite que los editores de código fuente admitan fácilmente más idiomas con resaltado de sintaxis, refactorización y búsqueda de referencias. [1] Muchos editores de código fuente como Neovim [2] y Brackets [3] han agregado un cliente LSP integrado, mientras que otros editores como Emacs, [4] vim, [5] y Sublime Text [6] tienen soporte para un cliente LSP a través de un complemento independiente.
En 1985, Mike Cowlishaw de IBM creó LEXX mientras trabajaba en Oxford University Press . LEXX utilizó análisis en vivo y utilizó colores y fuentes para resaltar la sintaxis. LPEX (Live Parsing Extensible Editor) de IBM [7] se basó en LEXX y se ejecutó en VM/CMS , OS/2 , OS/400 , Windows y Java [8]
Aunque el lanzamiento público inicial de vim fue en 1991, la función de resaltado de sintaxis no se introdujo hasta la versión 5.0 en 1998. [9] [ se necesita mejor fuente ]
En 2003, Don Ho lanzó Notepad++ , un editor de código fuente para Windows. La intención era crear una alternativa al editor de código fuente basado en Java, JEXT [10].
En 2015, Microsoft lanzó Visual Studio Code como una alternativa ligera y multiplataforma a su IDE de Visual Studio . [11] En 2016, Visual Studio Code se convirtió en el producto de Microsoft que utiliza el protocolo de servidor de idiomas. [1]
Un editor de código fuente es un componente de un entorno de desarrollo integrado. A diferencia de un editor de código fuente independiente, un IDE normalmente también incluye herramientas de depuración y compilación.
Algunos desarrolladores prefieren los editores de código fuente independientes a los IDE cuando creen que los IDE están repletos de funciones que no necesitan. [12]
Muchos editores de código fuente e IDE se han visto involucrados en continuas discusiones entre usuarios, a veces denominadas jovialmente "guerras santas" por la comunidad de programación. [14] [ se necesita una mejor fuente ] Los ejemplos notables incluyen vi frente a Emacs y Eclipse frente a NetBeans . Estos argumentos han formado una parte importante de la cultura de Internet y, a menudo, comienzan cada vez que se menciona a cualquiera de los editores en cualquier lugar.
Los principales actores que operan en el mercado de editores de texto incluyen: Visual Studio Code, Notepad++, Sublime, Brackets, UltraEdit, Atom.