У меня есть конвейер Jenkins разделяемая библиотека , которая задает глобальную переменную foo
, которая предоставляет два метода.Один из них не имеет аргументов, другой имеет один необязательный аргумент:
/ vars / foo.groovy
def getBarOne() {
//...
}
def getBarTwo(String value = '') {
//...
}
Теперь я хочу предоставить файл IntellJ GSDLкоторый поддерживает полезное завершение кода для обоих этих методов.(GSDL, предоставленный моим Jenkins, содержит только определение для глобальной переменной, но не для ее методов, поэтому я пытаюсь добавить это.)
pipeline.gsdl (от Jenkins)
//The global script scope
def ctx = context(scope: scriptScope())
contributor(ctx) {
//...
property(name: 'foo', type: 'org.jenkinsci.plugins.workflow.cps.global.UserDefinedGlobalVariable')
}
//..
pipe.gsdl (проставлен мной)
//The global script scope
def ctx = context(scope: scriptScope())
contributor(ctx) {
//...
property(name: 'foo', type: 'org.jenkinsci.plugins.workflow.cps.global.UserDefinedGlobalVariable')
}
def uservarCtx = context(ctype: 'org.jenkinsci.plugins.workflow.cps.global.UserDefinedGlobalVariable')
contributor (uservarCtx) {
method name: 'getBarOne', type: 'java.lang.String', params: [:]
method name: 'getBarTwo', params: [value:'java.lang.String'], type: 'List<String>'
}
//..
Пока все хорошо.
Однако завершение кода в моем Jenkinsfile невполне удовлетворительно, как предполагает
Для getBarOne()
предлагается как .barOne
, так и .getBarOne()
;для getBarTwo(..)
предлагается только .getBarTwo(String value)
, хотя аргумент является необязательным.
Как я могу указать в файле GDSL, что аргумент является необязательным, так что мне предложили все три (допустимые groovy) опции: barTwo
, getBarTwo()
и getBarTwo(String value)
?(К сожалению, серия «GDSL AWESOMENESS» не помогла.)