mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 10:02:59 +08:00
chore(code/find): scroll to nearest result
This commit is contained in:
parent
c4863dec50
commit
e08011b3d6
@ -57,9 +57,22 @@ export function createSearchHighlighter(view: EditorView, searchTerm: string, ma
|
||||
return;
|
||||
}
|
||||
|
||||
const pos = this.parsedMatches[matchIndex];
|
||||
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) {
|
||||
this.view.dispatch({
|
||||
effects: EditorView.scrollIntoView(pos.from, { y: "center" }),
|
||||
effects: EditorView.scrollIntoView(match.from, { y: "center" }),
|
||||
scrollIntoView: true
|
||||
});
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ export default class CodeMirror extends EditorView {
|
||||
await new Promise(requestAnimationFrame);
|
||||
const instance = this.plugin(plugin);
|
||||
if (instance) {
|
||||
instance.scrollToMatch(0);
|
||||
instance.scrollToMatchNearestSelection();
|
||||
}
|
||||
|
||||
return {
|
||||
|
Loading…
x
Reference in New Issue
Block a user