Commit Graph

226 Commits

Author SHA1 Message Date
Henrik Lissner
0ed0072ff2 refactor(lib): doom/set-frame-opacity
Remove redundancies.

Ref: #8395
Amend: 2c18b61c99
2025-08-11 01:22:40 +02:00
Henrik Lissner
2c18b61c99 feat(lib): set-frame-opacity: add FRAMES argument
Doesn't change the default behavior of the command, but adds an optional
FRAMES argument (a list of frames or `t` for all open and future
frames). If passed the prefix arg, FRAMES default to `t`, which applies
the opacity change to all open and future frames.

Close: #8395
Co-authored-by: lattarov <lattarov@users.noreply.github.com>
2025-08-10 15:34:43 +02:00
pancho horrillo
8b3894a94b fix(lib): update reference to deprecated alias 2025-08-09 22:35:34 +02:00
Henrik Lissner
dd89efdb42 tweak(lib): doom-debug-variables: add epg-debug 2025-07-13 22:28:34 +02:00
Henrik Lissner
7d69c5f7df fix(lib): void-function editorconfig--default-indent-size-function
There are two editorconfig libraries. One built into 30+ and one on
MELPA. Same name, different APIs. If the MELPA one is installed through,
say, your OS package manager, then the detection heuristic in
`doom/set-indent-width` could get confused which library is which.

Fix: #8423
2025-07-01 14:22:10 +02:00
Henrik Lissner
589fa73435 fix(lib): doom/reload: on Windows
- cmd.exe chokes on the space in "C:\Program Files\...", but more
  importantly, doom.ps1 should be invoked with powershell, not cmd.exe.
- Windows has pwsh.exe and powershell.exe, which, while not identical,
  are close enough for our purposes, but needed to be accounted for.

Fix: #8098
2025-06-25 17:36:59 +02:00
Henrik Lissner
18bb2da849 fix(lib): doom-project-find-file: allow arbitrary roots
Allow doom-project-find-file to search file hierarchies from arbitrary
starting points (otherwise, project.el will resolve to the nearest
project root).
2025-06-10 21:29:00 +02:00
Henrik Lissner
c22bb498e5 fix(lib): doom-print-minimum-level: type error if level is undefined 2025-05-22 16:33:33 +02:00
Henrik Lissner
5d13d6ce99 fix(lib): doom-file-cookie: what argument-less cookies return
Used to be that a ;;;###COOKIE with no argument would return NULL-VALUE.
No more, it will now return `t`.

Also corrects the docstring to properly reflect what this does.
2025-05-22 16:33:22 +02:00
Henrik Lissner
3c8240dfaa fix(cli): error if $EMACSDIR/.local/etc/eln missing 2025-05-14 23:43:58 +02:00
Henrik Lissner
510347977e docs(lib): revise various docstrings 2025-05-09 01:14:16 -04:00
Henrik Lissner
e6ee332573 fix(lib): autoload doom/describe-char
Amend: 303dd28db8
2025-05-05 02:45:45 -04:00
Henrik Lissner
303dd28db8 feat(lib): introduce doom/describe-char
A version of describe-char that, when given a prefix arg, will prompt
the user to click where to execute the command (so you can read
text-properties/overlay information for otherwise unselectable text, in
the minibuffer or special UIs).
2025-04-24 04:28:49 -04:00
Henrik Lissner
009a285c0a fix: doom-quit-p when use-dialog-box
I don't know what I was thinking, but I need more sleep.

Amend: 1a0fb88897
2025-04-15 19:08:45 -04:00
Henrik Lissner
20c80c461e fix: void-function use-dialog-box-p
This function doesn't exist before Emacs 29, and also isn't meant to be
used in a global context.

Amend: 6a44a2ea80
2025-04-15 17:21:14 -04:00
Henrik Lissner
a13719af45 refactor(lib): backport static-{if,when,unless}
And deprecate our eval-{if,when}! macros.
2025-04-15 00:39:10 -04:00
Henrik Lissner
1a0fb88897 feat: doom-quit-p: use popup dialog if available
Mainly for Android UX, but also for consistency for folks who *like* GUI
dialog boxes (seek professional help).

Amend: 6a44a2ea80
2025-04-14 22:48:53 -04:00
Henrik Lissner
cbdce0dc71 refactor(cli): doctor: extract symlink check to function 2025-04-11 12:17:48 -04:00
Henrik Lissner
fb0dc4cc85 refactor(lib): doom-debug-mode: make verbosity selective
Now `doom-debug-mode` manipulates `doom-log-level` if you activate it
with a prefix arg, setting it to 1 by default, reducing its verbosity
and cutting down on noise in the logs.
2025-04-11 12:17:44 -04:00
Henrik Lissner
dac6e05b87 refactor: deprecate appendq!, prependq!, & delq! macros
In the interest of slimming down Doom's core (as we near v3), I've
deprecated these macros. They doesn't really need to exist. Sure, the
alternatives aren't as ergonomic or elegant, but they're good enough
that we don't need these trivial wrappers. Their local uses have been
refactored out as well.
2025-03-25 14:16:56 -04:00
skryvel
49d8cbd8bc fix: use mirror for nongnu-elpa
savannah goes down a lot, causing fatal errors during package management.

Fix: #7171
Ref: #8271
2025-03-15 00:37:59 -04:00
Henrik Lissner
71d9ceead4 fix: ensure empty DEBUG envvar is ignored
Also ensures the envvar is removed if it's empty, and doesn't permeate
an empty DEBUG when executing doom/reload.

Amend: 8c7711920e
Close: #8310
Co-authored-by: AjaiKN <AjaiKN@users.noreply.github.com>
2025-03-13 01:07:52 -04:00
Henrik Lissner
373b7aa976 fix: rename {b,e}ol functions to pos-{b,e}ol
These two functions were introduced in emacs-mirror/emacs@f117b5df4d
as `bol` and `eol`, but were renamed to `pos-bol` and `pos-eol` in
emacs-mirror/emacs@2614e53216.

Close: #8242
2025-01-14 13:52:41 -05:00
Henrik Lissner
9b4f7ead88 fix(lib): doom-profiles-bootloadable-p: respect XDG_CONFIG_HOME 2025-01-09 14:32:51 -05:00
Dani Brown
1fc41d719c fix: project-current-directory-override takes a directory
Not a `t`. [It overrides `default-directory`](6c1c3120b9/lisp/progmodes/project.el (L196-L198)).
2025-01-09 01:06:20 -05:00
Henrik Lissner
3f1a471127 refactor: replace point-at-{b,e}ol
These were deprecated in 29.1. We'll switch to pol-bol and pos-eol
if/when we drop 28.x support.
2025-01-08 19:33:38 -05:00
Henrik Lissner
254a8d38a7 feat(lib): prepend DOOMPROFILELOADPATH to doom-profile-load-path
Instead of replacing it.
2025-01-08 19:33:38 -05:00
Henrik Lissner
881eea137f refactor: remove doom-bin-dir
Or rather, moves its into lib/config.el, which is the only place that
uses it.
2025-01-08 19:33:37 -05:00
Henrik Lissner
68edae421f refactor: doom-profile-generate: remove defunct build step
Since 87a024e, the profile init files are no longer byte-compiled, so
this block of code -- responsible for deleting byte-compiled init files
-- is no longer needed.

Amend: 87a024ee90
2025-01-08 19:33:37 -05:00
Henrik Lissner
0a715cc3f2 refactor: (if|when)-let -> (if|when)-let*
With the former macros' future in the air (and likely to be targeted in
future, potentially breaking changes), I'll deal with this now than have
it bite me later.

Ref: https://lists.gnu.org/archive/html/emacs-devel/2024-10/msg00637.html
2025-01-08 19:33:37 -05:00
Henrik Lissner
50b9afbb2d refactor: swap load-theme advice for enable-theme-functions
Instead of advising load-theme, which was more opinionated, and broke in
instances where users (relying on `custom-enabled-themes`s setter) or
packages (like auto-dark) were enabling themes with `enable-theme`
instead of `load-theme`.

This also adds support for enabling multiple themes with `doom-theme`.

Fix: #8119
2025-01-08 19:33:33 -05:00
Henrik Lissner
7dddbcf793 fix(lib): native-comp-deferred-compilation-deny-list in sandbox 2024-12-01 11:14:46 -05:00
Henrik Lissner
abedb71f96 refactor(cli): restructure doom profile commands
- Replace 'doom profiles sync' with 'doom profile sync --all'.
- Move lisp/cli/profiles.el to lisp/cli/profile.el.
- Move obsolete alias to bin/doom.
2024-12-01 01:57:46 -05:00
Henrik Lissner
9c8ea37a2d refactor(cli): remove cli/packages.el
This file is mostly redundant. There is much more trimming/culling of
Doom's package API pending, but I'll save that for v3.
2024-12-01 01:20:38 -05:00
Henrik Lissner
3401492c84 refactor: deprecate letenv!
`letenv!` is a layover from the days before
`with-environment-variables` (introduced in 28.x), and it remained
afterwards because I preferred the shorter name. From v3 and onward,
Doom's core will be put on a diet which, among other things, will
include culling redundant or superfluous functions/macros like this one.
2024-11-30 22:50:27 -05:00
Henrik Lissner
87a024ee90 fix: don't byte-compile profile init file
The performance benefit of doing so has always been questionable or, at
best, negligible, but has caused numerous issues over the years. The
latest one being #8162, where byte-compiling a profile init file with
too many package autoloads would consume more than 255 opcodes, causing
an overflow error.

For simplicity's sake, Doom will no longer byte-compile this file.

Fix: #8162
2024-11-19 00:40:57 -05:00
Henrik Lissner
2373511daf refactor(lib): deprecate doom-plist-get
It's redundant with cl-getf, and so will be removed in v3.0.
2024-11-15 04:08:23 -05:00
Henrik Lissner
fa0a83ff2f feat(lib): add doom-plist-{map,map*} 2024-11-15 04:08:16 -05:00
Henrik Lissner
5e84709577 nit(cli): fix print-group! indentation 2024-11-13 17:10:09 -05:00
Henrik Lissner
cb557319a9 fix(lib): silence deprecation notice from autoload.el
It's been replaced with loaddeffs-gen.el in >=30, but we can't switch to
it until we've dropped 29.x support.
2024-11-13 17:09:36 -05:00
Henrik Lissner
1af6fe8502 fix(cli): cull empty let-forms in autoloads
Amend: 114f99688c
2024-11-12 05:37:12 -05:00
Henrik Lissner
fdcab58a1b fix: raise compile errors from profile init files
Otherwise, errors in package/module/user autoloads could cause `doom
sync` to silently and invisibly fail.

Fix: #7253
2024-11-08 01:18:48 -05:00
Henrik Lissner
eea00f5d45 refactor: remove doom/goto-private-*-file commands
These commands were removed in an ongoing effort to slim down Doom and
its core. The `doom/goto-private-*-file` family of commands were
redundant with `doom/open-private-config` and
`doom/find-file-in-private-config`.
2024-11-07 04:03:13 -05:00
Henrik Lissner
6a8c09f012 fix: package autoload order
This is an old issue that's haunted Doom for a while. I had initially
planned to wait until the switch to Elpaca, but I decided to just sit
down and solve this.

This ensures package autoloads are always written in depth-first
dependency order to Doom's profile init file, preventing load-order
issues like the notorious void-function geiser-activate-implementation
error. `geiser` needs to be built before any `geiser-*` plugins, since
its plugins reference variables/functions in geiser's own autoloads, but
there's no way to enforce package order in `straight--build-cache`
currently, and subsequent package updates (or just deleting package
directories by hand) can change the order of straight's build-cache in
subtle ways.

Fix: #7693
Fix: #7472
2024-11-07 02:48:52 -05:00
Henrik Lissner
bcd399d1c3 fix: more void-variable doom-module-*-file errors
A stop-gap until the third follow-up to 8cafbe4 is complete.

Fix: #8153
Amend: 8cafbe4408
2024-11-06 18:23:47 -05:00
Henrik Lissner
48d043301e fix: void symbol doom-module-packages-file
From `doom/reload-packages` and various `doom/bump-*` commands. This is
a stop gap solution until the next big refactor.

Fix: #8149
Amend: 8cafbe4408
2024-11-04 20:44:35 -05:00
Henrik Lissner
0b79fd3391 fix: doom-autoloads--scan: set load-true-file-name too
Ref: 114f99688c
2024-11-04 20:41:55 -05:00
Henrik Lissner
e1a2f94ec1 fix: void-variable doom-module-load-path error
`doom-module-load-path` will be removed in the next big refactor commit,
so as a stop gap, I simply move it to doom.el to resolve the reference
error.

This also removes the obsolete alias `doom-modules-dirs`, since it's
been deprecated long enough (and `doom-module-load-path` itself won't be
around much longer anyway).

Ref: #8147
Amend: 8cafbe4408
2024-11-04 18:23:25 -05:00
Henrik Lissner
e2c1801e6a fix: doom/reload: void-variable doom-module-init-file
Fix: #8147
Amend: 8cafbe4408
2024-11-04 18:17:59 -05:00
emiltoacs
1d3c2db274 fix: doom-autoloads--scan: s/pfile/file
This typo is responsible of a startup error `delayed-warnings-hooks
void-variable warning-minimum-log-level`.

Fix: #8144
2024-11-04 12:31:11 -05:00