Skip to content

Releases: epwalsh/obsidian.nvim

v2.5.0

30 Dec 18:08
Compare
Choose a tag to compare

What's new

Added 🎉

  • Added Lua API methods Client:set_workspace(workspace: obsidian.Workspace) and Client:switch_workspace(workspace: string|obsidian.Workspace).

  • Added the ability to override settings per workspace by providing the overrides field in a workspace definition. For example:

    require("obsidian").setup({
      workspaces = {
        {
          name = "personal",
          path = "~/vaults/personal",
        },
        {
          name = "work",
          path = "~/vaults/work",
          -- Optional, override certain settings.
          overrides = {
            notes_subdir = "notes",
          },
        },
      },
    
      -- ... other options ...
    })

Fixed ✅

  • Made workspace API more robust.
  • Template substitutions are done lazily and only generated once per line.
  • Fixed search functionality with fzf.vim as a finder when the vault name contains characters that need to be escaped, such as spaces.
  • Fixed a bug with ext marks for references inside of frontmatter.

Commits

cdf27a7 Fix bug with ext marks inside frontmatter (#284)
2c69c3d fix fzf.vim for vaults with spaces (#281)
4a962b1 cache template subst results
de5c1f8 do template substitutions lazily
430bee7 chore(docs): auto generate docs
0ad2c9d Add ability to override opts per workspace (#277)
e9a9f12 minor internal improvements (#276)
bbb7d14 make workspace API more robust (#275)
aa1fd91 add link to discussions in readme
66f802a chore(docs): auto generate docs
1b57df3 Add note on conceallevel option for config (#273)
5e505eb move each command to its own module (#271)

v2.4.0

19 Dec 18:22
Compare
Choose a tag to compare

What's new

Added 🎉

  • Added support for Mini.Pick as another alternative to telescope.nvim.

Fixed ✅

  • Templates directory location follows the workspace now.
  • Fixed bug with completion when min_chars = 1 and you start typing an empty check box.

Changed ⚠️

  • Replaced Client.templates_dir field with Client:templates_dir() function.
  • :ObsidianLink will now open your finder when the initial search comes up empty or ambiguous.
  • Improve logging when client:vault_relative_path() fails in cmp_obsidian_new.

Commits

6c2a53a Bump actions/setup-python from 4 to 5 (#260)
16997fd chore(docs): auto generate docs
91d1dc6 Add support for mini.pick as another alternative to telescope.nvim (#270)
6e3ede1 Don't trigger completion on whitespace (#266)
6a3ce7a Don't use client.opts.dir directly
25b0fa1 improve logging
6ddc2d4 fall back to finder from :ObsidianLink (#262)
46fce16 chore(docs): auto generate docs
170dfc2 clarify workspace path meaning
6feeae9 Fix templates location when switching workspaces (#259)

v2.3.1

03 Dec 14:50
Compare
Choose a tag to compare

What's new

Added 🎉

  • Added Client:update_ui() method.
  • Assigned enum type obsidian.config.OpenStrategy to config.open_notes_in.
  • disable_frontmatter now can be a function taking the filename of a note (relative to the vault root) to determine whether the note's frontmatter can be managed by obsidian.nvim or not.

Changed ⚠️

  • Client:daily_note_path() now takes a datetime integer instead of an ID string.
  • Template substitutions can now handle multiple lines, i.e. you can define custom substitutions that return a string with new line characters.
  • The "vsplit" and "hsplit" open strategies for config.open_notes_in will now only open a vertical/horizontal split if the window is not already split.

Fixed ✅

  • Fixed URL incorrect in README.md
  • Fixed autocmd registration for workspaces.

Commits

49b48bc Fix autocmd registration for workspaces (#255)
384b7e9 chore(docs): auto generate docs
bb3aac6 use uploaded screenshot (#252)
d313034 chore(docs): auto generate docs
02065f8 Convert demo to .gif
951837c chore(docs): auto generate docs
83988a9 space out commands in readme
73646cd clean up
962456e chore(docs): auto generate docs
b559c60 feat: allow disable_frontmatter config option to be a function (#250)
d4205cc chore(docs): auto generate docs
8498a7b Fixed URL incorrect in README.md (#251)
36a84dc chore(docs): auto generate docs
6b7eeba add reference to pomo.nvim
51d9495 add permissions to release workflow
40ada71 remove broken test
849196c chore(docs): auto generate docs
164f940 change how open_notes_in behaves
c09d16c add param type for offset days
7c88801 chore(docs): auto generate docs
eaf3610 allow multiline template substitutions
8e6d10d update Client.daily_note_path()

v2.3.0

28 Nov 17:25
Compare
Choose a tag to compare

What's new

Added 🎉

  • The command :ObsidianFollowLink and the default gf pass-through mapping will now follow links to local files that are not notes.
  • Added documentation to completion items.

Changed ⚠️

  • Changed API of Client search methods to take a class of options.
  • Loading notes when gathering backlinks is now done concurrently.

Fixed ✅

  • Made tags autocompletion more robust by ignoring anchor links (which look like tags) and searching case-insensitive.

Commits

ae9b00d chore(docs): auto generate docs
0c6cf7e add workflow dispatch for panvimdoc
ee3d3d0 Add documentation to completion items
0352b38 Add more info to README, fix typos
2ef0a24 improve gathering backlinks
9a9617d Give YamlType an enum def
d7e8e0e OrderedTbl vaporware
42734a9 Make tags completion more robust
efa95f1 clarify SemVer in CHANGELOG
03d69dd Remove Client.backlinks_namespace field
1bd260d rename Client:search to find_notes
5d022cc Add tests for RefTypes and Patterns
ef8103b Merge pull request #246 from epwalsh/epwalsh/search-refactor
d9e35bc Merge pull request #248 from epwalsh/epwalsh/gf-non-notes
820b0ea chore(docs): auto generate docs

v2.2.0

23 Nov 14:46
Compare
Choose a tag to compare

What's new

Added 🎉

  • Added completion for tags.
  • Added extmarks for tags.
  • Added method get_client() to get the current obsidian client instance. For example: :lua print(require("obsidian").get_client():new_note_id("Foo"))
  • Added client methods find_tags() and find_tags_async().
  • Added extmarks for inline highlighting, e.g. ==highlight this text!==.

Changed ⚠️

  • In the backlinks view you can now hit <ENTER> within a group to toggle the folding.
  • :ObsidianBacklinks will now maintain focus to the current window.
  • :ObsidianBacklinks will now respect the sort_by and sort_reversed configuration options.

Fixed ✅

  • Removed UI update delay on BufEnter.
  • Fixed completion bug (#243)

Commits

b1094a7 move gfind to util module
59991c7 chore(docs): auto generate docs
ecd20f3 Add support for inline text highlighting (#242)
9e3709f Fix completion bug
5916196 remove UI update delay on BufEnter
dcfa738 Sort backlinks according to sort config options
1bc9d6e Add enum for sort_by option
e7632ee Maintain focus on curwin with :ObsidianBacklinks
05e0ce9 toggle backlinks folding with
66b6387 chore(docs): auto generate docs
6733cc3 reformat
2bc0d3d add spacing between badges
3128b82 chore(docs): auto generate docs
f4dc1b8 compress html in README for better vim docs
e1ae603 fix test, update doc build
e5ef642 chore(docs): auto generate docs
8955711 update README and expand allowed URL chars
c67f910 add 'abc' module with class factory
0f93781 improve metatable usage in classes
8e82468 chore(docs): auto generate docs
72da80a rename 'mapping' module to 'mappings'
7fd4b56 reorganize modules
115cda7 clean up more util functions
f3cef5c remove util.table_length()
8e1452e rename util table methods
c4c029f Add missing itertools module
0dcd6ed move itertools to own module
4794cfb Move more search/find fns into 'search' module
c2c5d69 chore(docs): auto generate docs
31a15ed Add completion for tags
699e803 add find tags functionality
0134151 simplify search/find functions

v2.1.1

20 Nov 16:50
Compare
Choose a tag to compare

What's new

Fixed ✅

  • Fixed some edge cases with finding references via patterns.

Commits

f441bfe cache ExtMarks
384af36 remove unnecessary ftplugin file
7b35ca0 Register cmp sources in setup call
f6412e7 rename 'echo' -> 'log' (#240)
16d780e Fix windows OS check (#239)
3499604 make UI updates more efficient
42d5585 chore(docs): auto generate docs
0d9934d Make reference patterns more robust

v2.1.0

19 Nov 00:23
Compare
Choose a tag to compare

What's new

Highlights:

Completion for markdown-style links in addition to Wiki links + more ways to customize how Wiki links are completed! 🔥
We also added support for pasting images into notes with the new command :ObsidianPasteImg 📷

Added 🎉

  • Added :ObsidianPasteImg for pasting images from the clipboard into notes. See the attachments configuration option for customizing the behavior of this command. Inspired by md-img-paste.vim and clipboard-image.nvim.
  • Added completion.prepend_note_path and completion.use_path_only options (mutually exclusive with each other and completion.prepend_note_id).
  • Added support for completing traditional markdown links instead of just wiki links.

Changed ⚠️

  • Renamed opts.ui.tick to opts.ui.update_debounce, but the tick field will still be read for backwards compatibility.
  • :ObsidianOpen will now open wiki links under the cursor instead of always opening the note of the current buffer.
  • :ObsidianBacklinks will now show backlinks for the note of a wiki link under the cursor instead of always showing backlinks for the note of the current buffer.

Fixed ✅

  • Ensure commands available across all buffers, not just note buffers in the vault.

Commits

d68e92b chore(docs): auto generate docs
bfa9437 Add support for completing markdown links (#237)
52ba55d chore(docs): auto generate docs
1aca272 Add option to fill paths with completion (#236)
5383bab chore(docs): auto generate docs
005ea04 Add :ObsidianPasteImg command, other improvements (#235)
f1b2fe7 chore(docs): auto generate docs
818f405 add badge to readme
cc1a9b2 clean config normalization
f4e1b12 chore(docs): auto generate docs
8229a10 rename ui.tick to ui.update_debounce
8ade892 Ensure commands available in all buffers

v2.0.0

16 Nov 16:35
Compare
Choose a tag to compare

What's new

Highlights:

The long awaited :ObsidianRename command is here along with big improvements to our syntax add-ons! Wiki links, external links, and checklists look much better now out-of-the-box and can be easily customized! 🥳

I recommend you use treesitter as a base markdown syntax highlighter, but obsidian.nvim is also compatible with traditional regex syntax highlighting.

Added 🎉

  • Added :ObsidianRename command.
  • Added :ObsidianTomorrow command.
  • Added optional offset to :ObsidianToday command. For example: :ObsidianToday -1 to go to yesterday's daily note.
  • Added configuration option ui for customizing obsidian.nvim's additional syntax highlighting and extmarks.
  • Improved default additional syntax highlighting / concealing.
  • Added default mapping <leader>ch for toggling check-boxes.

Fixed ✅

  • Ensure additional syntax highlighting works with latest treesitter.

Commits

a351e3c Don't cancel CI jobs in progress
51dc70c ensure no overlap in finding refs
a626d1b Improve :ObsidianFollowLink and URL recognition
75ffabb add highlights to CHANGELOG
fa8bd16 chore(docs): auto generate docs
10a63a3 ignore code blocks when adding marks
891756c Add UI screenshot
8e5395e chore(docs): auto generate docs
75a1446 Add more explanation to new opts
d8e649b chore(docs): auto generate docs
eabe318 refactor UI opts
a64ff05 chore(docs): auto generate docs
5a71d81 UI improvements (#233)
7c9cd6e chore(docs): auto generate docs
c062e74 make additional syntax highlighting customizable
1efff45 chore(docs): auto generate docs
ed1347d Add ObsidianYesterday and offset arg to ObsidianToday
14d684a chore(docs): auto generate docs
fe9d83e ensure syntax hls work with latest treesitter
d94bc92 chore(docs): auto generate docs
825b7bf Clarify notes on dependencies in README
5257fab Handle paths in :ObsidianRename
f25fb31 Hot fix for :ObsidianRename
1b806ba chore(docs): auto generate docs
6d9b57e Add :ObsidianRename command (#232)
c6d33d7 replace ipairs() with custom iter() (#231)
47814db update doc strings / err msgs in async mod

v1.16.1

12 Nov 00:21
Compare
Choose a tag to compare

What's new

Changed ⚠️

  • Refactored commands module, improved :ObsidianCheck.

Fixed ✅

  • Fixed compatibility issue with older versions of Telescope.

Commits

c915f8d chore(docs): auto generate docs
98cc482 update recommended versioning settings
7e874cf Merge pull request #230 from epwalsh/refactor-commands

v1.16.0

10 Nov 22:30
Compare
Choose a tag to compare

What's new

Major internal refactoring to bring performance improvements through async execution of search/find functionality, and general robustness improvements. 🏎️🤠

Added 🎉

  • Added obsidian.async module for internal use.

Changed ⚠️

  • Re-implemented the native Lua YAML parser (obsidian.yaml.native). This should be faster and more robust now.
  • Re-implemented search/find functionality to utilize concurrency via obsidian.async and plenary.async for big performance gains.
  • Made how run shell commands more robust, and we also log stderr lines now.
  • Submodules imported lazily.
  • Changes to internal module organization.

Fixed ✅

  • Fixed a completion bug (#212).
  • Fixed a bug where the frontmatter of daily note template would be overwritten upon inserting the template.
  • Skip templates directory when searching for notes.
  • Fixed a compatibility issue with the latest fzf.vim and made running finders more robust in general.

Removed 👋

  • Removed the overwrite_mappings option.

Commits

d8504e5 Log stderr output from shell commands (#229)
e07ffef relax conditions where we quote YAML strings (#228)
475f35e ensure echo.* is safe for fast events (#227)
dd9ef6a improve Client.resolve_note()
d7cf896 Fix command arg complete
ad05dbc another fix for resolve_note
a73b143 Fix bug introduced with Client.resolve_note
107469e improve how we collect version information
99ce44a update auto commit messages
f999420 chore(deps): bump kdheepak/panvimdoc from 3.0.6 to 4.0.0 (#197)
021118c chore(deps): bump actions/checkout from 1 to 4 (#192)
b3e2979 chore(deps): bump stefanzweifel/git-auto-commit-action from 4 to 5 (#208)
4ace899 Fix #223 and make calling finders more robust (#224)
fd3f753 chore: auto generate docs
5030785 added comma to config-example and changed to fzf.vim in README.md (#222)
bda0454 Add better error handling to Client.search_async() (#221)
cbcce32 Merge pull request #219 from epwalsh/template-frontmatter
6e72c9e replace util.build_bind_cmd with search.build_find_cmd
fcd92ca chore: auto generate docs
dd23295 use actual default value of use_advanced_uri in README
8b572b7 Merge pull request #217: 🚀 performance: add concurrency to all search/find functionality, lazy imports, etc
3473038 chore: auto generate docs
6dc0ee9 clarify "yaml_parser" option in README
648ed89 Improve native YAML parser (#216)
7945be8 chore: auto generate docs
78b10b8 update README
e5449e8 remove overwrite_mappings option
37b0ddc chore: auto generate docs
e009a57 Update README.md (#215)
1149c5b feat: support unespacing backslash when following wikilinks (#211)
3d08b8d Fix completion bug (#213)