Commit Graph

4478 Commits

Author SHA1 Message Date
ee972e7a3f Update doc comments in {init,config}.el templates 2020-06-07 02:31:13 -04:00
ea52dbc12e Fix extra ) in doom-obsolete-modules
Left over from #3308
2020-06-05 15:22:32 -04:00
0f03c32a12 Add with-output-to! macro
For piping output to both stdout and a file/buffer. Used in the coming
CLI rewrite.
2020-06-05 15:18:03 -04:00
35ec72d080 Rename perl module to raku.
It doesn't actually contain any Perl config.
2020-06-05 21:01:23 +02:00
5b8b04f0c8 Properly lazy load flyspell
Package was eagerly loaded at startup, so we must pretend it hasn't to
defer it and future configuration.

And generalize defer-feature! macro.
2020-06-05 01:41:49 -04:00
f548ab600c Fix #2351: counsel-rg errors on Windows 2020-06-05 00:43:51 -04:00
8bf902d5f4 General refactors & reformatting across the board 2020-06-04 20:13:28 -04:00
60ca118eb2 Fix #3166 and #3288: over-eager project-root caching
And prevent explicit projectile-project-root interfering with project
switching.
2020-06-04 19:43:20 -04:00
c499cdcdbe Bump :core
domtronn/all-the-icons.el@d6cb6d4 -> domtronn/all-the-icons.el@4135424
bbatsov/projectile@5103cfc -> bbatsov/projectile@7e552b6
2020-06-02 19:52:42 -04:00
2a824136ef Fix #3277: 'doom install' options are ignored 2020-06-02 18:16:32 -04:00
02542a63d4 Refactor :load-path resolve-from-here advice 2020-06-01 21:07:22 -04:00
6a85417e8e Fix #3272: void-variable args regression 2020-06-01 21:02:36 -04:00
0787eae274 Expand use-package :load-path relative to containing file 2020-06-01 18:23:27 -04:00
2d4b946e03 Clear project-root cache before switching project
Fixes #3205
May address #3166
2020-06-01 18:16:26 -04:00
63113ff6ce lang/javascript: Enable TSLint and ESLint for TypeScript-TSX 2020-05-31 00:57:38 +09:00
aec94f5bb2 Fix #3228: 'Failed to fetch from upstream' on doom upgrade
Due to git name-rev returning fully qualified refs in some cases.
2020-05-29 19:36:13 -04:00
95eb2989dc Minimize custom-set-faces! clobbering doom-load-theme-hook
Evaluating custom-set-faces! calls would add setter functions to
doom-load-theme-hook indefinitely, which could add up each time you M-x
doom/reload. Now it adds them to a subhook, which is reset whenever Doom
is reloaded.
2020-05-28 22:01:23 -04:00
a9bf0b8985 Add cmd!, cmd!!, cmds! convenience macros
It's kind of silly that our command lambda macros (λ! and λ!!) need a
snippet, special key sequence or copy-paste to insert, so in the spirit
of fn! -- and to make sure they take up less space than `lambda!` --
I've added `cmd!` and `cmd!!` aliases. `lambda!` and `lambda!!` are now
deprecated. λ! and λ!! will remain.

I've also added `cmds!` as a convenience wrapper around
general-predicate-dispatch.
2020-05-27 18:29:35 -04:00
d4d8c48265 Refactor core-modules
- Update comments & docstrings
- Remove unnecessary compile-time evaluation (we're not using any of
  that config at compile time within that file anyway).
2020-05-27 16:11:59 -04:00
77a4e8f8a7 Fix switch-project completion defaulting to current project
Affects doom/browse-in-other-project, doom/find-file-in-other-project,
+default/search-other-project and
+default/search-project-for-symbol-at-point.

When performing a text or file search in "another project", prior to
this update the current project would be the first highlighted
candidate, which doesn't make much sense when you're invoking a command
for searching *other* projects.
2020-05-26 14:06:19 -04:00
ca0dbc798d Use shorter seq.el alternatives 2020-05-26 04:18:20 -04:00
22c7eac897 Add doom-autoloads-files option
So users can scan additional files for autoloads during 'doom sync'.
2020-05-26 04:16:42 -04:00
f4e6d36574 Move 'restart Emacs to see changes' message to 'doom sync'
It isn't the autoloads generator's responsibility to do this. The
"changes" referred to consist of more than just the regenerated
autoloads file.
2020-05-26 04:09:11 -04:00
10a4e6570d Fix 'doom env' refusing arguments/options 2020-05-26 03:21:27 -04:00
b6cc110f4c Fix 'wrong-type-arg' error on 'doom upgrade' 2020-05-26 03:12:35 -04:00
894966b1e2 Fix #3221: incorrect usage of doom-cli-execute
The function is variadic in as-of-yet published versions of Doom's CLI;
this usage snuck into a commit.
2020-05-26 02:55:24 -04:00
a814239ec7 Implement daisy-chaining for CLI sessions
elisp lacks an execv implementation (or mature subprocess library), so
we exploit some splenderiffic hackery to get Emacs to execute arbitrary
shell commands after a 'doom ...' command completes. This allows us to
daisy chain doom commands in distinct sessions (wonderful for reloading
doom after a 'doom upgrade', which we do). This minimizes errors when a
'doom upgrade' pulls in breaking changes to Doom's CLI.

We also bring 'doom run' into elisp, since this new functionality
enables us to.
2020-05-26 02:30:54 -04:00
e89b604f5f Fix 'doom upgrade' when doom is a git submodule 2020-05-26 02:13:02 -04:00
3253ca8435 Minor refactors & comment/message revision 2020-05-25 22:11:15 -04:00
519a402f62 Freeze doom-modules in between 'doom sync'
The coming CLI rewrite makes bin/doom atomic, but also "freezes" more of
your config in between 'doom sync's and 'doom upgrade's. This is
necessary to implement a robust rollback system. However, that also
means that `doom!` shouldn't do anything when read in an interactive
session (and should only be read when running `doom sync`).

Indirectly fixes #2612
2020-05-25 21:51:35 -04:00
2c2a4c5c8a Don't load core modules if NO-CONFIG-P
Might address #2612
2020-05-25 21:01:09 -04:00
d1fcbf244b doom/toggle-debug-mode -> doom-debug-mode 2020-05-25 20:18:36 -04:00
15a58d5b81 Prevent 'doom sync' rebuilding all packages, each time 2020-05-25 18:17:38 -04:00
f47ec8b919 Disable default doom-font in config.el template
Closes #3194
2020-05-25 16:30:21 -04:00
9f024e549f Instruct user to rerun 'doom upgrade'
If it fails during reloading of Doom's core.

Relevant to #3131
2020-05-25 16:27:51 -04:00
16d44de0db Add/improve docs for doom sync's -u & -p switches 2020-05-25 16:26:16 -04:00
8c37928de2 Disable 'doom refresh'
That 'doom refresh' and 'doom sync' do the same thing has been a point
of confusion for a while. By phasing out 'doom refresh' we can finally
put that to rest.
2020-05-25 16:23:17 -04:00
3c24f15450 Fix void-variable doom-interactive-mode (part 3)
Third time's a charm!

...

I need sleep.
2020-05-25 16:15:23 -04:00
53b7abde1e Fix void-variable doom-interactive-mode (part 2)
Of the 10 part mini-series!
2020-05-25 16:14:27 -04:00
d3e4d317b3 Fix void-variable doom-interactive-mode 2020-05-25 16:12:30 -04:00
5cba174bd9 Add doom-sync-{pre,post}-hook 2020-05-25 16:03:16 -04:00
3139303874 Remove unused test module
This will be replaced soon.
2020-05-25 16:02:07 -04:00
fe7df725f6 Have package manager manage straight.el
We used a clumsy hack in `doom--ensure-straight` to delete straight if
its pinned commit didn't match the current one, to force it to be
reinstalled. With this, Doom's package manager will delete/update
straight like any other package.
2020-05-25 15:58:28 -04:00
0bc3f8ea87 doom/purge: refactor & optimize
Reduce how much work it had to do.
2020-05-25 15:55:29 -04:00
944d7ec83f Extract installation of core packages to function 2020-05-25 15:55:29 -04:00
235b69bd20 Parameterize packages.el filename 2020-05-25 15:55:29 -04:00
e60d8f9cb1 doom/install: refactor template insertion & module init 2020-05-25 15:55:29 -04:00
e6c88e4384 Refactor autoloads generator & reduce to one generated file
We no longer need two separate autoloads files, so I merged them and
optimized its generation logic.

Other changes
- Doom will refuse to start up (with a helpful error) if it's in an
  incomplete state. This should hopefully reduce the number of bug
  reports from folks that have done something weird, e.g.
  1. You've changed Emacs versions without running 'doom sync -b'.
  2. You've updated Doom outside of `doom upgrade` and didn't run `doom
     sync -u`.
  3. You've forgotten to run 'doom sync' in the first place!
  4. If a previous 'doom ...' command was aborted midway without running
     'doom sync' afterwards.
- 'doom sync' will emit reminders that you need to reload/restart Emacs
- Autoloads API now uses the `doom-autoloads-` prefix, intead of
  'doom-cli-autoloads-', as will be the new convention in the coming
  rewrite.
- Errors from within the package autoloads should be easier to invoke
  the debugger on.
- `doom-modules` is now stored in your autoloads file. Your module list
  will soon be frozen between calls to 'doom sync' to allow for our new,
  atomic CLI I'm working on. This will also means the `doom!` block
  won't cost anything in interactive sessions.
2020-05-25 15:55:29 -04:00
be889d09e8 Rename doom-format lib -> doom-output
`format` isn't an appropriate for this library, considering it (and
future additions to it) will be mainly concerned with printing or
capturing output.
2020-05-25 15:55:29 -04:00
ccd1764acb Remove 'doom sync' from shell.nix
Let user decide what they want to do upon starting the shell. We
accommodate the user that wants simple access to Emacs 26/27/HEAD.
2020-05-25 15:55:28 -04:00