Выделение синтаксиса Jenkinsfile в PyCharm Idea

До сих пор я не мог найти способ включить подсветку синтаксиса для jenkinsfile в PyCharm. Кто-нибудь знает, как это сделать? Я специально использую скриптовый конвейер.

Ответ 1

К сожалению, в настоящее время Pycharm не поддерживает подсветку синтаксиса Groovy/Jenkinsfile.

Хотя это не является официальным ответом на ваш вопрос, оно предоставляет обходной путь для тех, кто заинтересован.

Установите IntelliJ IDEA, версию сообщества можно бесплатно загрузить с intelliJ

После установки откройте File--> Настройки → Editor--> Файл Types--> Groovy, и вы можете связать Jenkinsfile с синтаксисом Groovy, добавив Jenkinsfile * в Groovy "Зарегистрированные шаблоны":

enter image description here

Слово мудрому: не открывайте Jenkinsfile прямо в своем проекте Pycharm с IDEA. Он начнет запись в папку ".idea" и вызовет конфликт с IDE pyCharm. Мне нравится вставлять/вставлять ссылки на мой Jenkinsfile в подкаталог папки с именем jenkinsfiles. Поэтому, если у меня есть проект с именем ProjectA, я символически связываю файл Jenkins с..path../jenkinsfiles/ProjectA/Jenkinsfile. Затем я открываю..path../jenkinsfiles/в IDEA и могу оттуда управлять всеми файлами Jenkinsfiles для всех моих проектов.

Ответ 2

Следующий тип файла xml выделит синтаксис Jenkinsfile в PyCharm

JFHighlight

создайте новый Jenkinsfile.xml, скопируйте следующий XML:

<filetype binary="false" description="Jenkinsfile support" name="Jenkinsfile">
  <highlighting>
    <options>
      <option name="LINE_COMMENT" value="//" />
      <option name="COMMENT_START" value="/*" />
      <option name="COMMENT_END" value="*/" />
      <option name="HEX_PREFIX" value="" />
      <option name="NUM_POSTFIXES" value="" />
      <option name="HAS_BRACES" value="true" />
      <option name="HAS_BRACKETS" value="true" />
      <option name="HAS_PARENS" value="true" />
      <option name="HAS_STRING_ESCAPES" value="true" />
      <option name="LINE_COMMENT_AT_START" value="true" />
    </options>
    <keywords keywords="def;else;if;import;print;return" ignore_case="true" />
    <keywords2 keywords="node" />
    <keywords3 keywords="field;library;stage;string" />
    <keywords4 keywords="try;catch;finally" />
  </highlighting>
  <extensionMap>
    <mapping pattern="Jenkinsfile" />
  </extensionMap>
</filetype>

и поместите его под

macOS

~/Library/Preferences/PyCharmXX/filetypes

копия Linux в

/.PyCharmXX/config/filetypes

Win копия на

<User home>\.PyCharmXX\config\filetypes

https://github.com/galCohen88/pycharm-jenkinsfile

Ответ 3

Возможно. Мы можем добавить отличный пакет TextMate в PyCharm. К сожалению PR для поддержки Jenkinsfile ждал, поэтому нам нужно внести некоторые изменения в пакет вручную.

  1. Загрузите и распакуйте https://github.com/textmate/groovy.tmbundle/archive/master.zip
  2. path_to_unpacked_package/Groovy.tmLanguage файл path_to_unpacked_package/Groovy.tmLanguage в редакторе и добавьте <string>Jenkinsfile</string> после строки <string>gvy</string>
  3. Откройте PyCharm-> Настройки-> Пакеты TextMate и добавьте модифицированный groovy.tmbundle

Основан на этом ответе и протестирован на PyCharm 2019.1.2 Pro

PS В качестве альтернативы можно использовать эту вилку без каких-либо модификаций.
PPS от @jeff-welling comment: если в настройках нет TextMate Bundles, следуйте этой инструкции для его установки
Pycharm 2019.2 changelog: PyCharm теперь будет выделять синтаксис файлов Windows.bat, С#, C++, Groovy, Lua, Makefiles и т.д.

Ответ 5

Вы не можете связать Jenkinsfile с Groovy в PyCharm, но вы можете связать их с Java. Не идеально, но синтаксис достаточно похож, чтобы быть полезным для простых файлов.

Для этого (в PyCharm 2018.3):

PyCharm> Настройки> Редактор> Типы файлов> Выберите "Java" в разделе "Распознанные типы файлов"> Нажмите "+"> "Тип Jenkinsfile"