From b3badae762c0294b3404a3b5fd6a095ddeb03330 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Mon, 12 Aug 2024 14:05:31 +0200 Subject: [PATCH] Support for grammar rule enable/disable --- service.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/service.js b/service.js index 2ebcf26..7a6f209 100644 --- a/service.js +++ b/service.js @@ -36,6 +36,8 @@ class BesService { this.hostElement = hostElement this.textElement = textElement this.eventSink = eventSink + this.enabledRules = [] + this.disabledRules = [] this.enabledCategories = [] this.disabledCategories = [] this.results = [] // Results of grammar-checking, one per each block/paragraph of text @@ -134,6 +136,29 @@ class BesService { BesService.getServiceByElement(hostElement)?.unregister() } + /** + * Enables given grammar rule. + * + * @param {String} rule Rule ID. For the list of rule IDs, see /api/v2/configinfo output. + */ + enableRule(rule) { + this.enabledRules.push(rule) + this.disabledRules = this.disabledRules.filter(value => value !== rule) + this.scheduleProofing(10) + } + + /** + * Disables given grammar rule. + * + * @param {String} rule Rule ID. For the list of rule IDs, see /api/v2/configinfo output. + */ + disableRule(rule) { + this.enabledRules = this.enabledRules.filter(value => value !== rule) + this.disabledRules.push(rule) + this.scheduleProofing(10) + return this + } + /** * Enables all grammar rules of the given category. * @@ -561,6 +586,8 @@ class BesTreeService extends BesService { ) }), language: node.lang ? node.lang : 'sl', + enabledRules: this.enabledRules.join(','), + disabledRules: this.disabledRules.join(','), enabledCategories: this.enabledCategories.join(','), disabledCategories: this.disabledCategories.join(','), enabledOnly: 'false' @@ -1196,6 +1223,8 @@ class BesPlainTextService extends BesService { ] }), language: this.hostElement.lang ? this.hostElement.lang : 'sl', + enabledRules: this.enabledRules.join(','), + disabledRules: this.disabledRules.join(','), enabledCategories: this.enabledCategories.join(','), disabledCategories: this.disabledCategories.join(','), enabledOnly: 'false'