featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.
featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
BREAKING CHANGE: The +org-roam-open-buffer-on-find-file variable was
renamed to +org-roam-auto-backlinks-buffer *and* is now disabled by
default. When this is non-nil, it will open the *org-roam* backlinks
side window when roam files are visible, and close it when they aren't.
This change also makes this behavior a little more robust, but is
understandably not everybody's (read: most people's) cup of tea, so it
is now opt-in.
- No longer hard-code fontification of tags and types in roam
completion.
- Prefix types with @ and tags with # -- makes them easier to search for
in completion -- and swap types and hierarchy columns. I.e.
before: TYPE TITLE [TAG [TAG...]]
after: TITLE @TYPE [#TAG [#TAG...]]
- Exclude unwanted (i.e. meta) tags from public display, like ATTACH,
ARCHIVE, or anything in org-num-skip-tags.
`org-roam-db-location` is redefined in the :preface section, so we need
to rely on a different symbol to determine whether `org-roam` is loading
or not.
`org-roam-mode` based buffers use `magit-section` to render sections.
The problem is that `magit-section` will layer keymaps for each section
under a text property. In Emacs, text property based keymaps have a
higher precedence for a lookup[0] than `emulation-mode-map-alists`, in
which Evil and leader keymaps are stored in.
[0]: https://www.gnu.org/software/emacs/manual/html_node/elisp/Searching-Keymaps.html
v2 reverted to using `emacsql-sqlite` instead of `emacsql-sqlite3`. It
will now try to build the needed `sqlite3` executable by itself, using a
C compiler that it can find, which is normally gcc or clang.
Previously in v1 it would only check for `sqlite3` executable (using
`executable-find`) and wouldn't do anything else.