mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	feat(backend_log): disable some editor features to increase performance
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
				
			|||||||
import server from "../../../services/server.js";
 | 
					import server from "../../../services/server.js";
 | 
				
			||||||
import AbstractCodeTypeWidget from "../abstract_code_type_widget.js";
 | 
					import AbstractCodeTypeWidget from "../abstract_code_type_widget.js";
 | 
				
			||||||
import type { EventData } from "../../../components/app_context.js";
 | 
					import type { EventData } from "../../../components/app_context.js";
 | 
				
			||||||
 | 
					import type { EditorConfig } from "@triliumnext/codemirror";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const TPL = /*html*/`<div style="height: 100%; display: flex; flex-direction: column;">
 | 
					const TPL = /*html*/`<div style="height: 100%; display: flex; flex-direction: column;">
 | 
				
			||||||
    <style>
 | 
					    <style>
 | 
				
			||||||
@@ -38,9 +39,10 @@ export default class BackendLogWidget extends AbstractCodeTypeWidget {
 | 
				
			|||||||
        this.refresh();
 | 
					        this.refresh();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    getExtraOpts(): Partial<CodeMirrorOpts> {
 | 
					    getExtraOpts(): Partial<EditorConfig> {
 | 
				
			||||||
        return {
 | 
					        return {
 | 
				
			||||||
            readOnly: true
 | 
					            readOnly: true,
 | 
				
			||||||
 | 
					            preferPerformance: true
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,6 +39,7 @@
 | 
				
			|||||||
*   Slight organization in Appearance settings: code block themes are now in "Text Notes", added a "Related settings" section in Appearance.
 | 
					*   Slight organization in Appearance settings: code block themes are now in "Text Notes", added a "Related settings" section in Appearance.
 | 
				
			||||||
*   [Added support for opening and activating a note in a new tab using Ctrl+Shift+click on notes in the launcher pane, note tree, or note images](https://github.com/TriliumNext/Notes/pull/1854) by @SiriusXT
 | 
					*   [Added support for opening and activating a note in a new tab using Ctrl+Shift+click on notes in the launcher pane, note tree, or note images](https://github.com/TriliumNext/Notes/pull/1854) by @SiriusXT
 | 
				
			||||||
*   [Style and footnote improvements](https://github.com/TriliumNext/Notes/pull/1913) by @SiriusXT
 | 
					*   [Style and footnote improvements](https://github.com/TriliumNext/Notes/pull/1913) by @SiriusXT
 | 
				
			||||||
 | 
					*   Backend log: disable some editor features in order to increase performance for large logs (syntax highlighting, folding, etc.).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 📖 Documentation
 | 
					## 📖 Documentation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,8 @@ export interface EditorConfig {
 | 
				
			|||||||
    lineWrapping?: boolean;
 | 
					    lineWrapping?: boolean;
 | 
				
			||||||
    vimKeybindings?: boolean;
 | 
					    vimKeybindings?: boolean;
 | 
				
			||||||
    readOnly?: boolean;
 | 
					    readOnly?: boolean;
 | 
				
			||||||
 | 
					    /** Disables some of the nice-to-have features (bracket matching, syntax highlighting, indentation markers) in order to improve performance. */
 | 
				
			||||||
 | 
					    preferPerformance?: boolean;
 | 
				
			||||||
    tabIndex?: number;
 | 
					    tabIndex?: number;
 | 
				
			||||||
    onContentChanged?: ContentChangedListener;
 | 
					    onContentChanged?: ContentChangedListener;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -51,19 +53,10 @@ export default class CodeMirror extends EditorView {
 | 
				
			|||||||
            ...extensions,
 | 
					            ...extensions,
 | 
				
			||||||
            languageCompartment.of([]),
 | 
					            languageCompartment.of([]),
 | 
				
			||||||
            lineWrappingCompartment.of(config.lineWrapping ? EditorView.lineWrapping : []),
 | 
					            lineWrappingCompartment.of(config.lineWrapping ? EditorView.lineWrapping : []),
 | 
				
			||||||
            themeCompartment.of([
 | 
					 | 
				
			||||||
                syntaxHighlighting(defaultHighlightStyle, { fallback: true })
 | 
					 | 
				
			||||||
            ]),
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            searchMatchHighlightTheme,
 | 
					            searchMatchHighlightTheme,
 | 
				
			||||||
            searchHighlightCompartment.of([]),
 | 
					            searchHighlightCompartment.of([]),
 | 
				
			||||||
 | 
					 | 
				
			||||||
            highlightActiveLine(),
 | 
					            highlightActiveLine(),
 | 
				
			||||||
            highlightSelectionMatches(),
 | 
					 | 
				
			||||||
            bracketMatching(),
 | 
					 | 
				
			||||||
            lineNumbers(),
 | 
					            lineNumbers(),
 | 
				
			||||||
            foldGutter(),
 | 
					 | 
				
			||||||
            indentationMarkers(),
 | 
					 | 
				
			||||||
            indentUnit.of(" ".repeat(4)),
 | 
					            indentUnit.of(" ".repeat(4)),
 | 
				
			||||||
            keymap.of([
 | 
					            keymap.of([
 | 
				
			||||||
                ...defaultKeymap,
 | 
					                ...defaultKeymap,
 | 
				
			||||||
@@ -72,6 +65,19 @@ export default class CodeMirror extends EditorView {
 | 
				
			|||||||
            ])
 | 
					            ])
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!config.preferPerformance) {
 | 
				
			||||||
 | 
					            extensions = [
 | 
				
			||||||
 | 
					                ...extensions,
 | 
				
			||||||
 | 
					                themeCompartment.of([
 | 
				
			||||||
 | 
					                    syntaxHighlighting(defaultHighlightStyle, { fallback: true })
 | 
				
			||||||
 | 
					                ]),
 | 
				
			||||||
 | 
					                highlightSelectionMatches(),
 | 
				
			||||||
 | 
					                bracketMatching(),
 | 
				
			||||||
 | 
					                foldGutter(),
 | 
				
			||||||
 | 
					                indentationMarkers(),
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!config.readOnly) {
 | 
					        if (!config.readOnly) {
 | 
				
			||||||
            // Logic specific to editable notes
 | 
					            // Logic specific to editable notes
 | 
				
			||||||
            if (config.placeholder) {
 | 
					            if (config.placeholder) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user