AutoHotkey 2 & SublimeText 3 - El mejor editor para tus Scripts +consejos [2018-06-15] Topic is solved

Hablar de cualquier cosa
User avatar
Flipeador
Posts: 943
Joined: 15 Nov 2014, 21:31
GitHub: Flipeador
Location: Argentina
Contact:

AutoHotkey 2 & SublimeText 3 - El mejor editor para tus Scripts +consejos [2018-06-15]  Topic is solved

12 Aug 2017, 20:29

Introducción | Sublime Text - Potente completo editor de texto


Siempre he utilizado el editor SciTE4 AutoHotkey para editar mis Scripts, pero debido a que hace mucho que no recibe actualizaciones y no está disponible la sintaxis para AutoHotkey 2 (entre otras cosas), he decidido buscar otro editor.
Me he encontrado con Sublime Text (que ya conocía pero nunca le he dedicado tiempo) y decidí escribir mi propia sintaxis para AHK 2.
Sublime Text puede ser descargado y evaluado de forma gratuita, sin embargo, una licencia se debe comprar para su uso continuo. Actualmente no se aplica un plazo para la evaluación. Igualmente, pueden buscar una licencia en internet.
Sublime Text ofrece un alto rendimiento, es más agradable visualmente que otros editores, soporta varios lenguajes y muchos otros que podemos descargar, ofrece varias opciones de personalización, permite trabajar con espacios en lugar de tabulaciones, sintaxis fácil de entender para crear nuestros propios estilos de lenguaje, un modo de edición más cómodo, completo y agradable para editar nuestro código.

Image

Clic en 'show' para ver más imagenes





Sublime Text 3 y AutoHotkey 2


Esta es una sintaxis completa con auto-completado y resaltado de palabras para la versión 2 de AutoHotkey para el editor de texto Sublime Text 3. Aquí puede ver algunas imágenes de vista previa de la sintaxis (tenga en cuenta que las imágenes pueden estar desactualizadas).
Image

Clic en 'show' para ver más imagenes





Consejos y buenas prácticas de programación


  • Siempre utiliza espacios para sangrar el código (normalmente 4 espacios), entonces se verá correctamente cuando lo copiemos en otros editores o sitio en internet.
  • Si necesitas añadir tabulaciones en una cadena, utiliza siempre `t o A_Tab, ya que ciertos editores sobreescriben las tabulaciones por espacios, si así está establecido en las opciones del programa.
  • Recuerda siempre comentar tu código. El uso más beneficioso de los comentarios 'en línea' es una explicación simplista para una pequeña funcionalidad; y los comentarios en bloque cuando necesitas incluir una gran explicación en general, por ej. para describir que hace una función y sus parámetros.
  • Ciertas tareas requieren unas pocas líneas de código. Es una buena idea mantener estas tareas dentro de bloques separados de código, con algunos espacios entre ellos.
  • Siempre utiliza nombres descriptivos para las variables, funciones... ya sea una obreviación o la palabra completa, siempre y cuando no se alargue demasiado o el código quedaría ilegible. Para variables de uso temporal o como contador, n,j,x,y,foo,bar,tmp es una buena opción.
  • Es una buena práctica evitar escribir largas líneas horizontales de código.
  • Evita el Código espagueti y acostúmbrate a utilizar en lo posible solo funciones (evitando etiquetas/labels, goto y gosub).
  • Utiliza la directiva #Warn para asegurarte de escribir código fiable, claro y utilizando buenas prácticas de programación. Siempre inicializa/declara las variables antes de utilizarlas; así, por ejemplo, asegúrate de declarar las variables locales en una función utilizando Local VarName, entonces tus variables locales dentro de tu función no entrarán en conflicto con variables super-globales, como por ejemplo con nombres de Clases o variables declaradas como Global VarName.
  • Temas interesantes:





Notas


  • Agradezco cualquier contribución en los comentarios, ya sea para mejorar el resaltado de las palabras (regex), uso de otros colores mas legibles o tu propio estilo, o en general cualquier tipo de aporte. El auto-completado se define en AutoHotkey.sublime-completions; los colores utilizados en el resaltado de las palabras y otras cosas generales se define en DarkAHK.tmTheme; las expresiones regulares (regex) se definen en AutoHotkey.sublime-syntax.
  • Hay varias funciones que he puesto en el auto-completado que no existen pero que al presionar 'Enter' o 'Tab' se transforman para ser válidas, por ejemplo, StrLeft --> {Enter|Tab} --> SubStr(String, 1, Length).
  • No estoy interesado en realizar una sintaxis aparte para AutoHotkey versión 1, eres libre de hacerla y compartirla, o bien, utilizar esta.
  • La sintaxis esta probada en Sublime Text 3.1.1 Build 3176 (2018). No utilices versiones sin terminar o puedes tener problemas con la sintaxis.
  • Actualmente Sublime Text es "gratis", pero de vez en cuando nos aparecerá con mensaje para que compremos una licencia, pueden buscar una licencia en Internet o crear un script en AHK para cerrar automáticamente esta ventana al aparecer.





Errores conocidos y otras cuestiones


  • Al definir una tecla de acceso rápido que comienza con *~! no es detectada correctamente.
  • Pobre y poco eficiente detección de errores de sintaxis. No se detectan bloques sin cerrar (', ", [, (, {).
  • Sin soporte para compilar/ejecutar código desde Sublime Text. Una forma de probar código de forma rápida y sencilla desde cualquier lugar, es asignar una combinación de teclas que ejecute el texto seleccionado como un archivo AHK, para ello utilizo la función ExecScript.





Instrucciones | Instalación


  • Primero debemos descargar e instalar Sublime Text 3, para ello has clic en este enlace. Puedes descargar la version portable si lo deseas, que es la que yo utilizo.
  • [opcional] Antes de continuar, te aconsejo instalar Package Control. Has clic en Install Now y copia el texto que esta en el recuadro de Sublime Text 3. Abrimos Sublime Text, abrimos la consola haciendo clic en View\Show Console, pegamos el texto previamente copiado y hacemos clic en la tecla Enter. Una vez terminada la instalación de Package Control cerramos Sublime Text para proceder con la 'instalación' de la sintaxis para AHK.
  • Una vez instalado, buscamos y abrimos la carpeta de datos del programa, si descargaron la version portable la carpeta es la que contiene al archivo sublime_text.exe (que recomiendo crear en C:\Archivos de programa\Sublime Text 3); si eligieron el instalador la carpeta probablemente sea %appdata%\Sublime Text 3.
  • Una vez dentro de la carpeta del programa, nos dirigimos a este enlace y descargamos todos los archivos (clic aquí para descargar).
  • Descomprimimos el archivo ZIP (utiliza 7-Zip, es gratis) y copiamos la carpeta Data en la carpeta de Sublime Text, reemplazando todos los archivos si es necesario.
  • Ya esta hecho! podemos abrir Sublime Text y empezar a editar nuestros Scripts :) .





Sobre Sublime Text | USO


  • Para cambiar el tema debes dirigirte al menú Preferences\Color Scheme.
  • Para cambiar la sintaxis actual a AutoHotkey 2, hacemos clic en el menú View\Syntax\AutoHotkey 2.
  • Te recomiendo siempre guardar los archivos en la codificación UTF-8 with BOM (unicode). Debemos dirigirnos a File\Save with Encoding\UTF-8 with BOM. Esto es para asegurarnos que los caracteres Unicode se visualicen y guarden correctamente en nuestro archivo de texto AHK.
  • Con respecto al auto-completado, cuando escribimos una palabra, aparece en la lista y luego presionamos Enter/Tab para aceptar, varios auto-completados aceptan el uso de TAB para desplazarse entre cada parámetro; por ejemplo, si escribimos Switch nos aparece Switch-case, presionamos la tecla Enter y automáticamente se nos crea la sintaxis y nos posiciona el cursor para escribir el valor SwitchValue, si presionamos TAB nos moverá a CaseValue1 para modificarlo, luego a Statements1.




Algunos enlaces


User avatar
Flipeador
Posts: 943
Joined: 15 Nov 2014, 21:31
GitHub: Flipeador
Location: Argentina
Contact:

Re: AutoHotkey 2 & SublimeText 3 - ACTUALIZACIONES!

26 Mar 2018, 10:19

Se han hecho varias actualizaciones y correcciones no mencionadas anteriormente.


[2018-03-26] Actualizado a v2.0-a090-ae96c4a.
[2018-03-30] Se añadieron las funciones IsWindow, BGR2RGB y RGB2BGR. Se eliminaron algunas variables de AHKv1 de menus.
[2018-04-03] Estructura de directorios cambiada (releer las Instrucciones). Se ha corregido un error con las definiciones de Hotkeys. Otras correcciones y añadidos. Se añadió la detección de errores al utilizar funciones sin paréntesis de la forma Función, ...
[2018-04-07] Actualizado a v2.0-a093-f7548e0. Añadida variable A_AllowMainWindow entre otros. Mejor detección de Hotkeys.
[2018-04-08] Se han añadido las funciones Min, Max y la directiva SuspendExempt. Añadido auto-completar PI. Correcciones auto-completar Suspend. Sintaxis actualizada. Tema actualizado. Cambiado color de directivas y palabras claves por uno más claro. Muestra de sintaxis e imagen actualizadas. Añadido más detecciones de errores. Correcciones de resaltado en >> y <<.
[2018-04-14] Se ha subido el contraste a los colores de resaltado. Actualizado #IfWinXXX. Actualizada imagen y código AHK de vista previa.
[2018-04-20] Actualizado a v1.1.28.02-7+ga1186b3. Quitado resaltado de métodos y propiedades de objetos. Cambiado (apenas) el color de las variables incorporadas.
[2018-04-29] Actualizado a v2.0-a095-9f724c5.
[2018-05-20] Correcciones para Sublime Text 3.1.1, Build 3176. Descargas (portable): 32-Bit | 64-Bit.
[2018-06-15] Actualizado a v2.0-a097-60f26de.


Si te ha gustado el tema y utilizas esta sintaxis te agradecería un comentario, saber que le ha servido a otras personas sirve de motivación para seguir mejorando la sintaxis :)
Windws 1♂ Pro 64-Bits I make scripts for AHKv2 (my v2 compiler) & WIN_7+ Spanish Argentina SublimeText 3 & AHKv2
gladiator
Posts: 1
Joined: 11 Jun 2018, 04:53

Re: AutoHotkey 2 & SublimeText 3 - El mejor editor para tus Scripts +consejos [2018-05-20]

11 Jun 2018, 05:03

SublimeText es sin duda el mejor editor de código para programadores que existe actualmente en el mercado.
Edición mod: por favor no hagas spam con enlaces a otros sitios que nada tiene que ver con este tema, gracias.

Return to “General”

Who is online

Users browsing this forum: No registered users and 1 guest