From bbca705a2b49cf96d4280d64ddf03dafd4ec0c83 Mon Sep 17 00:00:00 2001 From: Michael Naumov Date: Thu, 20 Mar 2025 14:00:29 -0600 Subject: [PATCH] Cleanup --- src/AdvancedDebuggerPlugin.ts | 263 ------------------ src/AdvancedDebuggerPluginSettings.ts | 45 --- src/AdvancedDebuggerPluginSettingsTab.ts | 222 --------------- src/EditorExtensions/SampleStateField.ts | 51 ---- src/EditorExtensions/SampleViewPlugin.ts | 66 ----- src/EditorExtensions/SampleWidget.ts | 7 - src/EditorSuggests/SampleEditorSuggest.ts | 44 --- src/Modals/SampleModal.ts | 7 - src/ReactComponents/SampleReactComponent.tsx | 35 --- .../SampleSvelteComponent.d.ts | 7 - .../SampleSvelteComponent.svelte | 19 -- src/Views/SampleReactView.tsx | 47 ---- src/Views/SampleSvelteView.ts | 47 ---- src/Views/SampleView.ts | 19 -- src/main.ts | 5 - src/styles/main.scss | 9 - 16 files changed, 893 deletions(-) delete mode 100644 src/AdvancedDebuggerPlugin.ts delete mode 100644 src/AdvancedDebuggerPluginSettings.ts delete mode 100644 src/AdvancedDebuggerPluginSettingsTab.ts delete mode 100644 src/EditorExtensions/SampleStateField.ts delete mode 100644 src/EditorExtensions/SampleViewPlugin.ts delete mode 100644 src/EditorExtensions/SampleWidget.ts delete mode 100644 src/EditorSuggests/SampleEditorSuggest.ts delete mode 100644 src/Modals/SampleModal.ts delete mode 100644 src/ReactComponents/SampleReactComponent.tsx delete mode 100644 src/SvelteComponents/SampleSvelteComponent.d.ts delete mode 100644 src/SvelteComponents/SampleSvelteComponent.svelte delete mode 100644 src/Views/SampleReactView.tsx delete mode 100644 src/Views/SampleSvelteView.ts delete mode 100644 src/Views/SampleView.ts delete mode 100644 src/main.ts delete mode 100644 src/styles/main.scss diff --git a/src/AdvancedDebuggerPlugin.ts b/src/AdvancedDebuggerPlugin.ts deleted file mode 100644 index bdf1f79..0000000 --- a/src/AdvancedDebuggerPlugin.ts +++ /dev/null @@ -1,263 +0,0 @@ -import type { - Editor, - MarkdownPostProcessorContext, - ObsidianProtocolData, - TAbstractFile, - WorkspaceLeaf -} from 'obsidian'; - -import { - MarkdownView, - Notice, - PluginSettingTab -} from 'obsidian'; -import { convertAsyncToSync } from 'obsidian-dev-utils/Async'; -import { getDebugger } from 'obsidian-dev-utils/Debug'; -import { alert } from 'obsidian-dev-utils/obsidian/Modals/Alert'; -import { confirm } from 'obsidian-dev-utils/obsidian/Modals/Confirm'; -import { prompt } from 'obsidian-dev-utils/obsidian/Modals/Prompt'; -import { selectItem } from 'obsidian-dev-utils/obsidian/Modals/SelectItem'; -import { PluginBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginBase'; - -import { AdvancedDebuggerPluginSettings } from './AdvancedDebuggerPluginSettings.ts'; -import { AdvancedDebuggerPluginSettingsTab } from './AdvancedDebuggerPluginSettingsTab.ts'; -import { sampleStateField } from './EditorExtensions/SampleStateField.ts'; -import { sampleViewPlugin } from './EditorExtensions/SampleViewPlugin.ts'; -import { SampleEditorSuggest } from './EditorSuggests/SampleEditorSuggest.ts'; -import { SampleModal } from './Modals/SampleModal.ts'; -import { - SAMPLE_REACT_VIEW_TYPE, - SampleReactView -} from './Views/SampleReactView.tsx'; -import { - SAMPLE_SVELTE_VIEW_TYPE, - SampleSvelteView -} from './Views/SampleSvelteView.ts'; -import { - SAMPLE_VIEW_TYPE, - SampleView -} from './Views/SampleView.ts'; - -export class AdvancedDebuggerPlugin extends PluginBase { - protected override createPluginSettings(data: unknown): AdvancedDebuggerPluginSettings { - return new AdvancedDebuggerPluginSettings(data); - } - - protected override createPluginSettingsTab(): null | PluginSettingTab { - return new AdvancedDebuggerPluginSettingsTab(this); - } - - protected override async onLayoutReady(): Promise { - new Notice('This is executed after all plugins are loaded'); - await this.openView(SAMPLE_VIEW_TYPE); - await this.openView(SAMPLE_SVELTE_VIEW_TYPE); - await this.openView(SAMPLE_REACT_VIEW_TYPE); - } - - protected override onloadComplete(): void { - this.addCommand({ - callback: this.runSampleCommand.bind(this), - id: 'sample-command', - name: 'Sample command' - }); - - this.addCommand({ - editorCallback: this.runSampleEditorCommand.bind(this), - id: 'sample-editor-command', - name: 'Sample editor command' - }); - - this.addCommand({ - checkCallback: this.runSampleCommandWithCheck.bind(this), - id: 'sample-command-with-check', - name: 'Sample command with check' - }); - - this.addRibbonIcon('dice', 'Sample ribbon icon', this.runSampleRibbonIconCommand.bind(this)); - - this.addStatusBarItem().setText('Sample status bar item'); - - this.registerDomEvent(document, 'dblclick', this.handleSampleDomEvent.bind(this)); - - this.registerEditorExtension([sampleViewPlugin, sampleStateField]); - - this.registerEditorSuggest(new SampleEditorSuggest(this.app)); - - this.registerEvent(this.app.vault.on('create', this.handleSampleEvent.bind(this))); - - this.registerExtensions(['sample-extension-1', 'sample-extension-2'], SAMPLE_VIEW_TYPE); - - this.registerHoverLinkSource(SAMPLE_VIEW_TYPE, { - defaultMod: true, - display: this.manifest.name - }); - - const INTERVAL_IN_MILLISECONDS = 60_000; - this.registerInterval(window.setInterval(this.handleSampleIntervalTick.bind(this), INTERVAL_IN_MILLISECONDS)); - - this.registerMarkdownCodeBlockProcessor('sample-code-block-processor', this.handleSampleCodeBlockProcessor.bind(this)); - - this.registerMarkdownPostProcessor(this.handleSampleMarkdownPostProcessor.bind(this)); - - this.registerObsidianProtocolHandler('sample-action', this.handleSampleObsidianProtocolHandler.bind(this)); - - this.registerView(SAMPLE_VIEW_TYPE, (leaf) => new SampleView(leaf)); - this.registerView(SAMPLE_SVELTE_VIEW_TYPE, (leaf) => new SampleSvelteView(leaf)); - this.registerView(SAMPLE_REACT_VIEW_TYPE, (leaf) => new SampleReactView(leaf)); - - this.registerModalCommands(); - } - - private handleSampleCodeBlockProcessor(source: string, el: HTMLElement, ctx: MarkdownPostProcessorContext): void { - getDebugger('handleSampleCodeBlockProcessor')(source, el, ctx); - el.setText('Sample code block processor'); - } - - private handleSampleDomEvent(evt: MouseEvent): void { - const tagName = evt.target instanceof HTMLElement ? evt.target.tagName : ''; - new Notice(`Sample DOM event: ${tagName}`); - } - - private handleSampleEvent(file: TAbstractFile): void { - if (!this.app.workspace.layoutReady) { - return; - } - - new Notice(`Sample event: ${file.name}`); - } - - private handleSampleIntervalTick(): void { - new Notice('Sample interval tick'); - } - - private handleSampleMarkdownPostProcessor(el: HTMLElement, ctx: MarkdownPostProcessorContext): void { - getDebugger('handleSampleMarkdownPostProcessor')(el, ctx); - if (el.hasClass('el-h6')) { - el.setText('Sample markdown post processor'); - } - } - - private handleSampleObsidianProtocolHandler(params: ObsidianProtocolData): void { - new Notice(`Sample obsidian protocol handler: ${params.action}`); - } - - private async openView(viewType: string): Promise { - let leaf: null | WorkspaceLeaf; - const leaves = this.app.workspace.getLeavesOfType(viewType); - - if (leaves.length > 0) { - leaf = leaves[0] ?? null; - } else { - leaf = this.app.workspace.getRightLeaf(true); - await leaf?.setViewState({ active: true, type: viewType }); - } - - if (leaf) { - await this.app.workspace.revealLeaf(leaf); - } - } - - private registerModalCommands(): void { - this.addCommand({ - callback: this.showSampleModal.bind(this), - id: 'show-sample-modal', - name: 'Show Sample Modal' - }); - - this.addCommand({ - callback: convertAsyncToSync(this.showAlert.bind(this)), - id: 'show-alert-modal', - name: 'Show Alert Modal' - }); - - this.addCommand({ - callback: convertAsyncToSync(this.showConfirm.bind(this)), - id: 'show-confirm-modal', - name: 'Show Confirm Modal' - }); - - this.addCommand({ - callback: convertAsyncToSync(this.showPrompt.bind(this)), - id: 'show-prompt-modal', - name: 'Show Prompt Modal' - }); - - this.addCommand({ - callback: convertAsyncToSync(this.showSelectItem.bind(this)), - id: 'show-select-item-modal', - name: 'Show Select Item Modal' - }); - } - - private runSampleCommand(): void { - new Notice('Sample command'); - } - - private runSampleCommandWithCheck(checking: boolean): boolean { - const markdownView = this.app.workspace.getActiveViewOfType(MarkdownView); - if (!markdownView) { - return false; - } - - if (!checking) { - new Notice('Sample command with check'); - } - - return true; - } - - private runSampleEditorCommand(editor: Editor): void { - editor.replaceSelection('Sample Editor Command'); - } - - private runSampleRibbonIconCommand(): void { - new Notice('Sample ribbon icon command'); - } - - private async showAlert(): Promise { - await alert({ - app: this.app, - message: 'Sample alert message', - title: 'Sample alert title' - }); - } - - private async showConfirm(): Promise { - const result = await confirm({ - app: this.app, - message: 'Sample confirm message', - title: 'Sample confirm title' - }); - - new Notice(`Sample confirm result: ${result.toString()}`); - } - - private async showPrompt(): Promise { - await prompt({ - app: this.app, - defaultValue: 'Sample prompt default value', - placeholder: 'Sample prompt placeholder', - title: 'Sample prompt title', - // eslint-disable-next-line @typescript-eslint/no-invalid-void-type - valueValidator: (value): string | void => { - const MIN_LENGTH = 30; - if (value.length < MIN_LENGTH) { - return `Value must be at least ${MIN_LENGTH.toString()} characters long`; - } - } - }); - } - - private showSampleModal(): void { - new SampleModal(this.app).open(); - } - - private async showSelectItem(): Promise { - await selectItem({ - app: this.app, - items: ['Item 1', 'Item 2', 'Item 3'], - itemTextFunc: (item) => item, - placeholder: 'Sample select item placeholder' - }); - } -} diff --git a/src/AdvancedDebuggerPluginSettings.ts b/src/AdvancedDebuggerPluginSettings.ts deleted file mode 100644 index 772d770..0000000 --- a/src/AdvancedDebuggerPluginSettings.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { Duration } from 'moment'; -import type { IsoMonth } from 'obsidian-dev-utils/obsidian/Components/MonthComponent'; -import type { IsoWeek } from 'obsidian-dev-utils/obsidian/Components/WeekComponent'; - -import { duration } from 'moment'; -import { PluginSettingsBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginSettingsBase'; - -export class AdvancedDebuggerPluginSettings extends PluginSettingsBase { - /* eslint-disable no-magic-numbers */ - public colorSetting = '#123456'; - public dateSetting = new Date(); - public dateTimeSetting = new Date(); - public dropdownSetting = 'Value2'; - public emailSetting = 'defaultEmail@example.com'; - public momentFormatSetting = 'YYYY-MM-DD'; - public monthSetting: IsoMonth = { - month: 2, - year: 2025 - }; - - public multipleDropdownSetting: string[] = ['Value2', 'Value5']; - public multipleEmailSetting: string[] = ['defaultEmail@example.com', 'defaultEmail2@example.com']; - public multipleTextSetting: string[] = ['defaultText1', 'defaultText2', 'defaultText3']; - public numberSetting = 123; - public progressBarSetting = 50; - public searchSetting = 'defaultSearch'; - public sliderSetting = 50; - public textAreaSetting = 'defaultTextArea'; - public textSetting = 'defaultText'; - public timeSetting: Duration = duration({ hours: 12, minutes: 34 }); - public toggleSetting = true; - public urlSetting = 'https://example.com'; - - public weekSetting: IsoWeek = { - weekNumber: 6, - year: 2025 - }; - - /* eslint-enable no-magic-numbers */ - - public constructor(data: unknown) { - super(); - this.init(data); - } -} diff --git a/src/AdvancedDebuggerPluginSettingsTab.ts b/src/AdvancedDebuggerPluginSettingsTab.ts deleted file mode 100644 index f370091..0000000 --- a/src/AdvancedDebuggerPluginSettingsTab.ts +++ /dev/null @@ -1,222 +0,0 @@ -import { PluginSettingsTabBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginSettingsTabBase'; -import { SettingEx } from 'obsidian-dev-utils/obsidian/SettingEx'; - -import type { AdvancedDebuggerPlugin } from './AdvancedDebuggerPlugin.ts'; - -export class AdvancedDebuggerPluginSettingsTab extends PluginSettingsTabBase { - public override display(): void { - this.containerEl.empty(); - - new SettingEx(this.containerEl) - .setName('Button Setting Name') - .setDesc('Button Setting Description.') - .addButton((button) => { - button.setButtonText('Button Text') - .onClick(() => { - new Notice('Button clicked'); - }); - }); - - new SettingEx(this.containerEl) - .setName('Color Setting Name') - .setDesc('Color Setting Description.') - .addColorPicker((color) => { - this.bind(color, 'colorSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Date Setting Name') - .setDesc('Date Setting Description.') - .addDate((date) => { - this.bind(date, 'dateSetting'); - }); - - new SettingEx(this.containerEl) - .setName('DateTime Setting Name') - .setDesc('DateTime Setting Description.') - .addDateTime((dateTime) => { - this.bind(dateTime, 'dateTimeSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Dropdown Setting Name') - .setDesc('Dropdown Setting Description.') - .addDropdown((dropdown) => { - dropdown.addOptions({ - Value1: 'Display 1', - Value2: 'Display 2', - Value3: 'Display 3' - }); - this.bind(dropdown, 'dropdownSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Email Setting Name') - .setDesc('Email Setting Description.') - .addEmail((email) => { - this.bind(email, 'emailSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Extra Button Setting Name') - .setDesc('Extra Button Setting Description.') - .addExtraButton((extraButton) => { - extraButton - .onClick(() => { - new Notice('Extra Button clicked'); - }); - }); - - new SettingEx(this.containerEl) - .setName('File Setting Name') - .setDesc('File Setting Description.') - .addFile((file) => { - file.onChange((value) => { - new Notice(`File selected: ${value?.name ?? '(None)'}`); - }); - }); - - new SettingEx(this.containerEl) - .setName('Moment Format Setting Name') - .setDesc('Moment Format Setting Description.') - .addMomentFormat((momentFormat) => { - this.bind(momentFormat, 'momentFormatSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Month Setting Name') - .setDesc('Month Setting Description.') - .addMonth((month) => { - this.bind(month, 'monthSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Multiple Dropdown Setting Name') - .setDesc('Multiple Dropdown Setting Description.') - .addMultipleDropdown((multipleDropdown) => { - multipleDropdown.addOptions({ - Value1: 'Display 1', - Value2: 'Display 2', - Value3: 'Display 3', - Value4: 'Display 4', - Value5: 'Display 5' - }); - - this.bind(multipleDropdown, 'multipleDropdownSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Multiple Email Setting Name') - .setDesc('Multiple Email Setting Description.') - .addMultipleEmail((multipleEmail) => { - this.bind(multipleEmail, 'multipleEmailSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Multiple File Setting Name') - .setDesc('Multiple File Setting Description.') - .addMultipleFile((multipleFile) => { - multipleFile.onChange((value) => { - const fileNames = value.map((file) => file.name); - new Notice(`Files selected: ${fileNames.join(', ')}`); - }); - }); - - new SettingEx(this.containerEl) - .setName('Multiple Text Setting Name') - .setDesc('Multiple Text Setting Description.') - .addMultipleText((multipleText) => { - this.bind(multipleText, 'multipleTextSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Number Setting Name') - .setDesc('Number Setting Description.') - .addNumber((number) => { - this.bind(number, 'numberSetting'); - }); - - new SettingEx(this.containerEl) - .setName('ProgressBar Setting Name') - .setDesc('ProgressBar Setting Description.') - .addProgressBar((progressBar) => { - progressBar.setValue(this.plugin.settings.progressBarSetting); - }); - - new SettingEx(this.containerEl) - .setName('Search Setting Name') - .setDesc('Search Setting Description.') - .addSearch((search) => { - this.bind(search, 'searchSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Slider Setting Name') - .setDesc('Slider Setting Description.') - .addSlider((slider) => { - this.bind(slider, 'sliderSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Text Setting Name') - .setDesc('Text Setting Description.') - .addText((text) => { - this.bind(text, 'textSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Text Area Setting Name') - .setDesc('Text Area Setting Description.') - .addTextArea((textArea) => { - this.bind(textArea, 'textAreaSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Time Setting Name') - .setDesc('Time Setting Description.') - .addTime((time) => { - this.bind(time, 'timeSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Toggle Setting Name') - .setDesc('Toggle Setting Description.') - .addToggle((toggle) => { - this.bind(toggle, 'toggleSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Url Setting Name') - .setDesc('Url Setting Description.') - .addUrl((url) => { - this.bind(url, 'urlSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Week Setting Name') - .setDesc('Week Setting Description.') - .addWeek((week) => { - this.bind(week, 'weekSetting'); - }); - - new SettingEx(this.containerEl) - .setName('Advanced Text Setting Name') - .setDesc('Advanced Text Setting Description.') - .addText((text) => { - this.bind(text, 'textSetting', { - componentToPluginSettingsValueConverter: (uiValue: string) => uiValue.replace(' (converted)', ''), - onChanged: () => { - new Notice('Advanced Text Setting changed'); - }, - pluginSettingsToComponentValueConverter: (pluginSettingsValue: string) => `${pluginSettingsValue} (converted)`, - // eslint-disable-next-line @typescript-eslint/no-invalid-void-type - valueValidator(uiValue): string | void { - if (uiValue === '') { - return 'Value must be non-empty'; - } - } - }) - .setPlaceholder('Enter a value'); - }); - } -} diff --git a/src/EditorExtensions/SampleStateField.ts b/src/EditorExtensions/SampleStateField.ts deleted file mode 100644 index a6d4d96..0000000 --- a/src/EditorExtensions/SampleStateField.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { Extension } from '@codemirror/state'; -import type { DecorationSet } from '@codemirror/view'; -import type { StateFieldSpec } from 'obsidian-dev-utils/codemirror/StateFieldSpec'; - -import { syntaxTree } from '@codemirror/language'; -import { - RangeSetBuilder, - StateField, - Transaction -} from '@codemirror/state'; -import { - Decoration, - EditorView -} from '@codemirror/view'; - -import { SampleWidget } from './SampleWidget.ts'; - -class SampleStateField implements StateFieldSpec { - public create(): DecorationSet { - return Decoration.none; - } - - public provide(field: StateField): Extension { - return EditorView.decorations.from(field); - } - - public update(_oldState: DecorationSet, transaction: Transaction): DecorationSet { - const OFFSET = 2; - const builder = new RangeSetBuilder(); - - syntaxTree(transaction.state).iterate({ - enter(node) { - if (node.type.name.startsWith('list')) { - const listCharFrom = node.from - OFFSET; - - builder.add( - listCharFrom, - listCharFrom + 1, - Decoration.replace({ - widget: new SampleWidget() - }) - ); - } - } - }); - - return builder.finish(); - } -} - -export const sampleStateField = StateField.define(new SampleStateField()); diff --git a/src/EditorExtensions/SampleViewPlugin.ts b/src/EditorExtensions/SampleViewPlugin.ts deleted file mode 100644 index e2b86ff..0000000 --- a/src/EditorExtensions/SampleViewPlugin.ts +++ /dev/null @@ -1,66 +0,0 @@ -import type { - DecorationSet, - PluginSpec, - PluginValue -} from '@codemirror/view'; - -import { syntaxTree } from '@codemirror/language'; -import { RangeSetBuilder } from '@codemirror/state'; -import { - Decoration, - EditorView, - ViewPlugin, - ViewUpdate -} from '@codemirror/view'; - -import { SampleWidget } from './SampleWidget.ts'; - -class SampleViewPlugin implements PluginValue { - public decorations: DecorationSet; - - public constructor(view: EditorView) { - this.decorations = this.buildDecorations(view); - } - - public buildDecorations(view: EditorView): DecorationSet { - const OFFSET = 2; - const builder = new RangeSetBuilder(); - - for (const { from, to } of view.visibleRanges) { - syntaxTree(view.state).iterate({ - enter(node) { - if (node.type.name.startsWith('list')) { - const listCharFrom = node.from - OFFSET; - - builder.add( - listCharFrom, - listCharFrom + 1, - Decoration.replace({ - widget: new SampleWidget() - }) - ); - } - }, - from, - to - }); - } - - return builder.finish(); - } - - public update(update: ViewUpdate): void { - if (update.docChanged || update.viewportChanged) { - this.decorations = this.buildDecorations(update.view); - } - } -} - -const pluginSpec: PluginSpec = { - decorations: (value: SampleViewPlugin) => value.decorations -}; - -export const sampleViewPlugin = ViewPlugin.fromClass( - SampleViewPlugin, - pluginSpec -); diff --git a/src/EditorExtensions/SampleWidget.ts b/src/EditorExtensions/SampleWidget.ts deleted file mode 100644 index 41f69cf..0000000 --- a/src/EditorExtensions/SampleWidget.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { WidgetType } from '@codemirror/view'; - -export class SampleWidget extends WidgetType { - public toDOM(): HTMLElement { - return createEl('span', { text: '👉' }); - } -} diff --git a/src/EditorSuggests/SampleEditorSuggest.ts b/src/EditorSuggests/SampleEditorSuggest.ts deleted file mode 100644 index 6d647cb..0000000 --- a/src/EditorSuggests/SampleEditorSuggest.ts +++ /dev/null @@ -1,44 +0,0 @@ -import type { - Editor, - EditorPosition, - EditorSuggestContext, - EditorSuggestTriggerInfo, - TFile -} from 'obsidian'; - -import { EditorSuggest } from 'obsidian'; - -export class SampleEditorSuggest extends EditorSuggest { - private cursor: EditorPosition | null = null; - private editor: Editor | null = null; - - public override getSuggestions(context: EditorSuggestContext): Promise | string[] { - return [`${context.query} 1`, `${context.query} 2`, `${context.query} 3`]; - } - - public override onTrigger(cursor: EditorPosition, editor: Editor, file: null | TFile): EditorSuggestTriggerInfo | null { - this.cursor = cursor; - this.editor = editor; - const line = editor.getLine(cursor.line); - if (line !== 'Sample') { - return null; - } - - return { - end: cursor, - query: `Query ${file?.name ?? ''}`, - start: cursor - }; - } - - public override renderSuggestion(value: string, el: HTMLElement): void { - el.createEl('strong', { text: value }); - } - - public override selectSuggestion(value: string, evt: KeyboardEvent | MouseEvent): void { - this.close(); - if (this.editor && this.cursor) { - this.editor.replaceRange(`Transformed ${value} ${evt.type}`, this.cursor); - } - } -} diff --git a/src/Modals/SampleModal.ts b/src/Modals/SampleModal.ts deleted file mode 100644 index 55fe575..0000000 --- a/src/Modals/SampleModal.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Modal } from 'obsidian'; - -export class SampleModal extends Modal { - public override onOpen(): void { - this.contentEl.setText('Sample Modal'); - } -} diff --git a/src/ReactComponents/SampleReactComponent.tsx b/src/ReactComponents/SampleReactComponent.tsx deleted file mode 100644 index 7d9f195..0000000 --- a/src/ReactComponents/SampleReactComponent.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import type { JSX } from 'react'; - -import { useApp } from 'obsidian-dev-utils/obsidian/React/AppContext'; -import { useState } from 'react'; - -export interface SampleReactComponentProps { - startCount: number; -} - -export function SampleReactComponent(props: SampleReactComponentProps): JSX.Element { - const [count, setCount] = useState(props.startCount); - const app = useApp(); - - function increment(): void { - setCount(count + 1); - } - - return ( - <> -

Sample React Component!

- -
- - My number is {count} - ! - -
- - -
- Vault name: {app.vault.getName()} -
- - ); -} diff --git a/src/SvelteComponents/SampleSvelteComponent.d.ts b/src/SvelteComponents/SampleSvelteComponent.d.ts deleted file mode 100644 index cd6ada1..0000000 --- a/src/SvelteComponents/SampleSvelteComponent.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface SampleSvelteComponentExports { - increment(): void; -} - -export interface SampleSvelteComponentProps { - startCount: number; -} diff --git a/src/SvelteComponents/SampleSvelteComponent.svelte b/src/SvelteComponents/SampleSvelteComponent.svelte deleted file mode 100644 index 2a776a8..0000000 --- a/src/SvelteComponents/SampleSvelteComponent.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - -

Sample Svelte Component!

- -
- My number is {count}! -
- - \ No newline at end of file diff --git a/src/Views/SampleReactView.tsx b/src/Views/SampleReactView.tsx deleted file mode 100644 index 1e4a7a8..0000000 --- a/src/Views/SampleReactView.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import type { Root } from 'react-dom/client'; - -import { ItemView } from 'obsidian'; -import { AppContext } from 'obsidian-dev-utils/obsidian/React/AppContext'; -import { StrictMode } from 'react'; -import { createRoot } from 'react-dom/client'; - -import type { SampleReactComponentProps } from '../ReactComponents/SampleReactComponent.tsx'; - -import { SampleReactComponent } from '../ReactComponents/SampleReactComponent.tsx'; - -export const SAMPLE_REACT_VIEW_TYPE = 'advanced-debugger-SampleReactView'; - -export class SampleReactView extends ItemView { - private root: null | Root = null; - - public override getDisplayText(): string { - return 'SampleReact view'; - } - - public override getViewType(): string { - return SAMPLE_REACT_VIEW_TYPE; - } - - public override async onClose(): Promise { - this.root?.unmount(); - await Promise.resolve(); - } - - public override async onOpen(): Promise { - const START_COUNT = 10; - const props: SampleReactComponentProps = { - startCount: START_COUNT - }; - - this.root = createRoot(this.contentEl); - this.root.render( - - - - - - ); - - await Promise.resolve(); - } -} diff --git a/src/Views/SampleSvelteView.ts b/src/Views/SampleSvelteView.ts deleted file mode 100644 index 4b04b07..0000000 --- a/src/Views/SampleSvelteView.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { ItemView } from 'obsidian'; -import { - mount, - unmount -} from 'svelte'; - -import type { - SampleSvelteComponentExports, - SampleSvelteComponentProps -} from '../SvelteComponents/SampleSvelteComponent.d.ts'; - -import SampleSvelteComponent from '../SvelteComponents/SampleSvelteComponent.svelte'; - -export const SAMPLE_SVELTE_VIEW_TYPE = 'advanced-debugger-SampleSvelteView'; - -export class SampleSvelteView extends ItemView { - private sampleSvelteComponent: null | SampleSvelteComponentExports = null; - - public override getDisplayText(): string { - return 'SampleSvelte view'; - } - - public override getViewType(): string { - return SAMPLE_SVELTE_VIEW_TYPE; - } - - public override async onClose(): Promise { - if (this.sampleSvelteComponent) { - await unmount(this.sampleSvelteComponent); - } - } - - public override async onOpen(): Promise { - const START_COUNT = 10; - const props: SampleSvelteComponentProps = { - startCount: START_COUNT - }; - - this.sampleSvelteComponent = mount(SampleSvelteComponent, { - props, - target: this.contentEl - }) as SampleSvelteComponentExports; - - this.sampleSvelteComponent.increment(); - await Promise.resolve(); - } -} diff --git a/src/Views/SampleView.ts b/src/Views/SampleView.ts deleted file mode 100644 index 3827d03..0000000 --- a/src/Views/SampleView.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { ItemView } from 'obsidian'; - -export const SAMPLE_VIEW_TYPE = 'AdvancedDebugger-SampleView'; - -export class SampleView extends ItemView { - public override getDisplayText(): string { - return 'Sample view'; - } - - public override getViewType(): string { - return SAMPLE_VIEW_TYPE; - } - - public override async onOpen(): Promise { - this.contentEl.empty(); - this.contentEl.createEl('h4', { text: 'Sample view' }); - await Promise.resolve(); - } -} diff --git a/src/main.ts b/src/main.ts deleted file mode 100644 index 65e1a71..0000000 --- a/src/main.ts +++ /dev/null @@ -1,5 +0,0 @@ -import './styles/main.scss'; -import { AdvancedDebuggerPlugin } from './AdvancedDebuggerPlugin.ts'; - -// eslint-disable-next-line import-x/no-default-export -export default AdvancedDebuggerPlugin; diff --git a/src/styles/main.scss b/src/styles/main.scss deleted file mode 100644 index 4ac58a7..0000000 --- a/src/styles/main.scss +++ /dev/null @@ -1,9 +0,0 @@ -/** - * You can remove this file if you don't need any styles - * See default library styles: https://github.com/mnaoumov/obsidian-dev-utils/blob/main/src/styles/main.scss - * See available library css classes: https://github.com/mnaoumov/obsidian-dev-utils/blob/main/src/CssClass.ts - */ - -.advanced-debugger.obsidian-dev-utils { - /* Override library styles */ -}