mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +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 AbstractCodeTypeWidget from "../abstract_code_type_widget.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;"> | ||||
|     <style> | ||||
| @@ -38,9 +39,10 @@ export default class BackendLogWidget extends AbstractCodeTypeWidget { | ||||
|         this.refresh(); | ||||
|     } | ||||
|  | ||||
|     getExtraOpts(): Partial<CodeMirrorOpts> { | ||||
|     getExtraOpts(): Partial<EditorConfig> { | ||||
|         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. | ||||
| *   [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 | ||||
| *   Backend log: disable some editor features in order to increase performance for large logs (syntax highlighting, folding, etc.). | ||||
|  | ||||
| ## 📖 Documentation | ||||
|  | ||||
|   | ||||
| @@ -20,6 +20,8 @@ export interface EditorConfig { | ||||
|     lineWrapping?: boolean; | ||||
|     vimKeybindings?: 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; | ||||
|     onContentChanged?: ContentChangedListener; | ||||
| } | ||||
| @@ -51,19 +53,10 @@ export default class CodeMirror extends EditorView { | ||||
|             ...extensions, | ||||
|             languageCompartment.of([]), | ||||
|             lineWrappingCompartment.of(config.lineWrapping ? EditorView.lineWrapping : []), | ||||
|             themeCompartment.of([ | ||||
|                 syntaxHighlighting(defaultHighlightStyle, { fallback: true }) | ||||
|             ]), | ||||
|  | ||||
|             searchMatchHighlightTheme, | ||||
|             searchHighlightCompartment.of([]), | ||||
|  | ||||
|             highlightActiveLine(), | ||||
|             highlightSelectionMatches(), | ||||
|             bracketMatching(), | ||||
|             lineNumbers(), | ||||
|             foldGutter(), | ||||
|             indentationMarkers(), | ||||
|             indentUnit.of(" ".repeat(4)), | ||||
|             keymap.of([ | ||||
|                 ...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) { | ||||
|             // Logic specific to editable notes | ||||
|             if (config.placeholder) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user