visual studio code para harbour – II

Esta entrada se publicó originalmente en Harbour Magazine, mi publicación sobre el lenguaje de programación Harbour.

Hace algo más de un año escribí para Harbour Magazine la entrada Visual Studio Code para Harbour, donde explicaba la configuración de VSCode para Harbour. Sin embargo, por pereza o por comodidad, seguía utilizando Hippoedit como mi editor principal. Hace pocas semanas, cosas del aburrimiento por la confinamiento, decidí restaurar Windows 10 en mi PC y reinstalar programas por aquello del mantenimiento del sistema y quitar rastros del registro. Tras la reinstalación Hippoedit comenzó a dar unos problemas extraños con la codificación de los ficheros y decidí quedarme unicamente con Visual Studio Code como único editor. Tras varias semanas de uso puedo decir que ha sido una buena decisión. Creo que VSCode es uno de los mejores editores de código que hay actualmente, y aunque haya otros editores específicos para Harbour que lo superen en cuanto al uso con este lenguaje, utilizar un único editor para todos tus proyectos en diversos lenguajes es mejor que utilizar distintos editores.

En estas semanas de uso intensivo he mejorado la configuración de VSCode para Harbour. Basicamente utilizo los mismos plugins que expliqué en la entrada anterior, pero he mejorado la configuración de las tareas de compilación y ejecución de manera que puedo compilar y ejecutar mis aplicaciones de manera cómoda y sencilla. Lo que hago es tener en cada aplicación Harbour cuatro ficheros bat que hacen lo siguiente:

  • hbformat.bat – hace una llamada a hbformat para dar formato al fichero con el que estoy trabajando. Me gusta tener una uniformidad en mi código y la mejor manera de conseguirlo es usar hbformat. El fichero contiene lo siguiente:
C:\Fivetech\hb32_bcc7_1905\bin\hbformat.exe @C:\alanit\develop\hbformat.ini %1
  • rc32.bat – llama al compilador de recursos para generar el fichero .res a partir del .rc donde están todos los formularios y bitmaps del programa. Los recursos están en una carpeta llamada recursos dentro de la carpeta del proyecto. El fichero contiene lo siguiente:
cd recursos
c:\bcc\bcc7\bin\brc32 -ic:\bcc\bcc7\include;c:\bcc\bcc7\include\windows\sdk -r puchero.rc
copy puchero.res ..
  • bh.bat – es el build de la aplicación. Llama al makefile de BCC con el fichero .mak de la aplicación. Si quieres ver el contenido de los ficheros .mak de mis programas echa un vistazo a la entrada código de alanit en GitHub. El contenido del fichero – tachán, tachán 😉 – es el siguiente:
C:\BCC\BCC7\bin\make.exe -f makefile\pch1905.mak
  • go.bat – ejecuta la aplicación.
puchero.exe

Todos estos bats se llaman desde el fichero tasks.json del proyecto que contiene lo siguiente:

{
	// See https://go.microsoft.com/fwlink/?LinkId=733558
	// for the documentation about the tasks.json format

	"version": "2.0.0",
	"tasks": [
		{
			"label": "hbformat",
			"type": "shell",
			"command": ".\\hbformat.bat",
			"args": [
				"${file}"
			],
			"presentation": {
				"echo": true,
				"focus":true,
				"reveal": "always"
			},
			"problemMatcher": [
				"$harbour"
			]
		},
		{
			"label": "brc",
			"type": "shell",
			"group": "build",
			"command": ".\\rc32.bat",
			"presentation": {
				"echo": true,
				"focus":true,
				"reveal": "always"
			},
			"problemMatcher": [
				"$harbour"
			]
		},
		{
			"label": "build",
			"type": "shell",
			"group": "build",
			"command": ".\\bh.bat",
			"presentation": {
				"echo": true,
				"focus":true,
				"reveal": "always"
			},
			"problemMatcher": [
				"$harbour"
			]
		},
		{
			"label": "run",
			"type": "shell",
			"command": ".\\go.bat",
			"presentation": {
				"reveal": "never"
			},	
			"problemMatcher": [
				"$go"
			]
		}
	]
}

Además, usando el plugin Tasks-Here las tareas del proyecto me aparecen en la barra de estado (1) de manera que puedo lanzar las tareas haciendo click sobre ellas. A la derecha de las tareas aparecen el proyecto con el que estoy trabajando y puedo cambiar de proyecto desde ahí o desde la barra lateral.

Otro plugin que he comenzado a utilizar es Bookmarks que me permite añadir marcas a mi código para luego moverme por el código con facilidad. Mas marcas se muestran en la barra lateral agrupados por el fichero que las contiene y es muy fácil moverse entre ellas.

La elección de un editor de código es algo muy personal, cada programador tiene unos motivos u otros para realizar su elección. Yo actualmente estoy usando VSCode y me encuentro muy a gusto trabajando con él. No digo que sea mejor ni peor que otros editores, pero sí que se puede trabajar prefectamente con él utilizando Harbour.

hippoedit por 15$

El próximo 22 de Octubre, es decir mañana, se puede comprar Hippoedit por 15$. Para mi Hippoedit es el mejor editor ligero para Windows, con unas características avanzadas de edición que pocos editores soportan y con el interfaz más cuidado de todos los editores que conozco. La compra se debe hacer desde esta página.

cleartype y fuentes para programar

Una de las cosas que me disgusta es ver un PC con Windows que tiene las fuentes borrosas. El motivo habitual es que se le ha cambiado la resolución de pantalla a mayor, porque con la resolución óptima las letras son muy pequeñas. Las letras en monitores LCD se ven en condiciones óptimas al máximo de resolución que admiten, y si les cambias la resolución a mayor entonces se ven borrosas. El motivo es que al cambiar la resolución a mayor el pixel no coincide con el tamaño de un punto de resolución y la tarjeta se las apaña a su manera para mostrar las letras de la pantalla con lo que aparecen los llamados dientes de sierra. La solución pasa por usar el sistema de anti-aliasing de Windows y poner fuentes grandes en el sistema. El anti-aliasing en Windows se ajusta mediante un powertoy llamado cleartype tuner. Con esto se consigue tener las letras más grandes y con una mejor calidad que cambiando la resolución de pantalla. En Genbeta explican como usar este powertoy.

En el mundo Mac esto es mucho más fácil. Por defecto el efecto de anti-aliasing – que en algunos sitios se traduce por suavizado o alisado – de fuentes está activado, lo cual desde mi punto de vista es un acierto. En el mundo Windows el 80{480d580d36768405d93963bdd82c570c8132a231e8d2b870ef0b18322d1f72b2} de los usuarios ni saben lo que es el suavizado de fuentes, con lo que pierden la oportunidad de mejorar la visión de su sistema. Otra cosa que llama la atención es la diferente manera en que se aplica el suavizado de fuentes en Windows y Mac. Mi admirado Spolsky habló sobre ello y también se pueden encontrar otros post interesantes sobre el tema como este de CodingHorror.Para mi la personalización del entorno de trabajo es un tema capital, y como paso mucho tiempo con un editor el tema del tipo de letra es fundamental. No es sólo tener el anti-aliasing activado, sino usar una fuente que sea clara y que facilite la lectura del código. A raiz del post de CodingHorror sobre fuentes de letra para programar comencé a usar Consolas y para mi esta fuente es imbatible. La uso tanto en Windows como Mac y para mi es elegante, clara y bonita como ninguna otra fuente que haya usado antes para programar.

HippoEDIT

Reconozco que a mi los programas me entran por los ojos. Si un programa no es visualmente agradable es dificil que llegue a probarlo a fondo, y por el contrario si el programa me gusta visualmente lo considero antes que otro de funcionalidad similar.

HippoEDIT es un editor de código para Windows. Seguro que habrá editores mejores o con más funciones, pero es el de aspecto mas agradable que he visto nunca. Hay cosas que no tiene, como un inspector de código, pero compensa estas carencias con cosas como folding y un curioso delimitador de indentado sin el cual ya no puedo vivir. Trae un explorador de proyectos al que se pueden añadir acciones para montar un proyecto o ejecutarlo. También se puede enlazar con programas externos como editores de recursos o la ayuda de nuestro lenguaje.

HippoEDIT trae resaltado de sintaxis para muchos lenguajes, pero no para xHarbour. Yo me he creado mi propio esquema de sisntaxis para xHarbour, y la manera de añadir el nuevo esquema está explicado en este hilo de los foros de soporte.

HippoEDIT no es freeware, cuesta 30 € pero creo que merece la pena registrarlo.

med 3.0

Ya se encuentra disponible la versión 3.0 de MED, el editor de código fuente que uso habitualmente. Aunque hay características que no contempla para mi es un buen editor. En la web de Prometheus hay un artículo escrito por Adolfo Lagos Jiménez sobre cómo configurar el editor para convertirlo en un aceptable entorno de desarrollo.

Quiero empezar a familiarizarme con Eclipse, pues me han hablado maravillas de este entono. Lo instalé en mi PC pero no lo uso habitualmente, quiza abrumado por tantas posibilidades que tiene.

el editor de código ideal

Desde hace bastante tiempo uso MED como editor de código. Es un editor ligero, potente y configurable. Antes de dar el salto a Windows usaba Multiedit con Evolve y tengo que decir que este duo era una auténtica maravilla. La verdad es que deje de usar MultiEdit por una tontería, no me gustaba nada su look para Windows y no conseguí una demo de Evolve, además de que era bastante más caro que otras herramientas.

Mirando herramientas para Delphi a raiz de un enlace a un editor de recursos en un foro de FWH he visto una suite de componentes para el IDE llamada castalia que hace Structural Highlighting, que es algo como esto:

¡ Que pasada !