fix(editor): Improve expression editor performance by removing watchers (#8900)

This commit is contained in:
Elias Meire
2024-03-15 15:14:20 +01:00
committed by GitHub
parent a92d8bfc6e
commit a5261d6ebb
3 changed files with 15 additions and 34 deletions

View File

@@ -21,7 +21,6 @@ import {
} from '@/plugins/codemirror/keymap';
import { n8nAutocompletion, n8nLang } from '@/plugins/codemirror/n8nLang';
import { highlighter } from '@/plugins/codemirror/resolvableHighlighter';
import { isEqual } from 'lodash-es';
import { createEventBus, type EventBus } from 'n8n-design-system/utils';
import type { IDataObject } from 'n8n-workflow';
import { inputTheme } from './theme';
@@ -83,17 +82,6 @@ export default defineComponent({
},
});
},
displayableSegments(segments, newSegments) {
if (isEqual(segments, newSegments)) return;
highlighter.removeColor(this.editor, this.plaintextSegments);
highlighter.addColor(this.editor, this.resolvableSegments);
this.$emit('change', {
value: this.unresolvedExpression,
segments: this.displayableSegments,
});
},
},
mounted() {
const extensions = [
@@ -122,6 +110,13 @@ export default defineComponent({
// Force segments value update by keeping track of editor state
this.editorState = this.editor.state;
highlighter.removeColor(this.editor, this.plaintextSegments);
highlighter.addColor(this.editor, this.resolvableSegments);
this.$emit('change', {
value: this.unresolvedExpression,
segments: this.displayableSegments,
});
setTimeout(() => {
try {