From 5e9fc3bd37b15d3062800d2651549663edfa3ec1 Mon Sep 17 00:00:00 2001 From: Michael Naumov Date: Mon, 13 May 2024 22:53:59 -0600 Subject: [PATCH 1/3] Configure CodeMirror to treat dataviewjs as javascript and revert on unload --- src/main.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main.ts b/src/main.ts index 9b600fae..d81dc1c6 100644 --- a/src/main.ts +++ b/src/main.ts @@ -161,6 +161,9 @@ export default class DataviewPlugin extends Plugin { }); }) ); + + window.CodeMirror.defineMode("dataviewjs", config => window.CodeMirror.getMode(config, "javascript")); + this.register(() => window.CodeMirror.defineMode("dataviewjs", config => window.CodeMirror.getMode(config, "null"))); } private debouncedRefresh: () => void = () => null; From 9cfbf8d5cfff186dee2e3b5f667243e73452f974 Mon Sep 17 00:00:00 2001 From: Michael Naumov Date: Mon, 13 May 2024 22:57:06 -0600 Subject: [PATCH 2/3] Run prettier --- src/main.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main.ts b/src/main.ts index d81dc1c6..7844bbd7 100644 --- a/src/main.ts +++ b/src/main.ts @@ -163,7 +163,9 @@ export default class DataviewPlugin extends Plugin { ); window.CodeMirror.defineMode("dataviewjs", config => window.CodeMirror.getMode(config, "javascript")); - this.register(() => window.CodeMirror.defineMode("dataviewjs", config => window.CodeMirror.getMode(config, "null"))); + this.register(() => + window.CodeMirror.defineMode("dataviewjs", config => window.CodeMirror.getMode(config, "null")) + ); } private debouncedRefresh: () => void = () => null; From cd3d89a7c01d78782c9c03ec7c26276ac655bf8d Mon Sep 17 00:00:00 2001 From: Michael Naumov Date: Fri, 17 May 2024 00:07:09 -0600 Subject: [PATCH 3/3] Handle custom dataviewjs block name --- src/main.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main.ts b/src/main.ts index 7844bbd7..1f750fda 100644 --- a/src/main.ts +++ b/src/main.ts @@ -162,9 +162,19 @@ export default class DataviewPlugin extends Plugin { }) ); - window.CodeMirror.defineMode("dataviewjs", config => window.CodeMirror.getMode(config, "javascript")); - this.register(() => - window.CodeMirror.defineMode("dataviewjs", config => window.CodeMirror.getMode(config, "null")) + this.registerDataviewjsCodeHighlighting(); + this.register(() => this.unregisterDataviewjsCodeHighlighting()); + } + + public registerDataviewjsCodeHighlighting(): void { + window.CodeMirror.defineMode(this.settings.dataviewJsKeyword, config => + window.CodeMirror.getMode(config, "javascript") + ); + } + + public unregisterDataviewjsCodeHighlighting(): void { + window.CodeMirror.defineMode(this.settings.dataviewJsKeyword, config => + window.CodeMirror.getMode(config, "null") ); } @@ -384,7 +394,9 @@ class GeneralSettingsTab extends PluginSettingTab { .setValue(this.plugin.settings.dataviewJsKeyword) .onChange(async value => { if (value.length == 0) return; + this.plugin.unregisterDataviewjsCodeHighlighting(); await this.plugin.updateSettings({ dataviewJsKeyword: value }); + this.plugin.registerDataviewjsCodeHighlighting(); }) );