Commit Graph

327 Commits

Author SHA1 Message Date
Henrik Lissner
cff091982e
fix(cli): rewrite 'doom sync'; deprecate 'doom build'
This changes 'doom sync' to be smarter about responding to changed
package recipes/pins, changes in Emacs version, or instances where the user
has copied a config to a new system.

In all these cases, the user would formerly have to know about a
specific combination of 'doom sync -u' and 'doom build' to ensure Doom
is in a good state. With this change, 'doom sync' handles all these
cases.

Also, 'doom build' is now deprecated (and 'doom sync' now has a
--rebuild option to mimic its old behavior).

Also also, sometimes, a package may silently fail when cloned (which
used to result in an empty repo). Now, if this is detected, cloning will
be re-attempted up to 3 times before aborting with much more visible
error.

Note: these are stopgap solutions, until v3 is finished.
2024-03-24 18:03:12 -04: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
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
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
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ő
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
TEC
5ac2a5258b docs: change link format 2022-10-05 01:01:19 +02:00
Henrik Lissner
b914830403
refactor!: complete profile gen and init systems
BREAKING CHANGE: This commit makes three breaking changes:

- Doom now fully and dynamically generates (and byte-compiles) your
  profile and its init files, which includes your autoloads, loading
  your init files and modules, and then some. This replaces
  doom-initialize-modules, doom-initialize-core-modules, and
  doom-module-loader, which have been removed. This has also improved
  startup time by a bit, but if you use these functions in your CLIs,
  for instance, this will be a breaking change.
- `doom sync` is now required for Doom to see your profiles (and must be
  run whenever you change them, or when you up/downgrade Emacs across
  major versions).
- $DOOMDIR/init.el is now read much earlier than it used to be. Before
  any of doom-{ui,keybinds,editor,projects}, before any autoloads are
  loaded, and before your load-path has been populated with your
  packages. It now runs in the context of early-init.el, giving users
  freer range over what they can affect, but a more minimalistic
  environment to do it in.

  If you must have some logic run when all that is set up, add it to one
  of the module hooks added in e08f68b or 283308a.

This also poses a significant change to Doom's load order (see the
commentary change in lib/doom.el), along with the following (non
breaking) changes:

1. Adds a new `doom profiles sync` command. This will forcibly resync
   your profiles, while `doom sync` will only do so if your profiles
   have changed.
2. Doom now fully and dynamically generates (and byte-compiles) your
   user-init-file, which includes loading all your init files, modules,
   and custom-file. This replaces the job of doom-initialize-modules,
   doom-initialize-core-modules, and doom-module-loader, which have been
   removed. This has also improved startup time by a bit.
3. Defines new doom-state-dir variable, though not used yet (saving that
   and the other breaking changes for the 3.0 release).
4. Redesigns profile directory variables (doom-profile-*-dir) to prepare
   for future XDG-compliance.
5. Removed unused/unimportant profile variables in doom.el.
6. Added lisp/doom-profiles.el. It's hardly feature complete, but it's
   enough to power the system as it is now.
7. Updates the "load order" commentary in doom.el to reflect these
   changes.
2022-09-16 01:14:23 +02:00
Henrik Lissner
94ea4aa7dc
docs: add examples.org
This adds the basic framework of docs/examples.org, including the former
contents of demo.org in :lang emacs-lisp. elisp-demo has also been
reconfigured to search it instead.

Keep in mind that examples.org references a few things in as-of-yet
published documentation. This will be rectified soon.
2022-09-16 01:14:20 +02:00
Henrik Lissner
1f29b07f39
docs: restore getting-started guide & module index
These two files were removed in ccb5fde9bcc on the rewrite-docs branch,
which was merged in 1f8bf7accb. I planned to add their rewritten
versions soon after, but life and distractions got in the way, so I'm
restoring the old ones until I finish the new ones.

Fix: #6748
Fix: #6723
Fix: #6671
Fix: #6631
Close: #6726
Revert: ccb5fde99b
2022-09-06 22:55:47 +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
fc73a81d69
docs: add appendix.org 2022-08-04 01:29:36 +02:00
Henrik Lissner
0cee8b4bee
docs: rewrite faq.org 2022-08-04 01:29:36 +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
Jeetaditya Chatterjee
f73c7915d2
docs(tree-sitter): add module to example init
also add the wittism to the modules.org file
2022-05-22 21:26:03 +01:00
Jeetaditya Chatterjee
f937be2156
docs(tree-sitter): add entry to modules.org 2022-05-22 21:25:58 +01:00
iyefrat
d41cff489f
module: add :input bidi
* module: add :input bidi

Co-authored-by: Yoav Marco <yoavm448@gmail.com>

* docs(bidi): flesh out README.org

Co-authored-by: Itai Y. Efrat <itai3397@gmail.com>

* feat(bidi): add +bidi-global-mode

* docs(bidi): improve font setting instructions

* feat(bidi): add +bidi-(hebrew|arabic)-font

Since the Hebrew and Arabic unicode blocks cover the vast majority of
RTL languages used today, we provide these fonts so end users don't have
to bother with setting up the hooks themselves.

* feat(bidi): add smart fontify

Adds support for using the bidi fonts on surrounding whitespace and
punctuation through. On by default, customizable through
+bidi-want-smart-fontify and +bidi-smart-fontify-keywords.

Also adds face versions of the bidi fonts.

* docs(bidi): recommend known good nastaliq fonts

* fix(bidi): re-set bidi faces after changing fonts

* feat(bidi): add +bidi-paragraph-direction

This allows users to choose what bidi-paragraph-direction is set to when
+bidi-mode is on, so they can choose if they want per paragraph
alignment (the default) or to force everything to be aligned RTL

* docs(bidi): conform to verbatim/code conventions

* docs(bidi): add font overview to Features

* docs(bidi): warn on rtl forced alignment footgun

+bidi-paragraph-direction is a nice variable to have if you primarily
use +bidi-mode for rtl text buffers, but it shouldn't be used in
conjunction with +bidi-global-mode since it messes up English buffers.

Co-authored-by: Yoav Marco <yoavm448@gmail.com>
2022-04-22 00:21:32 +02:00
Henrik Lissner
09fdecded5
docs: mention correct branch + do-not-PR list 2022-02-16 16:10:08 +01:00
Henrik Lissner
ccb5fde99b docs: delete old org files
These will be replaced soon (or in modules.org case, they already have,
in 2636fbc).

Ref: 2636fbc36f54
2021-11-21 20:04:28 +01:00
Henrik Lissner
3766523f1e docs: move modules.org to modules/README.org
And regenerate the module list using 'doom make-index $EMACSIR/modules'.
2021-11-21 20:04:28 +01:00
Itai Y. Efrat
a20cd88e8e refactor!(haskell): remove dante support
BREAKING CHANGE: Now that haskell-language-server is mature there is
little reason not to pick it over dante.
2021-09-15 01:56:26 +03:00
Itai Y. Efrat
6f2e05ea76 refactor!(haskell): remove ghcide support
BREAKING CHANGE: ghcide was archived a while back and now primarily
exists as a library used in the development of haskell-language-server.
It is not recommended for end-users, only for development. To this end I
think including it in the module is more misleading than helpful, and
the people that really want to use it can easily set it up themselves.

Ref: https://github.com/haskell/ghcide/pull/939
2021-09-15 01:56:26 +03:00
mwmajewsk
02c578f95c
docs: add emacs26 removal for ubuntu to install guide
In some cases, ubuntu may contain a preinstalled version of Emacs26,
which cannot be simply removed with "sudo apt remove emacs", and needs
additional "sudo apt autoremove" to properly uninstall emacs26. Only
this will result with the command "emacs" opening other version than
emacs26.

Ref https://unix.stackexchange.com/a/84488
Close #5336
2021-08-03 10:49:33 -04:00
TEC
7dff598725
Mu4e: Gate org-msg behind +org flag 2021-07-30 01:56:50 +08:00
Henrik Lissner
2f577482a0 Remove docs/CNAME
Was committed prematurely.
2021-07-25 15:47:58 -04:00
Henrik Lissner
10a42a99f6
Merge pull request #4664 from Emiller88/selectrum
Add Vertico module
2021-07-25 04:12:19 -04:00
Henrik Lissner
5d956068a8 Create CNAME 2021-07-25 00:04:37 -04:00
Itai Y. Efrat
24eaa1317c completion/selectrum -> completion/vertico, part 2
- Rename module from `:completion selectrum` to `:completion vertico`
- Rename all files involved
- Do *not* yet rename all the functions, as that messes up git's rename
  detection.
2021-07-25 02:51:15 +03:00
Itai Y. Efrat
f9e1c99b2b completion/selectrum -> completion/vertico, part 1
- Use `vertico` as default completion engine
- Drop `selectrum` and `selectrum-prescient` support
2021-07-25 02:50:42 +03:00
Itai Y. Efrat
d86375a468 selectrum: add icon support
Use the package `all-the-icons-completion` to add icons to vertical
completion buffers.
2021-07-25 02:50:42 +03:00
Itai Y. Efrat
83abd71db7 selectrum: update TODO, add docs/modules.org entry 2021-07-25 02:50:42 +03:00
mjkalyan
d217ae3343
getting_started.org: use Emacs v27.x or later 2021-07-22 20:12:54 -06:00
mjkalyan
a7268ce4cb
Merge branch 'hlissner:develop' into develop 2021-07-22 20:06:24 -06:00
Henrik Lissner
4230ab9ae6 docs/index: fix link to noel welsh's crash course
In #4709 and https://doomemacs.org/d/do-not-pr (which is mentioned in
our PR template), I'm not accepting PRs in docs/*.org right now. And
yet... #4724 #4799 #4809 #5138 #5181 #5231 #5263
2021-07-15 11:50:16 -04:00
Henrik Lissner
8b95aa5d3e lang/racket: add +lsp flag
And add link to racket's README.
2021-07-12 19:20:23 -04:00
Henrik Lissner
761e8c2d5c
Merge pull request #5208 from pqitr/patch-1
remove duplicate '+' from kotlin +lsp
2021-07-08 14:10:44 -04:00
Henrik Lissner
43ddb10970 docs/faq: fix evil-snipe instructions
Fixes #5242
2021-07-07 11:43:50 -04:00
Henrik Lissner
044a1a5f2b Drop Emacs 26.x support
Emacs 27.x has been the stable version of Emacs for nearly a year, and
introduces a litany of bugfixes, performance, and quality-of-life
improvements that significantly reduce Doom's maintenance burden (like
XDG support, early-init.el, image manipulation without imagemagick, a
native JSON library, harfbuzz support, pdumper, and others).

With so many big changes on Doom's horizon, I like having one less (big)
thing to worry about.

Also reverts bb677cf7a (#5232) as it is no longer needed.
2021-07-06 02:31:52 -04:00
pqitr
8f89e58c3a
remove duplicate '+' from kotlin +lsp 2021-06-25 23:34:42 +02:00
mjkalyan
2d53f12f1c
getting_started.org: Gentoo xft and gui flags
As suggested by @TheGreatMcPain here: https://github.com/hlissner/doom-emacs/pull/5165#issuecomment-863747913
2021-06-24 05:41:38 -06:00
mjkalyan
cdf7846e3c
getting_started.org: Gentoo Linux install guide 2021-06-09 21:00:56 -06:00
Henrik Lissner
1a5f4afd0d Reduce minimum required git to 2.23
Thanks to raxod502/straight.el@7ca94a7, which was included in 3329448bd.
This in particular reduces the burden for Ubuntu users.

Relevant to #5088, #5096
2021-06-01 16:08:17 -04:00
Henrik Lissner
7ec9221957 docs/getting_started: update ubuntu install instructions
To include git 2.28 install instructions (see #5088).

Also update version tags (to push 27.x over 26.x).
2021-05-24 15:08:42 -04:00
Henrik Lissner
2d8342ca5f docs: bump minimum git version: 2.23 -> 2.28 #5088
And bump recommended Emacs: 27.1 -> 27.2
2021-05-24 14:41:16 -04:00
Henrik Lissner
dbcf7b4f31 docs/modules: add missing README.org links 2021-05-10 04:21:19 -04:00
Henrik Lissner
09be988c74 Add :input (layout +azerty) to docs 2021-05-01 02:28:44 -04:00
Henrik Lissner
473417a890 docs/faq: fix discourse notice 2021-04-18 22:25:45 -04:00
Henrik Lissner
09fc756f0d
Merge pull request #4827 from bnjmnt4n/module/lang/zig
Add `:lang zig` module
2021-04-15 00:26:31 -04:00