PHPDoc no Komodo Edit

Tagged:  •    •    •  

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.

if (komodo.view) { komodo.view.setFocus() };

scimoz = ko.views.manager.currentView.scimoz;
ko.commands.doCommand('cmd_blockSelect')
//scimoz.lineEnd();
//scimoz.homeExtend();

line   = scimoz.selText
indent = line.match(/^(\s*)/)[0];

scimoz.home();

function kphpdoc_addText (str) {
  scimoz.insertText(scimoz.currentPos, indent + str + '\n');
  scimoz.lineDown()
}

function kphpdoc_parse_params(str) {
  er = /(?:(\w+)\s+)?(&\s*)?(\$\w+)/g;
  er2 = /(?:(\w+)\s+)?(?:&\s*)?(\$\w+)/;
  rs1 = str.match(er);
  for(i in rs1) {
    rs2 = rs1[i].match(er2);
    type = rs2[1] || 'mixed';
    kphpdoc_addText(' * @param '+type+' '+rs2[2]);
  }
}

function kphpdoc_func(data) {
  fin = data[1] || data[4];
  sta = data[2] || data[5];
 
  kphpdoc_addText('/**');
  kphpdoc_addText(' * '+ data[7]);
  kphpdoc_addText(' *');
  if (sta) kphpdoc_addText(' * @static');
  if (fin) kphpdoc_addText(' * @final');
  if (data[3]) kphpdoc_addText(' * @access '+ data[3]);
 
  kphpdoc_parse_params(data[8]);
 
  if (line.match(/return/)) kphpdoc_addText(' * @return mixed');
  kphpdoc_addText(' **/');
}

er_func = /^\s*(final\s+)?(static\s+)?(?:(public|private|protected)?\s+)?(final\s+)?(static\s+)?function\s+(&\s*)?(\w+)\s*\((.*)\)\s*\{?/;
if (rs = line.match(er_func)) {
  kphpdoc_func(rs);
}

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

t+

Média
(0 votes)
AnexoTamanho
KPHPDOC.kpz1.9 KB

Enviar novo comentário

O conteúdo deste campo é privado não será exibido publicamente.
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <pre> <br>
  • Linhas e parágrafos quebram automaticamente.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

Mais informações sobre opções de formatação

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
3 + 9 =
Resolva este simples problema de matemática e digite o resultado. Por exemplo para 1+3, digite 4 e não 5.