Mostrando entradas con la etiqueta Editores. Mostrar todas las entradas
Mostrando entradas con la etiqueta Editores. Mostrar todas las entradas

Resaltado de sintaxis HAML en Gedit

lunes, febrero 28, 2011

Trabajando con Ruby On Rails me ha tocado escribir código usando HAML. Particularmente no me agrada mucho (entre otras cosas porque no tiene soporte multilínea, porque no identa correctamente las cadenas de texto plano, porque agrega otra capa más de interpretación a la aplicación, etc) pero cuando toca usarlo es bueno hacerlo con un buen soporte. Y cuando hablo de soporte me refiero al resaltado de sintaxis.

Para escribir código usualmente uso un editor de texto (Gedit o Geany), así que en ésta receta explicaré como agregar soporte para el resaltado de sintaxis en Gedit.

Primero agregamos soporte para que las extensiones usadas comúnmente en Rails sean reconocidas por el sistema. Abrimos una terminal y escribimos:

wget http://dl.dropbox.com/u/16349833/rails.xml 
sudo cp rails.xml /usr/share/mime/packages/rails.xml 
sudo update-mime-database /usr/share/mime

Luego agregamos los archivos de definición de sintaxis en la carpeta del sourceview de GTK ejecutando:

wget http://dl.dropbox.com/u/16349833/gedit_rails_syntax.zip
sudo unzip gedit_rails_syntax.zip -d /usr/share/gtksourceview-2.0/language-specs


Ahora con nuestro editor de texto favorito (y como root) abrimos el archivo /usr/share/gtksourceview-2.0/language-specs/ruby.lang para modificar el sourceview de GTK y agregar soporte para nuevas extensiones. Buscamos la línea:

*.rb

Y la cambiamos por:

*.rb;*.rake;*.rjs

Por último, abrimos el archivo /usr/share/gtksourceview-2.0/language-specs/html.lang y buscamos la línea que dice:

*..html;*.htm

Y la cambiamos por:

*.html;*.htm;*.erb;*.rhtml

Cerramos todas las instancias de Gedit y al abrir de nuevo ya nuestro código HAML debería verse resaltado.


Existen recetas que instalan una serie de plugins (con soporte para haml, rjs, etc) y te dejan al Gedit como TextMate, pero como no me gusta TextMate entonces prefiero hacerlo a patica xD

Espero que la receta les haya servido de ayuda.

Referencias:
http://groups.google.com/group/haml/browse_thread/thread/6c8babd81a46b6b8/b5100d80d9182c71?pli=1
http://blog.adsdevshop.com/2008/04/19/erb-syntax-highlighting-in-gedit/

La Aventura de Ruby on Rails (Parte 2): El entorno de desarrollo

miércoles, enero 14, 2009

En la entrega pasada instalamos Ruby y Rails con todos los complementos necesarios para crear una aplicación web. Ahora vamos a configurar nuestro entorno de desarrollo para empezar a echar las primeras líneas de código.

Para aquellos que adoran las funcionalidades de un IDE como eclipse entonces les dejo este link. Desde allí pueden descargar EasyEclipse; un entorno basado en Eclipse pero viene listo para programar en Ruby on Rails (trae muchas otras funcionalidades pero no me he tomado la molestia de revisarlo al detalle).

A mi, sin embargo, me gusta más la simplicidad y siempre he pensado que los IDE consumen muchos recursos, es por eso que un simple editor de textos es la solución perfecta a mis necesidades. A partir de este punto explicaré como transformar al Gedit (el editor por defecto de GNOME) en una poderosa herramienta de desarrollo.

La siguiente receta está basada en un trabajo del amigo Joselo en su blog NationCode: Gedit como Textmate mejorado para GNU/Linux pero adaptada para cubrir mis necesidades. Todos los archivos necesarios para aplicarla puedes descargarlos de aquí

Dentro del archivo comprimido está un script que realiza la instalación por sí solo, lo único que debes hacer es descomprimirlo, entrar a la carpeta y ejecutarlo con permisos de súper usuario; algo más o menos así:
tar -xzf gedit-dev-1.2.tar.gz
cd gedit-dev
sudo sh gedit-dev-sh


Si quieres instalarlo uno a uno tú mismo entones continúa leyendo la receta :D

A partir de este punto ejecutaremos las instrucciones como súper usuario. Lo primero que haremos será instalar los plugins extra de Gedit
# aptitude install gedit-plugins

Posteriormente editamos el archivo /etc/mime.types y agregamos estas líneas al final:
text/x-ruby-source                           rhtml html.erb
text/x-eruby rjs
text/x-yaml yml


A continuación actualizamos las extensiones mime types:
update-mime-database /usr/share/mime

Nos posicionamos en la carpeta descomprimida de gedit-dev y copiamos el archivo x-rhtml.xml a la carpeta /usr/share/mime/packages:
cp mime/x-rhtml.xml /usr/share/mime/packages

Copiamos las definiciones de rhtml, ruby, rjs y yml a la carpeta /usr/share/gtksourceview-2.0/language-specs:
cp langs/*.lang /usr/share/gtksourceview-2.0/language-specs

Ahora salimos del modo súper usuario (pero nos quedamos dentro de la carpeta gedit-dev) y nos devolvemos a nuestro usuario regular. Instalamos los otros plugins de Gedit:
mkdir -p ~/.gnome2/gedit/plugins/
cp -R plugins/* ~/.gnome2/gedit/plugins/


Instalamos los recortes para el Gedit
mkdir -p ~/.gnome2/gedit/snippets/
cp -R snippets/* ~/.gnome2/gedit/snippets/


Y luego instalamos los estilos o temas de colores para el resaltado de la sintaxis:
mkdir -p ~/.gnome2/gedit/styles/
cp styles/* ~/.gnome2/gedit/styles/


Ahora configuramos el Gedit. En el menú Editar->Preferencias, pestaña Ver debemos desactivar el ajuste de texto, mostramos los números de línea, la línea actual y el margen derecho; establecemos el margen en la columna 80 y resaltamos la pareja del corchete.



En la pestaña Editor establecemos el ancho del tabulador a 2, insertamos espacios en lugar de tabuladores, activamos la sangría automática, desactivamos la copia de respaldo y autoguardamos cada 10min.



En la pestaña Tipografía seleccionamos el tema Serious y en Complementos activamos:
  • Dibujar espacios

  • Panel del examinador de archivos

  • Recortes

  • Salvasesiones

  • Snap Open


El resultado un simple pero poderoso editor listo para Ruby on Rails :)

SciTE: Mi editor de texto favorito

domingo, julio 27, 2008




SciTE es un excelente editor de texto que fue desarrollado en un principio para demostrar el poder de Scintilla (un componente/librería para la edición de texto). Sin embargo ha crecido tanto que ha llegado a opacar un poco a la propia librería.

¿Y qué tiene de grandioso el SciTE? se preguntarán. Pues quizás no sea nada del otro mundo, pero es que su sencillez, su funcionalidad y su alto grado de personalización lo hacen (al menos para mi) el editor de texto perfecto. Al momento de escribir este post SciTE está disponible en las arquitecturas de 32 bits para sistemas GNU/Linux y Windows.

En la lista que sigue trataré de describir las funcionalidades básicas del SciTE:
  • Edición de Texto: Estándar y con resaltado de sintaxis. Soporta gran cantidad de lenguajes de programación y puede expandirse para lenguajes que aún no estén soportados

  • Subsistema de comandos: Permite ejecutar herramientas (compiladores, interpretes, etc) dentro de la misma interfaz del SciTE

  • Pestañas: Permite abrir entre 1-100 documentos al mismo tiempo, visualizando uno a la vez y los demás en memoria. Además se puede guardar el estado de las pestañas en archivos de sesiones y recuperarlas cuando se desee

  • Atajos de teclado: Facilitan la interacción entre el usuario y el editor (siguen las convenciones más comunes de GNU/Linux y Windows)

  • Abreviaturas: Una función poderosa constituida por pares abrev = texto definidos por el usuario. Al escribir abrev en el editor y presionar Ctrl+B, se reemplaza abrev por texto

  • Plegado: Una de mis funciones favoritas. Permite plegar o expandir fragmentos de código basados en identación (en el caso de Python) o en llaves de apertura y cierre (en el caso de otros lenguajes). Muestra símbolos al margen izquierdo del editor para expandir o contraer los fragmentos

  • Archivos de propiedades: Permiten definir el comportamiento y la configuración general del editor

Luego de mencionar algunas de las características del SciTE veamos como personalizarlo. SciTE posee 4 tipos de archivos de configuración:
  • "SciTE.properties" (propiedades locales)

  • "SciTEDirectory.properties" (propiedades de directorio)

  • ".SciTEUser.properties" en GNU/Linux o "SciTEUser.properties" en Windows (propiedades de usuario)

  • "SciTEGlobal.properties" (propiedades globales)

El archivo de propiedades locales debe estar presente en el mismo directorio donde se encuentra el archivo que estamos editando.

El archivo de propiedades de directorio se usa para definir el comportamiento del editor (o de sus herramientas) sobre todos los archivos contenidos dentro de un directorio.

El archivo de propiedades de usuario define el comportamiento del editor para cada usuario del equipo y se encuentra en el directorio home del usuario en los sistemas GNU/Linux o en el directorio de perfil de usuario definido en la variable USERPROFILE de Windows (si la variable USERPROFILE no está definida se ubica en el directorio del ejecutable)

El archivo de propiedades globales define el comportamiento por defecto del editor y se encuentra en /usr/share/scite para los sistemas GNU/Linux y en el directorio del ejecutable para Windows.

Las propiedades locales anulan a las propiedades de usuario que a su vez anulan a las propiedades globales.

Ahora voy a comentar la configuración que he realizado del SciTE usando el archivo de propiedades de usuario (".SciTEUser.properties" en mi caso):

# Se define el ancho de una tabulación equivalente a 4 espacios en blanco, se
# establece el ancho de la identación a 4 caracteres y se indica que se usarán
# espacios en lugar de tabulaciones para la identación
tabsize=4
indent.size=4
use.tabs=0

# Define la cantidad de pestañas simultáneas
buffers=15

# Permite visualizar una línea en el borde derecho del editor con un ancho de
# 100 caracteres y de color #C0DCC0
edge.column=100
edge.mode=1
edge.colour=#C0DCC0

# Muestra una lista de autocompletado cuando se escriben palabras que ya se
# encuentran dentro del texto
autocompleteword.automatic=1

# Visualiza el número de línea en el márgen izquierdo
line.margin.visible=1

Para una descripción detallada de cada una de las propiedades del SciTE visite la página de documentación oficial


Actualización: 13/11/2008

Acá les dejo mi archivo personal de configuración del SciTE; allí, además de lo mencionado arriba, configuro el editor para que use fuentes monospace y uno que otro truquillo :D

# Se define el ancho de una tabulación equivalente a 4 espacios en blanco, se
# establece el ancho de la identación a 4 caracteres y se indica que se usarán
# espacios en lugar de tabulaciones para la identación
tabsize=4
indent.size=4
use.tabs=0

# Define la cantidad de pestañas simultáneas
buffers=15

# Permite visualizar una línea en el borde derecho del editor con un ancho de
# 100 caracteres y de color #C0DCC0
edge.column=80
edge.mode=1
edge.colour=#C0DCC0

# Muestra una lista de autocompletado cuando se escriben palabras que ya se
# encuentran dentro del texto
autocompleteword.automatic=1

# Visualiza el número de línea en el márgen izquierdo
line.margin.visible=1

# Default
style.*.32=$(font.monospace)
style.cpp.32=$(font.monospace)
style.python.32=$(font.monospace)
# Line number
#style.*.33=back:#C0C0C0,$(fontmonospace)
# Brace highlight
#style.*.34=fore:#0000FF,bold
# Brace incomplete highlight
#style.*.35=fore:#FF0000,bold
# Control characters
#style.*.36=
# Indentation guides
#style.*.37=fore:#C0C0C0,back:#FFFFFF

font.base=font:!Bitstream Vera Sans Mono,size:9
font.small=font:!Bitstream Vera Sans Mono,size:8
font.comment=font:!Bitstream Vera Sans Mono,size:9
font.code.comment.box=$(font.comment)
font.code.comment.line=$(font.comment)
font.code.comment.doc=$(font.comment)
font.code.comment.nested=$(font.comment)
font.text=font:!Bitstream Charter Mono,size:9
font.text.comment=font:!Bitstream Vera Sans Mono,size:9
font.embedded.base=font:!Bitstream Vera Sans Mono,size:9
font.embedded.comment=font:!Bitstream Vera Sans Mono,size:9
font.monospace=font:!Bitstream Vera Sans Mono,size:9
font.vbs=font:!Bitstream Vera Sans Mono,size:9


Los invito a que lo prueben y digan que les parece... para mi es el mejor y ¿para ti?