Added
- Configuration hot-reload for Lua — the Lua configuration file (
init.lua) is now watched for changes. Saving the file triggers a soft-reload that tears down the old Lua state and re-initializes it without a plugin reload, matching the existing vimrc hot-reload behavior. (#168)- Plugin:
src/main.ts(added Lua file watcher,softReloadLuaConfig()method)
- Plugin:
- New configuration management commands — two new Obsidian commands for managing configuration files:
Vim Motions: Reload configuration— reloads both vimrc and Lua config files immediately.Vim Motions: Open configuration in default editor— opens all active configuration files (vimrc and/or Lua) in the system's default external editor. Desktop only.- Plugin:
src/main.ts(addedreload-configurationandopen-configurationcommands,reloadAllConfigs()andopenConfigInDefaultEditor()methods)
Fixed
reload-configurationfails when initial vimrc load missed the file — if the initial vimrc load hit the known adapter timing race (empty file read during early lifecycle),vimrcWatchPathwas null and the reload command silently did nothing. Fixed by resolving the vimrc path on-demand inreloadAllConfigs()whenvimrcWatchPathis null. (#168)- Plugin:
src/main.ts(reloadAllConfigs()path resolution fallback)
- Plugin:
reload-configurationnotification shown when notifications disabled — the generic "configuration reloaded" notice was shown whenshowConfigNotificationswas disabled, and was also shown whenconfigModewassettings(no configs to reload). Fixed: generic notice only shows when notifications are suppressed as a minimal confirmation; shows "no configuration files to reload" when neither config type is active. (#168)- Plugin:
src/main.ts(reloadAllConfigs()notification logic)
- Plugin:
- Non-markdown files missing from
:files,:buffers, and buffer navigation —:filesonly listed.mdfiles (usedgetMarkdownFiles()),:buffersonly listed markdown leaves (checkedgetViewType() === 'markdown'), and]b/[b,:b <name>,:find,:bfirst/:blastall had the same markdown-only filters. Canvas, base, and other file-backed views were invisible to all buffer/file commands. Fixed by replacinggetMarkdownFiles()withgetFiles()for file listing,getViewType()checks withinstanceof FileViewfor leaf iteration, and addingleaf.getRoot() === rootSplitguards to exclude sidebar panel views (backlink, outline, etc.) from buffer commands. (#169)- Plugin:
src/picker/sources/files.ts(getMarkdownFiles()→getFiles()) - Plugin:
src/picker/sources/buffers.ts(getViewType()→instanceof FileView+rootSplitguard) - Plugin:
src/workspace/commands.ts(:buffersfallback modal,:find,:b,:bfirst/:blast— sameFileView+rootSplitpattern) - Plugin:
src/ui/global-ex-command.ts(global ex fallbacks:findFile,bufferSwitch,bufferFirstLast) - Plugin:
src/motions/buffers.ts(renamedgetMarkdownLeaves→getFileLeaves,instanceof FileView+rootSplit, removed.endsWith('.md')fallback filter)
- Plugin:
Tests
- 6 e2e tests in
test/specs/config-management.e2e.tsfor #168 (vimrc reload picks up new mappings; reloaded mapping works functionally; Lua config reload via command;open-configurationregistered;reload-configurationregistered;open-configurationdoes not throw) - 6 regression tests in
test/specs/files-buffers-non-md.e2e.tsfor #169 (:filespicker includes.canvasfiles;:bufferspicker includes canvas leaves;:findnavigates to canvas file;:bswitches to canvas leaf;:blastworks with canvas leaf present;]breaches canvas leaf)
Documentation
CHANGELOG.mdAGENTS.md: updated with configuration management commands and Lua hot-reloadCONTRIBUTING.md: updatedsrc/main.tsdescriptionREADME.md: added hot-reload to feature listdocs/configuration/lua-config.md: documented soft-reload and external editor commanddocs/configuration/vimrc.md: documented reload and external editor commandsdocs/reference/keybindings.md: added new configuration commands to Obsidian commands tabledocs/features/quality-of-life.md: added configuration hot-reload sectiondocs/features/index.md: added hot-reload to configuration overviewdocs/index.md: added hot-reload to feature highlightsdocs/features/ex-commands.md: clarified:filessearches all vault files, not just markdown
Full Changelog: 0.144.0...0.145.0