From 473fbca336f3d503c41fb904a58bb00841fee5f2 Mon Sep 17 00:00:00 2001 From: Simon Cambier Date: Mon, 28 Nov 2022 21:18:18 +0100 Subject: [PATCH] #103 - Added a default highlight, as an opt-out setting --- assets/styles.css | 5 +++++ src/globals.ts | 5 ++++- src/settings.ts | 33 +++++++++++++++++++++++++-------- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/assets/styles.css b/assets/styles.css index a426b95..b9c3ac7 100644 --- a/assets/styles.css +++ b/assets/styles.css @@ -30,6 +30,11 @@ .omnisearch-highlight { } +.omnisearch-default-highlight { + color: var(--text-normal); + background-color: var(--text-highlight-bg); +} + .omnisearch-input-container { display: flex; flex-direction: row; diff --git a/src/globals.ts b/src/globals.ts index 3c00145..acd2f94 100644 --- a/src/globals.ts +++ b/src/globals.ts @@ -1,5 +1,6 @@ import { EventBus } from './tools/event-bus' import { writable } from 'svelte/store' +import { settings } from './settings' export const regexLineSplit = /\r?\n|\r|((\.|\?|!)( |\r?\n|\r))/g export const regexYaml = /^---\s*\n(.*?)\n?^---\s?/ms @@ -9,7 +10,9 @@ export const chsRegex = /[\u4e00-\u9fa5]/ export const excerptBefore = 100 export const excerptAfter = 300 -export const highlightClass = 'suggestion-highlight omnisearch-highlight' +export const highlightClass = `suggestion-highlight omnisearch-highlight ${ + settings.hightlight ? 'omnisearch-default-highlight' : '' +}` export const eventBus = new EventBus() diff --git a/src/settings.ts b/src/settings.ts index 4c8bb59..943368d 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -44,6 +44,7 @@ export interface OmnisearchSettings extends WeightingSettings { welcomeMessage: string /** If a query returns 0 result, try again with more relax conditions */ simpleSearch: boolean + hightlight: boolean } /** @@ -149,7 +150,7 @@ export class SettingsTab extends PluginSettingTab { //#endregion Indexing - // #region Behavior + //#region Behavior new Setting(containerEl).setName('Behavior').setHeading() @@ -197,9 +198,9 @@ export class SettingsTab extends PluginSettingTab { }) ) - // #endregion Behavior + //#endregion Behavior - // #region User Interface + //#region User Interface new Setting(containerEl).setName('User Interface').setHeading() @@ -234,7 +235,9 @@ export class SettingsTab extends PluginSettingTab { // Keep line returns in excerpts new Setting(containerEl) .setName('Render line return in excerpts') - .setDesc('Activate this option to render line returns in result excerpts.') + .setDesc( + 'Activate this option to render line returns in result excerpts.' + ) .addToggle(toggle => toggle .setValue(settings.renderLineReturnInExcerpts) @@ -284,9 +287,22 @@ export class SettingsTab extends PluginSettingTab { }) ) - // #endregion User Interface + // Highlight results + new Setting(containerEl) + .setName('Highlight matching words in results') + .setDesc( + 'Will highlight matching results when enabled. See README for more customization options.' + ) + .addToggle(toggle => + toggle.setValue(settings.hightlight).onChange(async v => { + settings.hightlight = v + await saveSettings(this.plugin) + }) + ) - // #region Results Weighting + //#endregion User Interface + + //#region Results Weighting new Setting(containerEl).setName('Results weighting').setHeading() @@ -308,9 +324,9 @@ export class SettingsTab extends PluginSettingTab { .setName(`Headings level 3 (default: ${DEFAULT_SETTINGS.weightH3})`) .addSlider(cb => this.weightSlider(cb, 'weightH3')) - // #endregion Results Weighting + //#endregion Results Weighting - // #region Danger Zone + //#region Danger Zone new Setting(containerEl).setName('Danger Zone').setHeading() @@ -357,6 +373,7 @@ export const DEFAULT_SETTINGS: OmnisearchSettings = { showExcerpt: true, renderLineReturnInExcerpts: true, showCreateButton: false, + hightlight: true, showPreviousQueryResults: true, simpleSearch: false,