chore(code/find): reintroduce total number of results

This commit is contained in:
Elian Doran 2025-05-12 19:35:07 +03:00
parent 749ae1b6b4
commit f2745d546b
No known key found for this signature in database
3 changed files with 13 additions and 3 deletions

View File

@ -31,7 +31,7 @@ export default class FindInCode {
}
async performFind(searchTerm: string, matchCase: boolean, wholeWord: boolean) {
const totalFound = 0;
let totalFound = 0;
const currentFound = 0;
const codeEditor = await this.getCodeEditor();
@ -39,7 +39,8 @@ export default class FindInCode {
return { totalFound, currentFound };
}
await codeEditor.performFind(searchTerm, matchCase, wholeWord);
const result = await codeEditor.performFind(searchTerm, matchCase, wholeWord);
totalFound = result.totalFound;
return { totalFound, currentFound };
}

View File

@ -17,6 +17,7 @@ export function createSearchHighlighter(view: EditorView, searchTerm: string, ma
return ViewPlugin.fromClass(class SearchHighlighter {
matches = matcher.createDeco(view);
totalFound = this.matches.size;
constructor(public view: EditorView) { }
@ -32,7 +33,8 @@ export function createSearchHighlighter(view: EditorView, searchTerm: string, ma
static deco = (v: SearchHighlighter) => v.matches;
}, {
decorations: v => v.matches
decorations: v => v.matches,
provide: (plugin) => plugin
});
}

View File

@ -176,6 +176,13 @@ export default class CodeMirror extends EditorView {
this.dispatch({
effects: this.searchHighlightCompartment.reconfigure(plugin)
});
// Wait for the plugin to activate in the next render cycle
await new Promise(requestAnimationFrame);
const instance = this.plugin(plugin); // TS workaround
return {
totalFound: instance?.totalFound ?? 0
}
}
async setMimeType(mime: string) {