Commit Graph

17788 Commits

Author SHA1 Message Date
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
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
232e9d4b91 fix: use --strip-cwd-prefix only if fd >=8.3.0
Since fd 8.3.0 has low availability across distros (see repology link
below), I don't want to make it Doom's minimum supported version.
Instead, I do a quick version check and adjust accordingly. I'll think
up a more elegant solution after v3.

Ref: https://repology.org/project/fd-find/versions
Fix: #6618
Fix: #6600
Close: #6597
2022-08-08 18:23:46 +02:00
08eb6b555b test: remove unused tests for core
These were unused, and rewritten versions are waiting to be
pushed (after v3), so let's get rid of some unneeded baggage.
2022-08-08 17:52:39 +02:00
b6ba1204bf fix(file-templates): unescaped periods in regexps 2022-08-07 20:58:29 +02:00
3ca74a1d5f feat(file-templates): add .doomrc template
Ref: 9b8ed397e8
2022-08-07 20:57:55 +02:00
0f43c3eed5 fix(docs): org-glossary init
- Set org-glossary-global-terms buffer-locally,
- Move org-glossary init into a hook.
- Remove unneeded (require 'ox) (see tecosaur/org-glossary#6),

Ref: tecosaur/org-glossary#6
2022-08-07 19:43:28 +02:00
8ec9e7ea0d nit(docs): reformat and annotate
- Rename doom-docs--display-header-h -> doom-docs--display-menu-h to
  better represent what it does.
- Add comments to describe the purpose of lib/docs, and TODO annotations
  to hint at its future and remind me later.
2022-08-07 19:43:28 +02:00
034ade0468 fix(lib): doom-debug-mode forgetting initial values
Of the variables that it changes (see doom-debug-variables).
2022-08-07 19:43:28 +02:00
48e54d3d48 dev: add CODEOWNERS config to .doomrc & regenerate it 2022-08-07 19:43:28 +02:00
9b8ed397e8 feat!(cli): load project .doomrc instead of ci.el
BREAKING CHANGE: Before, 'doom ci' would load
$GIT_WORKING_TREE/.github/ci.el, to give users/projects an opportunity
to provide project-local configuration for bin/doom (mainly for CI/CD).
Now, this ci.el file is no longer loaded and instead, *all* bin/doom
sessions will walk up the file tree and load the first .doomrc it finds.

This gives bin/doom users a more general place configure all of its
commands, and not just 'doom ci' commands.

Extras:
- Adds .doomrc to auto-mode-alist (so that it starts in
  emacs-lisp-mode).
2022-08-07 19:43:28 +02:00
422baedad7 refactor(cli): load cli libs from doom.el
This simplifies the entry point for loading Doom (and/or its CLI
framework).
2022-08-07 19:43:28 +02:00
50f0cebe92 feat(cli): generalize 'doom make codeowners'
- Adds -o/--file option,
- If -o/--file is passed a dash, print codeowners to stdout,
- Adds --dryrun option,
- Will accept literal string entries in doom-make-codeowners as
  standalone lines (useful for comments).
2022-08-07 19:43:28 +02:00
d92a81bf2d feat(lib): add lib/git
Where future git wrappers will live.
2022-08-07 19:43:28 +02:00
b7b2563f7b feat(cli): add implicit date, time, duration, & size types 2022-08-07 19:43:28 +02:00
790c2a6d84 fix(eval): eros overlay going off-screen
Evaluating code (and :tools (eval +overlay) enabled) will do one of two
things with the return value:

If long, it will be displayed in a popup window on the bottom of the
frame. If short (<3-4 lines), it will be displayed in an overlay at the
end of the line.

If you happened to have scrolled horizontally (such that the BOL isn't
visible), the overlay would be displayed offscreen and unreadable. Any
attempt to scroll it into view will cause it to disappear (as per its
transient nature). This fix pads each newline in said overlay such that
the overlay is pushed into view.
2022-08-07 19:43:27 +02:00
e5acbd7c40 docs(cli): make file/dir/stdout type errors consistent 2022-08-07 19:43:27 +02:00
d53e08767d feat(cli): add stdout implicit arg type
CLIs can now use this for implicit validation for options that take a
file path or - to signal "print to stdout", like so:

  (defcli! (doom command) ((outfile ("--out" (file stdout))))
    (if (equal outfile "-")
        (print! "output")
      (with-temp-file outfile
        (insert "output"))))

If OUTFILE is not an existing file path or a -, you'll see an this
helpful error:

  Error: -o/--file received invalid value "FOO"

  Validation errors:
  - Must be a dash to signal stdout.
  - File does not exist.

  See 'doom h[elp] make codeowners' or 'doom make codeowners {-?,--help}' for documentation.
2022-08-07 19:43:27 +02:00
26bc4ea150 feat(cli): allow multiple implicit types for options
Now you can specify more than one allowed (implicit) for a CLI option:

  (defcli! (doom somecommand) ((foo ("--foo" (file int)))))

This will test FOO to ensure it is either an existing file path or an
integer. If neither is true, you'll see this helpful error:

  Error: -o/--file received invalid value "FOO"

  Validation errors:
  - Not an integer.
  - Not a valid path to an existing file.
2022-08-07 19:43:27 +02:00
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
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
53fb367aa7 docs(lsp): fix typo in quote & use correct icon
Amend: c34168fb2a
Co-authored-by: lelit <lelit@users.noreply.github.com>
2022-08-07 19:07:57 +02:00
0ed2b95dba refactor(cli): include envvars in _doomrun debug logs 2022-08-06 18:43:14 +02:00
725de1ca35 perf(docs): disable gc for doom-docs-org-mode 2022-08-05 21:44:09 +02:00
a71e757c8d fix(org): create org-persist-directory recursively
`org-persist-write:index' does not recursively create
`org-persist-directory', causing `make-directory` to throw a
file-missing if a parent directory is missing.

Fix: #6635
Ref: bzg/org-mode@edd7f2962f
2022-08-05 18:13:48 +02:00
433c9e344d feat(lib): backport file-name-concat from 28.1
May replace doom-path in the future.
2022-08-05 17:35:46 +02:00
bcca96a69a refactor(literate): remove unused envvar __DOOMRESTART
Also remove the "Restarting..." message; it's an implementation detail
that isn't important to the end user.
2022-08-05 00:49:17 +02:00
06db69bf76 fix(emacs-lisp): suppress popup warnings from flycheck
Typically caused by partial syntax errors in Doom Emacs (e.g. while
you're writing code in $EMACSDIR or $DOOMDIR, and haven't typed the
closing parenthesis yet).
2022-08-05 00:49:17 +02:00
2254b8c561 fix(cli): doom-cli-context persistence
20d5440 introduced a regression where options would be lost when a CLI
session is restarted. :config literate users, for example, would run
'doom sync -u' only for the -u option to be ignored, because it was
discarded after the literate module restarts the session.

Amend: 20d5440023
2022-08-05 00:49:17 +02:00
ba668f7cb0 fix(file-templates): indentation for licenses
And remove superfluous tabstops in gpl3 license.
2022-08-05 00:49:17 +02:00
293b3f9be5 dev: update CODEOWNERS
- Watch all files under directories, rather than just their roots.
- Add lang/{fortran,graphql,php} and tools/bidi.
2022-08-05 00:49:17 +02:00
1e9d8ab35e bump: :lang python
cython/cython@fdea2d6bed -> cython/cython@8afd932c28
emacs-lsp/lsp-pyright@3598bc7c47 -> emacs-lsp/lsp-pyright@c745228f39
necaris/conda.el@9c28d7a853 -> necaris/conda.el@a65ed00848
pwalsh/pipenv.el@8f50c68d41 -> pwalsh/pipenv.el@3af1597498
pythonic-emacs/anaconda-mode@cbea0fb318 -> pythonic-emacs/anaconda-mode@160e4e7185
wbolster/emacs-python-pytest@ea53891a21 -> wbolster/emacs-python-pytest@9bf8db38bf

- Updating conda.el fixes compatibility with Conda 4.13+.

Fix: #6626
Close: #6630
Co-authored-by: sleepyeye <sleepyeye@users.noreply.github.com>
2022-08-05 00:49:17 +02:00
bacb84f6c6 docs(default): add @hlissner, @UndeadKernel 2022-08-05 00:49:17 +02:00
b7cd35e43c docs(haskell): add @iyefrat 2022-08-05 00:49:17 +02:00
ea254509aa docs(javascript): add @elken, @iyefrat 2022-08-05 00:49:16 +02:00
3dc14870af docs(php): add @elken 2022-08-05 00:49:16 +02:00
887e9fd12c feat(go): add test-file function and keybinding 2022-08-04 17:42:21 +02:00
55544200be release(modules): 22.08.0-dev
Ref: 2b39e41368
2022-08-04 01:29:37 +02:00
fc73a81d69 docs: add appendix.org 2022-08-04 01:29:36 +02:00
0cee8b4bee docs: rewrite faq.org 2022-08-04 01:29:36 +02:00
ed04aef2a9 docs: add PR ref to #+since lines 2022-08-04 01:16:13 +02:00
3eb6f663fe docs(bidi): update READMEs to new format
Also preforms minor spelling, grammar, and formatting corrections.
2022-08-04 01:16:13 +02:00
1b59b9a83a docs(fortran,graphql): update READMEs to new format
Also preforms minor spelling, grammar, and formatting corrections.
2022-08-04 01:16:13 +02:00
304774cf39 docs(biblio,tree-sitter): update READMEs to new format
Also preforms minor spelling, grammar, and formatting corrections.
2022-08-04 01:16:13 +02:00
d6ffd2bfaa fix(file-templates): update doom doc templates
To reflect the new mode: line added in 7e400ab, and add an ID property.
Also corrects heading level in __doom-readme file template.

Ref: 7e400abdc0
2022-08-04 01:15:23 +02:00
08dac1400f fix(default): +default/yank-buffer-path echos the file name as nil
Emacs 29 with PGTK's kill-new doesn't return its STRING argument (with
the default settings) anymore, so we explicitly pass the file path to
prevent the confusing message "Copied path to clipboard: nil".
2022-08-03 19:26:19 +02:00
00f3928052 fix(mu4e): add missing icons for mu 1.8.X 2022-08-03 18:23:47 +02:00
c1512feea1 fix(docs): disable doom-docs--hide-stars-h
Hiding the stars with org-fold breaks org-cycle, so until I have time to
fix it, I'll disable this hook altogether.
2022-08-03 04:20:52 +02:00
6d4b2b48c2 fix(doom-dashboard): revert unintended changes
Amend: b5a2aa48fe
2022-08-03 03:34:28 +02:00
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