From 372e40fe749d5ea12ba7de7fba7d08ab2263bf0e Mon Sep 17 00:00:00 2001 From: Simon Cambier Date: Fri, 27 Sep 2024 13:53:57 +0200 Subject: [PATCH] feat(#245): added a setting to determine how many embeds references to display in results --- src/search/search-engine.ts | 2 +- src/settings.ts | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/search/search-engine.ts b/src/search/search-engine.ts index 3001722..24d172c 100644 --- a/src/search/search-engine.ts +++ b/src/search/search-engine.ts @@ -385,7 +385,7 @@ export class SearchEngine { const embeds = this.plugin.embedsRepository .getEmbeds(doc.path) // Limit to 5 embeds - .slice(0, 5) + .slice(0, this.plugin.settings.maxEmbeds) for (const embed of embeds) { // Inject the embed in the content after index i documents[++i] = await this.plugin.cacheManager.getDocument(embed) diff --git a/src/settings.ts b/src/settings.ts index 695d8f8..7677bde 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -54,6 +54,8 @@ export interface OmnisearchSettings extends WeightingSettings { ribbonIcon: boolean /** Display the small contextual excerpt in search results */ showExcerpt: boolean + /** Number of embeds references to display in search results */ + maxEmbeds: number /** Render line returns with
in excerpts */ renderLineReturnInExcerpts: boolean /** Enable a "create note" button in the Vault Search modal */ @@ -465,6 +467,24 @@ export class SettingsTab extends PluginSettingTab { }) ) + // Show embeds + new Setting(containerEl) + .setName('Show embed references') + .setDesc( + htmlDescription(`Some results are embedded in other notes.
+ This setting controls the maximum number of embeds to show in the search results. Set to 0 to disable.
+ Also works with Text Extractor for embedded images and documents.`) + ) + .addSlider(cb => { + cb.setLimits(0, 10, 1) + .setValue(settings.maxEmbeds) + .setDynamicTooltip() + .onChange(async v => { + settings.maxEmbeds = v + await saveSettings(this.plugin) + }) + }) + // Keep line returns in excerpts new Setting(containerEl) .setName('Render line return in excerpts') @@ -791,6 +811,7 @@ export function getDefaultSettings(app: App): OmnisearchSettings { ribbonIcon: true, showExcerpt: true, + maxEmbeds: 5, renderLineReturnInExcerpts: true, showCreateButton: false, highlight: true,