是否可以在IntelliJ中的活动模板中获取当前文件的完整路径?我尝试使用groovyScript("new File('.').absolutePath")函数,但它返回的是/Applications/IntelliJ IDEA.app/Contents/bin/.,而不是我希望的文件路径。谢谢你!
groovyScript("new File('.').absolutePath")
/Applications/IntelliJ IDEA.app/Contents/bin/.
tvokkenx1#
按docs(着重号矿):您可以使用具有多个参数的groovyScript宏。第一个参数是要执行的脚本文本或包含脚本的文件的路径。接下来的参数绑定到脚本内可用的_1、_2、_3、..._n变量。此外,脚本内还提供了_editor变量。此变量绑定到当前编辑器。_editor是EditorImpl的一个示例,它包含对VirtualFile的引用,该引用表示当前打开的文件。因此,以下脚本获取当前打开文件的完整路径。
_editor
EditorImpl
VirtualFile
groovyScript("_editor.getVirtualFile().getPath()")
或者,如果要获取相对于项目根目录的路径,请执行以下操作:
groovyScript("_editor.getVirtualFile().getPath().replace(_editor.getProject().getBaseDir().getPath(), \"\")")
ubof19bj2#
从IntelliJ IDEA 2019.3开始,Live Template宏filePath()和fileRelativePath()都是available。不再需要复杂的Groovy脚本宏。
filePath()
fileRelativePath()
2条答案
按热度按时间tvokkenx1#
按docs(着重号矿):
您可以使用具有多个参数的groovyScript宏。第一个参数是要执行的脚本文本或包含脚本的文件的路径。接下来的参数绑定到脚本内可用的_1、_2、_3、..._n变量。此外,脚本内还提供了_editor变量。此变量绑定到当前编辑器。
_editor
是EditorImpl
的一个示例,它包含对VirtualFile
的引用,该引用表示当前打开的文件。因此,以下脚本获取当前打开文件的完整路径。
或者,如果要获取相对于项目根目录的路径,请执行以下操作:
ubof19bj2#
从IntelliJ IDEA 2019.3开始,Live Template宏
filePath()
和fileRelativePath()
都是available。不再需要复杂的Groovy脚本宏。