mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 10:02:59 +08:00
fix(code/find): crashes at dialog shown
This commit is contained in:
parent
ac49c0f59b
commit
f20232c077
@ -11,6 +11,7 @@ import type { ViewScope } from "../services/link.js";
|
||||
import type FNote from "../entities/fnote.js";
|
||||
import type TypeWidget from "../widgets/type_widgets/type_widget.js";
|
||||
import type { CKTextEditor } from "@triliumnext/ckeditor5";
|
||||
import type CodeMirror from "@triliumnext/codemirror";
|
||||
|
||||
export interface SetNoteOpts {
|
||||
triggerSwitchEvent?: unknown;
|
||||
@ -312,7 +313,7 @@ class NoteContext extends Component implements EventListener<"entitiesReloaded">
|
||||
|
||||
async getCodeEditor() {
|
||||
return this.timeout(
|
||||
new Promise<CodeMirrorInstance>((resolve) =>
|
||||
new Promise<CodeMirror>((resolve) =>
|
||||
appContext.triggerCommand("executeWithCodeEditor", {
|
||||
resolve,
|
||||
ntxId: this.ntxId
|
||||
|
@ -203,7 +203,7 @@ export default class FindWidget extends NoteContextAwareWidget {
|
||||
selectedText = $content.find('.cm-matchhighlight').first().text();
|
||||
} else {
|
||||
const codeEditor = await this.noteContext.getCodeEditor();
|
||||
selectedText = codeEditor.getSelection();
|
||||
selectedText = codeEditor.getSelectedText();
|
||||
}
|
||||
} else {
|
||||
selectedText = window.getSelection()?.toString() || "";
|
||||
|
@ -104,6 +104,17 @@ export default class CodeMirror extends EditorView {
|
||||
return this.state.doc.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently selected text.
|
||||
*
|
||||
* If there are multiple selections, all of them will be concatenated.
|
||||
*/
|
||||
getSelectedText() {
|
||||
return this.state.selection.ranges
|
||||
.map((range) => this.state.sliceDoc(range.from, range.to))
|
||||
.join("");
|
||||
}
|
||||
|
||||
setText(content: string) {
|
||||
this.dispatch({
|
||||
changes: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user