mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 10:02:59 +08:00
chore(code/find): reimplement replace all
This commit is contained in:
parent
b646475018
commit
3ace3d9ed9
@ -61,23 +61,7 @@ export default class FindInCode {
|
||||
}
|
||||
|
||||
async replaceAll(replaceText: string) {
|
||||
if (!this.findResult || this.findResult.length === 0) {
|
||||
return;
|
||||
}
|
||||
const codeEditor = await this.getCodeEditor();
|
||||
const doc = codeEditor?.doc;
|
||||
codeEditor?.operation(() => {
|
||||
if (!this.findResult) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (let currentFound = 0; currentFound < this.findResult.length; currentFound++) {
|
||||
let marker = this.findResult[currentFound];
|
||||
let pos = marker.find();
|
||||
doc?.replaceRange(replaceText, pos.from, pos.to);
|
||||
marker.clear();
|
||||
}
|
||||
});
|
||||
this.findResult = [];
|
||||
codeEditor?.replaceAll(replaceText);
|
||||
}
|
||||
}
|
||||
|
@ -57,6 +57,18 @@ export class SearchHighlighter {
|
||||
});
|
||||
}
|
||||
|
||||
replaceAll(replacementText: string) {
|
||||
if (!this.parsedMatches.length) return;
|
||||
|
||||
this.view.dispatch({
|
||||
changes: this.parsedMatches.map(change => ({
|
||||
from: change.from,
|
||||
to: change.to,
|
||||
insert: replacementText
|
||||
}))
|
||||
});
|
||||
}
|
||||
|
||||
scrollToMatch(matchIndex: number) {
|
||||
if (this.parsedMatches.length <= matchIndex) {
|
||||
return;
|
||||
|
@ -198,6 +198,10 @@ export default class CodeMirror extends EditorView {
|
||||
this.searchPlugin?.replaceActiveMatch(replaceText);
|
||||
}
|
||||
|
||||
async replaceAll(replaceText: string) {
|
||||
this.searchPlugin?.replaceAll(replaceText);
|
||||
}
|
||||
|
||||
cleanSearch() {
|
||||
if (this.searchPlugin) {
|
||||
this.dispatch({
|
||||
|
Loading…
x
Reference in New Issue
Block a user