FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour vscode hbmk2 vcvarsall
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: vscode hbmk2 vcvarsall
Posted: Thu Sep 01, 2022 10:03 AM
He ido intentado adaptar el sistema a lo que usaba en uestudio.
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 (fw): Select all Collapse
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 (fw): Select all Collapse
--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 (fw): Select all Collapse
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)
Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: vscode hbmk2 vcvarsall
Posted: Thu Sep 01, 2022 10:18 AM
En la creación de un nuevo proyecto

1º.- Creamos físicamente la carpeta

2º.- Abrimos la carpeta con vscode y le indicamos que va a contener lenguaje harbour

Esto genera la carpeta .vscode

3º.- Copiamos de otro proyecto las tareas y los bat y el hbp a esta carpeta, para luego modificarlos y personalizarlos.

4º.- Inicializamos el repositorio git


5º.- Grabamos el proyecto en project manager, que nos permite cambiar de proyecto con 2 click


6º.- Cada vez que creamos un nuevo prg, verificamos en la parte inferior derecha de vscode que figure "windows 1252" y "Harbour", por defecto es este formato, pero mejor garantizarlo.
Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: vscode hbmk2 vcvarsall
Posted: Thu Sep 01, 2022 10:55 AM

Buenisimo, Fernando

Muchísimas gracias

Un abrazo

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: vscode hbmk2 vcvarsall
Posted: Fri Sep 02, 2022 07:49 AM
Se me paso indicar que en uestudio usabamos bastante la opción "lista de funciones" para ver todos los procedimientos, funciones, métodos, etc. de un prg, y poder desplazarnos hasta su definición mas rápido.

En vscode con Ctrl +Shift + O se puede ir a todas las definiciones (incluidas variables) dentro del prg mostrado.
Y si se añade ":" aparecen sólo las deficiones de funciones, procedimientos y métodos del prg.

Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: vscode hbmk2 vcvarsall
Posted: Fri Sep 02, 2022 03:17 PM

genial!

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion