use of org.eclipse.xtext.ui.editor.model.IXtextDocument in project xtext-eclipse by eclipse.
the class DefaultFoldingRegionProviderTest method testSignificantPartOfModel_03.
@Test
public void testSignificantPartOfModel_03() throws Exception {
IFile iFile = createFile("foo/bar.foldingtestlanguage", "\n" + "element\n" + " foo end\n");
IXtextDocument document = openFileAndReturnDocument(iFile);
DefaultFoldingRegionProvider reg = createFoldingRegionProvider();
Collection<FoldedPosition> regions = reg.getFoldingRegions(document);
assertEquals(1, regions.size());
FoldedPosition position = Iterables.getOnlyElement(regions);
assertEquals("\n".length(), position.getOffset());
assertEquals("element\n foo end\n".length(), position.getLength());
assertEquals("element\n ".length(), position.computeCaptionOffset(document));
IRegion[] projectionRegions = position.computeProjectionRegions(document);
assertEquals(1, projectionRegions.length);
assertEquals("\n".length(), projectionRegions[0].getOffset());
assertEquals("element\n".length(), projectionRegions[0].getLength());
}
use of org.eclipse.xtext.ui.editor.model.IXtextDocument in project xtext-eclipse by eclipse.
the class DefaultFoldingRegionProviderTest method testSignificantPartOfModel_01.
@Test
public void testSignificantPartOfModel_01() throws Exception {
IFile iFile = createFile("foo/bar.foldingtestlanguage", "\n" + "element foo\n" + "end\n");
IXtextDocument document = openFileAndReturnDocument(iFile);
DefaultFoldingRegionProvider reg = createFoldingRegionProvider();
Collection<FoldedPosition> regions = reg.getFoldingRegions(document);
assertEquals(1, regions.size());
FoldedPosition position = Iterables.getOnlyElement(regions);
assertEquals("\n".length(), position.getOffset());
assertEquals("element foo\nend\n".length(), position.getLength());
assertEquals("element ".length(), position.computeCaptionOffset(document));
IRegion[] projectionRegions = position.computeProjectionRegions(document);
assertEquals(1, projectionRegions.length);
assertEquals("\nelement foo\n".length(), projectionRegions[0].getOffset());
assertEquals("end\n".length(), projectionRegions[0].getLength());
}
use of org.eclipse.xtext.ui.editor.model.IXtextDocument in project xtext-eclipse by eclipse.
the class OpenDocumentTracker method initialize.
@Inject(optional = true)
protected void initialize(final IWorkbench workbench) {
Assert.isNotNull(Display.getCurrent());
partListener = new PartListener();
pageListener = new PageListener();
for (IWorkbenchWindow window : workbench.getWorkbenchWindows()) {
window.addPageListener(pageListener);
for (IWorkbenchPage page : window.getPages()) {
page.addPartListener(partListener);
for (IEditorReference editorRef : page.getEditorReferences()) {
Pair<URI, IXtextDocument> entry = getEntry(editorRef);
if (entry != null) {
resourceUri2document.put(entry.getFirst(), entry.getSecond());
}
}
}
}
}
use of org.eclipse.xtext.ui.editor.model.IXtextDocument in project xtext-eclipse by eclipse.
the class OpenDocumentTracker method getEntry.
protected Pair<URI, IXtextDocument> getEntry(IWorkbenchPartReference partRef) {
IWorkbenchPart part = partRef.getPart(false);
if (part instanceof XtextEditor) {
XtextEditor xtextEditor = (XtextEditor) part;
URI resourceURI = getResourceURI(xtextEditor);
IXtextDocument document = xtextEditor.getDocument();
if (resourceURI != null && document != null)
return Tuples.create(resourceURI, document);
}
return null;
}
use of org.eclipse.xtext.ui.editor.model.IXtextDocument in project xtext-eclipse by eclipse.
the class XtextContentAssistProcessor method computeCompletionProposals.
@Override
public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
if (contentProposalProvider == null)
return null;
IXtextDocument document = xtextDocumentUtil.getXtextDocument(viewer);
ICompletionProposal[] result = document.priorityReadOnly(createCompletionProposalComputer(viewer, offset));
Arrays.sort(result, completionProposalComparator);
result = completionProposalPostProcessor.postProcess(result);
return result;
}
Aggregations