PHPDoc no Komodo Edit

Já a algum tempo estou usando o Komodo Edit que por sinal tem me deixado muito satisfeito.

Porém, por ser uma versão gratuita, não tem uma penca de funcionalidades, uma delas é a documentação do código PHP.

Para solucionar esta dificuldade, resolvi escrever um macro para o komodo que monta o bloco de comentário apenas de funções e métodos do php.

Quem quiser ver o código do macro na integra, continue lendo este artigo ou apenas faça o download do pacote.

A macro foi escrita em Javascript.

  1. if (komodo.view) { komodo.view.setFocus() };
  2.  
  3. scimoz = ko.views.manager.currentView.scimoz;
  4. ko.commands.doCommand('cmd_blockSelect')
  5. //scimoz.lineEnd();
  6. //scimoz.homeExtend();
  7.  
  8. line = scimoz.selText
  9. indent = line.match(/^(\s*)/)[0];
  10.  
  11. scimoz.home();
  12.  
  13. function kphpdoc_addText (str) {
  14. scimoz.insertText(scimoz.currentPos, indent + str + '\n');
  15. scimoz.lineDown()
  16. }
  17.  
  18. function kphpdoc_parse_params(str) {
  19. er = /(?:(\w+)\s+)?(&\s*)?(\$\w+)/g;
  20. er2 = /(?:(\w+)\s+)?(?:&\s*)?(\$\w+)/;
  21. rs1 = str.match(er);
  22. for(i in rs1) {
  23. rs2 = rs1[i].match(er2);
  24. type = rs2[1] || 'mixed';
  25. kphpdoc_addText(' * @param '+type+' '+rs2[2]);
  26. }
  27. }
  28.  
  29. function kphpdoc_func(data) {
  30. fin = data[1] || data[4];
  31. sta = data[2] || data[5];
  32.  
  33. kphpdoc_addText('/**');
  34. kphpdoc_addText(' * '+ data[7]);
  35. kphpdoc_addText(' *');
  36. if (sta) kphpdoc_addText(' * @static');
  37. if (fin) kphpdoc_addText(' * @final');
  38. if (data[3]) kphpdoc_addText(' * @access '+ data[3]);
  39.  
  40. kphpdoc_parse_params(data[8]);
  41.  
  42. if (line.match(/return/)) kphpdoc_addText(' * @return mixed');
  43. kphpdoc_addText(' **/');
  44. }
  45.  
  46. er_func = /^\s*(final\s+)?(static\s+)?(?:(public|private|protected)?\s+)?(final\s+)?(static\s+)?function\s+(&\s*)?(\w+)\s*\((.*)\)\s*\{?/;
  47. if (rs = line.match(er_func)) {
  48. kphpdoc_func(rs);
  49. }

Caso você encontre algum erro ou tenha alguma sugestão de melhoria, é só falar...

t+

AnexoTamanho
Binary Data KPHPDOC.kpz1.9 KB