簡體   English   中英

將IFile轉換為XtextResource

[英]Convert IFile to XtextResource

我有一個帶有Xtext文件的eclipse項目。我需要找到eclipse項目中的所有文件作為XtextResource ,以便找到有關它們的指標。 到目前為止,我嘗試了以下操作:

1.遍歷項目中所有文件列表,並將它們作為IFile XtextResource 。但是我無法將IFile轉換為XtextResource

2.I成功獲得XtextResource 活動頁面IWorkBenchPage ,所以如果我能找到的所有項目中的頁面,而不僅僅是(在活動IworkBenchPage )或可能設置在項目中活躍,我認為它可以工作的所有頁面。

這是我擁有private static void setResource() { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IEditorPart activeEditor = page.getActiveEditor(); if (activeEditor instanceof XtextEditor) { XtextEditor xtextEditor = (XtextEditor) activeEditor; xtextEditor.getDocument().readOnly((XtextResource resource) -> {
ResourceHandler.resource = resource; return null; }); } }
我所做的示例代碼private static void setResource() { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IEditorPart activeEditor = page.getActiveEditor(); if (activeEditor instanceof XtextEditor) { XtextEditor xtextEditor = (XtextEditor) activeEditor; xtextEditor.getDocument().readOnly((XtextResource resource) -> {
ResourceHandler.resource = resource; return null; }); } }
private static void setResource() { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IEditorPart activeEditor = page.getActiveEditor(); if (activeEditor instanceof XtextEditor) { XtextEditor xtextEditor = (XtextEditor) activeEditor; xtextEditor.getDocument().readOnly((XtextResource resource) -> {
ResourceHandler.resource = resource; return null; }); } }

我不是所有與日食有關的專家,希望有人能在這里救我。 謝謝!

以下應該可以工作(假設您通過guice感知擴展工廠創建了使用它的地方...

@Inject
IResourceSetProvider resourceSetProvider;

...
IProject project = file.getProject();
URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
ResourceSet rs = resourceSetProvider.get(project);
Resource r = rs.getResource(uri, true);
r.load(null)

如果您在家里沒有果汁,請使用

ResourceSet rs = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(uri).get(IResourceSetProvider.class).get(project);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM