more log replacement

This commit is contained in:
Matt Parker
2025-10-24 19:41:56 +10:00
parent 21e5218ea3
commit c174bc09da
4 changed files with 16 additions and 7 deletions

View File

@@ -1,13 +1,16 @@
using System.Collections.Concurrent;
using System.Diagnostics;
using System.IO.MemoryMappedFiles;
using Microsoft.Extensions.Logging;
using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence;
namespace SharpIDE.Application.Features.Search;
public static class SearchService
public class SearchService(ILogger<SearchService> logger)
{
public static async Task<List<FindInFilesSearchResult>> FindInFiles(SharpIdeSolutionModel solutionModel, string searchTerm, CancellationToken cancellationToken)
private readonly ILogger<SearchService> _logger = logger;
public async Task<List<FindInFilesSearchResult>> FindInFiles(SharpIdeSolutionModel solutionModel, string searchTerm, CancellationToken cancellationToken)
{
if (searchTerm.Length < 4) // TODO: halt search once 100 results are found, and remove this restriction
{
@@ -37,11 +40,11 @@ public static class SearchService
}
).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
timer.Stop();
Console.WriteLine($"Search completed in {timer.ElapsedMilliseconds} ms. Found {results.Count} results. {(cancellationToken.IsCancellationRequested ? "(Cancelled)" : "")}");
_logger.LogInformation("Search completed in {ElapsedMilliseconds}ms. Found {ResultCount} results. {Cancelled}", timer.ElapsedMilliseconds, results.Count, cancellationToken.IsCancellationRequested ? "(Cancelled)" : "");
return results.ToList();
}
public static async Task<List<FindFilesSearchResult>> FindFiles(SharpIdeSolutionModel solutionModel, string searchTerm, CancellationToken cancellationToken)
public async Task<List<FindFilesSearchResult>> FindFiles(SharpIdeSolutionModel solutionModel, string searchTerm, CancellationToken cancellationToken)
{
if (searchTerm.Length < 2) // TODO: halt search once 100 results are found, and remove this restriction
{
@@ -64,7 +67,7 @@ public static class SearchService
}
).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
timer.Stop();
Console.WriteLine($"File search completed in {timer.ElapsedMilliseconds} ms. Found {results.Count} results. {(cancellationToken.IsCancellationRequested ? "(Cancelled)" : "")}");
_logger.LogInformation("File search completed in {ElapsedMilliseconds}ms. Found {ResultCount} results. {Cancelled}", timer.ElapsedMilliseconds, results.Count, cancellationToken.IsCancellationRequested ? "(Cancelled)" : "");
return results.ToList();
}
}

View File

@@ -8,6 +8,7 @@ using SharpIDE.Application.Features.Build;
using SharpIDE.Application.Features.FilePersistence;
using SharpIDE.Application.Features.FileWatching;
using SharpIDE.Application.Features.Run;
using SharpIDE.Application.Features.Search;
namespace SharpIDE.Godot;
@@ -26,6 +27,7 @@ public partial class DiAutoload : Node
// Register services here
services.AddScoped<BuildService>();
services.AddScoped<RunService>();
services.AddScoped<SearchService>();
services.AddScoped<IdeFileExternalChangeHandler>();
services.AddScoped<IdeCodeActionService>();
services.AddScoped<IdeCompletionService>();

View File

@@ -14,6 +14,8 @@ public partial class SearchAllFilesWindow : PopupPanel
private CancellationTokenSource _cancellationTokenSource = new();
[Inject] private readonly SearchService _searchService = null!;
public override void _Ready()
{
_resultCountLabel = GetNode<Label>("%ResultCountLabel");
@@ -43,7 +45,7 @@ public partial class SearchAllFilesWindow : PopupPanel
private async Task Search(string text, CancellationToken cancellationToken)
{
var result = await SearchService.FindFiles(Solution, text, cancellationToken);
var result = await _searchService.FindFiles(Solution, text, cancellationToken);
if (cancellationToken.IsCancellationRequested) return;
await this.InvokeAsync(() =>
{

View File

@@ -14,6 +14,8 @@ public partial class SearchWindow : PopupPanel
private CancellationTokenSource _cancellationTokenSource = new();
[Inject] private readonly SearchService _searchService = null!;
public override void _Ready()
{
_resultCountLabel = GetNode<Label>("%ResultCountLabel");
@@ -43,7 +45,7 @@ public partial class SearchWindow : PopupPanel
private async Task Search(string text, CancellationToken cancellationToken)
{
var result = await SearchService.FindInFiles(Solution, text, cancellationToken);
var result = await _searchService.FindInFiles(Solution, text, cancellationToken);
if (cancellationToken.IsCancellationRequested) return;
await this.InvokeAsync(() =>
{