Spring Data repo CA consecutive invocation while "query" is built
This commit is contained in:
@@ -26,9 +26,10 @@ public class FindByCompletionProposal implements ICompletionProposal {
|
||||
private Renderable doc;
|
||||
private Optional<DocumentEdits> additionalEdits;
|
||||
private String filter;
|
||||
private boolean triggerNextCompletion;
|
||||
|
||||
public FindByCompletionProposal(String label, CompletionItemKind kind, DocumentEdits edits, String details,
|
||||
Renderable doc, Optional<DocumentEdits> additionalEdits, String filter) {
|
||||
Renderable doc, Optional<DocumentEdits> additionalEdits, String filter, boolean triggerNextCompletion) {
|
||||
super();
|
||||
this.label = label;
|
||||
this.kind = kind;
|
||||
@@ -37,9 +38,10 @@ public class FindByCompletionProposal implements ICompletionProposal {
|
||||
this.doc = doc;
|
||||
this.additionalEdits = additionalEdits;
|
||||
this.filter = filter;
|
||||
this.triggerNextCompletion = triggerNextCompletion;
|
||||
}
|
||||
|
||||
public static ICompletionProposal createProposal(int offset, CompletionItemKind completionItemKind, String prefix, String label, String completion) {
|
||||
public static ICompletionProposal createProposal(int offset, CompletionItemKind completionItemKind, String prefix, String label, String completion, boolean triggerNextCompletion) {
|
||||
DocumentEdits edits = new DocumentEdits(null, false);
|
||||
String filter = label;
|
||||
if (prefix != null && label.startsWith(prefix)) {
|
||||
@@ -54,7 +56,7 @@ public class FindByCompletionProposal implements ICompletionProposal {
|
||||
}
|
||||
|
||||
DocumentEdits additionalEdits = new DocumentEdits(null, false);
|
||||
return new FindByCompletionProposal(label, completionItemKind, edits, null, null, Optional.of(additionalEdits), filter);
|
||||
return new FindByCompletionProposal(label, completionItemKind, edits, null, null, Optional.of(additionalEdits), filter, triggerNextCompletion);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -92,4 +94,9 @@ public class FindByCompletionProposal implements ICompletionProposal {
|
||||
return filter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTriggeringNextCompletionRequest() {
|
||||
return triggerNextCompletion;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class DataRepositoryQueryStartCompletionProvider implements DataRepositor
|
||||
for(QueryMethodSubject queryMethodSubject : QueryMethodSubject.QUERY_METHOD_SUBJECTS){
|
||||
String toInsert = queryMethodSubject.key() + "By";
|
||||
if(prefix == null || toInsert.startsWith(localPrefix)||isOffsetAfterWhitespace(doc, offset)) {
|
||||
completions.add(FindByCompletionProposal.createProposal(offset, CompletionItemKind.Text, prefix, toInsert, toInsert));
|
||||
completions.add(FindByCompletionProposal.createProposal(offset, CompletionItemKind.Text, prefix, toInsert, toInsert, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,6 +56,6 @@ public class DataRepositoryStandardCompletionProvider implements DataRepositoryC
|
||||
completion.append(StringUtils.uncapitalize(domainProperty.getName()));
|
||||
completion.append(");");
|
||||
|
||||
return FindByCompletionProposal.createProposal(offset, CompletionItemKind.Method, prefix, label.toString(), completion.toString());
|
||||
return FindByCompletionProposal.createProposal(offset, CompletionItemKind.Method, prefix, label.toString(), completion.toString(), false);
|
||||
}
|
||||
}
|
||||
@@ -94,7 +94,7 @@ public class DataRepositoryPrefixSensitiveCompletionProvider implements DataRepo
|
||||
DocumentEdits edits = new DocumentEdits(null, false);
|
||||
edits.replace(offset - lastWord.length(), offset, toReplace);
|
||||
DocumentEdits additionalEdits = new DocumentEdits(null, false);
|
||||
ICompletionProposal proposal = new FindByCompletionProposal(toReplace, CompletionItemKind.Text, edits, "property " + toReplace, null, Optional.of(additionalEdits), lastWord);
|
||||
ICompletionProposal proposal = new FindByCompletionProposal(toReplace, CompletionItemKind.Text, edits, "property " + toReplace, null, Optional.of(additionalEdits), lastWord, true);
|
||||
completions.add(proposal);
|
||||
}
|
||||
}
|
||||
@@ -117,7 +117,7 @@ public class DataRepositoryPrefixSensitiveCompletionProvider implements DataRepo
|
||||
int replaceStart = calculateReplaceOffset(offset, localPrefix, fullPrefix, returnType);
|
||||
edits.replace(replaceStart, offset, newText.toString());
|
||||
DocumentEdits additionalEdits = new DocumentEdits(null, false);
|
||||
ICompletionProposal proposal = new FindByCompletionProposal(methodName, CompletionItemKind.Method, edits, null, null, Optional.of(additionalEdits), signature);
|
||||
ICompletionProposal proposal = new FindByCompletionProposal(methodName, CompletionItemKind.Method, edits, null, null, Optional.of(additionalEdits), signature, false);
|
||||
completions.add(proposal);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user