Commit graph

19508 commits

Author SHA1 Message Date
Henrik Lissner
0b2ccac007
fix(emacs-lisp): lookup docs backend w/o helpful
Use `helpful-symbol` if it's present and the symbol at point doesn't
represent a cl-type (falling back to `describe-symbol` otherwise).

Fix: #8068
2024-09-17 05:57:33 -04:00
Henrik Lissner
22d5e3059f
feat(emacs-lisp): extend config to lisp-{data,interaction}-mode
So these modes (and particularly .doom* dotfiles and .dir-locals.el) can
benefit from smarter syntax highlighting and integration with other
modules.
2024-09-17 05:56:44 -04:00
Henrik Lissner
037b018cdd
feat: add .doommodule files
These optional dotfiles indicate the root of a module or module
group (:lang), and will later contain module metadata. They will also
serve as an alternative to packages.el and doctor.el, and will aide the
parts of the v3.0 module API concerned with resolving the current module
from a path (`doom-module-from-path`), which currently rely too heavily
on parsing path strings.

For now, however, they're simply placeholders.
2024-09-14 20:47:39 -04:00
Henrik Lissner
7ec570fdf5
fix(format): clang-format: respect c-basic-offset
In the absence of a .clang-format file, imposing the value of
`c-basic-offset` onto clang-format seems like reasonable, default
behavior. Like all other cases, this can be disabled by unsetting
`apheleia-formatters-respect-indent-level` globally or mode-locally with
`setq-hook!` or similar.
2024-09-14 20:46:49 -04:00
Henrik Lissner
d633c15042
perf(cc): lsp-clangd: halve core count for indexing
Ref: cec81ac2cc
2024-09-14 16:08:43 -04:00
45mg
2e5307e425 fix(emacs-lisp): always try Helpful for doc lookup
As per the description in 6671adc68, this module should always use
Helpful's functions as long as Helpful is available (ie. not explicitly
disabled by the user in packages.el). The remapping of `describe-symbol`
is irrelevant here - the user might prefer to rebind `C-h C-o` to
`describe-symbol` (as `helpful-symbol` cannot look up types), but that
doesn't necessarily mean they want this module not to use it.
2024-09-14 13:08:00 -07:00
Ajai Nelson
c82e7d9ea2 fix(ligatures): avoid invalid prettify-symbols-alist
Otherwise, `prettify-symbols-alist` will be set to a list whose first
element is the mode name, a symbol. That makes `prettify-symbols-alist`
an invalid alist, so when `prettify-symbols-mode` is enabled, there's a
type error in `prettify-symbols--make-keywords`.

Amend: c07f359d64
2024-09-14 13:01:54 -07:00
Henrik Lissner
a78237cc01
fix(mu4e): org-msg: type error w/ prefix arg
Fix: #8073
2024-09-14 15:22:09 -04:00
Henrik Lissner
66a2972ebf
fix(lib): doom/set-indent-width on Emacs >=30
A built-in `editorconfig` package was added in Emacs 30, with a somewhat
different API from the other package of the same name.

Fix: #8072
2024-09-14 15:22:09 -04:00
Henrik Lissner
d34770407c
fix(emacs-lisp): unremap describe-symbol to helpful-symbol
The latter can't look up cl types. Rather than remap it globally, allow
folks to bind them separately.
2024-09-14 15:22:06 -04:00
45mg
b681504582 fix(fold): avoid Hideshow-not-supported error
Some modes are not supported by `hs-minor-mode`, but can still support
some of the `+fold/` commands. For example, `pdf-outline-minor-mode`
recognizes the same commands as `outline-minor-mode`, but
`hs-minor-mode` is not applicable. In cases like these, we shouldn't try
to enable `hs-minor-mode`, as this will produce an error that will
terminate the command.
2024-09-13 20:28:54 -07:00
Henrik Lissner
faeab956e5
fix(vertico): consult-register: make evil-aware
Since the module remaps evil-show-registers to consult-register, the
latter should be made aware of evil registers.

Fix: #6355
2024-09-13 23:07:14 -04:00
Henrik Lissner
07afef645a
tweak(company): company-idle-delay = 0.26
Bumped up from it's default of 0.2.
2024-09-13 23:07:14 -04:00
Henrik Lissner
f452677c55
docs(ligatures): revise docstrings 2024-09-13 23:07:14 -04:00
Henrik Lissner
c07f359d64
fix(ligatures): activate prettify-symbols-mode conditionally
With +extra enabled, this module would activate `prettify-symbols-mode`
in any buffer where `prettify-symbols-alist` is non-nil, whether or not
`+ligatures-extra-alist` has an entry for the current major mode (or a
parent thereof). This behavior is poor UX, since the user may be
expecting that a empty entry for some `X-mode` in
`+ligatures-extra-alist` should mean *no` prettify-symbols-mode` at all
in `X-mode`.

With this, `+ligatures-extra-alist` is now the authority. An empty entry
for `X-mode` will result in `prettify-symbols-mode` *not* being
activated there. If that entry *isn't* empty, it will be combined only
with the global default value of `prettify-symbols-alist`, not any
pre-existing buffer-local value, to make the end result deterministic,
because some modes have their own defaults for it (like
`lisp-prettify-symbols-alist`, `js--prettify-symbols-alist`, and
`rust-prettify-symbols-alist`).

Fix: #7440
2024-09-13 23:07:14 -04:00
Henrik Lissner
59de0ec15e
perf(default): eagerly loading yasnippet at startup 2024-09-13 23:07:14 -04:00
Henrik Lissner
fa6893eeea
tweak(lib): doom-debug-variables: add doom-log-level 2024-09-13 23:07:14 -04:00
Henrik Lissner
b9eb662334
feat(vertico): allow affixes to be escaped
So we can search for "modulep\!" without it triggering the ! dispatcher.
2024-09-13 23:07:14 -04:00
Henrik Lissner
41987bb00f
fix(cli): persist correct doom-log-level to after-scripts 2024-09-13 23:07:13 -04:00
Henrik Lissner
0e5935f0f7
fix(cli): "Argument list too long" error from after-scripts
Because a persisted envvar was larger than MAX_ARG_STRLEN (which is
typically ~2kb).
2024-09-13 23:07:13 -04:00
Henrik Lissner
14189be77c
fix: out-of-bounds error if this-single-command-raw-keys is empty
It seems there's an edge case in EXWM where input events may occur
without keys to cause them (#8064), so these two keybind fixes need to
be ready to receive an empty vector from `this-single-command-raw-keys`.

Fix: #8064
2024-09-13 23:07:13 -04:00
Henrik Lissner
d735c9be3d
fix(graphviz): don't eagerly load flycheck at startup
Due to eager expansion of the flycheck-define-checker macro. Causes a
hefty delay in startup times.
2024-09-13 23:07:13 -04:00
Sau P
73460f42fd fix(dired): require needed for `dirvish-side'
This prevents getting load errors when calling the command
`+dired/dirvish-side-and-follow' before `dirvish' has been
loaded.
2024-09-12 13:12:24 -07:00
Henrik Lissner
9359a81e81
fix: gui frames fail to open from emacsclient
This was a tricky regression to track down. 9753bfb tries to fix an
issue where the `default` face's :foreground changes to `#000000` in any
new frames created after the initial one (by calling `make-frame`),
because those frames' `background-color` and `foreground-color`
parameters default to "#000000" (possibly a bug with `disable-theme` too
eagerly defaulting them to black).

240493a replaces that with new, seemingly cleaner approach: setting
`frame-inherited-parameters`, which instructs `make-frame` to copy those
parameters from the last open frame, however, those parameters in the
initial daemon frame will be set to "unspecified-bg" or
"unspecified-fg" (see the docstring for `face-{back,fore}ground`), which
are invalid color strings. `make-frame` crashes tries to create a frame
with those color values, causing #8059.

Fix: #8059
Amend: 240493ae92
Amend: 9753bfb775
2024-09-12 06:06:25 -04:00
Henrik Lissner
be422c4516
fix(graphviz): org babel integration
Forgot that `ob-dot.el` exists in Org. I blindly expected the
`graphviz-dot-mode` package to provide babel support in f6b7e8a.

Also, `org-src-lang-modes` expects its CDRs to omit the -mode suffix,
which should fix syntax highlighting of graphviz/dot babel blocks.

Amend: f6b7e8ae48
Ref: #7546
2024-09-12 03:54:36 -04:00
Henrik Lissner
37dbc99778
fix(fold): truncate-string-to-width: type errors
In 9a6bcc3, the new default for `truncate-string-ellipsis` was long
enough that it could cause `truncate-string-to-width` to error out (see
exceeded `truncate-string-to-width`s END-COLUMN argument.

Amend: 9a6bcc31f9
Fix: #8044
2024-09-11 20:41:13 -04:00
Henrik Lissner
288b6dc962
fix(cli): doom run: symlinks to XDG dirs beyond $HOME
The targets for $XDG_*_HOME symlinks weren't created correctly if they
were set to an absolute path outside of the user's $HOME.

Fix: #8062
2024-09-11 20:08:16 -04:00
Henrik Lissner
bd14095516
fix(ligatures): lisp modes disobeying null +ligatures-extra-symbols
Fix: #7440
2024-09-11 19:46:16 -04:00
Henrik Lissner
b853c4106a
fix(default): SPC g r: revert without prompting to save
Will save-then-revert now, instead of first prompting to save a modified
buffer before reverting.
2024-09-11 19:46:16 -04:00
Henrik Lissner
5880348a6c
perf(cli): doomscript: reduce init time
In 4989661, I reduced the init time for bin/doom by eliminating the
extra `emacs` call in its shebang. This does the same for
bin/doomscript.

Ref: 498966179f
2024-09-11 19:46:16 -04:00
Ag Ibragimov
f27a85ed35
module: add :emacs eww
Close: #6866
Co-authored-by: hlissner <hlissner@users.noreply.github.com>
2024-09-11 19:46:16 -04:00
Henrik Lissner
1dc606bb27
fix(file-templates): __doom-readme: use doom-modules-version 2024-09-11 19:46:16 -04:00
Henrik Lissner
9bd9d55354
fix(lib): define doom-context-error 2024-09-11 19:46:15 -04:00
Henrik Lissner
3256fc7fca
fix: trigger defcustom setters in files opened from command-line 2024-09-11 19:46:15 -04:00
Henrik Lissner
de6a077669
fix: early-init.el: don't suppress legit file errors
The NOERROR argument on `load` no only suppress file-missing errors, but
file permission errors, so I avoided it. However, if any
`require` *inside* `doom.el` throws `file-missing`, this bootstrapper
will assume this means we're loading a non-Doom config.
2024-09-11 19:46:15 -04:00
Henrik Lissner
19d68887b1
refactor: remove redundant auto-mode-alist entries
I moved these into lisp/init.el in e02d3c7, but didn't remove the old
forms (though they weren't doing anything, anyway).

Amend: e02d3c79a9
2024-09-11 19:46:15 -04:00
Henrik Lissner
70bfb9f0e9
docs: letf!: add demo & rewrite docstring 2024-09-11 19:46:15 -04:00
Henrik Lissner
a974210605
refactor(lib): letf!: use define-advice & split defun/defun* 2024-09-11 19:46:15 -04:00
Henrik Lissner
4ca5819532
fix(lib): file!: lower current-load-list priority
Also changes it to consider base buffer's filename (for `eval`
contexts).
2024-09-11 19:46:15 -04:00
Henrik Lissner
f8f2b28580
feat: add doom-log-level
Gives doom-log that capability of indicating log levels for its
messages, so that I can later work of reducing excessive logging in
`doom-debug-mode`.
2024-09-11 19:46:15 -04:00
Henrik Lissner
771fccc52b
nit: minor reformatting & revision
Also corrects the version string of obsolete variable `+mu4e-backend`.
2024-09-11 19:46:14 -04:00
Henrik Lissner
6d7a39c482
tweak: load site-lisp verbosely in debug mode 2024-09-11 19:46:14 -04:00
Henrik Lissner
546e56f1fa
fix: suppress visual startup optimizations in debug mode
Also interferes with doom/sandbox's launch targets.
2024-09-11 19:46:14 -04:00
Henrik Lissner
a8515034de
refactor: rename childframe predicate function
- The name reflected the opposite of what it detected.
- It should be treated as an internal (not public) function.
2024-09-11 19:46:14 -04:00
Henrik Lissner
240493ae92
fix: face-* calls crashing new emacsclient frames
Those `face-*` calls sometimes returned nil, causing new frames spawned
from emacsclient to quietly crash sometimes. By instead relying on
`frame-inherited-parameters` we achieve the same but more stable result.

Amend: 9753bfb775
2024-09-11 19:46:14 -04:00
Sorawee Porncharoenwase
1baebdafb3
feat(racket): add +hash-lang
`racket-mode` recently added `racket-hash-lang-mode` as an alternative
major mode.

Close: #7543
Co-authored-by: hlissner <hlissner@users.noreply.github.com>
2024-09-11 19:46:14 -04:00
Henrik Lissner
f6b7e8ae48
module: add :lang graphviz
Close: #7546
Co-authored-by: nbfalcon <nbfalcon@users.noreply.github.com>
Co-authored-by: peterhoeg <peterhoeg@users.noreply.github.com>
2024-09-11 19:45:36 -04:00
Otávio Schwanck dos Santos
fc35b3cf37
feat(ruby): add rails-{routes,i18n} & ruby-json-to-hash
Close: #5821
2024-09-11 04:33:36 -04:00
Henrik Lissner
5ad99220b8
fix(ligatures): no prettify-symbols-mode w/o +extra
Also removes unused variables and functions, and obsoletes
`+ligatures-in-modes`, since it is no longer used.

Fix: #7440
2024-09-11 03:50:57 -04:00
Henrik Lissner
5a4aa916bc
fix: adding newly created project to known-projects
Fix: #7413
2024-09-11 03:50:57 -04:00