- Add descriptions to eslint-disable-next-line comments on prototype
captures, satisfying the "undescribed directive comment" rule
- Use window.setTimeout() instead of activeWindow.setTimeout() per
reviewer preference for timer functions
- Remove heading name from settings tab (was "Quick Select Settings");
heading text must not include the plugin name or the word "settings"
- Remove builtin-modules devDependency; esbuild config now uses
builtinModules from Node's native module package
Type safety
- Replace all `any` types with proper interfaces: WindowWithPlugin,
SuggestModalInternal, PopoverSuggestInternal
- Change Map<any, Scope> to Map<object, Scope> for both scope stacks
Popout window compatibility
- Replace all bare `document` references with `activeDocument`
- Replace `setTimeout()` with `activeWindow.setTimeout()`
Code quality
- Remove `const self = this` aliasing in patchSuggestModal and
patchPopoverSuggest; use destructured refs and arrow-function closures
instead (e.g. const { modalScopeStack } = this, const getModifier =
...)
- Fix expression-statement anti-pattern: split `?? ...` optional-chain
into explicit if/else blocks
- Add eslint-disable-next-line comments on the four prototype captures
(origSuggestOpen/Close, origPopoverOpen/Close) which are intentionally
unbound for monkey-patching and must be stored then called via .call()
Settings UI
- Replace createEl("h1") with new
Setting(containerEl).setName(...).setHeading()
for consistent Obsidian UI
- Fix document references in settings dropdown onChange handler
Manifest
- Remove "Obsidian" from plugin description per review guidelines
Build / dependencies
- Replace deprecated `builtin-modules` package with Node's native
builtinModules from the built-in `module` package
- Update @typescript-eslint/eslint-plugin and parser to 8.59.3,
obsidian to 1.12.3, builtin-modules to 5.2.0
- npm audit now reports 0 vulnerabilities
This commit removes the problematic process of disabling/enabling
default hotkeys to make the plugin work. Instead, we now intercept the
keys (no matter what they are) when we open a window.