Commit Graph

184 Commits

Author SHA1 Message Date
481753bd5e refactor!: remove pcre2el package
BREAKING CHANGE: This removes the pcre2el package, which Doom was using
solely for one function to escape PCREs. In the interest of thinning out
Doom's core, I've hoisted a simpler version of the function into Doom's
stdlib so I can remove the dependency.
2024-07-01 18:11:34 -04:00
a24ff58a5a fix(lib): don't kill buffers visible in another frame
For Doom's kill-current-buffer advice.
2024-06-26 23:21:06 -04:00
d84111927c fix(lib): doom/bumpify-diff: ignore malformed package! statements
To avoid 'uneven number of packages be bumped' errors in some edge cases
where this isn't true.
2024-06-22 18:14:05 -04:00
7e7d8ebdfd fix(lib): print!: don't resolve printed symlinks 2024-06-22 18:14:05 -04:00
703173a6d2 feat(lib): doom-print: allow lexical redirection 2024-06-22 18:14:05 -04:00
17119c5df7 refactor(lib): tweak user-error messages
To make these errors more consistent with similar commands/operations,
as well as rely less on cl-check-type (cl-lib's understanding of the
`font` type is a bit odd; they'd emit warnings/errors about this, but
still perform the checks -- I opted to check more explicitly instead).
2024-06-22 18:14:05 -04:00
7fe642938d fix: 'doom sync' generates autoload files for symbolic link files
* lisp/lib/autoloads.el(doom-autoloads--scan) Remove invoke
`file-truename` of file, keeping symbolic from being converted to a real
path.
* lisp/doom-modules.el(doom-module-from-path) Replace
`file-in-directory-p` with `string-match` to determine the module to
which the file belongs.

Fix: #7821
2024-06-21 17:52:45 -04:00
e203309e5c refactor(lib): use ripgrep instead of git grep
Although this is a refactor for normal users of Doom, it is a bugfix for
one (I assume) unsupported configuration: when Doom is not running from
a git checkout. In that case, `doom--help-package-configs` currently
returns Git's error messages. This breaks `doom/help-packages` because
it expects each returned line to contain at least one `:` character, so
it errors out with `Wrong number of arguments: (file line _match &rest),
2`.

Using ripgrep here should be equivalent for normal users as long as they
have not added untracked files not covered by Doom's .gitignore.
2024-06-03 16:19:42 -04:00
4f51652111 fix(lib): remove-recent-file: improve completion UI
Integrates with completion frameworks (particularly vertico) that read
capf metadata.
2024-04-06 12:37:10 -04:00
f18603e66a feat(lib): sudo-{find,this}-file: invoke save-place
After switching to the sudo-ed tramp buffer, this restores the point and
scroll position of the window to match the source buffer.

I exploit save-place here instead of simply saving/restoring (point)
and (window-start), because I believe it's better UX that save-place
treat the two buffers as effectively the same now and in the future, and
record the last cursor position equally between them, even if the
implementation is messier. This *could* be generalized into an advice
for save-place-find-file-hook and save-place-to-alist, but that's an
experiment for another day.

This is an experimental implementation and may change later.

Close: #7181
Co-authored-by: YourFin <YourFin@users.noreply.github.com>
2024-04-05 18:38:14 -04:00
0b93ecf42c fix(lib): sudo-{find,this}-file: disable auto-save
auto-save can trigger processes that hang silently in the background,
making those buffers inoperable (hanging Emacs) for the rest of the
session, even if they are killed (tramp caches them), so I suppress them
solely for these temporary tramp buffers created by doom/sudo-find-file
and doom/sudo-this-file.
2024-04-04 23:46:04 -04:00
38a3adcf0e fix(lib): find-subling-file-search: wrong-number-of-args error
I backported `find-sibling-file` from Emacs 29+ in 198fe82, but it
passes a third argument (REGEXP) to `file-expand-wildcards` which wasn't
introduced until 29, so users on 28 or earlier would see a
wrong-number-of-arguments error (see #7795).

Rather than backport the entire `file-expand-wildcards`
function (risking other edge cases), I've advised its usage in
`find-sibling-file-search` to behave as it would in 29+ with a non-nil
REGEXP argument.

Amend: 198fe82b6d
Fix: #7795
2024-04-04 13:00:12 -04:00
392fe88ed0 fix(lib): sudo-{this,save}-file: file path for indirect clones
If the buffer is an indirect clone, it may not have a buffer-file-name.

Also changes the command to throw an error if the current file has no
file path *and* is not a dired buffer.
2024-04-01 14:03:35 -04:00
8d50cd8bfb tweak(lib): print!: join (path ...) segments 2024-03-24 18:09:54 -04:00
559171575e refactor(lib): doom-region-end: extract marker 2024-03-11 03:59:37 -04:00
61327bf777 refactor(lib): use doom-region-{beginning,end} 2024-03-11 03:59:37 -04:00
7f484f7010 refactor: remove explain-pause-mode
Tools like these will be moved to a benchmark module later (or perhaps
to `:lang emacs-lisp`). For the time being, it only takes up extra space
that few users use.
2024-03-11 00:53:44 -04:00
198fe82b6d feat(lib): backport find-sibling-file
I will slowly phase out projectile in favor of project.el, starting with
projectile-find-other-file, which -- as of Emacs 29 -- has a native
alternative: `find-sibling-file`.

Ref: doomemacs/community#1
2024-03-11 00:53:44 -04:00
3b405c8d81 fix(lib): only use alpha-background on pgtk builds
Fix: #7721
2024-03-11 00:53:44 -04:00
30a7f2d436 fix(lib): doom/sudo-find-file: expand given path
It's possible for the user to type shell variables (something like
`$MYVAR/dir/filename`) as part of the filepath, so we need to call
`expand-file-name`.
2024-02-10 16:57:22 -05:00
1b0af3bfc7 fix(lib): doom-project-find-file: remove +vertico/consult-fd-or-find
When +vertico/find-file-in was replaced in 60e22fd with
+vertico/consult-fd-or-find, it changed a key behavior for
doom-project-find-file for Vertico users: instead of displaying an
initial list of all files under the target directory, it would display
nothing until the user entered in N * `consult-async-min-input`
characters, causing confusion (see linked comment).

Since Vertico integration modifies project-find-file-in's interface
appropriately, I leave it to that command instead.

Ref: https://github.com/doomemacs/doomemacs/issues/7312#issuecomment-1933404444
Amend: 60e22fd2eb
2024-02-08 02:00:55 -05:00
15339e4671 fix(lib): doom-project-find-file: cl-no-applicable-method project-root
Fix: #7312
2024-02-08 00:58:20 -05:00
343c3a82b0 refactor: s/doom-modules-dirs/doom-module-load-path/
Ref: fc6934c240
2024-02-05 17:21:20 -05:00
7654262cdc tweak(lib): doom-info: show $EMACS/$EMACSDIR 2024-02-04 18:00:16 -05:00
659f7bfc71 refactor!: deprecate IS-* OS constants
BREAKING CHANGE: This deprecates the IS-(MAC|WINDOWS|LINUX|BSD) family
of global constants in favor of a native `featurep` check:

  IS-MAC      ->  (featurep :system 'macos)
  IS-WINDOWS  ->  (featurep :system 'windows)
  IS-LINUX    ->  (featurep :system 'linux)
  IS-BSD      ->  (featurep :system 'bsd)

The constants will stick around until the v3 release so folks can still
use it -- and there are still some modules that use it, but I'll phase
those uses out gradually.

Fix: #7479
2024-02-04 17:54:29 -05:00
60e22fd2eb refactor(vertico): use consult-fd
Close: #7458
Co-authored-by: LemonBreezes <look@strawberrytea.xyz>
2024-01-27 23:34:56 +02:00
f1e77e6692 feat(lib): doom-file-write: separate :mode for directories
doom-file-write's :mode parameter now accepts a cons cell, whose CDR
will determine the file mode for directories that get implicitly created
by the function.
2024-01-24 12:38:41 -05:00
41289cfef6 fix(lib): doom/bumpify-diff: respect structure of given list
The old check was a bug fix to work around noisy values that somehow
made it into diff checks. The `package!` symbol is never actually
present in the list of values yielded by the search in `read-package`,
so this commit alters the lookup to respect what is actually present,
thus guaranteeing that `destructuring-bind` succeeds and bump diffs are
actually detected.
2024-01-24 12:24:11 -05:00
fcf63d615a tweak(lib): write elisp in escaped form to files 2024-01-24 12:14:54 -05:00
efe8d476bc fix(lib): use unibyte in binary temp buffers 2024-01-24 12:14:54 -05:00
2b54b5732c docs(lib): improve docs of doom-file-read/-write 2024-01-24 12:14:54 -05:00
88c59129ec fix(lib): doom/bumpify-diff: skip non-package! forms
Would formerly error out if it tries to read invalid forms in misc files
included in bump commits.
2023-11-29 23:14:11 -05:00
4b81a70aff nit(docs): fix typo and extraneous backquote 2023-09-20 20:23:26 +02:00
88bb045388 docs(*): replace all-the-icons with nerd-icons
Also colorizes the leading icon in notices.
2023-09-16 20:19:11 +02:00
e97b05c07c fix: nerd-icons-material => nerd-icons-mdicon
Fix: #7422
Amend: #7411
2023-09-14 14:58:01 +02:00
9787022b83 refactor!: replace all-the-icons with nerd-icons
BREAKING CHANGE: This commit replaces all-the-icons with nerd-fonts. Any
all-the-icons-* function calls or variable references in your private
config will break and should be replaced with their nerd-icons-*
equivalent. That said, Doom will continue to install all-the-icons for
a while, so feel free to load it if you don't want to fully commit to
the change yet.

This change is happening because nerd-icon has wider support for GUI and
TUI Emacs; has a larger, more consistent selection of symbols; plus unicode
coverage.

Fix: #7368
Close: #6675
Close: #7364
2023-09-14 01:03:55 +02:00
af8ec870ac fix(lib): 'back to *' links in doom-docs 2023-09-12 21:30:56 +02:00
7f3d5d54bd refactor(lib): hoist new org-id-locations-file value 2023-09-11 23:53:35 +02:00
75d4046820 fix(lib): doom/reload-docs: `org-id-get' warnings
Prevents '`org-id-get' expects a file-visiting buffer' warnings in some
in-repo org files.
2023-09-11 23:53:35 +02:00
deb83dc6a9 fix(lib): doom-docs-mode: hiding property drawers
Includes a minor optimization: reading the current level from an
org-element object, rather than relying on (org-current-level), which
resorts to walking the buffer with regex.
2023-09-11 23:53:35 +02:00
f4e74e17ad fix(lib): doom/help-packages: handle missing homepage
When a package is added via straight local-repo, no homepage can be
determined. Prevent doom--help-insert-button throwing an error in this
case.
2023-09-06 14:40:07 +02:00
af5add0e9e merge: pull request #7389 from hpfr/misc 2023-09-06 14:28:57 +02:00
3cafa0223e fix(org): check org-fold-outline in invisible property
Fix: #7206
2023-09-06 14:27:35 +02:00
088bd387f6 tweak(lib): add alpha-background support to opacity setter
This is preferred when available because it does not affect foreground
content like text and images.

Ref: https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-29.1#n801
2023-09-02 12:27:37 -05:00
5155f4aa78 fix(lib): unquote base-directory in project-file-exists-p!
Fix: #7356
Amend: b1cc719063
2023-08-19 22:57:32 +02:00
09504ef9fe feat: ask before quickloading a session 2023-08-18 19:20:01 +02:00
b1cc719063 feat(lib): add base-directory arg to project-file-exists-p!
I also revise its docstring.

Ref: #7333
Co-authored-by: LemonBreezes <LemonBreezes@users.noreply.github.com>
2023-08-18 19:04:25 +02:00
1cd2a287f5 nit: comment revision, spellcheck, & reformatting
Close: #7262
Co-authored-by: emergenz <emergenz@users.noreply.github.com>
2023-07-22 19:01:35 +02:00
7cd0b87cd6 fix(lib): doom-region-*: only use evil visual range in visual mode
evil-visual-{beginning,end} contains stale ranges in non-evil states (like evil-emacs-state).
2023-07-22 16:18:56 +02:00
12dfc62ae5 fix(lib): doom-system-distro-version: check nixos-version first
Even if a NixOS machine has lsb_release in its PATH, lsb_release will be used
instead of nixos-version to determine the distro version.
2023-07-22 16:16:09 +02:00