Por un lado están los autocódigos. Ya hablé de ellos en otro post, así que no voy a volver a explayarme. Si no saben lo que son, escriban "fori(N)" (reemplazando N por lo que quieran) y presionen la tecla Tab justo después de cerrar el paréntesis. Tengo que decir que agregarlos me llevó bastante tiempo porque no me ponía de acuerdo conmigo mismo acerca de cuál sería la forma menos intrusiva de invocarlos (problema cuya solución inspiró NetBeans si mal no recuerdo a través de un comentario de un usuario). Pero una vez implementados, resultaron mucho más útiles de lo que imaginaba, y ahora no vivo sin ellos. Pueden seguir el link que puse antes para ver cuales hay configurados por defecto y cómo definir nuevos con lo que ustedes quieran o necesiten.
Algo nuevo y que también me agilizó mucho el desarrollo, sobre todo en proyectos, es la opción "Implementar funciones/métodos faltantes" del menú herramientas. El atajo es Ctrl+Shift+H, y lo que hace es buscar qué métodos o funciones tienen su prototipo declarado en algún .h, pero no tienen su implementación en ningún lado, para luego agregar esas implementaciones automáticamente. Supongamos que tenemos una clase con su .h y su .cpp, y tenemos que agregar unos cuantos métodos. Pues bien, vamos al .h y agregamos todos los prototipos, luegos vamos al .cpp (con la tecla F12), y al presionar Ctrl+Shift+H ZinjaI mostrará una ventana con la lista de métodos declarados pero sin implementar aún. Al hacer click en aceptar, agregará automáticamente todas las implementaciones en blanco para esos métodos al final del archivo (tarea tediosa y repetitiva de hacer manualmente). En la última versión de ZinjaI hice algunos cambios en el parser para que ya no confunda las macros como el DECLARE_EVENT_TABLE de wxWidgets con métodos, pero aún existe una limitación en relación a las clases anidadas (clases definidas dentro de otras clases, cosa que el parser que uso no me informa), en cuyo caso puede que la lista de métodos faltante sugerida no sea 100% correcta.
Se muestran tachadas las lineas que no se compilan debido a los #if..., y en amarillo la
instrucción que realmente se compila al reemplazar la llamada a la macro _lock_elements_list de la linea 989
Otra novedad en la última versión de ZinjaI es la posibilidad de crear más fácilmente nuevas plantillas. Hay un ítem "Guardar como nueva plantilla..." en el menú "Herramientas". Si lo que tenemos abierto en el momento es un programa simple, crea una plantilla de programa simple, mientras que si es un proyecto, crea un proyecto. En cualquier caso la plantilla guardará el/los fuentes, la ubicación del cursor, las opciones de compilación, etc. Estas plantillas van a parar a la carpeta $HOME/.zinjai/templates en GNU/Linux, y $HOME/zinjai/templates en Windows (donde $HOME será usualmente la carpeta del usuario en Users o Documents And Settings según la versión de Windows). Estando allí, las plantillas están disponibles solo para ese usuario. Si las movemos a la carpeta templates de la instalación de ZinjaI (cosa que tal vez requiera permisos de administrador) pasarán a estar disponibles para todos los usuarios.
Las plantillas de proyecto sirven para crear proyectos, y las de programas simples para crear programas simple, obviamente. Pero las plantillas de programas simples también sirven para configurar otros programas simples. Supongamos que creamos un programa simple (un cpp sin proyecto) con la plantilla de OpenGL. En esta caso, gracias a la plantilla, ZinjaI configurará las opciones de compilación necesarias para las bibliotecas relacionadas a OpenGL y sus dependencias. Pero cuando guardemos el programa, por no tener un archivo de proyecto (solo se guarda el fuente de un progama simple), esta configuración se pierde. Cuando lo abranos nuevamente, no podremos recompilarlo sin esta configuración. Pero si tenemos la plantilla, podemos ir a las opciones de compilación (ítem "Opciones..." del menú "Ejecución"), hacer click en el botón de los tres puntos que está junto al campo "Parametros extra para el compilador" y buscar al final del menú que aperece la opción "Copiar de plantilla" para poder configurar la compilación del programa simple que acabamos de abrir igual que la de alguna de las plantillas en dos clicks. Respecto a los proyectos, en versiones futuras de ZinjaI tendremos la posibilidad de hacer algo similar. Para agregar en un proyecto ya creado configuraciones de otras plantillas, verán un botón en la pestaña Bibliotecas de las opciones de compilación del proyecto, pero esto aún no está disponible.
Copia de los argumentos de compilación de una plantilla a un programa abierto.
Finalmente, un atajo que olvidé mencionar en los posts anteriores, y que está presente en la mayoría de los IDEs es Ctrl+Espacio. Este atajo invoca al menú de autocompletado, ese menú que aparece luego de ingresar la tercer letra de una palabra, o al ingresar el . o el > de la flecha para referenciar a un método o atributo de un objeto. Y en este caso también funciona para mostrar el calltip, ese cartelito emergente amarillo con los prototipos de las funciones/métodos que aparece luego de abrir un paréntesis o ingresar una coma en una lista de argumentos.
Espero que estén aprovechando estos tips y acostumbrándose a estos atajos. Pueden tener una lista bastante completa de atajos para imprimir y/o utilizar como referencia si buscan "atajos" en la ayuda de ZinjaI. En la cuarta parte, voy a comentar algunos aspectos configurables del IDE, para que puedan adaptar su comportamiento a lo que les resulte más cómodo o útil.
Este post es continuación de Tips para convertirse en un ZinjaI Master (parte 2) y sigue en Tips para convertirse en un ZinjaI Master (parte 4)
lol
ResponderEliminar