mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 18:12:29 +08:00
chore(code/find): update current found
This commit is contained in:
parent
e08011b3d6
commit
e5417827f4
@ -31,17 +31,12 @@ export default class FindInCode {
|
||||
}
|
||||
|
||||
async performFind(searchTerm: string, matchCase: boolean, wholeWord: boolean) {
|
||||
let totalFound = 0;
|
||||
const currentFound = 0;
|
||||
|
||||
const codeEditor = await this.getCodeEditor();
|
||||
if (!codeEditor) {
|
||||
return { totalFound, currentFound };
|
||||
return { totalFound: 0, currentFound: 0 };
|
||||
}
|
||||
|
||||
const result = await codeEditor.performFind(searchTerm, matchCase, wholeWord);
|
||||
totalFound = result.totalFound;
|
||||
|
||||
const { totalFound, currentFound } = await codeEditor.performFind(searchTerm, matchCase, wholeWord);
|
||||
return { totalFound, currentFound };
|
||||
}
|
||||
|
||||
|
@ -22,11 +22,13 @@ export function createSearchHighlighter(view: EditorView, searchTerm: string, ma
|
||||
|
||||
return ViewPlugin.fromClass(class SearchHighlighter {
|
||||
matches!: RangeSet<Decoration>;
|
||||
currentFound: number;
|
||||
totalFound: number;
|
||||
private parsedMatches: Match[];
|
||||
|
||||
constructor(public view: EditorView) {
|
||||
this.parsedMatches = [];
|
||||
this.currentFound = 0;
|
||||
this.totalFound = 0;
|
||||
this.updateSearchData(view);
|
||||
}
|
||||
@ -57,26 +59,27 @@ export function createSearchHighlighter(view: EditorView, searchTerm: string, ma
|
||||
return;
|
||||
}
|
||||
|
||||
this.scrollTo(this.parsedMatches[matchIndex]);
|
||||
}
|
||||
|
||||
scrollToMatchNearestSelection() {
|
||||
const cursorPos = this.view.state.selection.main.head;
|
||||
for (const match of this.parsedMatches) {
|
||||
if (match.from >= cursorPos) {
|
||||
this.scrollTo(match);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private scrollTo(match: Match) {
|
||||
const match = this.parsedMatches[matchIndex];
|
||||
this.currentFound = matchIndex + 1;
|
||||
this.view.dispatch({
|
||||
effects: EditorView.scrollIntoView(match.from, { y: "center" }),
|
||||
scrollIntoView: true
|
||||
});
|
||||
}
|
||||
|
||||
scrollToMatchNearestSelection() {
|
||||
const cursorPos = this.view.state.selection.main.head;
|
||||
let index = 0;
|
||||
for (const match of this.parsedMatches) {
|
||||
if (match.from >= cursorPos) {
|
||||
this.scrollToMatch(index);
|
||||
return;
|
||||
}
|
||||
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
destroy() {
|
||||
// Do nothing.
|
||||
}
|
||||
|
@ -185,7 +185,8 @@ export default class CodeMirror extends EditorView {
|
||||
}
|
||||
|
||||
return {
|
||||
totalFound: instance?.totalFound ?? 0
|
||||
totalFound: instance?.totalFound ?? 0,
|
||||
currentFound: instance?.currentFound ?? 0
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user