Bookmarks, nos sirve para realizar para marcar uno o varios puntos en el código fuente. Cuando un prg tiene bastantes líneas de código es útil para moverse rápidamente
Color Highlight, lo indicaron en este foro y es todo un descubrimiento, muestra el color incluido en las llamadas a rgb
Git Graph, nos permite trabajar desde vscode con git en formato gráfico, tal como lo estabamos haciendo con sourcetree.
Tasks, muestra en la barra de estado enlace a todas las tareas que se han creado, lo que agiliza ejecutarlas (en la imagen anterior se puede apreciar que antes de Git Graph aparecen el nombre de las tareas que he creado (cargactag, alges, ….., build y lote) y sólo con pulsalas se ejecutan
Harbour. En archivo -> preferencias -> configuración, hemos incluido la ruta donde está instalado harbour y las carpetas con los includes para que vscode no esté mostrando continuamente errores.
Ctags, permite pulstado ctrl+t acceder directamente al prg donde está definido una function/procedure.
La información que muestra el complemento es ejecutar “ctags -R -f .tags”, esto genera desde la carpeta que estas ejecutandolo, incluyendo todas las subcarpetas (-R), un archivo .tags con las funciones/procedures que existan.
1º.- Tengo que indicar que busque usando el lenguaje harbour.
2º.- En mi caso, tenemos varias aplicaciones que comparten procedimientos y funciones, que están en librerías. Y la estructura parte de la carpeta Five.
De esta forma en D:\Five\Alges está la aplicación de gestión, en D:\Five\extalsis la librería extalsis, etc.
Por lo que hemos generado un bat que crea el .tags y es guardado en la carpeta (proyecto) desde donde lo ejecuto.
- Code: Select all Expand view RUN
- Del d:\five\filesprg.txt
Dir D:\five\*.prg /s /b >D:\Five\ctags\Harbour\FilesPrg.txt
Del .tags
D:\five\ctags\ctags.exe --options=D:\five\ctags\Harbour\Harbour.ctags --language-force=Harbour -L D:\Five\ctags\Harbour\FilesPrg.txt -f .tags
Se genera el archivo “filesprg.txt” con todos los prg haya de forma recursiva desde la carpeta D:\Five (donde están todas las carpetas de aplicaciones y librerías)
También se indica que hay que usar el lenguaje harbour, con Harbour.ctags
- Code: Select all Expand view RUN
- --langdef=Harbour
--langmap=Harbour:.prg.ch
--regex-Harbour=/^FUNCTION [\t]*([a-zA-Z0-9_]+)/\1/f,function/
--regex-Harbour=/^[Ff]unction [\t]*([a-zA-Z0-9_]+)/\1/f,function/
--regex-Harbour=/^FUNC [\t]*([a-zA-Z0-9_]+)/\1/f,function/
--regex-Harbour=/^[Ff]unc [\t]*([a-zA-Z0-9_]+)/\1/f,function/
--regex-Harbour=/^PROCEDURE [\t]*([a-zA-Z0-9_]+)/\1/p,procedure/
--regex-Harbour=/^[Pp]rocedure [\t]*([a-zA-Z0-9_]+)/\1/p,procedure/
--regex-Harbour=/^PROC [\t]*([a-zA-Z0-9_]+)/\1/p,procedure/
--regex-Harbour=/^[Pp]roc [\t]*([a-zA-Z0-9_]+)/\1/p,procedure/
--regex-Harbour=/^#DEFINE [\t]*([a-zA-Z0-9_]+)/\1/d,define/
--regex-Harbour=/^#[Dd]efine [\t]*([a-zA-Z0-9_]+)/\1/d,define/
--regex-Harbour=/CLASS [\t]*([a-zA-Z0-9_]+)/\1/c,class/
--regex-Harbour=/[Cc]lass [\t]*([a-zA-Z0-9_]+)/\1/c,class/
--regex-Harbour=/DATA [\t]*([a-zA-Z0-9_]+)/\1/m,data/
--regex-Harbour=/[Dd]ata [\t]*([a-zA-Z0-9_]+)/\1/m,data/
--regex-Harbour=/METHOD [\t]*([a-zA-Z0-9_]+)/\1/m,method/
--regex-Harbour=/[Mm]ethod [\t]*([a-zA-Z0-9_]+)/\1/m,method/
--regex-Harbour=/MESSAGE [\t]*([a-zA-Z0-9_]+)/\1/m,method/
--regex-Harbour=/[Mm]essage [\t]*([a-zA-Z0-9_]+)/\1/m,method/
El archivo .tags que se genera guarda las rutas absolutas de los prg.
En uestudio funcionaba perfectamente, pero en vscode necesita que la ruta sea relativa.
Por lo que después de generar el archivo .tags, lo abro y reemplazo todas las llamadas a D:/Five/ por ../
Y este bat está grabado como una tarea dentro de vscode para ejecutarla cada vez que interese.
Se puede generar tareas para todo visual code, y así no hay que ir generando las tareas genéricas proyecto a proyecto.
Tenemos 2 bat para generar el ejecutable. go32.bat (que ya indique que contiene en otro mensaje) y go32_lote.bat
Este último me permite compilar las librerías y el ejecutable a la vez y así no tengo que ir cambiando a las carpetas (proyectos) de las librería para hacer modificiaciones.
- Code: Select all Expand view RUN
- call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
c:\harbour\bin\hbmk2 d:\five\Extalsis\Extalsis.hbp -comp=msvc
c:\harbour\bin\hbmk2 Alges.hbp -comp=msvc
Todos los archivos .hbp los tengo con los comandos
-inc -> para que se compile sólo lo que ha variado
y -workdir=D:\Obj\fiveVSCode\Alges\vRelease\ -> indicado después del igual la ruta donde se almacenan los obj de cada proyecto.
Los obj los tengo separados del código fuente, para que ni git, ni las copias de seguridad los usen. Son archivos que siempre los podremos volver a generar.
El sistema de busquedas de vscode es muy potente.
Por defecto busca en la carpeta (proyecto) abierta, pero se puede indicar que las busquedas las realice en otras rutas (por ejemplo en todos los prg de las carpetas D:\Five)