本文整理汇总了Java中org.eclipse.lsp4j.CompletionItem.setInsertText方法的典型用法代码示例。如果您正苦于以下问题:Java CompletionItem.setInsertText方法的具体用法?Java CompletionItem.setInsertText怎么用?Java CompletionItem.setInsertText使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.lsp4j.CompletionItem
的用法示例。
在下文中一共展示了CompletionItem.setInsertText方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: completeConstructor
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
/**
* Complete constructor with minimal type information.
*
* <p>This is important when we're autocompleting new ? with a class that we haven't yet
* imported. We don't yet have detailed type information or javadocs, and it's expensive to
* retrieve them. So we autocomplete a minimal constructor, and let signature-help fill in the
* details.
*/
private CompletionItem completeConstructor(
String packageName, String className, boolean hasTypeParameters) {
CompletionItem item = new CompletionItem();
String qualifiedName = packageName.isEmpty() ? className : packageName + "." + className;
String key = String.format("%s#<init>", className);
String insertText = className;
if (hasTypeParameters) insertText += "<>";
insertText += "($0)";
item.setKind(CompletionItemKind.Constructor);
item.setLabel(className);
item.setDetail(packageName);
item.setInsertText(insertText);
item.setInsertTextFormat(InsertTextFormat.Snippet);
item.setCommand(TRIGGER_SIGNATURE_HELP);
item.setFilterText(className);
item.setAdditionalTextEdits(addImport(qualifiedName));
item.setSortText("3/" + className);
item.setData(key);
return item;
}
示例2: createTypeProposalLabel
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
void createTypeProposalLabel(char[] fullName, CompletionItem item) {
// only display innermost type name as type name, using any
// enclosing types as qualification
int qIndex= findSimpleNameStart(fullName);
String name = new String(fullName, qIndex, fullName.length - qIndex);
StringBuilder nameBuffer= new StringBuilder();
nameBuffer.append(name);
if (qIndex > 0) {
nameBuffer.append(PACKAGE_NAME_SEPARATOR);
nameBuffer.append(new String(fullName,0,qIndex-1));
}
item.setFilterText(name);
item.setInsertText(name);
item.setLabel(nameBuffer.toString());
}
示例3: createAnonymousTypeLabel
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
private void createAnonymousTypeLabel(CompletionProposal proposal, CompletionItem item) {
char[] declaringTypeSignature= proposal.getDeclarationSignature();
declaringTypeSignature= Signature.getTypeErasure(declaringTypeSignature);
String name = new String(Signature.getSignatureSimpleName(declaringTypeSignature));
item.setInsertText(name);
StringBuilder buf= new StringBuilder();
buf.append(name);
buf.append('(');
appendUnboundedParameterList(buf, proposal);
buf.append(')');
buf.append(" "); //$NON-NLS-1$
buf.append("Anonymous Inner Type"); //TODO: consider externalization
item.setLabel(buf.toString());
if (proposal.getRequiredProposals() != null) {
char[] signatureQualifier= Signature.getSignatureQualifier(declaringTypeSignature);
if (signatureQualifier.length > 0) {
item.setDetail(String.valueOf(signatureQualifier));
}
}
setDeclarationSignature(item, String.valueOf(declaringTypeSignature));
}
示例4: testRequest
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
@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();
}
示例5: completeClassNameFromClassPath
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
private CompletionItem completeClassNameFromClassPath(String qualifiedName) {
CompletionItem item = new CompletionItem();
String packageName = mostIds(qualifiedName), simpleName = lastId(qualifiedName);
item.setLabel(simpleName);
item.setDetail(packageName);
item.setInsertText(simpleName);
item.setAdditionalTextEdits(addImport(qualifiedName));
item.setSortText("3/" + simpleName);
item.setData(qualifiedName);
// TODO implement vscode resolve-completion-item
return item;
}
示例6: createMethodProposalLabel
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
/**
* Updates a display label for the given method proposal to item. The display label
* consists of:
* <ul>
* <li>the method name</li>
* <li>the parameter list (see {@link #createParameterList(CompletionProposal)})</li>
* <li>the upper bound of the return type (see {@link SignatureUtil#getUpperBound(String)})</li>
* <li>the raw simple name of the declaring type</li>
* </ul>
* <p>
* Examples:
* For the <code>get(int)</code> method of a variable of type <code>List<? extends Number></code>, the following
* display name is returned: <code>get(int index) Number - List</code>.<br>
* For the <code>add(E)</code> method of a variable of type <code>List<? super Number></code>, the following
* display name is returned: <code>add(Number o) void - List</code>.<br>
* </p>
*
* @param methodProposal the method proposal to display
* @param item to update
*/
private void createMethodProposalLabel(CompletionProposal methodProposal, CompletionItem item) {
StringBuilder description = this.createMethodProposalDescription(methodProposal);
item.setLabel(description.toString());
item.setInsertText(String.valueOf(methodProposal.getName()));
// declaring type
StringBuilder typeInfo = new StringBuilder();
String declaringType= extractDeclaringTypeFQN(methodProposal);
if (methodProposal.getRequiredProposals() != null) {
String qualifier= Signature.getQualifier(declaringType);
if (qualifier.length() > 0) {
typeInfo.append(qualifier);
typeInfo.append('.');
}
}
declaringType= Signature.getSimpleName(declaringType);
typeInfo.append(declaringType);
item.setDetail(typeInfo.toString());
setSignature(item, String.valueOf(methodProposal.getSignature()));
setDeclarationSignature(item, String.valueOf(methodProposal.getDeclarationSignature()));
setName(item, String.valueOf(methodProposal.getName()));
}
示例7: createOverrideMethodProposalLabel
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
private void createOverrideMethodProposalLabel(CompletionProposal methodProposal, CompletionItem item) {
StringBuilder nameBuffer= new StringBuilder();
// method name
String name = new String(methodProposal.getName());
item.setInsertText(name);
nameBuffer.append(name);
// parameters
nameBuffer.append('(');
appendUnboundedParameterList(nameBuffer, methodProposal);
nameBuffer.append(')');
nameBuffer.append(RETURN_TYPE_SEPARATOR);
// return type
// TODO remove SignatureUtil.fix83600 call when bugs are fixed
char[] returnType= createTypeDisplayName(SignatureUtil.getUpperBound(Signature.getReturnType(SignatureUtil.fix83600(methodProposal.getSignature()))));
nameBuffer.append(returnType);
item.setLabel(nameBuffer.toString());
item.setFilterText(name);
// declaring type
StringBuilder typeBuffer = new StringBuilder();
String declaringType= extractDeclaringTypeFQN(methodProposal);
declaringType= Signature.getSimpleName(declaringType);
typeBuffer.append(String.format("Override method in '%s'", declaringType));
item.setDetail(typeBuffer.toString());
setSignature(item, String.valueOf(methodProposal.getSignature()));
setDeclarationSignature(item, String.valueOf(methodProposal.getDeclarationSignature()));
setName(item, String.valueOf(methodProposal.getName()));
}
示例8: createSimpleLabelWithType
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
private void createSimpleLabelWithType(CompletionProposal proposal, CompletionItem item) {
StringBuilder nameBuffer= new StringBuilder();
nameBuffer.append(proposal.getCompletion());
item.setInsertText(nameBuffer.toString());
char[] typeName= Signature.getSignatureSimpleName(proposal.getSignature());
if (typeName.length > 0) {
nameBuffer.append(VAR_TYPE_SEPARATOR);
nameBuffer.append(typeName);
}
item.setLabel(nameBuffer.toString());
}
示例9: createLabelWithTypeAndDeclaration
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
private void createLabelWithTypeAndDeclaration(CompletionProposal proposal, CompletionItem item) {
char[] name= proposal.getCompletion();
if (!isThisPrefix(name)) {
name= proposal.getName();
}
StringBuilder buf= new StringBuilder();
buf.append(name);
item.setInsertText(buf.toString());
char[] typeName= Signature.getSignatureSimpleName(proposal.getSignature());
if (typeName.length > 0) {
buf.append(VAR_TYPE_SEPARATOR);
buf.append(typeName);
}
item.setLabel(buf.toString());
char[] declaration= proposal.getDeclarationSignature();
if (declaration != null) {
setDeclarationSignature(item, String.valueOf(declaration));
StringBuilder declBuf = new StringBuilder();
declaration= Signature.getSignatureSimpleName(declaration);
if (declaration.length > 0) {
if (proposal.getRequiredProposals() != null) {
String declaringType= extractDeclaringTypeFQN(proposal);
String qualifier= Signature.getQualifier(declaringType);
if (qualifier.length() > 0) {
declBuf.append(qualifier);
declBuf.append('.');
}
}
declBuf.append(declaration);
item.setDetail(declBuf.toString());
}
}
setName(item,String.valueOf(name));
}
示例10: testProvideCamelOptionsForConsumerOnly
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
@Test
public void testProvideCamelOptionsForConsumerOnly() throws Exception {
CompletionItem completionItem = new CompletionItem("bridgeErrorHandler");
completionItem.setInsertText("bridgeErrorHandler=false");
testProvideCamelOptions("<from uri=\"timer:timerName?\" xmlns=\"http://camel.apache.org/schema/blueprint\"></from>\n", 0, 27, completionItem);
}
示例11: testProvideCamelOptionsForConsumerOrProducer
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
@Test
public void testProvideCamelOptionsForConsumerOrProducer() throws Exception {
CompletionItem completionItem = new CompletionItem("clientConfigOptions");
completionItem.setInsertText("clientConfigOptions=");
testProvideCamelOptions("<from uri=\"ahc:httpUri?\" xmlns=\"http://camel.apache.org/schema/blueprint\"></from>\n", 0, 23, completionItem);
}
示例12: getBridgeEndpointExpectedCompletionItem
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
private CompletionItem getBridgeEndpointExpectedCompletionItem() {
CompletionItem completionItem = new CompletionItem("bridgeEndpoint");
completionItem.setInsertText("bridgeEndpoint=false");
return completionItem;
}
示例13: updateReplacement
import org.eclipse.lsp4j.CompletionItem; //导入方法依赖的package包/类
/**
* Updates the replacement and any additional replacement for the given item.
*
* @param proposal
* @param item
* @param trigger
*/
public void updateReplacement(CompletionProposal proposal, CompletionItem item, char trigger) {
// reset importRewrite
this.importRewrite = TypeProposalUtils.createImportRewrite(compilationUnit);
List<org.eclipse.lsp4j.TextEdit> additionalTextEdits = new ArrayList<>();
StringBuilder completionBuffer = new StringBuilder();
Range range = null;
if (isSupportingRequiredProposals(proposal)) {
CompletionProposal[] requiredProposals= proposal.getRequiredProposals();
if (requiredProposals != null) {
for (CompletionProposal requiredProposal : requiredProposals) {
switch(requiredProposal.getKind()) {
case CompletionProposal.TYPE_IMPORT:
case CompletionProposal.METHOD_IMPORT:
case CompletionProposal.FIELD_IMPORT:
appendImportProposal(completionBuffer, requiredProposal, proposal.getKind());
break;
case CompletionProposal.TYPE_REF:
org.eclipse.lsp4j.TextEdit edit = toRequiredTypeEdit(requiredProposal, trigger, proposal.canUseDiamond(context));
if (proposal.getKind() == CompletionProposal.CONSTRUCTOR_INVOCATION || proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION
|| proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_DECLARATION) {
completionBuffer.append(edit.getNewText());
range = edit.getRange();
} else {
additionalTextEdits.add(edit);
}
break;
default:
/*
* In 3.3 we only support the above required proposals, see
* CompletionProposal#getRequiredProposals()
*/
Assert.isTrue(false);
}
}
}
}
if (range == null) {
range = toReplacementRange(proposal);
}
if(proposal.getKind() == CompletionProposal.METHOD_DECLARATION){
appendMethodOverrideReplacement(completionBuffer, proposal);
} else if (proposal.getKind() == CompletionProposal.POTENTIAL_METHOD_DECLARATION && proposal instanceof GetterSetterCompletionProposal) {
appendMethodPotentialReplacement(completionBuffer, (GetterSetterCompletionProposal) proposal);
} else if (proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION || proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_DECLARATION) {
appendAnonymousClass(completionBuffer, proposal, range);
} else {
appendReplacementString(completionBuffer, proposal);
}
//select insertTextFormat.
if( client.isCompletionSnippetsSupported()){
item.setInsertTextFormat(InsertTextFormat.Snippet);
}else{
item.setInsertTextFormat(InsertTextFormat.PlainText);
}
String text = completionBuffer.toString();
if(range != null){
item.setTextEdit(new org.eclipse.lsp4j.TextEdit(range, text));
}else{
// fallback
item.setInsertText(text);
}
addImports(additionalTextEdits);
if(!additionalTextEdits.isEmpty()){
item.setAdditionalTextEdits(additionalTextEdits);
}
}