Formatar fonte
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
Eu comecei a ficar cansado de ajustar os fontes da OOHG manualmente, e acabei criando um formatador de fontes.
Estou utilizando encima dos exemplos da OOHG, e conferindo um a um.
Até agora o resultado é satisfatório.
Por enquanto, a parte que faço manualmente, resultado do formatador é:
- retirar linhas em branco entre declarações LOCAL
- retirar a linha em branco antes de RETURN quando está dentro de um IF ou algo assim
De resto, que não dá pra fazer automático, pelo menos por enquanto:
- retirar comentários inúteis
- retirar no final do arquivo o comentário /* EOF */
Se der, vou ajustar pelo menos a primeira parte, mas comparado ao que estava antes, tá bom até demais... rs
Já faz todo alinhamento do fonte, e também Upper/Lower pra determinadas palavras.
E NÃO mexe na parte de fonte C, que não é formatada, e pode ser normal em fontes HMG.
O fonte em C é identificado por #pragma begindump e #pragma enddump.
Pode ter vários blocos de C e PRG dentro do fonte, vai formatar só as partes referentes a PRG.
Foi um desafio legal.... rs
Estou utilizando encima dos exemplos da OOHG, e conferindo um a um.
Até agora o resultado é satisfatório.
Por enquanto, a parte que faço manualmente, resultado do formatador é:
- retirar linhas em branco entre declarações LOCAL
- retirar a linha em branco antes de RETURN quando está dentro de um IF ou algo assim
De resto, que não dá pra fazer automático, pelo menos por enquanto:
- retirar comentários inúteis
- retirar no final do arquivo o comentário /* EOF */
Se der, vou ajustar pelo menos a primeira parte, mas comparado ao que estava antes, tá bom até demais... rs
Já faz todo alinhamento do fonte, e também Upper/Lower pra determinadas palavras.
E NÃO mexe na parte de fonte C, que não é formatada, e pode ser normal em fontes HMG.
O fonte em C é identificado por #pragma begindump e #pragma enddump.
Pode ter vários blocos de C e PRG dentro do fonte, vai formatar só as partes referentes a PRG.
Foi um desafio legal.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
Eureka !!! Menos um.... rs
fonte de entrada:
fonte de saída:
O problema era quando tinha isso, de várias declarações de variáveis em seguida.
Agora acresentar o skip na lista de uppercase... rs
fonte de entrada:
Código: Selecionar todos
procedure x
local a, ;
b
local c
local d
do while x
skip
enddo
return
Código: Selecionar todos
PROCEDURE x
LOCAL a, ;
b
LOCAL c
LOCAL d
DO WHILE x
skip
ENDDO
RETURN
Agora acresentar o skip na lista de uppercase... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
Mas a parte que vão gostar mesmo é esta:
entrada:
saída:
A única parte deformada aí do fonte, não sei se tem a ver com Windows 10 e Edge, foi o post que deformou.... rs
entrada:
Código: Selecionar todos
function Main
request DBFCDX , DBFFPT
VAR := 'Test'
set century on
set deleted on
set browsesync on
define window Form_1 ;
AT 0,0 ;
WIDTH 640 HEIGHT 480 ;
TITLE 'ooHG Browse Demo)' ;
MAIN NOMAXIMIZE ;
ON INIT OpenTables() ;
ON RELEASE CloseTables()
define main menu
POPUP 'File'
ITEM 'Set Browse Value' ACTION Form_1.Browse_1.Value := Val ( InputBox ('Set Browse Value','') )
ITEM 'Get Browse Value' ACTION MsgInfo ( Str ( Form_1.Browse_1.Value ) )
ITEM 'Refresh Browse' ACTION Form_1.Browse_1.Refresh
SEPARATOR
ITEM 'Exit' ACTION Form_1.Release
END POPUP
POPUP 'Help'
ITEM 'About' ACTION MsgInfo (oohgversion()+" "+hb_compiler())
END POPUP
END MENU
DEFINE STATUSBAR
STATUSITEM ''
END STATUSBAR
@ 10,10 BROWSE Browse_1 ;
WIDTH 610 ;
HEIGHT 390 ;
HEADERS { 'Code' , 'First Name' , 'Last Name', 'Birth Date', 'Married' , 'Biography' } ;
WIDTHS { 150 , 150 , 150 , 150 , 150 , 150 } ;
WORKAREA &var ;
FIELDS { 'Test->Code' , 'Test->First' , 'Test->Last' , 'Test->Birth' , 'Test->Married' , 'Test->Bio' } ;
TOOLTIP 'Browse Test' ;
ON CHANGE ChangeTest() ;
JUSTIFY { BROWSE_JTFY_LEFT,BROWSE_JTFY_CENTER, BROWSE_JTFY_CENTER, BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER} ;
DELETE ;
LOCK ;
EDIT INPLACE
on key f10 of form_1 action {|| _oohg_calldump()}
end window
center window Form_1
Form_1.Browse_1.SetFocus
activate window Form_1
return nil
Código: Selecionar todos
FUNCTION Main
REQUEST DBFCDX , DBFFPT
VAR := 'Test'
SET CENTURY ON
SET deleted on
SET browsesync on
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 640 HEIGHT 480 ;
TITLE 'ooHG Browse Demo)' ;
MAIN NOMAXIMIZE ;
ON INIT OpenTables() ;
ON RELEASE CloseTables()
DEFINE MAIN MENU
POPUP 'File'
ITEM 'Set Browse Value' ACTION Form_1.Browse_1.Value := Val ( InputBox ('Set Browse Value','') )
ITEM 'Get Browse Value' ACTION MsgInfo ( Str ( Form_1.Browse_1.Value ) )
ITEM 'Refresh Browse' ACTION Form_1.Browse_1.Refresh
SEPARATOR
ITEM 'Exit' ACTION Form_1.Release
END POPUP
POPUP 'Help'
ITEM 'About' ACTION MsgInfo (oohgversion()+" "+hb_compiler())
END POPUP
END MENU
DEFINE STATUSBAR
STATUSITEM ''
END STATUSBAR
@ 10,10 BROWSE Browse_1 ;
WIDTH 610 ;
HEIGHT 390 ;
HEADERS { 'Code' , 'First Name' , 'Last Name', 'Birth Date', 'Married' , 'Biography' } ;
WIDTHS { 150 , 150 , 150 , 150 , 150 , 150 } ;
WORKAREA &var ;
FIELDS { 'Test->Code' , 'Test->First' , 'Test->Last' , 'Test->Birth' , 'Test->Married' , 'Test->Bio' } ;
TOOLTIP 'Browse Test' ;
ON CHANGE ChangeTest() ;
JUSTIFY { BROWSE_JTFY_LEFT,BROWSE_JTFY_CENTER, BROWSE_JTFY_CENTER, BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER} ;
DELETE ;
LOCK ;
EDIT INPLACE
on key f10 of form_1 action {|| _oohg_calldump()}
END WINDOW
CENTER WINDOW Form_1
Form_1.Browse_1.SetFocus
ACTIVATE WINDOW Form_1
RETURN NIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Formatar fonte
Quintas,
Aproveitando a ideia, poderia até criar uma base de sintaxe com os nomes do tipo por exemplo
Capitalize seria para transformar a primeira letra em caixa alta e o restante em caixa baixa
Onde encontrar o tipo e uppercase for .t. ou .f. transforma em caixa alta/baixa
É só uma ideia
Aproveitando a ideia, poderia até criar uma base de sintaxe com os nomes do tipo por exemplo
Código: Selecionar todos
TIPO UPPERCASE CAPITALIZE
LOCAL .T. .F.
PRIVATE .T. .F.
DO WHILE .T. .F.
Onde encontrar o tipo e uppercase for .t. ou .f. transforma em caixa alta/baixa
É só uma ideia
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
O ideal é ajustar o do Harbour mesmo.
É que fonte com linguagem C dentro não dá pra usar ele.
ajustar maiúscula minúscula é complicado.
Por exemplo cComando := "do case"
Já não poderia formatar isso entre aspas, senão vai causar problema.
Um problema que tive durante os testes:
do while ! eof() ;
skip
enddo
isso acima funciona, desde que não seja apagada a linha em branco.
senão vai parecer que o formatador sumiu com alguma linha de continuação.... rs
Não é fácil prever coisas do usuário.
Formatar o básico já tá bom demais.
O UPPERCASE, faço só da PRIMEIRA PALAVRA da linha, pra evitar problemas.
E não é que isso já causa um grande impacto ao visualizar o fonte !
É que fonte com linguagem C dentro não dá pra usar ele.
ajustar maiúscula minúscula é complicado.
Por exemplo cComando := "do case"
Já não poderia formatar isso entre aspas, senão vai causar problema.
Um problema que tive durante os testes:
do while ! eof() ;
skip
enddo
isso acima funciona, desde que não seja apagada a linha em branco.
senão vai parecer que o formatador sumiu com alguma linha de continuação.... rs
Não é fácil prever coisas do usuário.
Formatar o básico já tá bom demais.
O UPPERCASE, faço só da PRIMEIRA PALAVRA da linha, pra evitar problemas.
E não é que isso já causa um grande impacto ao visualizar o fonte !
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
A propósito, tá na minha pasta de rascunhos (drafts)
https://github.com/JoseQuintas/JoseQuin ... gformat.ch
https://github.com/JoseQuintas/JoseQuin ... format.prg
tá ajustado pra trabalhar na pasta de exemplos da OOHG, e obrigar a digitar BACKUP_IS_OK
É que nunca se sabe o estrago que pode fazer em outros fontes..... rs
No meu caso, como está controlado pelo git, é só resetar as alterações em caso de problema.
https://github.com/JoseQuintas/JoseQuin ... gformat.ch
https://github.com/JoseQuintas/JoseQuin ... format.prg
tá ajustado pra trabalhar na pasta de exemplos da OOHG, e obrigar a digitar BACKUP_IS_OK
É que nunca se sabe o estrago que pode fazer em outros fontes..... rs
No meu caso, como está controlado pelo git, é só resetar as alterações em caso de problema.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
Cheguei numa parte dos fontes que ainda tem problema, o formatador ainda não resolveu.
dá problema nos #ifdef e METHOD
acaba ficando desalinhado depois deles.
Até aí... tudo bem... melhor ajustar poucos fontes a mão do que todos.... rs
dá problema nos #ifdef e METHOD
acaba ficando desalinhado depois deles.
Até aí... tudo bem... melhor ajustar poucos fontes a mão do que todos.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
Cheguei a conclusão que é quase impossível formatar fonte Clipper/Harbour/XHarbour.
Existe uma coisa chamada: palavra reservada, e isso não existe em Clipper/Harbour/xHarbour.
Exemplos:
Sempre que conserta uma coisa bagunça a outra..... rs
E se considerar que é fonte de LIB, nem dá pra imaginar o que pode ter em fonte de usuário..... rs
Vai servir só uma ajuda, e não uma solução.
Ficar enchendo de IFs... vai complicar cada vez mais.... e vai acabar não resolvendo.
De repente, deixar fácil de alterar, pra ajustar diferente pra cada fonte que aparecer.
Existe uma coisa chamada: palavra reservada, e isso não existe em Clipper/Harbour/xHarbour.
Exemplos:
Código: Selecionar todos
PAGE X
WIDTH 10
HEIGHT 10
END
PAGE := 5
Código: Selecionar todos
IF( x = 5 )
IF( x = 5, 10, 20 )
Código: Selecionar todos
DO WHILE ! Eof() ;
SKIP
ENDDO
Código: Selecionar todos
CASE := 10
Código: Selecionar todos
IF x = 10; Y = 20; ENDIF
IF x = 10; /* alguma notação */ ; y := 20 /* outra anotação */ ; ENDIF
Código: Selecionar todos
x := HB_INLINE { codigo fonte C }
E se considerar que é fonte de LIB, nem dá pra imaginar o que pode ter em fonte de usuário..... rs
Vai servir só uma ajuda, e não uma solução.
Ficar enchendo de IFs... vai complicar cada vez mais.... e vai acabar não resolvendo.
De repente, deixar fácil de alterar, pra ajustar diferente pra cada fonte que aparecer.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Formatar fonte
Bom dia...
Quintas...
Se você estiver com a minigui instalada.. dá um olhada nessa pasta... as vezes consegue tirar alguma idéia de lá...
C:\MiniGUI\UTILS\Code_ReIndent
Rubens
Quintas...
Se você estiver com a minigui instalada.. dá um olhada nessa pasta... as vezes consegue tirar alguma idéia de lá...
C:\MiniGUI\UTILS\Code_ReIndent
Rubens
"Eu e minha casa servimos ao Senhor e você
"
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
Olhem o tipo de fonte que tem pra formatar, não tem jeito, formatou errado.
Não se enganem... está formatado errado !!!!
Problemas:
1. Problema principal: mania de colocar espaço em função. Soma ( 2 )
2. Junto a esse, usar IF() ao invés de IIF()
Aí... não tem formatador que resolva... rs
A título de curiosidade, é o fonte miniwriter.prg, da HMG3.
A propósito... agora estou testando o formatador no fonte de TODAS as LIBs GUI pra ver o que dá.... rs
HMG3, HMG Extended, HWGUI e OOHG.
Por enquanto a falha é justamente em fonte que sai do normal, como esse acima.
Apenas acaba bagunçando a indentação, como pode ser visto acima.
Mas acho que até se fosse formatar "a mão", poderia acontecer o mesmo problema..... rs
Isso confunde.
Não se enganem... está formatado errado !!!!
Código: Selecionar todos
IF ( Form_1.miniwrite_1.FontBold , FORM_1.BOT_BOLD.PICTURE := "bold_on" , FORM_1.BOT_BOLD.PICTURE := "bold_off" )
IF ( Form_1.miniwrite_1.FontItalic , FORM_1.BOT_ITAL.PICTURE := "ital_on" , FORM_1.BOT_ITAL.PICTURE := "ital_off" )
IF ( Form_1.miniwrite_1.FontUnderline , FORM_1.BOT_SUBRA.PICTURE := "subra_on" , FORM_1.BOT_SUBRA.PICTURE := "subra_off" )
IF ( Form_1.miniwrite_1.FontStrikeOut , FORM_1.BOT_TACHA.PICTURE := "tach_on" , FORM_1.BOT_TACHA.PICTURE := "tach_off" )
IF ( Form_1.miniwrite_1.FontScript == RTF_SUBSCRIPT , ( FORM_1.BOT_SUB.PICTURE := "sub_on" , FORM_1.BOT_SUP.PICTURE := "sup_off" ), FORM_1.BOT_SUB.PICTURE := "sub_off" )
IF ( Form_1.miniwrite_1.FontScript == RTF_SUPERSCRIPT , ( FORM_1.BOT_SUP.PICTURE := "sup_on" , FORM_1.BOT_SUB.PICTURE := "sub_off" ) , FORM_1.BOT_SUP.PICTURE := "sup_off" )
1. Problema principal: mania de colocar espaço em função. Soma ( 2 )
2. Junto a esse, usar IF() ao invés de IIF()
Aí... não tem formatador que resolva... rs
A título de curiosidade, é o fonte miniwriter.prg, da HMG3.
A propósito... agora estou testando o formatador no fonte de TODAS as LIBs GUI pra ver o que dá.... rs
HMG3, HMG Extended, HWGUI e OOHG.
Por enquanto a falha é justamente em fonte que sai do normal, como esse acima.
Apenas acaba bagunçando a indentação, como pode ser visto acima.
Mas acho que até se fosse formatar "a mão", poderia acontecer o mesmo problema..... rs
Isso confunde.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
Ah sim....
Pra HMG3, e provavelmente HMG Extended e HWGUI.... só acrescentando palavras nas listas.
https://github.com/JoseQuintas/JoseQuin ... gformat.ch
Ainda resultados interessantes, já que muitos fontes precisam realmente de formatação.
Lembrando que pra maiúscula, somente se estiver no começo da linha.
Se só no começo já complica, imaginem se fosse mexer em qualquer posição da linha..... rs
Pra HMG3, e provavelmente HMG Extended e HWGUI.... só acrescentando palavras nas listas.
https://github.com/JoseQuintas/JoseQuin ... gformat.ch
Ainda resultados interessantes, já que muitos fontes precisam realmente de formatação.
Lembrando que pra maiúscula, somente se estiver no começo da linha.
Se só no começo já complica, imaginem se fosse mexer em qualquer posição da linha..... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
Alterei de novo.... rs
Agora coloquei em arquivo XML, assim nem precisa recompilar.
O programa busca o arquivo CFG na mesma pasta do EXE.
https://github.com/JoseQuintas/JoseQuin ... format.cfg
Faltou dizer:
Quando falha, a indentação fica bagunçada.
Aí é olhar o fonte, procurando o que causou a "bagunça".
Usando um exemplo acima, bagunçou em IF ( x=1, y := 2 )
Nesse caso foi só corrigir o fonte: iif( x=1, y := 2 ) e depois reformatar.
Ainda tem algumas coisas pra resolver, por exemplo METHOD.
É que na declaração da classe é de um jeito, e fora dela é de outro.
Como são muitos fontes pra corrigir, estou procurando salvar os que deram certo, pra reduzir a lista de pendência.
Como eu disse antes, formatar tudo que é fonte de LIB automaticamente, só por milagre.
Então usando do jeito que está, que já ajuda muito, pra resolver o resto depois.
E nesse meio tempo, o que der pra melhorar já estou melhorando.
Agora coloquei em arquivo XML, assim nem precisa recompilar.
O programa busca o arquivo CFG na mesma pasta do EXE.
https://github.com/JoseQuintas/JoseQuin ... format.cfg
Faltou dizer:
Quando falha, a indentação fica bagunçada.
Aí é olhar o fonte, procurando o que causou a "bagunça".
Usando um exemplo acima, bagunçou em IF ( x=1, y := 2 )
Nesse caso foi só corrigir o fonte: iif( x=1, y := 2 ) e depois reformatar.
Ainda tem algumas coisas pra resolver, por exemplo METHOD.
É que na declaração da classe é de um jeito, e fora dela é de outro.
Como são muitos fontes pra corrigir, estou procurando salvar os que deram certo, pra reduzir a lista de pendência.
Como eu disse antes, formatar tudo que é fonte de LIB automaticamente, só por milagre.
Então usando do jeito que está, que já ajuda muito, pra resolver o resto depois.
E nesse meio tempo, o que der pra melhorar já estou melhorando.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
E alterei de novo.... rs
Por XML acabou permitindo cometer erros.
Agora criei uma referência para o que vai na coluna zero.
Pelo menos isso acaba tratando cada PROCEDURE,FUNCTION em separado, o que reduziu erros de formatação.
Por XML acabou permitindo cometer erros.
Agora criei uma referência para o que vai na coluna zero.
Pelo menos isso acaba tratando cada PROCEDURE,FUNCTION em separado, o que reduziu erros de formatação.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
Sei que ainda tem coisas pra acertar, como por exemplo IF....;ENDIF na mesma linha.
Mas podem conferir o resultado comparando com o fonte das LIBs que cada um tem.
Exemplo, o superchief.prg, que tem mais de 2.500 linhas, e deve ter muitos dos comandos da HMG Extended
https://github.com/JoseQuintas/allgui/b ... erchef.prg
Nota:
Ainda não entrei nos fontes pra verificar, está tudo com o resultado direto do formatador.
Mas podem conferir o resultado comparando com o fonte das LIBs que cada um tem.
Exemplo, o superchief.prg, que tem mais de 2.500 linhas, e deve ter muitos dos comandos da HMG Extended
https://github.com/JoseQuintas/allgui/b ... erchef.prg
Nota:
Ainda não entrei nos fontes pra verificar, está tudo com o resultado direto do formatador.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formatar fonte
Sabem aquilo de quando tudo está pronto, e pensamos: só mais uma alteraçãozinha....
Pois é...
ferrou tudo.
Apagou dos fontes o fim de comentário: */
Isso quando o comentário está neste estilo ************************************** */
Vou ter que resetar a allgui, e começar tudo de novo.... rs
Pelo menos agora vai ser só salvar as pastas e rodar o formatador.... menos mal.
Pois é...
ferrou tudo.
Apagou dos fontes o fim de comentário: */
Isso quando o comentário está neste estilo ************************************** */
Vou ter que resetar a allgui, e começar tudo de novo.... rs
Pelo menos agora vai ser só salvar as pastas e rodar o formatador.... menos mal.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/