Как использовать для внутри IntelliJ Live шаблона? - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь написать простой скрипт Groovy, который объединяет строки.Этот сценарий Groovy предназначен для использования в качестве переменной в шаблоне IntelliJ Live и создания некоторого кода.

Когда я устанавливаю $ 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

Однако, если я попытаюсь удалить фигурные скобки ( { и } ) он работает без проблем:

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

Если я возьму приведенный выше скрипт и запусту его в Groovy Console, он будет работать без проблем, поэтому я предполагаю, что это проблема с живым шаблоном.Я пытался убрать скобки таким же образом, как и кавычки, но безуспешно.

Как я могу написать for (содержащий более одной инструкции) внутри Live Template?

1 Ответ

0 голосов
/ 12 октября 2018

Мне удалось заставить его работать, загрузив скрипт 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 работал с фигурными скобками, и я также мог определять новые методы и т. Д.

...