vscode hbmk2 vcvarsall

Re: vscode hbmk2 vcvarsall

Postby fgondi » 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
ImageImage

Color Highlight, lo indicaron en este foro y es todo un descubrimiento, muestra el color incluido en las llamadas a rgb
Image

Git Graph, nos permite trabajar desde vscode con git en formato gráfico, tal como lo estabamos haciendo con sourcetree.
Image

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.
Image

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
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
--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 ../
Image

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.
Image

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
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)
Image
Last edited by fgondi on Thu Sep 01, 2022 1:33 pm, edited 1 time in total.
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: vscode hbmk2 vcvarsall

Postby fgondi » 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
Image
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
Image

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

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.
Image
Last edited by fgondi on Thu Sep 01, 2022 1:29 pm, edited 1 time in total.
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: vscode hbmk2 vcvarsall

Postby Antonio Linares » Thu Sep 01, 2022 10:55 am

Buenisimo, Fernando

Muchísimas gracias

Un abrazo
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: vscode hbmk2 vcvarsall

Postby fgondi » Fri Sep 02, 2022 7: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.

Image
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: vscode hbmk2 vcvarsall

Postby Antonio Linares » Fri Sep 02, 2022 3:17 pm

genial!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 83 guests