Commit graph

126 commits

Author SHA1 Message Date
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
8d50cd8bfb
tweak(lib): print!: join (path ...) segments 2024-03-24 18:09:54 -04:00
Henrik Lissner
559171575e
refactor(lib): doom-region-end: extract marker 2024-03-11 03:59:37 -04:00
Henrik Lissner
61327bf777
refactor(lib): use doom-region-{beginning,end} 2024-03-11 03:59:37 -04:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
3b405c8d81
fix(lib): only use alpha-background on pgtk builds
Fix: #7721
2024-03-11 00:53:44 -04:00
Mathew
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
Henrik Lissner
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
Henrik Lissner
15339e4671
fix(lib): doom-project-find-file: cl-no-applicable-method project-root
Fix: #7312
2024-02-08 00:58:20 -05:00
Henrik Lissner
343c3a82b0
refactor: s/doom-modules-dirs/doom-module-load-path/
Ref: fc6934c240
2024-02-05 17:21:20 -05:00
Henrik Lissner
7654262cdc
tweak(lib): doom-info: show $EMACS/$EMACSDIR 2024-02-04 18:00:16 -05:00
Henrik Lissner
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
Itai Y. Efrat
60e22fd2eb refactor(vertico): use consult-fd
Close: #7458
Co-authored-by: LemonBreezes <look@strawberrytea.xyz>
2024-01-27 23:34:56 +02:00
Henrik Lissner
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
Colin Woodbury
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
Tim Ruffing
fcf63d615a tweak(lib): write elisp in escaped form to files 2024-01-24 12:14:54 -05:00
Tim Ruffing
efe8d476bc fix(lib): use unibyte in binary temp buffers 2024-01-24 12:14:54 -05:00
Tim Ruffing
2b54b5732c docs(lib): improve docs of doom-file-read/-write 2024-01-24 12:14:54 -05:00
Henrik Lissner
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
Liam Hupfer
4b81a70aff nit(docs): fix typo and extraneous backquote 2023-09-20 20:23:26 +02:00
Henrik Lissner
88bb045388
docs(*): replace all-the-icons with nerd-icons
Also colorizes the leading icon in notices.
2023-09-16 20:19:11 +02:00
Ellis Kenyő
e97b05c07c
fix: nerd-icons-material => nerd-icons-mdicon
Fix: #7422
Amend: #7411
2023-09-14 14:58:01 +02:00
Ellis Kenyő
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
Henrik Lissner
af8ec870ac
fix(lib): 'back to *' links in doom-docs 2023-09-12 21:30:56 +02:00
Henrik Lissner
7f3d5d54bd
refactor(lib): hoist new org-id-locations-file value 2023-09-11 23:53:35 +02:00
Henrik Lissner
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
Henrik Lissner
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
mosquito-magnet
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
Henrik Lissner
af5add0e9e
merge: pull request #7389 from hpfr/misc 2023-09-06 14:28:57 +02:00
StrawberryTea
3cafa0223e
fix(org): check org-fold-outline in invisible property
Fix: #7206
2023-09-06 14:27:35 +02:00
Liam Hupfer
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
Jacob
5155f4aa78
fix(lib): unquote base-directory in project-file-exists-p!
Fix: #7356
Amend: b1cc719063
2023-08-19 22:57:32 +02:00
Jeetaditya Chatterjee
09504ef9fe feat: ask before quickloading a session 2023-08-18 19:20:01 +02:00
Henrik Lissner
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
Henrik Lissner
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
Ta Quang Trung
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
Peter Hoeg
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
Itai Y. Efrat
e5dbd4e8b1 bump: :completion vertico compat
iyefrat/all-the-icons-completion@4da28584a1 -> iyefrat/all-the-icons-completion@b08f053cee
minad/consult@ffaaf6da90 -> minad/consult@052399ed05
minad/marginalia@ccf573e214 -> minad/marginalia@2633b2dee2
minad/vertico@6f22ff1298 -> minad/vertico@b6b8420d29
oantolin/embark@5497a19eef -> oantolin/embark@3ffb27a833
oantolin/orderless@d09aab3795 -> oantolin/orderless@e678402671
tumashu/vertico-posframe@f57b170b43 -> tumashu/vertico-posframe@7da6d648ff
emacs-compat/compat@38280a7b54 -> emacs-compat/compat@7775c31857

---

consult--grep added support for searching in multiple directories, so we
can drop the advice in `doom--help-search`. The other changes just adapt
to upstream API changes.
2023-03-22 16:35:07 -04:00
Henrik Lissner
1af08011df
fix(lib): doom/help-modules: omit nil in module list
Some psuedo module categories (like :core and :user) don't have a module
component. Rather than display them as ':core nil' or ':user nil' in
module listings (like doom/help-modules), omit the nil entirely.
2023-03-20 20:43:32 -04:00
Henrik Lissner
382058e1e6
fix(debug): doom-info: improve git error
In case Doom has been deployed without git (for some reason), or with an
unconventional structure.
2023-03-20 20:43:28 -04:00
Itai Y. Efrat
f5f9c7222a fix(lib): letf! in doom--help-search
Slipped by manual testing due to consult not being loaded at the time
and doom--help-search going to default grep-find usage instead of
hitting the failiure.

Amend: 54c4340740
2023-02-24 16:06:38 -05:00
Henrik Lissner
8f50ead5c8
fix(lib): doom/bumpify-diff: remove duplicates 2023-02-21 19:37:16 -05:00
TEC
33af29f7d5 feat(docs): use header-line for header info 2023-02-21 18:35:15 -05:00
Henrik Lissner
d24e197964
fix(lib): doom/bumpify-diffs missing packages
This command would skip over consecutive package! statements in the
generated commit message. This commit fixes that.

That said, this command is still a temporary measure until formal bump
CI/CD is done, but should make dealing with doom/bumpify-diffs and
doom/commit-bumps a little less painful.
2023-02-21 00:35:17 -05:00
Alexey Nesterov
06c794faf5
fix(lib): don't overwrite kill-ring on doom/backward-kill-word
When calling backward-kill-word (which is in turn is calling kill-new),
not only kill-ring variable should be overridden, but also
kill-ring-yank-pointer.

Otherwise when deleting a word backwards, kill-ring pointer is moved and
next yank will insert (not so expected) rubbish.
2023-02-20 20:21:59 -05:00