Java 类org.eclipse.lsp4j.SignatureInformation 实例源码
项目:vscode-javac
文件:Signatures.java
private SignatureHelp constructorHelp(NewClassTree leaf) {
Trees trees = Trees.instance(task);
TreePath identifierPath =
TreePath.getPath(cursor.getCompilationUnit(), leaf.getIdentifier());
Element classElement = trees.getElement(identifierPath);
List<ExecutableElement> candidates =
classElement
.getEnclosedElements()
.stream()
.filter(member -> member.getKind() == ElementKind.CONSTRUCTOR)
.map(method -> (ExecutableElement) method)
.collect(Collectors.toList());
List<SignatureInformation> signatures =
candidates
.stream()
.map(member -> constructorInfo(member))
.collect(Collectors.toList());
int activeSignature = candidates.indexOf(classElement);
return new SignatureHelp(
signatures,
activeSignature < 0 ? null : activeSignature,
activeParameter(leaf.getArguments()));
}
项目:vscode-javac
文件:Signatures.java
private SignatureHelp methodHelp(MethodInvocationTree leaf) {
Trees trees = Trees.instance(task);
TreePath methodPath = TreePath.getPath(cursor.getCompilationUnit(), leaf.getMethodSelect());
Element methodElement = trees.getElement(methodPath);
Name name = methodElement.getSimpleName();
List<ExecutableElement> candidates =
methodElement
.getEnclosingElement()
.getEnclosedElements()
.stream()
.filter(
member ->
member.getKind() == ElementKind.METHOD
&& member.getSimpleName().equals(name))
.map(method -> (ExecutableElement) method)
.collect(Collectors.toList());
List<SignatureInformation> signatures =
candidates.stream().map(member -> methodInfo(member)).collect(Collectors.toList());
int activeSignature = candidates.indexOf(methodElement);
return new SignatureHelp(
signatures,
activeSignature < 0 ? null : activeSignature,
activeParameter(leaf.getArguments()));
}
项目:eclipse.jdt.ls
文件:SignatureHelpRequestor.java
public SignatureHelp getSignatureHelp(IProgressMonitor monitor) {
SignatureHelp signatureHelp = new SignatureHelp();
response.setProposals(proposals);
CompletionResponses.store(response);
List<SignatureInformation> infos = new ArrayList<>();
for (int i = 0; i < proposals.size(); i++) {
if (!monitor.isCanceled()) {
infos.add(this.toSignatureInformation(proposals.get(i)));
} else {
return signatureHelp;
}
}
infos.sort((SignatureInformation a, SignatureInformation b) -> a.getParameters().size() - b.getParameters().size());
signatureHelp.getSignatures().addAll(infos);
return signatureHelp;
}
项目:vscode-javac
文件:Signatures.java
private SignatureInformation constructorInfo(ExecutableElement method) {
Optional<ConstructorDoc> doc = docs.constructorDoc(docs.methodKey(method));
Optional<String> docText =
doc.flatMap(constructor -> Optional.ofNullable(constructor.commentText()))
.map(Javadocs::htmlToMarkdown)
.map(Javadocs::firstSentence);
return new SignatureInformation(
Hovers.methodSignature(method, false, true),
docText.orElse(null),
paramInfo(method));
}
项目:vscode-javac
文件:Signatures.java
private SignatureInformation methodInfo(ExecutableElement method) {
Optional<MethodDoc> doc = docs.methodDoc(docs.methodKey(method));
Optional<String> docText =
doc.flatMap(Javadocs::commentText)
.map(Javadocs::htmlToMarkdown)
.map(Javadocs::firstSentence);
return new SignatureInformation(
Hovers.methodSignature(method, true, true),
docText.orElse(null),
paramInfo(method));
}
项目:eclipse.jdt.ls
文件:SignatureHelpRequestor.java
public SignatureInformation toSignatureInformation(CompletionProposal methodProposal) {
SignatureInformation $ = new SignatureInformation();
StringBuilder desription = descriptionProvider.createMethodProposalDescription(methodProposal);
$.setLabel(desription.toString());
$.setDocumentation(this.computeJavaDoc(methodProposal));
char[] signature = SignatureUtil.fix83600(methodProposal.getSignature());
char[][] parameterNames = methodProposal.findParameterNames(null);
char[][] parameterTypes = Signature.getParameterTypes(signature);
for (int i = 0; i < parameterTypes.length; i++) {
parameterTypes[i] = Signature.getSimpleName(Signature.toCharArray(SignatureUtil.getLowerBound(parameterTypes[i])));
}
if (Flags.isVarargs(methodProposal.getFlags())) {
int index = parameterTypes.length - 1;
parameterTypes[index] = convertToVararg(parameterTypes[index]);
}
List<ParameterInformation> parameterInfos = new LinkedList<>();
for (int i = 0; i < parameterTypes.length; i++) {
StringBuilder builder = new StringBuilder();
builder.append(parameterTypes[i]);
builder.append(' ');
builder.append(parameterNames[i]);
parameterInfos.add(new ParameterInformation(builder.toString(), null));
}
$.setParameters(parameterInfos);
return $;
}
项目:eclipse.jdt.ls
文件:SignatureHelpHandler.java
public SignatureHelp signatureHelp(TextDocumentPositionParams position, IProgressMonitor monitor) {
SignatureHelp help = new SignatureHelp();
if (!preferenceManager.getPreferences(null).isSignatureHelpEnabled()) {
return help;
}
try {
ICompilationUnit unit = JDTUtils.resolveCompilationUnit(position.getTextDocument().getUri());
final int offset = JsonRpcHelpers.toOffset(unit.getBuffer(), position.getPosition().getLine(), position.getPosition().getCharacter());
int[] contextInfomation = getContextInfomation(unit.getBuffer(), offset);
if (contextInfomation[0] == -1) {
return help;
}
SignatureHelpRequestor collector = new SignatureHelpRequestor(unit, contextInfomation[0] + 1);
if (offset > -1 && !monitor.isCanceled()) {
unit.codeComplete(contextInfomation[0] + 1, collector, monitor);
help = collector.getSignatureHelp(monitor);
if (help != null) {
int currentParameter = contextInfomation[1];
List<SignatureInformation> infos = help.getSignatures();
for (int i = 0; i < infos.size(); i++) {
if (infos.get(i).getParameters().size() >= currentParameter + 1) {
help.setActiveSignature(i);
help.setActiveParameter(currentParameter);
break;
}
}
}
}
} catch (CoreException ex) {
JavaLanguageServerPlugin.logException("Find signatureHelp failure ", ex);
}
return help;
}
项目:xtext-core
文件:AbstractLanguageServerTest.java
protected String _toExpectation(final SignatureHelp it) {
String _xblockexpression = null;
{
int _size = it.getSignatures().size();
boolean _tripleEquals = (_size == 0);
if (_tripleEquals) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("Signature index is expected to be null when no signatures are available. Was: ");
Integer _activeSignature = it.getActiveSignature();
_builder.append(_activeSignature);
_builder.append(".");
Assert.assertNull(_builder.toString(),
it.getActiveSignature());
return "<empty>";
}
Assert.assertNotNull("Active signature index must not be null when signatures are available.", it.getActiveSignature());
String _xifexpression = null;
Integer _activeParameter = it.getActiveParameter();
boolean _tripleEquals_1 = (_activeParameter == null);
if (_tripleEquals_1) {
_xifexpression = "<empty>";
} else {
_xifexpression = it.getSignatures().get((it.getActiveSignature()).intValue()).getParameters().get(
(it.getActiveParameter()).intValue()).getLabel();
}
final String param = _xifexpression;
StringConcatenation _builder_1 = new StringConcatenation();
final Function1<SignatureInformation, String> _function = (SignatureInformation it_1) -> {
return it_1.getLabel();
};
String _join = IterableExtensions.join(ListExtensions.<SignatureInformation, String>map(it.getSignatures(), _function), " | ");
_builder_1.append(_join);
_builder_1.append(" | ");
_builder_1.append(param);
_xblockexpression = _builder_1.toString();
}
return _xblockexpression;
}
项目:che
文件:SignatureHelpImpl.java
public SignatureHelpImpl(org.eclipse.lsp4j.SignatureHelp dto) {
activeParameter = Optional.fromNullable(dto.getActiveParameter());
activeSignature = Optional.fromNullable(dto.getActiveSignature());
signatureInfos = new ArrayList<>(dto.getSignatures().size());
for (SignatureInformation SignatureInformation : dto.getSignatures()) {
signatureInfos.add(new SignatureInfoImpl(SignatureInformation));
}
}
项目:SOMns-vscode
文件:SignatureHelp.java
public SignatureHelp() {
ArrayList<SignatureInformation> _arrayList = new ArrayList<SignatureInformation>();
this.signatures = _arrayList;
}
项目:SOMns-vscode
文件:SignatureHelp.java
public SignatureHelp(@NonNull final List<SignatureInformation> signatures, final Integer activeSignature, final Integer activeParameter) {
this.signatures = signatures;
this.activeSignature = activeSignature;
this.activeParameter = activeParameter;
}
项目:SOMns-vscode
文件:SignatureHelp.java
/**
* One or more signatures.
*/
@Pure
@NonNull
public List<SignatureInformation> getSignatures() {
return this.signatures;
}
项目:SOMns-vscode
文件:SignatureHelp.java
/**
* One or more signatures.
*/
public void setSignatures(@NonNull final List<SignatureInformation> signatures) {
this.signatures = signatures;
}
项目:lsp4j
文件:SignatureHelp.java
public SignatureHelp() {
ArrayList<SignatureInformation> _arrayList = new ArrayList<SignatureInformation>();
this.signatures = _arrayList;
}
项目:lsp4j
文件:SignatureHelp.java
public SignatureHelp(@NonNull final List<SignatureInformation> signatures, final Integer activeSignature, final Integer activeParameter) {
this.signatures = signatures;
this.activeSignature = activeSignature;
this.activeParameter = activeParameter;
}
项目:lsp4j
文件:SignatureHelp.java
/**
* One or more signatures.
*/
@Pure
@NonNull
public List<SignatureInformation> getSignatures() {
return this.signatures;
}
项目:lsp4j
文件:SignatureHelp.java
/**
* One or more signatures.
*/
public void setSignatures(@NonNull final List<SignatureInformation> signatures) {
this.signatures = signatures;
}
项目:che
文件:SignatureInfoImpl.java
public SignatureInfoImpl(SignatureInformation dto) {
this.dto = dto;
}