Un editor de código fuente es un programa de edición 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 integrado 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 el resaltado de sintaxis , la sangría , el autocompletado y la función de coincidencia de llaves . Estos editores también proporcionan una forma conveniente de ejecutar un compilador , un intérprete , un depurador u otro programa relevante para el proceso de desarrollo de software . Por lo tanto, 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, las características como el resaltado de sintaxis, la validación y el formato de código se implementan de manera fácil y eficiente desde el árbol de sintaxis concreto 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 lenguaje y, por lo tanto, son más difíciles de extender a nuevos lenguajes que los editores de texto, donde el soporte básico solo requiere soportar el resaltado de sintaxis o la sangría. Por esta razón, los editores de estructura estrictos no son populares para la edición de código fuente, aunque algunos IDE brindan 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, generalmente convirtiendo palabras clave comunes en tokens de un solo byte , eliminando espacios en blanco innecesarios y convirtiendo números a formato binario. Estos editores de tokenización luego descomprimen el código fuente cuando lo visualizan, posiblemente imprimiéndolo con mayúsculas y espacios consistentes. Algunos editores de código fuente hacen ambas cosas. [ cita requerida ]
El Protocolo de servidor de lenguaje , 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 lenguaje con un servidor LSP. Esto permite que los editores de código fuente admitan fácilmente más lenguajes 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 utilizaba análisis en vivo y utilizaba colores y fuentes para resaltar la sintaxis. El LPEX (Live Parsing Extensible Editor) de IBM [7] se basaba en LEXX y se ejecutaba 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 una 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 liviana y multiplataforma a su IDE Visual Studio . [11] En 2016, Visual Studio Code se convirtió en el producto de Microsoft que utiliza el Protocolo de servidor de lenguaje. [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 compilación y depuración.
Algunos desarrolladores prefieren los editores de código fuente independientes a los IDE cuando creen que estos últimos están repletos de funciones que no necesitan. [12]
Muchos editores de código fuente e IDE han estado involucrados en constantes discusiones entre usuarios, a las que la comunidad de programación a veces se refiere jovialmente como "guerras santas". [14] [ Se necesita una mejor fuente ] Algunos ejemplos notables incluyen vi vs. Emacs y Eclipse vs. NetBeans . Estas discusiones 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