Skip to content

Commit

Permalink
feat: add enable plugin with selecting the suggestion when trigger th…
Browse files Browse the repository at this point in the history
…e command

Signed-off-by: edonyzpc <edonyzpc@yahoo.com>
  • Loading branch information
edonyzpc committed Jul 21, 2022
1 parent 748b30d commit 72a44e5
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
4 changes: 2 additions & 2 deletions manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
"id": "obsidian-plugins-mng",
"name": "Obsidian Plugins Manager",
"version": "1.0.1",
"minAppVersion": "0.15.4",
"description": "This is a sample plugin for Obsidian. This plugin demonstrates some of the capabilities of the Obsidian API.",
"minAppVersion": "0.15.0",
"description": "Obsidian plugins management, e.g. enable/disable plugin",
"author": "Obsidian",
"authorUrl": "https://obsidian.md",
"isDesktopOnly": false
Expand Down
21 changes: 14 additions & 7 deletions src/modal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export class SampleModal extends Modal {
}

interface DisabledPlugin {
name: string;
id: string;
desc: string;
}
Expand All @@ -37,31 +38,37 @@ const ALL_DISABLED_PLUGIN = [
];

export class PluginSuggestModal extends SuggestModal<DisabledPlugin> {
obsidianPlugins = (window.app as any).plugins;
// Returns all available suggestions.
getSuggestions(query: string): DisabledPlugin[] {
'use strict'
const disabledPlugins: DisabledPlugin[] = [];
for (const key of Object.keys((window.app as any).plugins.manifests)) {
new Notice(key);
if (!(window.app as any).plugins.enabledPlugins.has((window.app as any).plugins.manifests[key].id)) {
if (!this.obsidianPlugins.enabledPlugins.has(this.obsidianPlugins.manifests[key].id)) {
disabledPlugins.push({
id: (window.app as any).plugins.manifests[key].id,
desc: (window.app as any).plugins.manifests[key].description,
name: this.obsidianPlugins.manifests[key].name,
id: this.obsidianPlugins.manifests[key].id,
desc: this.obsidianPlugins.manifests[key].description,
});
}
}
console.log(disabledPlugins);
return disabledPlugins;
}

// Renders each suggestion item.
renderSuggestion(plugin: DisabledPlugin, el: HTMLElement) {
el.createEl("div", { text: plugin.id });
el.createEl("div", { text: plugin.name });
el.createEl("small", { text: plugin.desc });
}

// Perform action on the selected suggestion.
onChooseSuggestion(plugin: DisabledPlugin, evt: MouseEvent | KeyboardEvent) {
new Notice(`Selected ${plugin.id}`);
'use strict'
new Notice(`enabling plugin ${plugin.name}`);
if (this.obsidianPlugins.enablePlugin(plugin.id)) {
new Notice(`enable plugin[${plugin.name}] successfully`);
} else {
new Notice(`enable plugin[${plugin.name}] failed, try it again`);
}
}
}

0 comments on commit 72a44e5

Please sign in to comment.