mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-11-04 07:01:31 +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