Xtext:为没有 src、src-gen 等的 DSL 创建项目向导
Xtext: Create a project wizard for the DSL without src, src-gen etc
我 运行 查看了一些有关为我的 dsl 语言创建新项目向导的信息,并通过添加
成功创建了这样的向导
fragment = ui.projectWizard.SimpleProjectWizardFragment2 {
generate = true
}
到我的工作流程。
但是,当使用该向导时,它还会创建不必要的文件和文件夹,例如 build.properties
、META-INF
、src
、src-gen
、JRE System Library
。
基本上我只想要一个与我的 DSL 关联的 空项目 。
我通过调用
成功删除了 META-INF
和 build.properties
try {
project.getFile("build.properties").delete(true, null);
project.getFolder("META-INF").delete(true, null);
} catch (CoreException e) {}
从我自定义 DSLProjectCreator2
中 enhanceProject(..)
的末尾开始(扩展 DSLProjectCreator
)。
但是,如果我使用这种方式删除 src
和 src-gen
,我会收到一个错误标记,指出缺少 src
和 src-gen
(但是这赢了'解决删除 JRE System Library
).
我该如何解决这个问题?
啊你启用向导的方式有点奇怪
newProjectWizardForEclipse = {
pluginProject = false
generate = true
}
不创建文件夹而不是删除它们怎么样。
class MyDslNewProjectWizardInitialContents {
@Inject
FileExtensionProvider fileExtensionProvider
def generateInitialContents(IFileSystemAccess2 fsa) {
fsa.generateFile(
"Model." + fileExtensionProvider.primaryFileExtension,
'''
/*
* This is an example model
*/
Hello Xtext!
'''
)
}
}
public class MyDslProjectCreatorCustom extends MyDslProjectCreator {
@Override
protected List<String> getAllFolders() {
return Collections.emptyList();
}
}
我不知道你为什么要创建一个 java 项目。你用xbase吗?绑定了哪个Project Factory?
生成的MyDslProjectCreator长什么样子?
它使用 JavaProjectFactory 还是 PluginProjectFactory
我 运行 查看了一些有关为我的 dsl 语言创建新项目向导的信息,并通过添加
成功创建了这样的向导 fragment = ui.projectWizard.SimpleProjectWizardFragment2 {
generate = true
}
到我的工作流程。
但是,当使用该向导时,它还会创建不必要的文件和文件夹,例如 build.properties
、META-INF
、src
、src-gen
、JRE System Library
。
基本上我只想要一个与我的 DSL 关联的 空项目 。
我通过调用
成功删除了META-INF
和 build.properties
try {
project.getFile("build.properties").delete(true, null);
project.getFolder("META-INF").delete(true, null);
} catch (CoreException e) {}
从我自定义 DSLProjectCreator2
中 enhanceProject(..)
的末尾开始(扩展 DSLProjectCreator
)。
但是,如果我使用这种方式删除 src
和 src-gen
,我会收到一个错误标记,指出缺少 src
和 src-gen
(但是这赢了'解决删除 JRE System Library
).
我该如何解决这个问题?
啊你启用向导的方式有点奇怪
newProjectWizardForEclipse = {
pluginProject = false
generate = true
}
不创建文件夹而不是删除它们怎么样。
class MyDslNewProjectWizardInitialContents {
@Inject
FileExtensionProvider fileExtensionProvider
def generateInitialContents(IFileSystemAccess2 fsa) {
fsa.generateFile(
"Model." + fileExtensionProvider.primaryFileExtension,
'''
/*
* This is an example model
*/
Hello Xtext!
'''
)
}
}
public class MyDslProjectCreatorCustom extends MyDslProjectCreator {
@Override
protected List<String> getAllFolders() {
return Collections.emptyList();
}
}
我不知道你为什么要创建一个 java 项目。你用xbase吗?绑定了哪个Project Factory?
生成的MyDslProjectCreator长什么样子? 它使用 JavaProjectFactory 还是 PluginProjectFactory