PhpStorm live template变量默认值-文件目录

PhpStorm live template变量默认值-文件目录,phpstorm,live-templates,Phpstorm,Live Templates,我创建了使用变量的live模板,类似于: A::set($CATEGORY$,$MESSAGE$); 我想将变量$CATEGORY$的默认值设置为一个目录,即我使用此live模板的文件所在的目录。 有一个表达式文件名可以完成与我的任务相近的工作 因此,如果我在app\views\home\index.php文件中使用我的live模板,我希望获得$CATEGORY$-“home”的默认值。我怎样才能做到这一点呢?正如LazyOne所说,我已经使用GroovyScript实现了这一点。没有找到li

我创建了使用变量的live模板,类似于:

A::set($CATEGORY$,$MESSAGE$);
我想将变量$CATEGORY$的默认值设置为一个目录,即我使用此live模板的文件所在的目录。 有一个表达式文件名可以完成与我的任务相近的工作


因此,如果我在app\views\home\index.php文件中使用我的live模板,我希望获得$CATEGORY$-“home”的默认值。我怎样才能做到这一点呢?

正如LazyOne所说,我已经使用GroovyScript实现了这一点。没有找到live模板函数groovyScript将输出的值,但我的代码正在执行我想要的操作

解决方案:

String path = _editor.getVirtualFile().getPath();
Integer lastIndex = path.lastIndexOf('/');
Integer startIndex = path.substring(0,lastIndex).lastIndexOf('/')+1;
path.substring(startIndex,lastIndex);

从2017.x版PhpStorm支持的其中一个版本中,您可以自己从文件名函数返回的值中对home的这种提取进行编码,但没有内置的Live Template函数可以做到这一点。您可以查看一些信息。我遵循了LazyOne答案中的参考,但是如果我想制作一个通过文件名调用的脚本,我如何将文件路径作为参数传递并在脚本中接收它?我假设我将使用groovyScript~/my_文件filePath调用该脚本