Articulo de referencia

TextMate

TextMate es un editor de texto con interfaz gráfica de usuario (GUI) gratuito y de código abierto para macOS , creado por Allan Odgaard. TextMate ofrece personalización declarat...

TextMate es un editor de texto con interfaz gráfica de usuario (GUI) gratuito y de código abierto para macOS , creado por Allan Odgaard. TextMate ofrece personalización declarativa , pestañas para documentos abiertos , macros grabables , secciones plegables , fragmentos de código , integración con el intérprete de comandos y un sistema de paquetes extensible.

Historia

TextMate 1.0 se lanzó el 5 de octubre de 2004, después de 5 meses de desarrollo, seguido de la versión 1.0.1 el 21 de octubre de 2004. [ 2 ] [ 3 ] [ 4 ] El lanzamiento se centró en implementar bien un pequeño conjunto de funciones y no tenía una ventana de preferencias ni una barra de herramientas, no integraba FTP y no tenía opciones para imprimir. [ 5 ] [ 6 ] Al principio, solo se admitía un pequeño número de lenguajes de programación, ya que solo se habían creado unos pocos "paquetes de lenguaje". Aun así, algunos desarrolladores encontraron que esta versión temprana e incompleta de TextMate era un cambio bienvenido en un mercado que se consideraba estancado por el dominio de BBEdit durante una década . [ 7 ]

TextMate 1.0.2 se lanzó el 10 de diciembre de 2004. En la serie de versiones beta de TextMate 1.1 , TextMate incorporó varias características nuevas, incluyendo una ventana de preferencias con una interfaz gráfica para crear y editar temas; una barra de estado con una lista de símbolos; menús para elegir el idioma y la configuración de pestañas, y un "editor de paquetes" para editar personalizaciones específicas del idioma. El 6 de enero de 2006, Odgaard lanzó TextMate 1.5, la primera "versión estable" desde la 1.0.2. [ 8 ] Las reseñas fueron positivas, a diferencia de las versiones anteriores que habían sido criticadas. [ 9 ]

TextMate continuó desarrollándose hasta mediados de 2006. El 8 de agosto de 2006, TextMate recibió el premio Apple Design Award a la mejor herramienta para desarrolladores en la Conferencia Mundial de Desarrolladores de Apple en San Francisco , California . [ 10 ] En febrero de 2006, el blog de TextMate expresó intenciones para direcciones futuras, incluyendo una gestión de proyectos mejorada, con un sistema de complementos para admitir sistemas de archivos remotos como FTP y sistemas de control de versiones como Subversion . [ 11 ] A lo largo de 2007, la aplicación principal cambió solo mínimamente, aunque sus "paquetes de lenguaje" continuaron avanzando.

En junio de 2009, se anunció que TextMate 2 estaba completado en un 90%, pero con una lista de características finales no revelada. [ 12 ] En diciembre de 2011, se publicó una versión alfa pública para su descarga en el blog de TextMate, seguida de una versión candidata a lanzamiento a finales de 2016. En septiembre de 2019, se lanzó la versión final. [ 13 ]

En agosto de 2012, el código fuente de TextMate 2 se publicó en GitHub bajo los términos de GPL-3.0-or-later , [ 14 ] un intento del desarrollador de contrarrestar las restricciones que Apple impuso al software distribuido a través de la Mac App Store . [ 15 ] Odgaard declaró que prefiere recibir parches como dominio público, ya que esto preserva su capacidad de lanzar una versión futura bajo una licencia más permisiva o de poner una versión disponible en la Mac App Store. Odgaard también declaró que tiene un amigo que usa algunos de los marcos de TextMate en un proyecto de código cerrado, y no pudieron incorporar parches publicados bajo GPL. [ 16 ] [ 17 ]

En octubre de 2021, se realizó la última confirmación en GitHub, aunque no se ha hecho ningún anuncio que indique que el proyecto haya sido abandonado oficialmente y su código fuente sigue estando disponible públicamente. [ 18 ]

Características

Resaltado de sintaxis de Ruby en TextMate

Gramáticas lingüísticas

Las gramáticas de lenguaje de TextMate permiten a los usuarios crear sus propios modos de resaltado de sintaxis arbitrariamente complejos asignando a cada palabra clave del documento un nombre único. [ 19 ] Utiliza una versión modificada del formato de lista de propiedades ASCII de Apple para definir las gramáticas del lenguaje. Estas gramáticas permiten definir reglas de anidamiento utilizando la biblioteca de expresiones regulares Oniguruma y luego asignarles "ámbitos" específicos: etiquetas compuestas que los identifican para su coloración.

A cada punto de un documento se le asigna uno o más ámbitos, que definen dónde se encuentra el punto en el documento, cómo debe colorearse y cuál debe ser el comportamiento de TextMate en ese punto. Por ejemplo, el título de uno de los enlaces en la sección "Enlaces externos" tiene el ámbito:

texto.html.mediawiki lista.mediawiki meta.link.inline.external.mediawiki string.other.link.title.external.mediawiki 

Este alcance nos indica que estamos viendo el título de un enlace dentro de otro enlace dentro de una lista dentro de un documento de MediaWiki.

Los temas de TextMate pueden marcar cualquier ámbito con distintos niveles de precisión. Por ejemplo, un tema puede optar por colorear todas las constantes ( constant.*) de forma idéntica, mientras que otro puede decidir que las constantes numéricas ( constant.numeric.*) se coloreen de forma diferente a los caracteres de escape ( constant.character.escape.*). La sintaxis jerárquica del ámbito permite a los autores de lenguajes y temas diversos niveles de cobertura, de modo que cada uno puede elegir entre simplicidad o exhaustividad, según lo desee.

La documentación de TextMate proporciona una lista de nombres comúnmente utilizados en diferentes lenguajes de programación para la interoperabilidad entre paquetes. [ 19 ]

Comandos

TextMate admite comandos definidos y editables por el usuario, que son interpretados por bash o el intérprete especificado con un shebang . TextMate puede enviar a los comandos diversos tipos de entrada (el documento actual, el texto seleccionado, la palabra actual, etc.), además de variables de entorno , y su salida puede ser procesada de diversas maneras. En su forma más simple, un comando podría recibir el texto seleccionado, transformarlo y reinsertarlo en el documento, reemplazando la selección. Otros comandos podrían simplemente mostrar una información sobre herramientas , crear un nuevo documento para su salida o mostrarla como una página web utilizando el renderizador HTML integrado de TextMate.

Muchos paquetes específicos de lenguajes de programación, como bash, PHP o Ruby, contienen comandos para compilar y/o ejecutar el documento o proyecto actual. En muchos casos, la salida estándar (STDOUT) y la salida de error estándar (STDERR) del proceso de ejecución del código se mostrarán en una ventana de TextMate.

Fragmentos

En su forma más simple, los fragmentos de TextMate son piezas de texto que se pueden insertar en el documento en la ubicación actual mediante una combinación de teclas contextual o la función de autocompletado con la tecla Tab. Los fragmentos son "inteligentes", ya que admiten la actualización dinámica de las tabulaciones, el acceso a variables de entorno y la capacidad de ejecutar scripts en línea. Esto permite comportamientos complejos. Las tabulaciones se pueden alternar usando la tecla Tab y admiten texto predeterminado y menús desplegables para completar elementos del fragmento. Los resultados de estas tabulaciones se pueden modificar dinámicamente en otra parte del fragmento a medida que el usuario completa una tabulación. Se pueden usar variables de entorno de TextMate, que admiten información sobre el ámbito actual, el número de línea o el nombre del autor, etc. Los fragmentos también tienen la capacidad de ejecutar scripts de shell en línea.

Paquetes

Las gramáticas, fragmentos, macros, comandos y plantillas de TextMate se pueden agrupar en conjuntos de funcionalidades. Cualquier fragmento, macro o comando se puede ejecutar pulsando una combinación de teclas, escribiendo una palabra y pulsando la tecla Tab (lo que se conoce como "activadores de tabulación") o seleccionando el comando en un menú. Los activadores de tabulación son especialmente útiles; la combinación de activadores de tabulación y fragmentos facilita enormemente la programación en lenguajes extensos o con patrones de escritura comunes.

Los fragmentos de código, las macros y los comandos pueden limitarse a un ámbito específico, de modo que, por ejemplo, el comando "cerrar etiqueta HTML" no funcione en un script de Python, liberando así ese atajo de teclado para otras funciones. Esto permite que lenguajes de programación e incluso ámbitos específicos reemplacen comandos integrados como "Reformatear párrafo" con versiones más especializadas. Incluso se pueden modificar teclas especiales como la tecla Intro y la barra espaciadora.

Existe un repositorio Subversion que contiene muchos más paquetes que los que se incluyen con el paquete del editor, para todo, desde Markdown hasta blogs y lenguaje ensamblador MIPS . [ 20 ]

Gestión de proyectos

En una ventana de proyecto de TextMate, se pueden abrir varios documentos o carpetas a la vez. Esta ventana cuenta con un panel lateral que muestra los nombres de archivos y carpetas, y una serie de pestañas en la parte superior. En TextMate 1.5, este panel permitía a los usuarios organizar archivos y carpetas de todo el sistema de archivos, así como crear carpetas virtuales para una mejor organización. Esta función se eliminó en TextMate 2 y se sustituyó por un explorador de archivos convencional . Se puede buscar y reemplazar en todo el proyecto, y los comandos pueden interactuar con los archivos o carpetas seleccionados en el panel. Los paquetes para CVS , Subversion , darcs y otros sistemas de control de versiones permiten a TextMate gestionar el código versionado.

Otras características

TextMate tiene muchas características comunes a los editores de programación:

  • Se pueden plegar secciones de código para ocultar áreas de un documento que no se estén editando, para obtener una vista más compacta de la estructura del código o para evitar distracciones. Las secciones que se van a plegar se pueden seleccionar manualmente o bien, la estructura del documento puede utilizarse para determinar los pliegues.
  • La búsqueda y el reemplazo basados ​​en expresiones regulares agilizan las manipulaciones de texto complejas. TextMate utiliza la biblioteca de expresiones regulares Oniguruma , desarrollada por K. Kosako. [ 21 ]
  • Una ventana emergente de funciones proporciona una lista de secciones o funciones en el documento actual.
  • El historial del portapapeles permite a los usuarios cortar varias secciones de texto a la vez y luego pegarlas.
  • El modo de edición de columnas permite añadir el mismo texto a varias filas de texto y resulta muy útil para manipular datos tabulares.
  • Compatibilidad con "rmate" para iniciar textmate como editor de archivos desde servidores remotos: mejora mucho con respecto a las soluciones alternativas necesarias en la versión 1 [ 22 ]

Además, TextMate admite funciones para integrarse bien con el entorno gráfico de OS X:

  • El historial gráfico del portapapeles permite pegar desde copias anteriores, incluidos los lanzamientos anteriores.
  • La función de buscar y reemplazar admite un historial gráfico análogo.
  • La edición se ve mejorada aún más por la posibilidad de usar varios cursores (puntos de inserción) y extender la selección actual a instancias adicionales, creando así varios cursores.
  • Una ventana de visualización HTML basada en WebKit muestra las actualizaciones en tiempo real a medida que se edita un documento HTML.
  • Los usuarios de VoiceOver y Zoom pueden usar TextMate gracias a su soporte de accesibilidad. [ 23 ]

Limitaciones

TextMate tiene algunas limitaciones en comparación con otros editores de su clase:

  • Debido a que TextMate no está estrechamente vinculado a un lenguaje de scripting, como Emacs lo está a Emacs Lisp , es imposible que los usuarios tengan un control total sobre la configuración y el comportamiento del programa. Allan Odgaard explicó su opinión al respecto en un correo electrónico a la lista de correo de TextMate, abogando por soluciones "recomendadas por la plataforma". [ 24 ]
  • No incluye un validador de HTML integrado: dado que TextMate utiliza el validador W3C para la validación de HTML, los usuarios deben tener una conexión de red activa para validar el HTML mediante la funcionalidad estándar.
  • Falta de autocompletado de código: a pesar de su amplio soporte para macros, comandos y fragmentos de código, TextMate no ofrece sugerencias ni autocompletado de código integrados. Por lo tanto, los editores de texto que sí las admiten pueden ser una mejor opción al aprender la sintaxis de un nuevo lenguaje o al programar en lenguajes extensos. Nota: puedes obtener sugerencias de código o palabras escribiendo una o más letras y pulsando repetidamente la tecla ESC. Las sugerencias son palabras que aparecen en el documento actual.
  • TextMate no es seguro para datos binarios . Es explícitamente solo texto y no garantiza que los datos binarios arbitrarios en un archivo se conserven durante un ciclo de carga/guardado, independientemente de si esos datos se editan o no.

Premios

TextMate 1.5 ganó el premio Apple Design Award a la mejor herramienta para desarrolladores en 2006.

Véase también

Referencias

  1. https://github.com/textmate/textmate/releases/tag/v2.0.23 .{{cite web}}: Falta o está vacío |title=( ayuda )
  2. David Hansson. “¡ TextMate 1.0 ya está aquí! Archivado el 5 de diciembre de 2008 en Wayback Machine ”, Blog de TextMate , 5 de octubre de 2004.
  3. Allan Odgaard. “ Perfiles/Allan Odgaard Archivado el 3 de julio de 2007 en Wayback Machine ” en la wiki de TextMate, 20 de noviembre de 2005.
  4. David Hansson. “ TextMate 1.0.1 emerge después de nueve versiones beta. Archivado el 12 de septiembre de 2020 en Wayback Machine ”, Blog de TextMate , 21 de octubre de 2005.
  5. Matt Willmore. “ Reseña de TextMate 1.0.1: ¿Jaque mate para TextMate? Archivado el 20 de agosto de 2006 en Wayback Machine ”, Maczealots.com , 8 de octubre de 2004.
  6. Michael “drunkenbatman” Bell. “ TextMate: El editor que faltaba para OS X Archivado el 14 de mayo de 2006 en Wayback Machine ”, Drunkenblog , 4 de noviembre de 2004.
  7. Kimbro Staken. “ Un nuevo y genial editor de texto: TextMate - Mac OS X. Enlace obsoleto archivado el 4 de diciembre de 2004 en archive.today ”, Tecnología inspiradora , 6 de octubre de 2004.
  8. Allan Odgaard. “ TextMate 1.5 archivado el 25 de marzo de 2006 en Wayback Machine ”, Blog de TextMate , 6 de enero de 2006.
  9. Rui Carmo. “ A la tercera va la vencida. Archivado el 30 de noviembre de 2006 en Wayback Machine ”, Tao of Mac , 8 de enero de 2006.
  10. Smykil, Jeff (9 de agosto de 2006). "Se anuncian los ganadores del premio Apple Design Award" . Ars Technica . Consultado el 11 de enero de 2024 .
  11. Allan Odgaard. “ Direcciones futuras archivadas el 5 de diciembre de 2008 en Wayback Machine ”, Blog de TextMate , 15 de febrero de 2006.
  12. Blog de TextMate: Trabajando en ello. Archivado el 7 de marzo de 2010 en Wayback Machine , 14 de junio de 2009.
  13. TextMate Github:Archivado el 15 de septiembre de 2019 en Wayback Machine , 16 de septiembre de 2019.
  14. GitHub,Archivado el 31 de enero de 2018 en Wayback Machine , 9 de agosto de 2012.
  15. "TextMate 2.0 se vuelve de código abierto en respuesta a las restricciones de OS X" . 9 de agosto de 2012. Archivado del original el 30 de diciembre de 2016. Recuperado el 15 de junio de 2017. El desarrollador de TextMate, MacroMates, anunció el jueves que el código de TextMate 2.0, actualmente en fase alfa, ya está disponible a través del repositorio en línea de GitHub. El código se está liberando como código abierto para contrarrestar lo que algunos desarrolladores consideran la creciente limitación de la libertad de usuarios y desarrolladores por parte de Apple en la plataforma Mac.
  16. Odgaard, (2009). CONTRIBUTING.md Archivado el 2 de junio de 2022 en Wayback Machine .
  17. "Odgaard: "Seguiré trabajando en TextMate mientras sea usuario de Mac"10 de agosto de 2012. Archivado del original el 7 de junio de 2017. Recuperado el 15 de junio de 2017. Muchos defensores del código abierto y potenciales colaboradores de código se opusieron vehementemente a la elección de Odgaard de la versión 3 de la Licencia Pública General de GNU, al tiempo que solicitaban que los parches de código originales tuvieran una licencia de dominio público. El problema, lamentablemente, es el tira y afloja entre los principios del software libre y los deseos de las empresas comerciales.
  18. "Github confirma textmate/textmate" . GitHub . Consultado el 29 de julio de 2023 .
  19. 1 2 "Gramáticas de lenguajes — Manual de TextMate 1.x" . macromates.com . Archivado del original el 30-10-2021 . Recuperado el 30-10-2021 .
  20. Para obtener información sobre cómo conseguir más paquetes, consulte la sección correspondiente en el manual de TextMate. Archivado el 10/10/2008 en Wayback Machine .
  21. "20 expresiones regulares" . TextMate. Archivado del original el 21/01/2018 . Consultado el 28/04/2009 .
  22. Cómo editar archivos desde mi servidor FTP como un proyecto de TextMate . Archivado el 19/07/2017 en Wayback Machine . Wiki de TextMate - Preguntas frecuentes: Proyectos
  23. Compatibilidad con la accesibilidad en la vista de texto: VoiceOver y Zoom. Archivado el 14/03/2020 en Wayback Machine . Solicitud de extracción de GitHub .
  24. Allan Odgaard. “ Re: Cambiar la posición del cursor desde un comando. Archivado el 4 de marzo de 2016 en Wayback Machine ”. Lista de correo de TextMate . 14 de febrero de 2007.

Lecturas adicionales

  • Gray, James Edward II (enero de 2007). Textmate: Edición avanzada para Mac . Pragmatic Bookshelf. ISBN 978-0-9787392-3-2.
  • Sitio web oficial