gpt4 book ai didi

intellij-idea - IDEA GDSL 如何为文件夹中的所有文件(类)添加方法定义?

转载 作者:行者123 更新时间:2023-12-04 00:46:48 31 4
gpt4 key购买 nike

在我的 Grails 应用程序中,有一个文件夹 grails-app/mongoDomain。在这个文件夹中有几个类也在各种包中。

我想为文件夹 grails-app/mongoDomain 中的所有类添加一个方法“save()”的 GDSL 定义。

我已经成功地将这个方法添加到一个类中,但是在 grails-app/mongoDomain 中的所有类中添加任何方法?.
.
我试过这样做,但没有成功..

def mongoDomainContext = context(pathRegexp: /.*grails-app\/mongoDomain.*/)

contributor(mongoDomainContext) {
method(name: 'save', type: 'void', params: [closure: { }])
}

但是上面的代码没有起作用,正确的方法是什么??

.
.
问候库沙尔

最佳答案

不幸的是,还没有这样的 GDSL 原语。在 Griffon 中,他们有以下使用未记录功能的 GDSL 片段:

['Controller', 'Model', 'View', 'Service'].each { type ->
String artifactPath = type.toLowerCase() + 's'
contributor(ctype: PsiJavaPatterns.psiClass().withName(PlatformPatterns.string().matches(/.*${type}/))) {
def path = psiClass.containingFile.originalFile.virtualFile.path
if (path =~ ".*/*griffon-app/${artifactPath}/.*") {
delegatesTo(findClass("griffon.core.Griffon${type}"))

if (type == 'View') {
addNodeContributions(delegate)
}
}
}

它们匹配类名及其路径,您只需要第二部分,在贡献者调用中。

关于intellij-idea - IDEA GDSL 如何为文件夹中的所有文件(类)添加方法定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8440837/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com