Commit graph

1425 commits

Author SHA1 Message Date
Henrik Lissner
ad6a3d0f33
refactor: deprecate featurep! for modulep!
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.

featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
2022-08-14 20:43:35 +02:00
Henrik Lissner
0407621aff
refactor: deprecate EMACS2[89]+, NATIVECOMP, MODULES
To reduce redundancy, remove the maintenance hassle that version
constants would impose later on, and rely on built-in
facilities (featurep) more over global variables or doomisms, these
global constants have been deprecated in favor of Emacs "features":

- EMACS28+   -- replace with (> emacs-major-version 27)
- EMACS29+   -- replace with (> emacs-major-version 28)
- NATIVECOMP -- replace with (featurep 'native-compile)
- MODULES    -- replace with (featurep 'dynamic-modules)

(These constants will be formally removed when v3 is released. The IS-*
constants are likely next, but I haven't decided on their substitutes
yet)

I also decided to follow native-compile's example and provide features
for Emacs' system features (since system-configuration-features' docs
outs itself as a poor method to detect features):

- dynamic-modules
- jansson
- native-compile -- this one already exists, but will instead be removed
  if it's non-functional; i.e. (native-comp-available-p) returns nil.

These are now detectable using featurep, which is fast and built-in.
2022-08-14 20:43:35 +02:00
Henrik Lissner
de62c5449d
nit(vc-gutter): add summary tags to comments
A new convention I'm slowly rolling out to modules to help readers
quickly identify the purpose of a change. E.g.

  UX    - a change done to improve user experience
  STYLE - for aesthetics
  FIX   - addresses a perceived or potential issue
  PERF  - intended to improve performance

Combined tags will be delimited with commas. E.g. "UX,PERF:"

There may be more later, and these will be further documented in the new
docs about to come up.
2022-08-10 14:06:52 +02:00
Henrik Lissner
bd597ffda4
docs(vc-gutter): document module's hacks 2022-08-10 13:18:34 +02:00
Henrik Lissner
99b0b70c49
fix(vc-gutter): remove advice removal for diff-hl-overlay-modified
Originally, this intended to *stop* diff-hl from too aggressively
deleting the diff overlays while editing. This is either no longer the
case or the old advice was mistaken; the intended behavior is achieved
without it.
2022-08-10 13:18:34 +02:00
Henrik Lissner
d55d7f3088
feat(vc-gutter): shrink revert-hunk popup to contents 2022-08-10 13:18:33 +02:00
Henrik Lissner
24623f9959
refactor!(dired): move diff-hl config to :ui vc-gutter
BREAKING CHANGE: users who are used to diff-hl displaying diffs in dired
will notice they have vanished. diff-hl's conig has been moved to :ui
vc-gutter +diff-hl (added in 27a448b). Enable it to get it back.

Ref: 27a448b04b
2022-08-09 16:30:43 +02:00
Henrik Lissner
e76f327e0a
fix(vc-gutter): apply +pretty to diff-hl-dired-mode
Amend: cd9bc5a1fd
2022-08-09 16:30:43 +02:00
Henrik Lissner
e30eb03f83
refactor(vc-gutter): remove redundant hooks
The refresh hooks address the stage/unstage cases already.
2022-08-09 16:30:43 +02:00
Henrik Lissner
15b00b78fe
refactor(vc-gutter): use local modes instead of global 2022-08-09 16:30:43 +02:00
Henrik Lissner
27a448b04b
feat(vc-gutter): add +diff-hl backend
This adds an alternative backend to the :ui vc-gutter module, enabled
with the +diff-hl flag. In the future, I intend for diff-hl to replace
git-gutter, as it is slightly faster and depends on more native
functionality (vc.el), but it's still a little buggy. It will remain
opt-in until those issues are sorted out.
2022-08-08 18:23:47 +02:00
Henrik Lissner
cd9bc5a1fd
refactor!(vc-gutter): move style defaults behind +pretty
BREAKING CHANGE: This changes moves its default configuration of the
fringe behind a +pretty flag. This won't cause breakage, but will cause
a (possibly unwanted) visual change: git-gutter will use its default
indicators (e.g. + and - symbols) instead of the continuous bars from
before.

To get back the old look, enable `+pretty` on the `:ui vc-gutter`
module.

This was done to make the defaults toggleable, to standardize +pretty,
to document issues with this customization that have been brought up by
members of the Emacs community, and to better document it in comments
for posterity.
2022-08-08 18:23:47 +02:00
Henrik Lissner
057e6c531c
refactor: replace doom-enlist with ensure-list
doom-enlist is now a deprecated alias for ensure-list, which is built
into Emacs 28.1+ and is its drop-in replacement. We've already
backported it for 27.x users in doom-lib (in 4bf4978).

Ref: 4bf49785fd
2022-08-07 19:43:13 +02:00
Henrik Lissner
1abcf913aa
revert: fix(docs): set mode in file-local vars
emacs-straight/org-mode@e22b4eb7aa introduced a breaking change that
made it impossible to rely on .dir-locals.el to change org-mode buffers
in $EMACSDIR to doom-docs-org-mode (without infinite recursion), so we
used file-local variables in 7e400ab.

emacs-straight/org-mode@215de6176b reverted that change, so we can use
.dir-locals.el again, and this is my preference, since it requires less
boilerplate across our hundreds of org files.

Ref: emacs-straight/org-mode@215de6176b
Ref: emacs-straight/org-mode@e22b4eb7aa
Revert: 7e400abdc0
2022-08-07 19:08:07 +02:00
Henrik Lissner
6d4b2b48c2
fix(doom-dashboard): revert unintended changes
Amend: b5a2aa48fe
2022-08-03 03:34:28 +02:00
Henrik Lissner
1f8bf7accb
merge: rewrite-docs
I've omitted docs/*.org from this merge, as there is still work left to
do there, but I am pushing the module docs early so folks can benefit
from the new docs sooner.
2022-08-03 03:27:50 +02:00
Henrik Lissner
7e400abdc0
fix(docs): set mode in file-local vars
Due to emacs-straight/org-mode@e22b4eb, a replacement major mode (for
org-mode) can no longer be specified from .dir-locals.el, as it spirals
into infinite recursion. Therefore, a mode: line is needed in all Doom
docs.

Ref: emacs-straight/org-mode@e22b4eb7aa
2022-08-03 02:46:33 +02:00
Henrik Lissner
1255315bfc
refactor(docs): replace nav menus with virtual one
Now that the header is dynamically generated (when doom-docs-mode is
active), a literal header is unnecessary.
2022-08-02 19:37:07 +02:00
Henrik Lissner
e77a45bc22
docs: use lowercase keywords
As per Org's new defaults, which we're adopting elsewhere, so may as
well adopt it here.
2022-08-02 16:23:43 +02:00
Henrik Lissner
9744946a66
docs(ligatures): mention doom-unicode-font incompatibilities 2022-08-02 16:23:42 +02:00
Henrik Lissner
dd34802523
revert: compat
emacs-straight/compat@2a9cf8b7bd -> emacs-straight/compat@cc1924fd8b

compat is a dependency of magit and doom-modeline (among other
packages), but a recent bug on compat@2a9cf8b caused #6583, so I am
pinning it to a stable commit. It's not common that Doom pins 2nd/3rd
order dependencies, but I will consider doing that more going forward.

Pinning them across multiple modules isn't elegant, but a better
solution is in the works as part of #4273.

Fix: #6583
Ref: #4273
2022-07-31 16:56:14 +02:00
Henrik Lissner
9d1df5f298
nit: minor refactors & comment/docstring revisions 2022-06-21 14:40:15 +02:00
Henrik Lissner
8b93e8b15c
fix(tabs): wrong-type-arg stringp (Git "...") error
Newer versions of project.el changed the return value of
`project-current` to a three-part list, rather than a cons cell.
centaur-tabs expects the old signature and we get a type error.

This advice ensures centaur-tabs works with old or new versions of
project, and is a temporary measure until the issue is resolved
upstream.

Ref: ema2159/centaur-tabs#181
Fix: #6280
2022-06-20 02:07:42 +02:00
Antonio Ruiz
41921f5f07 fix(window-select): allow Switch Window to work with >6 windows 2022-06-17 18:38:39 +02:00
Henrik Lissner
26d47b5ebc
feat(nav-flash): add consult support 2022-06-17 18:21:23 +02:00
Henrik Lissner
398b91b623
nit(hl-todo): revise keyword summaries in comments 2022-05-27 00:35:37 +02:00
Henrik Lissner
d212f3bd13
bump: :ui
Alexander-Miller/treemacs@1820db42c6 -> Alexander-Miller/treemacs@b18a05b1f6
Bad-ptr/persp-mode.el@298df111f0 -> Bad-ptr/persp-mode.el@7a594a3d8f
abo-abo/ace-window@c7cb315c14 -> abo-abo/ace-window@0577c426a9
abo-abo/hydra@2d553787ac -> abo-abo/hydra@9e9e00cb24
doomemacs/themes@56e8a93b2d -> doomemacs/themes@83fd9545c2
edkolev/evil-goggles@08a22058fd -> edkolev/evil-goggles@8f20a16e74
ema2159/centaur-tabs@5860a5c40c -> ema2159/centaur-tabs@f4cef95acb
emacs-lsp/lsp-treemacs@c40a381730 -> emacs-lsp/lsp-treemacs@355e468b7f
seagle0128/doom-modeline@84573ae5e7 -> seagle0128/doom-modeline@ce9899f00a
tarsius/hl-todo@42f744ffb5 -> tarsius/hl-todo@e52285965b

Close: #6228
2022-03-31 21:08:31 +02:00
Henrik Lissner
b5093a5e93
fix(doom-dashboard): :key param & keymap precedence
- Fixes the :key property in +doom-dashboard-menu-sections, which
  formerly threw an error.
- When looking up commands in +doom-dashboard-menu-sections, the
  dashboard will now prioritize keys in +doom-dashboard-mode-map.

Close: #6194
Co-authored-by: Gerry Agbobada <gagbo@users.noreply.github.com>
2022-03-31 01:06:07 +02:00
Anh T Nguyen
6c4b7169f0 feat(hydra): add winner commands to +hydra/window-nav 2022-03-19 16:14:33 +01:00
skykanin
71e07da578 feat(ligatures): include support for new ligatures
Includes support for =<= and =>= ligatures
2022-02-23 17:48:01 +01:00
Henrik Lissner
849672691d
fix(emoji): restore emoji in org-mode
Amend: d499b98c87
2022-02-19 01:08:08 +01:00
Henrik Lissner
d499b98c87 fix(emoji): don't render emoji in verbatim org text 2022-02-10 21:07:20 +01:00
Henrik Lissner
f26094b4ab tweak(popup): 7% bigger help popups by default 2022-02-01 18:56:16 +01:00
Henrik Lissner
7246db457c docs: replace doom-source with doom-repo links
I will later use "source" to refer to module sources, so better we avoid
the terminology for now.
2022-02-01 18:55:27 +01:00
wangggong
402e5eb723
docs(modeline): mention modeline hiding & strange icons
Ref: #1166
2022-01-29 20:09:50 +01:00
Henrik Lissner
6e19e75748 fix(zen): add solaire-line-number-face to mixed-pitch-fixed-pitch-faces
To avoid variable-pitch line numbers.
2022-01-28 20:36:13 +01:00
Seong Yong-ju
ff4609835a bump: :ui doom
doomemacs/themes@7d1a56623c -> doomemacs/themes@56e8a93b2d
2022-01-27 04:06:11 +01:00
Henrik Lissner
7832424843 bump: :ui modeline
seagle0128/doom-modeline@69ede7d719 -> seagle0128/doom-modeline@84573ae5e7

- Fixes an issue where doom-modeline was generating too many iex child
  processes while trying to read the installed version of elixir (see
  #5895).

Fix: #5895
2022-01-03 19:22:28 +01:00
Henrik Lissner
5cf424cf6b bump: :ui
Alexander-Miller/treemacs@63e2bc207a -> Alexander-Miller/treemacs@1820db42c6
ema2159/centaur-tabs@8b4249c405 -> ema2159/centaur-tabs@5860a5c40c
emacs-lsp/lsp-treemacs@d82df44d63 -> emacs-lsp/lsp-treemacs@c40a381730
emacsorphanage/git-gutter-fringe@4f19866494 -> emacsorphanage/git-gutter-fringe@648cb5b57f
hlissner/emacs-doom-themes@e716ddbb88 -> hlissner/emacs-doom-themes@7d1a56623c
joostkremers/writeroom-mode@7f4ec92404 -> joostkremers/writeroom-mode@eac1da790f
rolandwalker/unicode-fonts@e3942fe40b -> rolandwalker/unicode-fonts@47f2397ade
seagle0128/doom-modeline@ffedb34800 -> seagle0128/doom-modeline@69ede7d719

- Emacs 29 introduces the mode-line-active face, which inherits from
  variable-pitch, therefore the modeline uses your variable-pitch font,
  instead of your default. As of
  hlissner/emacs-doom-themes@7d1a56623c, this is no longer the
  case (fixing #5891).

Fix: #5891
2021-12-13 19:28:32 +01:00
Dan
f458f97760
fix(popup): rules for report-emacs-bug 2021-12-03 16:48:06 +01:00
Roch D'Amour
08071f92b7 docs(doom): fix doom-variable-pitch-font reference
Fixes doom-variable-font so it is consistent with the actual
variable used within doom, which is 'doom-variable-pitch-font'.
2021-11-21 20:04:28 +01:00
Henrik Lissner
88844e9cec docs: simplify internal docs links
Fewer links means less confusion.

- Merge doom-issue and doom-commit links into doom-ref (for auto-linking
  Issue/PR/commit references).
- Merge doom-module-source and doom-docs-source links into doom-source.
- Rename doom-report-issue to doom-report.
- Use '!' as the icon for module issues link.
- Remove doom-repo (replaced with "doom:*" in :lang org module).
- Add doomdir and emacsdir links to :lang org module.
2021-11-21 20:04:28 +01:00
Henrik Lissner
b5a2aa48fe docs(:ui): update READMEs to new format 2021-11-21 20:04:28 +01:00
Henrik Lissner
df62fcba26 docs: add category readmes 2021-11-21 20:04:28 +01:00
Henrik Lissner
02850dd6d7 fix(workspaces): wrong-type-argument list error on kill emacs
Amend: 1db18f6e1390
Fix: #5687
2021-11-21 18:49:21 +01:00
Quoc Huy Vu
3d91c9aff7 fix(popup): show reftex-citation in popup 2021-11-18 19:09:34 +01:00
Henrik Lissner
db9106f92c fix(popup,undo): show undo-tree visualizer in popup
But only if undo-tree-visualizer-diff is disabled. If it's enabled,
undo-tree has its own opinions on how to manage the two windows which
don't mesh well with our popup manager, so we leave undo-tree to its
devices.

Fix: #5617
2021-10-20 21:42:13 +02:00
Henrik Lissner
e431dbc138 fix(doom-dashboard,workspaces): module init order
Change (and simplify) the load order of Doom's dashboard and persp-mode
so that the dashboard always initializes later. This and 0ab6aba should
fix #5643.

Fix #5643
Ref 0ab6aba056
2021-10-18 01:15:20 +02:00
Henrik Lissner
0bb4d4dfcb refactor: switch buffer/frame/window hooks
Emacs 27 introduced a bunch of `window-*-change-functions` hooks,
including `window-selection-change-functions` and
`window-buffer-change-functions`, which handles 98% of the use case for
Doom's `doom-switch-{buffer,window,frame}-hook` hooks, so I've rewritten
them to use them under the hood, which amounts to simpler code and fewer
hacks.
2021-10-10 18:36:46 +02:00
Björn Larsson
b2f27c2b4f
refactor(lookup): move xwidget popup rule (#5598)
Setting the rules explicitly was preventing users from customizing how
xwidget popups should behave, so it was moved to the popup module as a 
global default.
2021-10-10 18:22:13 +02:00