[Notes2-team] ** class viewer **
Brought to you by:
andersonrb
From: Anderson R. B. <no...@ig...> - 2003-12-10 16:45:16
|
Ontem encontrei um programa chamado CTAGS (http://ctags.sf.net/) que =E9 capaz de ler um arquivo de c=F3digo fonte = e criar um arquivo de "tags". Cada tag cont=E9m um indentificador, o seu tipo, a linha onde foi encontrado e alguma informa=E7=E3o a mais sobre ele. Um Exemplo: findPhpTags function 44 php.c static void=20 findPhpTags (void) findPythonTags function 152 python.c static void=20 findPythonTags (void) Este programa suporta muitas linguagens, boa parte das que vamos suportar= . Olhando os arquivos gerados pelo ctags (vejam os anexos) para Java e Delp= hi consegui pensar em formas de usar a sa=EDda dele para construir algo como= o "code explorer" do Delphi ou o "class viewer" do VC++. Ou seja, uma manei= ra de construir um treeview que mostra a estrutura do arquivo. Acredito que=20 no futuro poderemos usar o ctags tb=E9m para fazer o "code insight" do notes. O=20 problema =E9 que no ctags cada linguagem tem seus pr=F3prios tipos de indentificadores= . Em java temos para classes, m=E9todos e fields (var=EDaveis internas de uma=20 classe). Em Delphi temos apenas funcions e procedures (mas por causa da sintaxe do=20 delphi ser=E1 muito f=E1cil agrupar as fun=E7=F5es em classes) e o mesmo para outras=20 linguagens. Ou seja precisaremos ter um "filtro" para cada uma das linguagens. Os filtros=20 s=E3o f=E1ceis de ser implementados, mas =E9 preciso conhecer a linguagem para poder=20 cri=E1-lo. Eu poderia criar filtros para Delphi e Java (talvez javascript). Mas para as outras=20 (C/C++, php, asp, python, ruby, assembler, cobol, perl, etc., etc.) eu n=E3o saberia=20 nem por onde come=E7ar... Ent=E3o n=E3o sei se vale =E0 pena trabalhar nisto... s=F3 s= ei que=20 ter este "code explorer" seria uma feature que muitos programadores iriam adorar... Ab. Anderson --=20 Anderson Rodrigues Barbieri -------------------------------------------- #Equipe do Notes - Coordenador/Desenvolvedor { TAndInfo } ICQ #149391850 / no...@ig... Notes - http://notes.codigolivre.org.br NotesDev - http://notes2.sf.net/dev F=F3rum - http://notes2.sf.net/forum |