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+