Hable bien
==========
2 de mayo, 2021

Hace bastante tiempo encontré una imagen, durante mis andares por la
web, que tenía la apariencia de ser de un diario o libro viejo que
decía:

"Sea Patriota - No sea bárbaro.
Es de cumplido caballero que Ud. hable nuestro idioma oficial o sea
el castellano. Es ser patriota."

Siempre me llamo la atención y me resultó hasta un poco graciosa la
frase, a pesar de que estoy bastante seguro que semejante expresión
tenga un origen poco feliz. La combinación de las palabras
"Patriota" "bárbaro" y "caballero" (más aún si es cumplido) siempre
surge en ámbitos de conservadurismo más bien rancio.

Las veces que publique esta imagen en algún foro o lugar similar en
el que participé fue en tono irónico o bromista cuando alguien
escribía algo que resultaba ininteligible para las demás personas
que lo leían. Cabe aclarar que mi versión de la imagen no tenía la
parte que pone "Viva España".

Todo esto viene a cuento de que ya hace un tiempo que estoy
tratando de tener y/o integrar alguna suerte de corrector de
ortografía y gramática a mi configuración de neovim porque si bien
lo que me interesa no es "ser un cumplido caballero" y toda esa cuestión
decimonónica, sí es hablar o, en este caso, escribir bien.

Neovim viene con un corrector, o por lo menos con la intención de
uno. Básicamente lo que hace es decirte que palabras están mal
escritas y eso es todo. No analiza gramática ni contexto, solo
compara tu documento con su lista de palabras y ahí quedó.

Por un lado, tenemos una serie de plugins dedicados a escribir
prosa en lo que generalmente se usa como herramienta para
programación. Estos plugins son de análisis de estilo y algo de
gramática. Los que me vienen a la mente ahora son WriteGood,
Proselint, y Alex. No sé que clase de soporte de español tendrán,
si es que lo tienen, no los he probado.

Por otro lado, tenemos otra serie de plugins así como también
varios intentos y remiendos varios. Todos tratan de integrar
herramientas que ya existen como ser LanguageTool, aspell,
hunspell, ispell, enchant, y tal vez haya alguna que me estoy
olvidando.

Seguramente lo más interesante sean las conversaciones que hay y han
habido a lo largo de los años, tanto en el repositorio de Vim, como
en el de neovim sobre la posibilidad de convertir el corrector
actual en algo útil, o bien arrancarlo de raíz y crear una
integración moderna con alguna de las herramientas mencionadas más
arriba.

Por mi parte, he probado LanguageTool y hunspell.
La integración de LanguageTool se logra o bien a través de
vim-grammarous, o de languagetool.nvim.
Grammarous es el más fácil de usar de los 2, pero el modo de
corrección no es el mejor y a veces se atora a la hora de
reemplazar una palabra.
Languagetool.nvim requiere una configuración medio engorrosa en un
principio, y tiene algunas cuestiones de funcionalidad que no logré
entender.
El problema de ambos es que dependen de una aplicación escrita en
Java, o sea que hay que instalar openJDK, lo que significa que en
total tenemos que usar alrededor de 300mb, todo por algo que
debería ser razonablemente simple al menos en mi opinión.
También cabe decir que las correcciones que ofrece LanguageTool
dejan que desear.
Para cerrar, LanguageTool no trae, o no parece traer versiones
localizadas del diccionario en español.

Hunspell es el corrector ortográfico usado en muchas aplicaciones
muy grandes como Firefox o LibreOffice, y también corre en OSX.
La manera de integrarlo pareciera ser atándolo con alambre... Esto
es, se puede intentar crear un compilador para archivos de texto
que tenga a hunspell con el diccionario a usar como `makeprg` y
tratar de que nos muestre los resultados en una ventana quickfix o
algo así, pero como no soy bueno en vimscript (y es un lenguaje por
demás horrible) no he terminado de crear algo que se asemeje a esto
que digo.
Supongo que podría ponerle a leer la muy extensa documentación de
spell (así se llama el corrector nativo de vim) y ver que sale,
pero eso no va a pasar...

Lo ultimo que puedo decir, al menos por el momento, es que hay un
plugin (en progreso) para neovim 0.5 que parece que podría
funcionar bien. Pero eso es algo que todavía no he podido probar.

Solo me resta hacer algunas pruebas mas con lo de hunspell y
luego escribir algo al respecto aquí.