display completions more frequently
This commit is contained in:
@@ -589,6 +589,19 @@ public class RoslynAnalysis(ILogger<RoslynAnalysis> logger, BuildService buildSe
|
||||
return completions;
|
||||
}
|
||||
|
||||
// Currently unused
|
||||
private async Task<bool> ShouldTriggerCompletionAsync(SharpIdeFile file, LinePosition linePosition, CompletionTrigger completionTrigger, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var document = await GetDocumentForSharpIdeFile(file, cancellationToken);
|
||||
var completionService = CompletionService.GetService(document);
|
||||
if (completionService is null) throw new InvalidOperationException("Completion service is not available for the document.");
|
||||
|
||||
var sourceText = await document.GetTextAsync(cancellationToken);
|
||||
var position = sourceText.Lines.GetPosition(linePosition);
|
||||
var shouldTrigger = completionService.ShouldTriggerCompletion(sourceText, position, completionTrigger);
|
||||
return shouldTrigger;
|
||||
}
|
||||
|
||||
public async Task<(string updatedText, SharpIdeFileLinePosition sharpIdeFileLinePosition)> GetCompletionApplyChanges(SharpIdeFile file, CompletionItem completionItem, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var documentId = _workspace!.CurrentSolution.GetDocumentIdsWithFilePath(file.Path).Single();
|
||||
|
||||
@@ -174,6 +174,12 @@ public partial class SharpIdeCodeEdit : CodeEdit
|
||||
|
||||
private void OnTextChanged()
|
||||
{
|
||||
var codeCompletionPopupClosed = GetCodeCompletionSelectedIndex() is -1;
|
||||
var shouldShowCodeCompletion = codeCompletionPopupClosed && HasFocus(); // This is a bad solution - it will be triggered on copy paste, undo redo, applying code fixes etc
|
||||
if (codeCompletionPopupClosed)
|
||||
{
|
||||
EmitSignalCodeCompletionRequested();
|
||||
}
|
||||
_ = Task.GodotRun(async () =>
|
||||
{
|
||||
var __ = SharpIdeOtel.Source.StartActivity($"{nameof(SharpIdeCodeEdit)}.{nameof(OnTextChanged)}");
|
||||
|
||||
Reference in New Issue
Block a user