Commit graph

383 commits

Author SHA1 Message Date
Henrik Lissner
7654262cdc
tweak(lib): doom-info: show $EMACS/$EMACSDIR 2024-02-04 18:00:16 -05:00
Henrik Lissner
51dcb4dc99
nit: fix s/make/bake typo 2024-02-04 17:59:31 -05:00
Henrik Lissner
b4f39e5369
nit: doom-modules: reformat & declare obsolete variables defs 2024-02-04 17:55:07 -05:00
Henrik Lissner
3bea4f66a8
refactor(emacs-lisp): elisp-demos: reorganize Doom demos
- Move Doom core elisp API demos out of docs/examples.org into lisp/demos.org.
- Recognize and search demos.org file in modules for additional
  demos (including $DOOMDIR/demos.org).
- Refactor emacs-lisp module to use new elisp-demos-user-files variable
  instead of an advice. This way, elisp-demo's commands (such as
  `elisp-demos-find-demo` and `elisp-demos-add-demo`) will include
  Doom's demos.
2024-02-04 17:54:29 -05:00
Henrik Lissner
77ea4013dd
refactor: doom-module: conform variables to conventions
- Rename doom--empty-module-context to doom-module--empty-context.
- Nest doom-module-context symbol plist in its 'keys' property. (By
  convention, Doom uses keywords as keys in most places. Let's be
  consistent)
- Updates all uses of doom-module--context-field and
  doom-module-context-get.
2024-02-04 17:54:29 -05:00
Henrik Lissner
fc6934c240
refactor: introduce doom-module-load-path
This renames doom-modules-dirs to doom-module-load-path, which dictates
where Doom searches for module trees or single modules, in preparation
for more sophisticated module lookups in v3.

This also deprecates doom-modules-dirs, which will be fully removed in
the v3 release.
2024-02-04 17:54:29 -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
Henrik Lissner
180ffd3fa8
release(modules): 24.02.0-dev
Ref: 2b39e41368
2024-02-02 03:33:53 -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
fcd95a09d0
nit: minor comment revision, reformatting, & internal refactor 2024-01-24 12:40:05 -05:00
Henrik Lissner
a5ffbd8550
fix: ensure top-level file-name-handler-alist is affected
Ensures that lexical contexts are never taken into account, in the case
where Doom's core is loaded in an isolated environment (e.g. the
sandbox). Also improves my startup time by 10%? I'll take it.
2024-01-24 12:39:35 -05: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
Henrik Lissner
be90021330
fix(cli): ensure local file/dir permissions
May catch edge cases where profile directories are created with
over-restrictive permissions (mentioned in #5832).

Ref: #5832
2024-01-24 12:38:41 -05:00
Henrik Lissner
8352562b2c
fix(lib): appease byte-compiler-sama
Silences some byte-compiler warnings about:

- 'nreverse on constant list' on add-hook! calls.
- inhibit-changing-match-data deprecation warning.
- unescaped quotes in docstring in some doom-*-dir variables.
- Variable non-essential should be quoted (though it isn't referring to
  a variable).
- CONTEXT -> CONTEXTS to match argument name.
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
4d072ce888
release(modules): 23.12.0-dev
This version bumps comes 3 months due to a short hiatus from moving back
from Denmark to Toronto and all the ensuing catch-up.

Ref: 2b39e41368
2023-12-02 13:57:53 -05:00
Henrik Lissner
b1d8d1cd9f
nit: reformatting, comment, and markup revision 2023-12-02 11:34:10 -05:00
Henrik Lissner
0d8479ae9b
tweak: emit feedback when started in daemon mode 2023-12-02 11:34:10 -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
Henrik Lissner
f9c2397a3c
fix: autoloads load order in profile bootstrap
Package autoloads should be assembled in the order they're
installed/built, so that dependencies between them (such as the case
where geiser-* packages call geiser-activate-implementation, which is
defined in geiser.el's autoloads file -- see #7472) don't throw errors.

Fix: #7472
Amend: 87f6f7ab91
2023-11-29 16:10:09 -05:00
Liam Hupfer
edd95854fd
fix: premature use of emoji fontset in <=28.1
317cea5 assumed Emacs 28, but Doom still tries to support 27.
Attempting to use the undefined emoji script on 27 results in an error.
Prior to 28, emoji are part of the symbol script, which the following
`set-fontset-font` call already handles.

Amend: 317cea5eef
Ref: #7448
Fix: #7505
2023-11-23 18:17:52 -05:00
LemonBreezes
1bc5f441f0
tweak: helpful-set-variable-function: use setq!
helpful-set-variable-function defaults to setopt if it's available, setq
otherwise. `setopt` is superior for this use case because it uses
custom.el's mechanism for setting variables (thus respecting custom.el's
setters and type checks), however, it is unavailable in Emacs 28 and
earlier (`setopt` was introduced in 29).

Doom defines `setq!`, which is a drop-in replacement for setopt, and is
functional in Emacs 28, so it is the better option here.

Ref: #7527
2023-11-23 17:38:22 -05:00
Henrik Lissner
c5f561b0c5
bump: :core
Fuco1/smartparens@79a338db11 -> Fuco1/smartparens@0778a8a840
Wilfred/helpful@66ba816b26 -> Wilfred/helpful@a32a5b3d95
bbatsov/projectile@971cd5c4f2 -> bbatsov/projectile@9446ea92d2
emacs-compat/compat@ecf53005ab -> emacs-compat/compat@ea8de2ea18
emacs-straight/project@ce140cdb70 -> emacs-straight/project@f64bcf065c
radian-software/straight.el@5e84c4e2cd -> radian-software/straight.el@b3760f5829
rainstormstudio/nerd-icons.el@619a0382d2 -> rainstormstudio/nerd-icons.el@e109d09b95

Co-authored-by: LemonBreezes <LemonBreezes@users.noreply.github.com>
Close: #7527
2023-11-23 17:29:31 -05:00
Liam Hupfer
986398504d refactor: defvar -> defcustom
Ref: 8c442d84b9
2023-10-07 02:33:45 +02:00
Liam Hupfer
b42882c545 refactor: make fallback font families constant
These are undocumented internal variables for basic platform-specific
fallbacks. Now that doom-symbol-font and doom-emoji-font exist, make
them constant.
2023-10-07 02:33:45 +02:00
Liam Hupfer
7abed4dbf1 fix: fall back to emoji font for symbols
Symbols fonts vary widely in their coverage of Unicode symbols blocks.
Emoji fonts are generally guaranteed to cover the small subset of
symbols code points that have assigned emoji representations, so fall
back to them when symbols fonts are lacking.

Ref: https://en.wikipedia.org/w/index.php?title=Variant_form_(Unicode)&oldid=1175107681#Blocks_with_standardized_variation_sequences
2023-10-07 02:33:45 +02:00
Liam Hupfer
37affa5cff feat: add doom-emoji-font
This parallels doom-symbol-font for emoji. In the process, refactor
symbol and emoji font setup to take advantage of these parallels.
2023-10-07 02:33:45 +02:00
Liam Hupfer
4499ce7b0a refactor: doom-unicode-font -> doom-symbol-font
No font supports all of Unicode or anywhere near it. It’s not even
really possible with current font formats. Therefore, rename
`doom-unicode-font` to `doom-symbol-font`. Only set it as a fallback for
characters in the `symbol` and `mathematical` scripts.
2023-10-07 02:33:45 +02:00
Liam Hupfer
1cc7b04059 docs: clarify doom-unicode-font default
d4dec35658 removed Apple Color Emoji, and it wasn’t clear how Symbola
was set if this variable was nil.
2023-10-07 02:33:45 +02:00
Liam Hupfer
317cea5eef fix: assign emoji fallbacks directly to emoji script
Ref: https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=12d2fb58c416b557924174f57bfb1c9b9e7cf999
2023-10-07 02:33:45 +02:00
Liam Hupfer
5e6430e9e6 fix: assign Nerd Fonts directly to Unicode PUAs
Nerd Fonts assign icons to code points in these Unicode Private Use
Areas. `doom-unicode-font` is now available again as a user-defined
fallback of last resort for non-PUA Unicode code points.

Ref: f12c615e4d (overview)
2023-10-07 02:33:45 +02:00
StrawberryTea
f5be3ec1e5 fix: use ansi-color-compilation-filter on emacs28+
I'm using Emacs30 and on my version,
doom-apply-ansi-color-to-compilation-buffer-h does not colorize all the
escape sequences. Using ansi-color-compilation-filter instead fixes this
for me.
2023-10-05 17:44:08 +02: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
Henrik Lissner
3627b82fd3
docs: revise and fix nerd-icons doctor check
Also fixes an issue where errors weren't counted, so the explanation
would never appear.

Fix: #7431
2023-09-16 15:32:54 +02:00
Henrik Lissner
b58dc721aa
fix: lingering autoloads from inactive packages
A package's autoloads aren't expunged from Doom's profile init file,
even after that package has been disabled. If a package's autoloads has
side-effects, this can lead to void references/function errors. One such
case is with php-extras, which will try to call
`php-extras-company-setup` after company loads from its autoloads, but
this function naturally won't be loaded if the package is disabled.

This change fixes this, fully expunging orphaned autoloads on `doom
sync`.
2023-09-14 19:01:39 +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
7bdf7cf7c0
refactor: doom-guess-mode-h: return non-nil on success 2023-09-12 21:30:56 +02:00
Henrik Lissner
f26b038ec3
fix: prevent quit in the middle of doom/escape 2023-09-12 21:30:56 +02:00
Henrik Lissner
af8ec870ac
fix(lib): 'back to *' links in doom-docs 2023-09-12 21:30:56 +02:00
Henrik Lissner
69cedebfda
docs: add fish shell check 2023-09-12 21:30:56 +02:00
Henrik Lissner
447b59c9c0
docs: properly indent core doctor checks 2023-09-12 21:30:56 +02:00
Henrik Lissner
95a5a32aac
docs: expand multiple/non-standard config checks
Close: #7391
Close: #7295
2023-09-12 21:30:55 +02:00
Henrik Lissner
a44e8d6bfd
nit: general reformatting & minor comment revision 2023-09-11 23:56:21 +02:00
Henrik Lissner
f427c8a30e
tweak: scroll-conservatively = 10
Forces the window to recenter if the cursor moves >=10 lines off-screen.
This makes some of our manual recentering elsewhere unnecessary.
2023-09-11 23:53:36 +02:00
Henrik Lissner
a7123bf65f
fix: write native-comp cache to $EMACSLOCALDIR
Otherwise, it writes them to /tmp. This way, the CLI can clean them up
along with other package state in the future.
2023-09-11 23:53:35 +02:00