use of org.eclipse.xtext.xbase.lib.Extension in project xtext-core by eclipse.
the class AbstractLanguageServerTest method testRangeFormatting.
protected void testRangeFormatting(final Procedure1<? super DocumentRangeFormattingParams> paramsConfigurator, final Procedure1<? super RangeFormattingConfiguration> configurator) {
try {
@Extension final RangeFormattingConfiguration configuration = new RangeFormattingConfiguration();
configuration.setFilePath(("MyModel." + this.fileExtension));
configurator.apply(configuration);
final FileInfo fileInfo = this.initializeContext(configuration);
DocumentRangeFormattingParams _documentRangeFormattingParams = new DocumentRangeFormattingParams();
final Procedure1<DocumentRangeFormattingParams> _function = (DocumentRangeFormattingParams it) -> {
String _uri = fileInfo.getUri();
TextDocumentIdentifier _textDocumentIdentifier = new TextDocumentIdentifier(_uri);
it.setTextDocument(_textDocumentIdentifier);
it.setRange(configuration.getRange());
if ((paramsConfigurator != null)) {
paramsConfigurator.apply(it);
}
};
DocumentRangeFormattingParams _doubleArrow = ObjectExtensions.<DocumentRangeFormattingParams>operator_doubleArrow(_documentRangeFormattingParams, _function);
final CompletableFuture<List<? extends TextEdit>> changes = this.languageServer.rangeFormatting(_doubleArrow);
String _contents = fileInfo.getContents();
final Document result = new Document(1, _contents).applyChanges(ListExtensions.<TextEdit>reverse(CollectionLiterals.<TextEdit>newArrayList(((TextEdit[]) Conversions.unwrapArray(changes.get(), TextEdit.class)))));
this.assertEqualsStricter(configuration.getExpectedText(), result.getContents());
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.xtext.xbase.lib.Extension in project xtext-core by eclipse.
the class AbstractLanguageServerTest method testSymbol.
protected void testSymbol(final Procedure1<? super WorkspaceSymbolConfiguration> configurator) {
try {
@Extension final WorkspaceSymbolConfiguration configuration = new WorkspaceSymbolConfiguration();
configuration.setFilePath(("MyModel." + this.fileExtension));
configurator.apply(configuration);
this.initializeContext(configuration);
String _query = configuration.getQuery();
WorkspaceSymbolParams _workspaceSymbolParams = new WorkspaceSymbolParams(_query);
final List<? extends SymbolInformation> symbols = this.languageServer.symbol(_workspaceSymbolParams).get();
Procedure1<? super List<? extends SymbolInformation>> _assertSymbols = configuration.getAssertSymbols();
boolean _tripleNotEquals = (_assertSymbols != null);
if (_tripleNotEquals) {
configuration.getAssertSymbols().apply(symbols);
} else {
final String actualSymbols = this.toExpectation(symbols);
this.assertEquals(configuration.getExpectedSymbols(), actualSymbols);
}
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.xtext.xbase.lib.Extension in project xtext-core by eclipse.
the class FormattableDocumentTest method conditionalFormatting2.
@Test
public void conditionalFormatting2() {
final Procedure1<GenericFormatterTestRequest> _function = (GenericFormatterTestRequest it) -> {
final Procedure1<MapBasedPreferenceValues> _function_1 = (MapBasedPreferenceValues it_1) -> {
it_1.<Integer>put(FormatterPreferenceKeys.maxLineWidth, Integer.valueOf(30));
};
it.preferences(_function_1);
StringConcatenation _builder = new StringConcatenation();
_builder.append("kwlist kw1 kw2");
_builder.newLine();
it.setToBeFormatted(_builder);
final GenericFormatter<KWList> _function_2 = new GenericFormatter<KWList>() {
@Override
protected void format(final KWList model, @Extension final ITextRegionExtensions regions, @Extension final IFormattableDocument document) {
final ISubFormatter _function = (IFormattableSubDocument doc) -> {
@Extension final IFormattableSubDocument fits = doc.requireFitsInLine();
final Procedure1<IHiddenRegionFormatter> _function_1 = (IHiddenRegionFormatter it_1) -> {
it_1.oneSpace();
};
fits.append(regions.regionFor(model).keyword("kwlist"), _function_1);
final Procedure1<IHiddenRegionFormatter> _function_2 = (IHiddenRegionFormatter it_1) -> {
it_1.oneSpace();
};
fits.append(regions.regionFor(model).keyword("kw1"), _function_2);
};
final ISubFormatter _function_1 = (IFormattableSubDocument doc) -> {
final Procedure1<IHiddenRegionFormatter> _function_2 = (IHiddenRegionFormatter it_1) -> {
it_1.newLine();
};
doc.append(regions.regionFor(model).keyword("kwlist"), _function_2);
final Procedure1<IHiddenRegionFormatter> _function_3 = (IHiddenRegionFormatter it_1) -> {
it_1.newLine();
};
doc.append(regions.regionFor(model).keyword("kw1"), _function_3);
};
document.formatConditionally(model, _function, _function_1);
}
};
it.setFormatter(_function_2);
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("kwlist kw1 kw2");
_builder_1.newLine();
it.setExpectation(_builder_1);
};
this._genericFormatterTester.assertFormatted(_function);
}
use of org.eclipse.xtext.xbase.lib.Extension in project xtext-core by eclipse.
the class FormatterReplacementsTest method testUndefinedIdentityEditsAreNotFiltered.
@Test
public void testUndefinedIdentityEditsAreNotFiltered() {
final GenericFormatter<IDList> _function = new GenericFormatter<IDList>() {
@Override
protected void format(final IDList model, @Extension final ITextRegionExtensions regions, @Extension final IFormattableDocument document) {
final Consumer<ISemanticRegion> _function = (ISemanticRegion it) -> {
final Procedure1<IHiddenRegionFormatter> _function_1 = (IHiddenRegionFormatter it_1) -> {
it_1.setSpace("");
};
document.prepend(it, _function_1);
};
regions.regionFor(model).ruleCallsTo(FormatterReplacementsTest.this._formatterTestLanguageGrammarAccess.getIDRule()).forEach(_function);
}
};
final GenericFormatter<IDList> formatter = _function;
IDList _createIDList = this.fact.createIDList();
final Procedure1<IDList> _function_1 = (IDList it) -> {
EList<String> _ids = it.getIds();
_ids.add("a");
};
final IDList model = ObjectExtensions.<IDList>operator_doubleArrow(_createIDList, _function_1);
Resource _createResource = this.resFact.createResource(URI.createURI("foo.ext"));
final Procedure1<Resource> _function_2 = (Resource it) -> {
EList<Resource> _resources = new XtextResourceSet().getResources();
_resources.add(it);
EList<EObject> _contents = it.getContents();
_contents.add(model);
};
ObjectExtensions.<Resource>operator_doubleArrow(_createResource, _function_2);
final FormatterRequest request = this.requestProvider.get();
request.setAllowIdentityEdits(false);
request.setTextRegionAccess(this.serializer.serializeToRegions(model));
final List<ITextReplacement> replacements = formatter.format(request);
final Function1<ITextReplacement, String> _function_3 = (ITextReplacement it) -> {
StringConcatenation _builder = new StringConcatenation();
_builder.append("\"");
String _text = it.getText();
_builder.append(_text);
_builder.append("\" -> \"");
String _replacementText = it.getReplacementText();
_builder.append(_replacementText);
_builder.append("\"");
_builder.append("\n");
return _builder.toString();
};
final String actual = IterableExtensions.join(ListExtensions.<ITextReplacement, String>map(replacements, _function_3));
StringConcatenation _builder = new StringConcatenation();
_builder.append("\"\" -> \"\"");
_builder.newLine();
_builder.append("\"\" -> \"\"");
_builder.newLine();
_builder.append("\"\" -> \"\"");
_builder.newLine();
final String expected = _builder.toString();
Assert.assertEquals(expected, actual);
}
use of org.eclipse.xtext.xbase.lib.Extension in project xtext-core by eclipse.
the class FormatterReplacementsTest method testIdentityEditsAreFiltered.
@Test
public void testIdentityEditsAreFiltered() {
try {
final GenericFormatter<IDList> _function = new GenericFormatter<IDList>() {
@Override
protected void format(final IDList model, @Extension final ITextRegionExtensions regions, @Extension final IFormattableDocument document) {
final Consumer<ISemanticRegion> _function = (ISemanticRegion it) -> {
final Procedure1<IHiddenRegionFormatter> _function_1 = (IHiddenRegionFormatter it_1) -> {
it_1.autowrap();
it_1.oneSpace();
};
document.prepend(it, _function_1);
};
regions.regionFor(model).ruleCallsTo(FormatterReplacementsTest.this._formatterTestLanguageGrammarAccess.getIDRule()).forEach(_function);
}
};
final GenericFormatter<IDList> formatter = _function;
final IDList parsed = this.parseHelper.parse("idlist aaa bbb");
final FormatterRequest request = this.requestProvider.get();
request.setAllowIdentityEdits(false);
Resource _eResource = parsed.eResource();
request.setTextRegionAccess(this.regionBuilder.forNodeModel(((XtextResource) _eResource)).create());
final List<ITextReplacement> replacements = formatter.format(request);
final Function1<ITextReplacement, String> _function_1 = (ITextReplacement it) -> {
StringConcatenation _builder = new StringConcatenation();
_builder.append("\"");
String _text = it.getText();
_builder.append(_text);
_builder.append("\" -> \"");
String _replacementText = it.getReplacementText();
_builder.append(_replacementText);
_builder.append("\"");
_builder.append("\n");
return _builder.toString();
};
final String actual = IterableExtensions.join(ListExtensions.<ITextReplacement, String>map(replacements, _function_1));
StringConcatenation _builder = new StringConcatenation();
_builder.append("\" \" -> \" \"");
_builder.newLine();
final String expected = _builder.toString();
Assert.assertEquals(expected, actual);
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
Aggregations