NetBeans代码模板,用于使用函数头中声明的所有参数

Sk8*_*ter 6 php netbeans

是否可以编写NetBeans代码模板来使用函数头中声明的所有参数(例如,使用这些变量调用另一个函数)参数的数量可以不同,因此它似乎并不容易.

例如,有时我想打印函数中的所有参数以进行调试.


这是一个示例用法(dsm()根据参数的数量多次调用函数):

function testModule_theme($existing, $type, $theme, $path) {
  dsm($existing, '$existing in ' . __FUNCTION__ . '()');
  dsm($type, '$type in ' . __FUNCTION__ . '()');
  dsm($theme, '$theme in ' . __FUNCTION__ . '()');
  dsm($path, '$path in ' . __FUNCTION__ . '()');

  return array(
    // ......
  );
}
Run Code Online (Sandbox Code Playgroud)

这是另一个:

function testModule_block_view($delta = '') {
  dsm($delta, '$delta in ' . __FUNCTION__ . '()');
  $block = array();
  // .....
  return $block;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,第一种情况有4个参数,第二种情况只有1个.参数的名称也会根据给定的函数而改变.

我已经编写了一个使用dsm()函数的代码模板:

ddsm代码模板

dsm($$${VARIABLE newVarName default="variables"}, '$$${VARIABLE} in '.__FUNCTION__.'()');
Run Code Online (Sandbox Code Playgroud)

这样我只需输入ddsm,点击Tab,然后我必须输入变量的确切名称.所以它将打印出以下内容:

dsm($variables, '$variables in ' . __FUNCTION__ . '()');
Run Code Online (Sandbox Code Playgroud)

之后,我可以更改variables部件,并键入另一个名称,并在字符串中使用相同的名称.一个例子:

使用ddsm代码模板

但是我仍然懒得键入那些东西:D,我很好奇在NetBeans中使用代码模板时是否有办法使用给定函数的所有参数.

xix*_*xao 2

这看起来确实很难。如果您知道在声明函数时将使用宏,则可以使用如下模板:

// shortcut dsmfun1
function ${FUNCTION_NAME}($$${PAR1}) {
  dsm($$${PAR1}, '$$${PAR1} in ' . __FUNCTION__ . '()');

  ${selection}${cursor}
}

...

// shortcut dsmfun4
function ${FUNCTION_NAME}($$${PAR1}, $$${PAR2}, $$${PAR3}, $$${PAR4}) {
  dsm($$${PAR1}, '$$${PAR1} in ' . __FUNCTION__ . '()');
  dsm($$${PAR2}, '$$${PAR2} in ' . __FUNCTION__ . '()');
  dsm($$${PAR3}, '$$${PAR3} in ' . __FUNCTION__ . '()');
  dsm($$${PAR4}, '$$${PAR4} in ' . __FUNCTION__ . '()');

  ${selection}${cursor}
}
Run Code Online (Sandbox Code Playgroud)

几个模板可以让您非常快速地声明,并且您只需键入参数名称一次。

如果您稍后添加这些宏,您可能需要查看此文档并实现您想要的行为(尽管这可能非常棘手)。

希望这可以帮助!