【问题标题】:How to use for inside IntelliJ Live Template?如何在 IntelliJ Live Template 内部使用?
【发布时间】:2018-10-12 07:40:28
【问题描述】:

我正在尝试编写一个连接字符串的简单 Groovy 脚本。 此 Groovy 脚本旨在用作 IntelliJ 实时模板中的变量并生成一些代码。

当我将 $variableResolvedWithGroovyScript$ 设置为具有以下值时:

groovyScript("def elements=[\"firstElem\",\"secondElem\",\"thirdElem\"];  
          String result=\"\";  
          for (String element : elements) {      
              result=result+element;        
          }        
          return result;"
, clipboard())

我得到以下错误:

startup failed:
Script1.groovy: 1: expecting EOF, found 'return' @ line 1, column 183.
   lt+element;         }         return res
                             ^

1 error

但是,如果我尝试删除 for 大括号({}),它可以在没有任何问题:

groovyScript("def elements=[\"firstElem\",\"secondElem\",\"thirdElem\"];  
          String result=\"\";  
          for (String element : elements)      
              result=result+element;
          return result;"
, clipboard())

如果我采用上述脚本并在 Groovy 控制台中运行它,它可以正常工作,所以我认为这是一个实时模板问题。 我试图以与转义引号相同的方式转义大括号,但没有任何运气。

如何在 Live Template 中编写 for(包含多个指令)?

【问题讨论】:

标签: intellij-idea groovy jetbrains-ide live-templates


【解决方案1】:

我设法通过从磁盘加载 Groovy 脚本使其工作。因此,而不是 $variableResolvedWithGroovyScript$ 的值,即:

groovyScript("def elements=[\"firstElem\",\"secondElem\",\"thirdElem\"];  
      String result=\"\";  
      for (String element : elements) {      
          result=result+element;        
      }        
      return result;"
, clipboard())

我只是用过:

groovyScript("d:\\Some\\Path\\Concatenate.groovy" , clipboard())

d:\Some\Path\Concatenate.groovy 与大括号一起工作,我还能够定义新方法等等。

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 2022-08-19
    • 1970-01-01
    • 2015-04-06
    • 2019-05-23
    • 1970-01-01
    相关资源
    最近更新 更多