forked from qt-creator/qt-creator
LSP: CompletionRequest: set triggerCharacter when possible
When the completion request is triggered by an activation character, set the triggerCharacter accordingly. This can help the language server to propose more sensible items. Detected while trying cmake language server. It was throwing an error when triggerKind is TriggerCharacter and triggerCharacter is not present. Change-Id: Ifde578e39f2eebfc5c6551f08985f4408f6c7933 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -318,9 +318,14 @@ IAssistProposal *LanguageClientCompletionAssistProcessor::perform(const AssistIn
|
|||||||
}
|
}
|
||||||
CompletionRequest completionRequest;
|
CompletionRequest completionRequest;
|
||||||
CompletionParams::CompletionContext context;
|
CompletionParams::CompletionContext context;
|
||||||
context.setTriggerKind(interface->reason() == ActivationCharacter
|
if (interface->reason() == ActivationCharacter) {
|
||||||
? CompletionParams::TriggerCharacter
|
context.setTriggerKind(CompletionParams::TriggerCharacter);
|
||||||
: CompletionParams::Invoked);
|
QChar triggerCharacter = interface->characterAt(interface->position() - 1);
|
||||||
|
if (!triggerCharacter.isNull())
|
||||||
|
context.setTriggerCharacter(triggerCharacter);
|
||||||
|
} else {
|
||||||
|
context.setTriggerKind(CompletionParams::Invoked);
|
||||||
|
}
|
||||||
auto params = completionRequest.params().value_or(CompletionParams());
|
auto params = completionRequest.params().value_or(CompletionParams());
|
||||||
int line;
|
int line;
|
||||||
int column;
|
int column;
|
||||||
|
Reference in New Issue
Block a user