Java 类org.eclipse.lsp4j.Position 实例源码
项目:eclipse.jdt.ls
文件:CodeActionHandlerTest.java
@Test
public void testCodeAction_exception() throws JavaModelException {
URI uri = project.getFile("nopackage/Test.java").getRawLocationURI();
ICompilationUnit cu = JDTUtils.resolveCompilationUnit(uri);
try {
cu.becomeWorkingCopy(new NullProgressMonitor());
CodeActionParams params = new CodeActionParams();
params.setTextDocument(new TextDocumentIdentifier(uri.toString()));
final Range range = new Range();
range.setStart(new Position(0, 17));
range.setEnd(new Position(0, 17));
params.setRange(range);
CodeActionContext context = new CodeActionContext();
context.setDiagnostics(Collections.emptyList());
params.setContext(context);
List<? extends Command> commands = server.codeAction(params).join();
Assert.assertNotNull(commands);
Assert.assertEquals(0, commands.size());
} finally {
cu.discardWorkingCopy();
}
}
项目:xtext-core
文件:DocumentTest.java
private TextEdit change(final Position startPos, final Position endPos, final String newText) {
TextEdit _textEdit = new TextEdit();
final Procedure1<TextEdit> _function = (TextEdit it) -> {
if ((startPos != null)) {
Range _range = new Range();
final Procedure1<Range> _function_1 = (Range it_1) -> {
it_1.setStart(startPos);
it_1.setEnd(endPos);
};
Range _doubleArrow = ObjectExtensions.<Range>operator_doubleArrow(_range, _function_1);
it.setRange(_doubleArrow);
}
it.setNewText(newText);
};
return ObjectExtensions.<TextEdit>operator_doubleArrow(_textEdit, _function);
}
项目:xtext-core
文件:FormattingTest.java
@Test
public void testRangeFormattingService() {
final Procedure1<RangeFormattingConfiguration> _function = (RangeFormattingConfiguration it) -> {
StringConcatenation _builder = new StringConcatenation();
_builder.append("type Foo{int bar} type Bar{Foo foo}");
it.setModel(_builder.toString());
Range _range = new Range();
final Procedure1<Range> _function_1 = (Range it_1) -> {
Position _position = new Position(0, 0);
it_1.setStart(_position);
Position _position_1 = new Position(0, 17);
it_1.setEnd(_position_1);
};
Range _doubleArrow = ObjectExtensions.<Range>operator_doubleArrow(_range, _function_1);
it.setRange(_doubleArrow);
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("type Foo{");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("int bar");
_builder_1.newLine();
_builder_1.append("} type Bar{Foo foo}");
it.setExpectedText(_builder_1.toString());
};
this.testRangeFormatting(_function);
}
项目:camel-language-server
文件:CamelEndpointCompletionProcessor.java
public CompletableFuture<List<CompletionItem>> getCompletions(Position position) {
if(textDocumentItem != null) {
try {
Node correspondingCamelNode = parserFileHelper.getCorrespondingCamelNodeForCompletion(textDocumentItem, position.getLine());
if (correspondingCamelNode != null) {
String line = parserFileHelper.getLine(textDocumentItem, position);
String camelComponentUri = parserFileHelper.getCamelComponentUri(textDocumentItem, position);
CamelURIInstance camelURIInstance = new CamelURIInstance(camelComponentUri, correspondingCamelNode);
int positionInCamelUri = position.getCharacter() - line.indexOf("uri=") - 5;
CamelUriElementInstance camelUriElementInstance = camelURIInstance.getSpecificElement(positionInCamelUri);
return camelUriElementInstance.getCompletions(camelCatalog, positionInCamelUri);
}
} catch (Exception e) {
LOGGER.error("Error searching for corresponding node elements", e);
}
}
return CompletableFuture.completedFuture(Collections.emptyList());
}
项目:camel-language-server
文件:CamelLanguageServerHoverTest.java
@Test
public void testProvideDocumentationOnHover() throws Exception {
CamelLanguageServer camelLanguageServer = initializeLanguageServer("<from uri=\"ahc:httpUri\" xmlns=\"http://camel.apache.org/schema/spring\"></from>\n");
TextDocumentPositionParams position = new TextDocumentPositionParams(new TextDocumentIdentifier(DUMMY_URI), new Position(0, 13));
CompletableFuture<Hover> hover = camelLanguageServer.getTextDocumentService().hover(position);
assertThat(hover.get().getContents().get(0).getLeft()).isEqualTo(AHC_DOCUMENTATION);
}
项目:camel-language-server
文件:CamelTextDocumentServiceTest.java
@Test
public void testChangeEventUpdatesStoredText() throws Exception {
CamelLanguageServer camelLanguageServer = initializeLanguageServer("<to uri=\"\" xmlns=\"http://camel.apache.org/schema/blueprint\"></to>\n");
DidChangeTextDocumentParams changeEvent = new DidChangeTextDocumentParams();
VersionedTextDocumentIdentifier textDocument = new VersionedTextDocumentIdentifier();
textDocument.setUri(DUMMY_URI);
changeEvent.setTextDocument(textDocument);
TextDocumentContentChangeEvent contentChange = new TextDocumentContentChangeEvent("<to xmlns=\"http://camel.apache.org/schema/blueprint\" uri=\"\"></to>\n");
changeEvent.setContentChanges(Collections.singletonList(contentChange));
camelLanguageServer.getTextDocumentService().didChange(changeEvent);
//check old position doesn't provide completion
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completionsAtOldPosition = getCompletionFor(camelLanguageServer, new Position(0, 11));
assertThat(completionsAtOldPosition.get().getLeft()).isEmpty();
//check new position provides completion
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completionsAtNewPosition = getCompletionFor(camelLanguageServer, new Position(0, 58));
assertThat(completionsAtNewPosition.get().getLeft()).isNotEmpty();
}
项目:vscode-javac
文件:FindSymbols.java
private static Optional<Location> findPath(TreePath path, Trees trees) {
CompilationUnitTree compilationUnit = path.getCompilationUnit();
long start = trees.getSourcePositions().getStartPosition(compilationUnit, path.getLeaf());
long end = trees.getSourcePositions().getEndPosition(compilationUnit, path.getLeaf());
if (start == Diagnostic.NOPOS) return Optional.empty();
if (end == Diagnostic.NOPOS) end = start;
int startLine = (int) compilationUnit.getLineMap().getLineNumber(start);
int startColumn = (int) compilationUnit.getLineMap().getColumnNumber(start);
int endLine = (int) compilationUnit.getLineMap().getLineNumber(end);
int endColumn = (int) compilationUnit.getLineMap().getColumnNumber(end);
return Optional.of(
new Location(
compilationUnit.getSourceFile().toUri().toString(),
new Range(
new Position(startLine - 1, startColumn - 1),
new Position(endLine - 1, endColumn - 1))));
}
项目:vscode-javac
文件:SignatureHelpTest.java
private SignatureHelp doHelp(String file, int row, int column) throws IOException {
TextDocumentIdentifier document = new TextDocumentIdentifier();
document.setUri(FindResource.uri(file).toString());
Position position = new Position();
position.setLine(row - 1);
position.setCharacter(column - 1);
TextDocumentPositionParams p = new TextDocumentPositionParams();
p.setTextDocument(document);
p.setPosition(position);
try {
return server.getTextDocumentService().signatureHelp(p).get();
} catch (InterruptedException | ExecutionException e) {
throw new RuntimeException(e);
}
}
项目:eclipse.jdt.ls
文件:DiagnosticsHandler.java
@SuppressWarnings("restriction")
private static Range convertRange(IProblem problem) {
Position start = new Position();
Position end = new Position();
start.setLine(problem.getSourceLineNumber()-1);// VSCode is 0-based
end.setLine(problem.getSourceLineNumber()-1);
if(problem instanceof DefaultProblem){
DefaultProblem dProblem = (DefaultProblem)problem;
start.setCharacter(dProblem.getSourceColumnNumber() - 1);
int offset = 0;
if (dProblem.getSourceStart() != -1 && dProblem.getSourceEnd() != -1) {
offset = dProblem.getSourceEnd() - dProblem.getSourceStart() + 1;
}
end.setCharacter(dProblem.getSourceColumnNumber() - 1 + offset);
}
return new Range(start, end);
}
项目:eclipse.jdt.ls
文件:DocumentHighlightHandler.java
private DocumentHighlight convertToHighlight(ITypeRoot unit, OccurrenceLocation occurrence)
throws JavaModelException {
DocumentHighlight h = new DocumentHighlight();
if ((occurrence.getFlags() | IOccurrencesFinder.F_WRITE_OCCURRENCE) == IOccurrencesFinder.F_WRITE_OCCURRENCE) {
h.setKind(DocumentHighlightKind.Write);
} else if ((occurrence.getFlags()
| IOccurrencesFinder.F_READ_OCCURRENCE) == IOccurrencesFinder.F_READ_OCCURRENCE) {
h.setKind(DocumentHighlightKind.Read);
}
int[] loc = JsonRpcHelpers.toLine(unit.getBuffer(), occurrence.getOffset());
int[] endLoc = JsonRpcHelpers.toLine(unit.getBuffer(), occurrence.getOffset() + occurrence.getLength());
h.setRange(new Range(
new Position(loc[0], loc[1]),
new Position(endLoc[0],endLoc[1])
));
return h;
}
项目:eclipse.jdt.ls
文件:ReferencesHandlerTest.java
@Test
public void testReference(){
URI uri = project.getFile("src/java/Foo2.java").getRawLocationURI();
String fileURI = ResourceUtils.fixURI(uri);
ReferenceParams param = new ReferenceParams();
param.setPosition(new Position(5,16));
param.setContext(new ReferenceContext(true));
param.setTextDocument( new TextDocumentIdentifier(fileURI));
List<Location> references = handler.findReferences(param, monitor);
assertNotNull("findReferences should not return null",references);
assertEquals(1, references.size());
Location l = references.get(0);
String refereeUri = ResourceUtils.fixURI(project.getFile("src/java/Foo3.java").getRawLocationURI());
assertEquals(refereeUri, l.getUri());
}
项目:eclipse.jdt.ls
文件:RenameHandlerTest.java
@Test
public void testRenameSystemLibrary() throws JavaModelException {
IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);
String[] codes = {
"package test1;\n",
"public class E {\n",
" public int bar() {\n",
" String str = new String();\n",
" str.len|*gth();\n",
" }\n",
"}\n"
};
StringBuilder builder = new StringBuilder();
Position pos = mergeCode(builder, codes);
ICompilationUnit cu = pack1.createCompilationUnit("E.java", builder.toString(), false, null);
WorkspaceEdit edit = getRenameEdit(cu, pos, "newname");
assertNotNull(edit);
assertEquals(edit.getChanges().size(), 0);
}
项目:eclipse.jdt.ls
文件:HoverHandlerTest.java
@Test
public void testHoverThrowable() throws Exception {
String uriString = ClassFileUtil.getURI(project, "java.lang.Exception");
IClassFile classFile = JDTUtils.resolveClassFile(uriString);
String contents = JavaLanguageServerPlugin.getContentProviderManager().getSource(classFile, monitor);
IDocument document = new Document(contents);
IRegion region = new FindReplaceDocumentAdapter(document).find(0, "Throwable", true, false, false, false);
int offset = region.getOffset();
int line = document.getLineOfOffset(offset);
int character = offset - document.getLineOffset(line);
TextDocumentIdentifier textDocument = new TextDocumentIdentifier(uriString);
Position position = new Position(line, character);
TextDocumentPositionParams params = new TextDocumentPositionParams(textDocument, position);
Hover hover = handler.hover(params, monitor);
assertNotNull(hover);
assertTrue("Unexpected hover ", !hover.getContents().isEmpty());
}
项目:eclipse.jdt.ls
文件:FormatterHandlerTest.java
@Test
public void testRangeFormatting() throws Exception {
ICompilationUnit unit = getWorkingCopy("src/org/sample/Baz.java",
//@formatter:off
"package org.sample;\n" +
" public class Baz {\n"+
"\tvoid foo(){\n" +
" }\n"+
" }\n"
//@formatter:on
);
String uri = JDTUtils.toURI(unit);
TextDocumentIdentifier textDocument = new TextDocumentIdentifier(uri);
Range range = new Range(new Position(2, 0), new Position(3, 5));// range around foo()
DocumentRangeFormattingParams params = new DocumentRangeFormattingParams(range);
params.setTextDocument(textDocument);
params.setOptions(new FormattingOptions(3, true));// ident == 3 spaces
List<? extends TextEdit> edits = server.rangeFormatting(params).get();
//@formatter:off
String expectedText =
"package org.sample;\n" +
" public class Baz {\n"+
" void foo() {\n" +
" }\n"+
" }\n";
//@formatter:on
String newText = TextEditUtil.apply(unit, edits);
assertEquals(expectedText, newText);
}
项目:xtext-core
文件:CodeLensTest.java
@Test
public void testCodeLens() {
final Procedure1<AbstractLanguageServerTest.TestCodeLensConfiguration> _function = (AbstractLanguageServerTest.TestCodeLensConfiguration it) -> {
StringConcatenation _builder = new StringConcatenation();
_builder.append("type Foo {}");
_builder.newLine();
_builder.append("type Bar {");
_builder.newLine();
_builder.append("\t");
_builder.append("Foo foo");
_builder.newLine();
_builder.append("}");
_builder.newLine();
it.setModel(_builder.toString());
final Procedure1<List<? extends CodeLens>> _function_1 = (List<? extends CodeLens> it_1) -> {
this.assertEquals("Do Awesome Stuff(RESOLVED)", IterableExtensions.head(it_1).getCommand().getTitle());
Object _data = IterableExtensions.head(it_1).getData();
Assert.assertEquals(1, ((Position) _data).getLine());
};
it.setAssertCodeLenses(_function_1);
};
this.testCodeLens(_function);
}
项目:xtext-core
文件:RenameTest.java
protected void doTest(final String fileName, final Position position) {
try {
TextDocumentIdentifier _textDocumentIdentifier = new TextDocumentIdentifier(fileName);
final RenameParams params = new RenameParams(_textDocumentIdentifier, position, "Tescht");
final WorkspaceEdit workspaceEdit = this.languageServer.rename(params).get();
StringConcatenation _builder = new StringConcatenation();
_builder.append("changes :");
_builder.newLine();
_builder.append("\t");
_builder.append("MyType1.testlang : Tescht [[0, 5] .. [0, 9]]");
_builder.newLine();
_builder.append("\t");
_builder.append("Tescht [[1, 4] .. [1, 8]]");
_builder.newLine();
_builder.append("\t");
_builder.append("MyType2.testlang : Tescht [[1, 4] .. [1, 8]]");
_builder.newLine();
_builder.append("documentChanges : ");
_builder.newLine();
this.assertEquals(_builder.toString(), this.toExpectation(workspaceEdit));
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
项目:xtext-core
文件:PositionComparatorTest.java
@Test
public void withoutNull() {
Position _position = new Position(2, 2);
Position _position_1 = new Position(2, 1);
Position _position_2 = new Position(1, 2);
Position _position_3 = new Position(1, 1);
final List<? extends Position> input = this.sort(CollectionLiterals.<Position>newArrayList(_position, _position_1, _position_2, _position_3));
Assert.assertEquals(1, input.get(0).getLine());
Assert.assertEquals(1, input.get(0).getCharacter());
Assert.assertEquals(1, input.get(1).getLine());
Assert.assertEquals(2, input.get(1).getCharacter());
Assert.assertEquals(2, input.get(2).getLine());
Assert.assertEquals(1, input.get(2).getCharacter());
Assert.assertEquals(2, input.get(3).getLine());
Assert.assertEquals(2, input.get(3).getCharacter());
}
项目:xtext-core
文件:TestLangLSPExtension.java
@Override
public CompletableFuture<TestLangLSPExtension.TextOfLineResult> getTextOfLine(final TestLangLSPExtension.TextOfLineParam param) {
final Function<ILanguageServerAccess.Context, TestLangLSPExtension.TextOfLineResult> _function = (ILanguageServerAccess.Context ctx) -> {
Position _position = new Position(param.line, 0);
final int start = ctx.getDocument().getOffSet(_position);
Position _position_1 = new Position((param.line + 1), 0);
int _offSet = ctx.getDocument().getOffSet(_position_1);
int _length = System.lineSeparator().length();
final int end = (_offSet - _length);
TestLangLSPExtension.TextOfLineResult _textOfLineResult = new TestLangLSPExtension.TextOfLineResult();
final Procedure1<TestLangLSPExtension.TextOfLineResult> _function_1 = (TestLangLSPExtension.TextOfLineResult it) -> {
it.text = ctx.getDocument().getContents().substring(start, end);
};
return ObjectExtensions.<TestLangLSPExtension.TextOfLineResult>operator_doubleArrow(_textOfLineResult, _function_1);
};
return this.access.<TestLangLSPExtension.TextOfLineResult>doRead(param.uri, _function);
}
项目:lsp4j
文件:LauncherTest.java
@Test public void testRequest() throws Exception {
TextDocumentPositionParams p = new TextDocumentPositionParams();
p.setPosition(new Position(1,1));
p.setTextDocument(new TextDocumentIdentifier("test/foo.txt"));
CompletionList result = new CompletionList();
result.setIsIncomplete(true);
result.setItems(new ArrayList<>());
CompletionItem item = new CompletionItem();
item.setDetail("test");
item.setDocumentation("doc");
item.setFilterText("filter");
item.setInsertText("insert");
item.setKind(CompletionItemKind.Field);
result.getItems().add(item);
server.expectedRequests.put("textDocument/completion", new Pair<>(p, result));
CompletableFuture<Either<List<CompletionItem>, CompletionList>> future = clientLauncher.getRemoteProxy().getTextDocumentService().completion(p);
Assert.assertEquals(Either.forRight(result).toString(), future.get(TIMEOUT, TimeUnit.MILLISECONDS).toString());
client.joinOnEmpty();
}
项目:xtext-core
文件:Document.java
public Position getPosition(final int offset) {
final int l = this.contents.length();
if (((offset < 0) || (offset > l))) {
String _plus = (Integer.valueOf(offset) + " text was : ");
String _plus_1 = (_plus + this.contents);
throw new IndexOutOfBoundsException(_plus_1);
}
final char NL = '\n';
int line = 0;
int column = 0;
for (int i = 0; (i < l); i++) {
{
final char ch = this.contents.charAt(i);
if ((i == offset)) {
return new Position(line, column);
}
if ((ch == NL)) {
line++;
column = 0;
} else {
column++;
}
}
}
return new Position(line, column);
}
项目:lsp4j
文件:ProtocolTest.java
@Test public void testDocumentResolve() throws Exception, ExecutionException {
LanguageServer languageServer = wrap(LanguageServer.class, new MockLanguageServer() {
@Override
public CompletableFuture<DocumentLink> documentLinkResolve(DocumentLink params) {
return CompletableFutures.computeAsync(canceler -> {
params.setTarget("resolved");
return params;
});
}
});
CompletableFuture<DocumentLink> future = languageServer.getTextDocumentService().documentLinkResolve(
new DocumentLink(new Range(new Position(0, 0), new Position(0, 0)), "unresolved")
);
DocumentLink resolved = future.get(TIMEOUT, TimeUnit.MILLISECONDS);
Assert.assertEquals("resolved", resolved.getTarget());
}
项目:lsp4j
文件:EqualityTest.java
@Test public void testEquals() {
Assert.assertEquals(new TextDocumentIdentifier("foo"), new TextDocumentIdentifier("foo"));
Assert.assertNotEquals(new TextDocumentIdentifier("foo"), new TextDocumentIdentifier("bar"));
CompletionItem e1 = new CompletionItem();
e1.setAdditionalTextEdits(new ArrayList<>());
e1.getAdditionalTextEdits().add(new TextEdit(new Range(new Position(1,1), new Position(1,1)), "foo"));
CompletionItem e2 = new CompletionItem();
e2.setAdditionalTextEdits(new ArrayList<>());
e2.getAdditionalTextEdits().add(new TextEdit(new Range(new Position(1,1), new Position(1,1)), "foo"));
CompletionItem e3 = new CompletionItem();
e3.setAdditionalTextEdits(new ArrayList<>());
e3.getAdditionalTextEdits().add(new TextEdit(new Range(new Position(1,1), new Position(1,2)), "foo"));
Assert.assertEquals(e1, e2);
Assert.assertNotEquals(e1, e3);
Assert.assertEquals(e1.hashCode(), e2.hashCode());
Assert.assertNotEquals(e1.hashCode(), e3.hashCode());
}
项目:camel-language-server
文件:ParserFileHelper.java
public String getLine(TextDocumentItem textDocumentItem, Position position) {
String text = textDocumentItem.getText();
String[] lines = text.split("\\r?\\n", position.getLine() + 2);
if (lines.length >= position.getLine() + 1) {
return lines[position.getLine()];
}
return null;
}
项目:camel-language-server
文件:HoverProcessor.java
public CompletableFuture<Hover> getHover(Position position) {
try {
ParserFileHelper parserFileHelper = new ParserFileHelper();
if(parserFileHelper.getCorrespondingCamelNodeForCompletion(textDocumentItem, position.getLine()) != null){
String camelComponentUri = parserFileHelper.getCamelComponentUri(textDocumentItem, position);
String componentName = StringUtils.asComponentName(camelComponentUri);
if (componentName != null) {
return camelCatalog.thenApply(new HoverFuture(componentName));
}
}
} catch (Exception e) {
LOGGER.error("Error searching hover", e);
}
return CompletableFuture.completedFuture(null);
}
项目:camel-language-server
文件:CamelLanguageServerTest.java
@Test
public void testProvideCompletionForCamelBlueprintNamespace() throws Exception {
CamelLanguageServer camelLanguageServer = initializeLanguageServer("<from uri=\"\" xmlns=\"http://camel.apache.org/schema/blueprint\"></from>\n");
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completions = getCompletionFor(camelLanguageServer, new Position(0, 11));
assertThat(completions.get().getLeft()).contains(expectedAhcCompletioncompletionItem);
}
项目:camel-language-server
文件:CamelLanguageServerTest.java
@Test
public void testProvideCompletionForToCamelBlueprintNamespace() throws Exception {
CamelLanguageServer camelLanguageServer = initializeLanguageServer("<to uri=\"\" xmlns=\"http://camel.apache.org/schema/blueprint\"></to>\n");
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completions = getCompletionFor(camelLanguageServer, new Position(0, 9));
assertThat(completions.get().getLeft()).contains(expectedAhcCompletioncompletionItem);
}
项目:camel-language-server
文件:CamelLanguageServerTest.java
@Test
public void testProvideCompletionForCamelSpringNamespace() throws Exception {
CamelLanguageServer camelLanguageServer = initializeLanguageServer("<from uri=\"\" xmlns=\"http://camel.apache.org/schema/spring\"></from>\n");
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completions = getCompletionFor(camelLanguageServer, new Position(0, 11));
assertThat(completions.get().getLeft()).contains(expectedAhcCompletioncompletionItem);
}
项目:camel-language-server
文件:CamelLanguageServerTest.java
@Test
public void testProvideCompletionforMultiline() throws Exception {
CamelLanguageServer camelLanguageServer = initializeLanguageServer(
"<camelContext xmlns=\"http://camel.apache.org/schema/spring\">\n" +
"<to uri=\"\" ></to>\n" +
"</camelContext>");
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completions = getCompletionFor(camelLanguageServer, new Position(1, 9));
assertThat(completions.get().getLeft()).contains(expectedAhcCompletioncompletionItem);
}
项目:camel-language-server
文件:CamelLanguageServerTest.java
@Test
public void testDONTProvideCompletionForNotCamelnamespace() throws Exception {
CamelLanguageServer camelLanguageServer = initializeLanguageServer("<from uri=\"\"></from>\n");
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completions = getCompletionFor(camelLanguageServer, new Position(0, 11));
assertThat(completions.get().getLeft()).isEmpty();
assertThat(completions.get().getRight()).isNull();
}
项目:camel-language-server
文件:CamelLanguageServerTest.java
@Test
public void testDONTProvideCompletionWhenNotAfterURIEqualQuote() throws Exception {
CamelLanguageServer camelLanguageServer = initializeLanguageServer("<from uri=\"\" xmlns=\"http://camel.apache.org/schema/spring\"></from>\n");
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completions = getCompletionFor(camelLanguageServer, new Position(0, 6));
assertThat(completions.get().getLeft()).isEmpty();
assertThat(completions.get().getRight()).isNull();
}
项目:camel-language-server
文件:CamelComponentOptionBooleanValuesTest.java
private void testProvideCamelOptions(String textTotest, int line, int character) throws URISyntaxException, InterruptedException, ExecutionException {
CamelLanguageServer camelLanguageServer = initializeLanguageServer(textTotest);
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completions = getCompletionFor(camelLanguageServer, new Position(line, character));
assertThat(completions.get().getLeft()).contains(
new CompletionItem("true"),
new CompletionItem("false"));
}
项目:camel-language-server
文件:CamelLanguageServerCompletionPositionTest.java
@Test
public void testProvideCompletionForCamelBlueprintNamespace() throws Exception {
CamelLanguageServer camelLanguageServer = initializeLanguageServer(textToTest);
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completions = getCompletionFor(camelLanguageServer, new Position(line, character));
if(shouldHaveCompletion) {
assertThat(completions.get().getLeft()).contains(expectedAhcCompletioncompletionItem);
} else {
assertThat(completions.get().getLeft()).doesNotContain(expectedAhcCompletioncompletionItem);
assertThat(completions.get().getRight()).isNull();
}
}
项目:camel-language-server
文件:CamelComponentOptionEnumerationValuesTest.java
private void testProvideCamelOptions(String textTotest, int line, int character) throws URISyntaxException, InterruptedException, ExecutionException {
CamelLanguageServer camelLanguageServer = initializeLanguageServer(textTotest);
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completions = getCompletionFor(camelLanguageServer, new Position(line, character));
assertThat(completions.get().getLeft()).contains(
new CompletionItem("InOnly"),
new CompletionItem("RobustInOnly"),
new CompletionItem("InOut"),
new CompletionItem("InOptionalOut"),
new CompletionItem("OutOnly"),
new CompletionItem("RobustOutOnly"),
new CompletionItem("OutIn"),
new CompletionItem("OutOptionalIn"));
}
项目:camel-language-server
文件:CamelLanguageServerHoverTest.java
@Test
public void testDontProvideDocumentationOnHoverForBadPlaces() throws Exception {
CamelLanguageServer camelLanguageServer = initializeLanguageServer("<from uri=\"ahc:httpUri\" xmlns=\"http://camel.apache.org/schema/spring\"></from>\n");
TextDocumentPositionParams position = new TextDocumentPositionParams(new TextDocumentIdentifier(DUMMY_URI), new Position(0, 4));
CompletableFuture<Hover> hover = camelLanguageServer.getTextDocumentService().hover(position);
assertThat(hover.get()).isNull();
}
项目:camel-language-server
文件:AbstractCamelLanguageServerTest.java
protected CompletableFuture<Either<List<CompletionItem>, CompletionList>> getCompletionFor(CamelLanguageServer camelLanguageServer, Position position) {
TextDocumentService textDocumentService = camelLanguageServer.getTextDocumentService();
TextDocumentPositionParams dummyCompletionPositionRequest = new TextDocumentPositionParams(new TextDocumentIdentifier(DUMMY_URI), position);
CompletableFuture<Either<List<CompletionItem>, CompletionList>> completions = textDocumentService.completion(dummyCompletionPositionRequest);
return completions;
}
项目:languagetool-languageserver
文件:DocumentPositionCalculator.java
@NotNull
private static Position getPosition(int pos, int[] lineStarts) {
int line = Arrays.binarySearch(lineStarts, pos);
if (line < 0) {
int insertion_point = -1 * line - 1;
line = insertion_point - 1;
}
return new Position(line, pos - lineStarts[line]);
}
项目:vscode-javac
文件:CompletionsBase.java
protected List<? extends CompletionItem> items(String file, int row, int column) {
URI uri = FindResource.uri(file);
TextDocumentPositionParams position =
new TextDocumentPositionParams(
new TextDocumentIdentifier(uri.toString()),
uri.toString(),
new Position(row - 1, column - 1));
try {
return server.getTextDocumentService().completion(position).get().getRight().getItems();
} catch (InterruptedException | ExecutionException e) {
throw new RuntimeException(e);
}
}
项目:eclipse.jdt.ls
文件:FormatterHandler.java
private static Position createPosition(IDocument document, int offset) {
Position start = new Position();
try {
int lineOfOffset = document.getLineOfOffset(offset);
start.setLine( Integer.valueOf(lineOfOffset));
start.setCharacter(Integer.valueOf( offset - document.getLineOffset(lineOfOffset)));
} catch (BadLocationException e) {
JavaLanguageServerPlugin.logException(e.getMessage(), e);
}
return start;
}
项目:eclipse.jdt.ls
文件:WorkspaceDiagnosticsHandler.java
/**
* @param marker
* @return
*/
private static Range convertRange(IDocument document, IMarker marker) {
int line = marker.getAttribute(IMarker.LINE_NUMBER, -1) - 1;
int cStart = 0;
int cEnd = 0;
try {
//Buildship doesn't provide markers for gradle files, Maven does
if (marker.isSubtypeOf(IMavenConstants.MARKER_ID)) {
cStart = marker.getAttribute(IMavenConstants.MARKER_COLUMN_START, -1);
cEnd = marker.getAttribute(IMavenConstants.MARKER_COLUMN_END, -1);
} else {
int lineOffset = 0;
try {
lineOffset = document.getLineOffset(line);
} catch (BadLocationException unlikelyException) {
JavaLanguageServerPlugin.logException(unlikelyException.getMessage(), unlikelyException);
return new Range(new Position(line, 0), new Position(line, 0));
}
cEnd = marker.getAttribute(IMarker.CHAR_END, -1) - lineOffset;
cStart = marker.getAttribute(IMarker.CHAR_START, -1) - lineOffset;
}
} catch (CoreException e) {
JavaLanguageServerPlugin.logException(e.getMessage(), e);
}
cStart = Math.max(0, cStart);
cEnd = Math.max(0, cEnd);
return new Range(new Position(line, cStart), new Position(line, cEnd));
}
项目:eclipse.jdt.ls
文件:ReferencesHandlerTest.java
@Test
public void testEmpty(){
ReferenceParams param = new ReferenceParams();
param.setPosition(new Position(1, 1));
param.setContext(new ReferenceContext(false));
param.setTextDocument( new TextDocumentIdentifier("/foo/bar"));
List<Location> references = handler.findReferences(param, monitor);
assertNotNull(references);
assertTrue("references are not empty", references.isEmpty());
}