Commit Graph

3786 Commits

Author SHA1 Message Date
Henrik Lissner
88096a81a9
merge whitespace-style with global value, not local
And ensure it runs as late as possible in after-change-major-mode-hook.

Hopefully to increase the probability of
doom-highlight-non-default-indentation-h detecting a user-enabled
whitespace-mode and bowing out in time.
2019-07-26 13:57:42 +02:00
Henrik Lissner
9311744f7f
Restore comment header in envvar files
`shell-command` erases the target buffer before piping output to it.
Which means the envvar file comment header was wiped out. This causes
trouble for the envvar file parser, which expects the envvar list to
start with two newlines.
2019-07-26 13:38:13 +02:00
Henrik Lissner
331a53c0a1
Complain if envvar file exists, but isn't readable 2019-07-26 13:15:28 +02:00
Henrik Lissner
e6201ca952
Add :if, :when, :unless & :cond support to doom! macro
Now you can conditionally enable/disable modules.
2019-07-26 12:05:13 +02:00
Henrik Lissner
321b797046
cli/packages: fix infinite waiting on pkg update
Caused lecause straight is prompting for input in a headless
session *and* from a headless async child instance of Emacs. It waits
forever for input for a question we could never see or respond to.

How sad.
2019-07-26 11:54:37 +02:00
Henrik Lissner
a146e61728
Remove DIR!, FILE! and def-advice! obsolete aliases 2019-07-26 03:12:07 +02:00
Henrik Lissner
44c694da47
Make bin/doom options consistent & improve errors/docs 2019-07-26 03:12:07 +02:00
Henrik Lissner
829ad8c8b7
cli/packages: refactor doom-packages-purge
Sets it up for a later update where purging repos will no longer be the
default behavior.
2019-07-26 03:12:06 +02:00
Henrik Lissner
905ba1d23c
Refactor autoloads byte-compilation
- Let-bind byte-compile-* vars instead of using file-local vars.
- Fix duplicate bullet point in "Copied backup..." message.
- Only display refresh message if cli command was successful.
2019-07-26 03:12:06 +02:00
Henrik Lissner
d00c5a0de5
Add doom-cli-post-{failure,success}-execute-hook vars
To replace doom-cli-post-execute-hook. Now only displays "refresh"
message after a successful command.
2019-07-26 03:12:06 +02:00
Henrik Lissner
bdcb156b91
Manually finalize straight transactions
Straight expects to be used interactively, which don't do (yet). Its
transactional system depends on idle timers, which don't run in a
noninteractive session, so we have to nudge it ourselves.
2019-07-26 03:12:06 +02:00
Henrik Lissner
2aa7dbfb27
cli/packages: refactor doom-packages-update
- Now handles errors from threads gracefully, rather than failing
  silently.
- Exploits straights modification system to trigger rebuilds
  later (instead of force-rebuilding after each update).
2019-07-26 03:12:06 +02:00
Henrik Lissner
ecb655dc01
Add nested face support to custom-theme-set-faces!
And convert it and custom-set-faces! to functions because they didn't
need to be macros.
2019-07-26 03:12:06 +02:00
Oleksii Filonenko
62741a4214
Remove quoting in λ!! 2019-07-25 20:50:54 +03:00
Henrik Lissner
4299da1eb8
:after -> :after-while for load-theme advice
The advice shouldn't run if load-theme doesn't return
non-nil (indicating it succeeded).
2019-07-25 01:50:33 +02:00
Henrik Lissner
e0fe2a85d1
Ensure doom-projectile-fd-binary is never nil 2019-07-24 17:09:51 +02:00
Henrik Lissner
03a4461d3b
Indent use-package! the same as use-package 2019-07-24 16:53:33 +02:00
Henrik Lissner
b8837ac022
Fix keyword type check in doom-keyword-name 2019-07-24 15:26:43 +02:00
Henrik Lissner
ba990a6c9d
Build package autoloads in install order #374
Before this update, the autoloads files were collected in
lexicographical order (by traversing straight's build directory). By
using straight--build-cache's keys (which are entered in the order they
were registered) we avoid issues like
2019-07-23 21:54:50 +02:00
Henrik Lissner
d55f284386
Refactor file-exists-p macro
And refactor too doom--resolve-path-forms
2019-07-23 20:43:24 +02:00
Henrik Lissner
d95acb4caa
Change λ!! to a function
It doesn't need to be a macro
2019-07-23 19:09:29 +02:00
Henrik Lissner
003febd54c
Refactor doom--define-leader-key helper
And mark it as a hack, which it is, Mr. Anderson.
2019-07-23 18:14:49 +02:00
Henrik Lissner
58ab20ec5f
Fix prependq!
Used one too many levels of nesting
2019-07-23 18:10:40 +02:00
Henrik Lissner
876bed4813
Remove deprecated :map* & :keymap from map! macro
These have been deprecated for some time. They are all aliases for :map.
2019-07-23 17:35:56 +02:00
Henrik Lissner
9eaee096c8
Minor comment revision & general code reformatting 2019-07-23 17:30:32 +02:00
Henrik Lissner
be46d31866
Use display-multi-font-p check in all-the-icons advice
display-multi-font-p is just an alias for display-graphic-p, but it
communicates better the purpose of this advice.
2019-07-23 17:27:55 +02:00
Henrik Lissner
82ae3a73f3
def-advice!->defadvice! & conform to new advice conventions
This commit does two things:

- Renames def-advice! to defadvice!, in the spirit of naming convenience
  macros after the function/macro they enhance or replace.
- Correct the names of advice functions to indicate visibility and
  intent. A public advice function like doom-set-jump-a is meant to be
  used elsewhere. A private one like +dired--cleanup-header-line-a
  shouldn't -- it likely won't work anywhere but the function(s) it was
  made to advise.
2019-07-23 17:24:56 +02:00
Henrik Lissner
6f56b9f9d4
Add autoload/themes.el library 2019-07-23 14:31:00 +02:00
Henrik Lissner
83763414fb
Improve docstring for def-advice! functions
Now lists linked functions that the advice was defined with.
2019-07-23 14:12:01 +02:00
Henrik Lissner
76cacb5bfe
💥 Rename def-package! -> use-package!
Calling this pivotal macro "def-package!" has frequently been a source
of confusion. It is a thin wrapper around use-package, and it should be
obvious that it is so. For this reason, and to match the naming
convention used with other convenience macros/wrappers, it is now
use-package!.

Also changes def-package-hook! -> use-package-hook!

The old macros are now marked obsolete and will be removed when straight
integration is merged.
2019-07-23 12:50:45 +02:00
Henrik Lissner
c795a988e6
Conform many modules to new conventions 2019-07-23 12:30:47 +02:00
Henrik Lissner
7ac155f68d
Fix company help replacing the current buffer
Instead of displaying in a popup.
2019-07-23 02:04:44 +02:00
Henrik Lissner
7ebc9045f2
Fix reference to renamed variable targets 2019-07-23 01:27:20 +02:00
Henrik Lissner
d59405b282
Minor comment revision & refactors 2019-07-23 00:30:45 +02:00
Henrik Lissner
d7ed52f3c7
Add ui/hydra module
And conforms all existing hydras to the naming convention for
interactive commands, e.g.

  +vc-gutter-hydra -> +vc/gutter-hydra
2019-07-22 23:51:12 +02:00
Henrik Lissner
388267d256
Add --force/-f support to doom refresh 2019-07-22 23:22:55 +02:00
Henrik Lissner
6200f5d876
Move file functions in core-lib to autoload/files 2019-07-22 23:22:55 +02:00
Henrik Lissner
be2ade62d2
Add polyfill for Emacs 26+ alist-get 2019-07-22 23:22:54 +02:00
Henrik Lissner
0eb200c49f
Refactor package! macro 2019-07-22 23:22:54 +02:00
Henrik Lissner
93f7520c79
Refactor Doom core init process (again)
- Eager-load all core autoloaded libraries if autoloads file isn't
  present.
- Renames functions to be more descriptive of their true purpose:
  - doom-initialize-autoloads -> doom-load-autoloads-file
  - doom-load-env-vars -> doom-load-envvars-file
- Use doom-module-p instead of featurep! for backend use (the latter is
  mainly syntax sugar for module use, and evaluates at compile/expansion
  time, which may cause hash-table-p errors early in the startup
  process).
- Reorder plist library to prevent load order race condition with the
  functions using the macros that haven't been defined yet.
2019-07-22 23:22:54 +02:00
Henrik Lissner
23d111132a
Update core-packages.el comments 2019-07-22 23:22:54 +02:00
Henrik Lissner
afebdb35da
Refactor autodef generator 2019-07-22 23:22:54 +02:00
Henrik Lissner
a301330603
Fix doom update #1584
It would no-op if you responded "y" to the 'update them?' prompt, and
proceed if you responded "n".

Doom must be in its rebellious phase.

Also relevant: #1585
2019-07-22 23:22:38 +02:00
Henrik Lissner
22404f1ec5
Fix "nil is not any command *I* know"
What good is sass if it isn't right?
2019-07-22 22:34:08 +02:00
Henrik Lissner
781783fe85
Refactor doom-module-from-path
Now returns (:core) or (:private) for files in doom-core-dir and
doom-private-dir, respectively, and will otherwise return the module for
the current file if called with no arguments.

Also fixes the case where it would disregard arguments and return
whatever the current value of doom--current-module.
2019-07-22 22:34:08 +02:00
Henrik Lissner
457b542795
Fix void-variable next error
And change TARGETS to PACKAGE, which is a more descriptive name.

Mentioned in #374
2019-07-22 18:57:17 +02:00
Henrik Lissner
d8dbb90931
Add core plist library 2019-07-22 18:04:50 +02:00
Henrik Lissner
0c678ee762
Refactor after! macro
The trouble with with-eval-after-load is it arranges for the body to be
byte-compiled, whereas eval-after-load does not. I won't go into how
they do that here, but it causes us some trouble:

Macro calls in with-eval-after-load are eagerly (immediately) expanded
at startup, whether or not the package or macro is available and
regardless of its execution path.

This sucks for Doom because, when expanded, autoloaded macros will be
loaded, along with whatever baggage they've got with them, and this
happens long before they're actually used. We also can't guarantee those
macros are available at startup, which will cause void-function errors
when the interpreter later treats them like an ordinary function call.

So, the simple fix is to pass a quoted body form to eval-after-load
instead of the closure that with-eval-after-load will wrap it in. This
means the body won't get byte-compiled if we compile our config, but in
exchange, macros stay lazy-loaded until they're finally needed!
Wonderful.
2019-07-22 14:49:25 +02:00
Henrik Lissner
4c70cfd102
Fix hash-table-p errors loading projectile
I was reading from a file without making sure it exists!
2019-07-22 06:28:32 +02:00
Henrik Lissner
ffdb726ed8
Exclude gh.el from autoloads
See sigma/gh.el#95
2019-07-22 06:06:58 +02:00
Henrik Lissner
6f878a38bd
Fix incorrect path to init.example.el 2019-07-22 04:48:44 +02:00
Henrik Lissner
1c4215c187
Fix 'command not found' errors for hidden commands 2019-07-22 04:46:14 +02:00
Henrik Lissner
e9e6786dd3
Fix file-missing cli/quickstart error 2019-07-22 04:22:42 +02:00
Henrik Lissner
879ab3b2f3
Replace incorrect usage of doom-dir with doom-path 2019-07-22 04:20:52 +02:00
Henrik Lissner
76bb892a0c
Move cli/quickstart -> cli/install 2019-07-22 04:16:47 +02:00
Henrik Lissner
d2fa1a3dd1
Load seq in core-cli 2019-07-22 04:15:45 +02:00
Henrik Lissner
ea65f82e4d
Fix void doom-package-list error on first install 2019-07-22 03:48:29 +02:00
Henrik Lissner
b465500a27
Improve smartparens config and comments 2019-07-22 02:38:20 +02:00
Henrik Lissner
82bcc2a68f
Disable straight+use-package integration
They won't be loaded together, and shouldn't be used anyway, what with
Doom's package management system.
2019-07-22 02:37:48 +02:00
Henrik Lissner
d980920c97
cli/packages: fix rebuild ignoring argument 2019-07-22 02:37:48 +02:00
Henrik Lissner
a7ce48c2df
bin/doom: add -l/--local/DOOMLOCALDIR
Will come in handy for the new testing framework.
2019-07-22 02:37:48 +02:00
Henrik Lissner
ff7fe6af9f
cli/doctor: fix stringp error if fd isn't installed 2019-07-22 02:37:47 +02:00
Henrik Lissner
060ede0e2e
General, minor reformatting across the board
And an offering of blood to our great lord Byte Compiler-sama.
2019-07-22 02:37:45 +02:00
Henrik Lissner
71ba4789ca
Fix hash-table-p errors on reloading pkg autoloads
Because doom-modules wasn't set in doom-module-path's scope.
2019-07-22 02:37:44 +02:00
Henrik Lissner
c7ce21af70
Fix prefix arg for doom/switch-to-scratch-buffer
Also use clearer name for prefix arg var in
doom/open-project-scratch-buffer.
2019-07-22 02:30:41 +02:00
Henrik Lissner
832b7e9294
Remove witout-project-cache!, rename project-file-exists-p
To doom-project-file-exists-p, which is now a function.
2019-07-22 02:30:41 +02:00
Henrik Lissner
47216117cc
Stop reloading theme on every new frame
It was slow and unnecessary (doom-themes and solaire-mode support
terminal colors already).
2019-07-22 02:30:41 +02:00
Henrik Lissner
a0593cc097
Refactor font loading
Init extra fonts within doom-init-fonts-h. This was moved because I used
to believe that set-fontset-font (according to its documentation) could
only change the frame-local fontset. It turns out that the exception
when you pass t for its first argument, which targets the default (i.e.
global) fontset.
2019-07-22 02:30:40 +02:00
Henrik Lissner
5005721039
lang/emacs-lisp: make company-elisp use helpful
Instead of describe-*
2019-07-22 02:30:40 +02:00
Henrik Lissner
be789caa04
Add elisp demos for Doom API in helpful buffer 2019-07-22 02:30:40 +02:00
Henrik Lissner
b90dede1ab
💥 Replace package.el/quelpa with straight #374
There are a few kinks to iron out, but for the most part it's done. Doom
Emacs, powered by straight. Goodbye gnutls and elpa/quelpa issues.

This update doesn't come with rollback or lockfile support yet, but I
will eventually include one with Doom, and packages will be (by default,
anyway) updated in sync with Doom.

Relevant threads: #1577 #1566 #1473
2019-07-22 02:30:40 +02:00
Henrik Lissner
492f2dea1e
core-lib: add nconcq! macro 2019-07-22 02:30:40 +02:00
Henrik Lissner
e8ecf65cf9
core-lib: add pushmany! macro, refactor pushnew! 2019-07-22 02:30:40 +02:00
Henrik Lissner
0a84d2f0a9
core-lib: add auto-minor-mode, revise def-project-mode!
- Adds the auto-minor-mode package to replace our in-house
  implementation.
- Merges associate! into the def-project-mode! macro because associate!
  on its own is less useful than auto-minor-mode-alist,
  auto-minor-mode-magic-alist or hooks.
- Changes the semantics of :modes and :add-hooks properties of
  def-project-mode!. Its arguments are evaluated as is; lists will need
  to be quoted.

squash! core-lib: remove associate! macro
2019-07-22 02:30:39 +02:00
Henrik Lissner
3404899ec3
core-lib: add doom-partial & doom-rpartial functions 2019-07-22 02:30:39 +02:00
Henrik Lissner
ee10b3b0d9
core-lib: add doom-{glob,path,dir}, replace {file,dir}!
- file! replaces FILE!
- dir! replaces DIR!
- doom-{glob,path,dir} have the power to construct paths out of the
  segment pieces provided to it.
- Move doom-files-in to core-lib and refactor to use the above.
2019-07-22 02:30:39 +02:00
Henrik Lissner
602e2f31c7
core-lib: refactor pushnew! macro
Do a little more work at expand-time.
2019-07-22 02:30:39 +02:00
Henrik Lissner
3306eaa17c
core-lib: refactor defer-until!, add-transient-hook!
Now uses an interned hook name (that could be removed, unlike the
uninterned symbol make-symbol creates).

Also, for consistency: fun -> fn

No fun allowed!
2019-07-22 02:30:39 +02:00
Henrik Lissner
b742bf086f
core-lib: add prependq! and appendq! macros 2019-07-22 02:30:39 +02:00
Henrik Lissner
0f98b5b3c2
core-lib: use projectile cache in file-exists-p!
If available.
2019-07-22 02:30:39 +02:00
Henrik Lissner
f05aa3a0b1
core-lib: add unsetq-hook! #1568 2019-07-22 02:30:39 +02:00
Henrik Lissner
987061aedd
Rewrite autoload/message.el & move to format.el
Adds new convenience macros like print! and insert!, and adds classes;
which are helper functions that can be called inline within format!,
print! et co, e.g.

  (format! "%s" (filename "/tmp/some/file")) ; => file
  (format! "%s" (relpath "/tmp/some/file" "/tmp")) ; => some/file
  (format! "%s" (dirname "/tmp/some/file")) ; => /tmp/some

Check out doom-format-class-alist for more.
2019-07-22 02:30:39 +02:00
Henrik Lissner
2df56b93a9
Add so-long package
This package kicks in if you open a file whose lines are too long.

It is built into Emacs 27+, but I've backported it for earlier users.
2019-07-22 02:30:38 +02:00
Henrik Lissner
fdcb259bcd
Major refactor of Doom core files
- Remove core-os and move many of its settings out to other core
  libraries, where they belong
- Significantly improve commenting & compartmentalization of many
  settings
- Correct some mis-named public hooks (that were named as if they were
  private)
- Move the vast majority of optimizations to "Optimizations" section in
  core.el
- Don't activate xclip-mode or osx-clipboard-mode if we're accessing
  Emacs through an SSH connection (does more bad than good there)
- Add fast-but-imprecise-scrolling = t
- Set bidi-display-reordering = 'left-to-right, at the recommendation of
  an Emacs dev. Apparently setting it to nil is undefined, as Emacs is
  designed to always assume it's set; setting it explicitly to
  left-to-right will still do what was originally intended by turning it
  off: to reduce line/text scans for bidirectional text, which gives us
  a moderate boost in general runtime snappiness
- Set inhibit-compacting-fon-caches = t on windows (where it struggles
  especially with icon fonts)
- Disables "literal" mode for very large files (because I will be
  backporting so-long.el from Emacs 27 in the next commit)
2019-07-22 02:30:38 +02:00
Henrik Lissner
81ab3dbc5d
Simplify and decouple init files
The two doom-gc-* variables in init.el couples the rest of the config to
these two files. The bulk of GC/file-handler optimization was moved into
core.el and simplified (all that idle-timer voodoo was overkill).

Also adds (setq frame-inhibit-implied-reize t) to early-init, which
speeds up startup a fair bit in some edge cases with larger fonts.

squash! Simplify and decouple init files
2019-07-22 02:30:38 +02:00
Henrik Lissner
149b2617b0
💥 revise hook/var fns naming convention (2/2)
This is second of three big naming convention changes. In this commit,
we change the naming conventions for hook functions and variable
functions:

1. Replace the bar | to indicate a hook function with a -h suffix, e.g.

     doom|init-ui -> doom-init-ui-h
     doom|run-local-var-hooks -> doom-run-local-var-hooks-h

2. And add a -fn suffix for functions meant to be set on variables,
   e.g.

     (setq magit-display-buffer-function #'+magit-display-buffer-fn)

See ccf327f8 for the reasoning behind these changes.
2019-07-22 02:30:38 +02:00
Henrik Lissner
51d3b1b424
💥 revise advice naming convention (1/2)
This is first of three big naming convention updates that have been a
long time coming. With 2.1 on the horizon, all the breaking updates will
batched together in preparation for the long haul.

In this commit, we do away with the asterix to communicate that a
function is an advice function, and we replace it with the '-a' suffix.
e.g.

  doom*shut-up -> doom-shut-up-a
  doom*recenter -> doom-recenter-a
  +evil*static-reindent -> +evil--static-reindent-a

The rationale behind this change is:

1. Elisp's own formatting/indenting tools would occasionally struggle
   with | and * (particularly pp and cl-prettyprint). They have no
   problem with / and :, fortunately.
2. External syntax highlighters (like pygmentize, discord markdown or
   github markdown) struggle with it, sometimes refusing to highlight
   code beyond these symbols.
3. * and | are less expressive than - and -- in communicating the
   intended visibility, versatility and stability of a function.
4. It complicated the regexps we must use to search for them.
5. They were arbitrary and over-complicated to begin with, decided
   on haphazardly way back when Doom was simply "my private config".

Anyhow, like how predicate functions have the -p suffix, we'll adopt the
-a suffix for advice functions, -h for hook functions and -fn for
variable functions.

Other noteable changes:
- Replaces advice-{add,remove}! macro with new def-advice!
  macro. The old pair weren't as useful. The new def-advice! saves on a
  lot of space.
- Removed "stage" assertions to make sure you were using the right
  macros in the right place. Turned out to not be necessary, we'll
  employ better checks later.
2019-07-22 02:27:45 +02:00
Henrik Lissner
e3a102d05a
core-lib: minor reformatting 2019-07-20 11:40:03 +02:00
Henrik Lissner
2caaec50e8
Remove cond!
Well, that was short lived, but pcase and pcase-let are superior and
already available.
2019-07-20 11:40:03 +02:00
Henrik Lissner
c3354e2620
cli: disable patch-macos (only --undo/-u works)
This has been deprecated for a while. I will remove it entirely with the 2.1
release, but for now, you can no longer patch your app bundle with this.

Use 'doom env refresh' instead.
2019-07-20 11:40:00 +02:00
Henrik Lissner
8b27d19e0b
Fix "err=[-50]" gnutls error
When updating/installing packages.
2019-07-20 11:05:52 +02:00
Henrik Lissner
24b40824ce
Add doom-{visible,buried}-buffer-p predicates 2019-07-18 13:13:31 +02:00
Henrik Lissner
103612a347
Add cond! macro to core-lib
An anaphoric cond.
2019-07-18 01:20:55 +02:00
Henrik Lissner
84d43643c9
Fix "Bad request" failures during package-refresh
Particular with elpa.gnu.org. This is caused by a known error in Emacs
26.x, which has been fixed in 27, and documented here:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=34341
2019-07-15 01:00:49 +02:00
Henrik Lissner
2ff762b397
Fix fd/rtags on debian/ubuntu
On debian/ubuntu, these executables have a different name:

- fd -> fdfind
- rc -> rtags-rc
- rdm -> rtags-rdm
2019-07-14 22:04:50 +02:00
Henrik Lissner
3313058c76
Make doom-adjust-font-size non-interactive
As it was intended.
2019-07-14 20:44:16 +02:00
Henrik Lissner
0b28480a21
Remap xref-pop-marker-stack -> better-jumper
Better to have only one jumplist system.

Also remaps xref-find-* commands to +lookup commands earlier in the
startup process.
2019-07-13 15:47:19 +02:00
Henrik Lissner
57a5137b4b
Remove melpa mirror
It's fairly outdated (7 months) and only adds time to refresh process.
Need to find better mirrors or switch to straight soon.
2019-07-13 13:58:53 +02:00
Henrik Lissner
17d7130804
Fix #1558: remember position on C-a/C-e
When the cursor is between the swap points.
2019-07-12 18:19:28 +02:00
Henrik Lissner
e6540b419b
doom/set-indent-width: set standard-indent buffer-locally 2019-07-12 16:55:36 +02:00
Henrik Lissner
fddef812ec
tools/editorconfig: refactor how we ignore lisp modes 2019-07-12 16:47:49 +02:00
Henrik Lissner
f3fa1b0324
Fix editorconfig usage in doom/set-indent-width #1561 2019-07-12 16:39:00 +02:00
Henrik Lissner
527079094d
Expand docs for doom {install,update,autoremove} 2019-07-12 14:16:53 +02:00
Henrik Lissner
f0abd10409
Fix #1558: doom/forward-to-last-non-comment-or-eol
Should jump to EOL if end-of-non-comment is before point.
2019-07-12 13:33:31 +02:00
Henrik Lissner
c627972d20
Add set-indent-width & toggle-indent-style commands
And SPC t I keybind

Also sorts keybinds under the SPC t prefix
2019-07-11 17:22:01 +02:00
Henrik Lissner
1f84c206d6
Don't grow minibuffer when echoing large messages
Unless we're in the minibuffer (e.g. eval-expression, ivy or evil-ex)

Also makes direnv summaries less imposing.
2019-07-10 21:28:27 +02:00
Henrik Lissner
3423ecc3d3
Load server on focus-out
In case the user switches to a terminal to use emacsclient as soon as
emacs is started.
2019-07-10 20:35:28 +02:00
Henrik Lissner
cb401c8302
Don't abbreviate autoload paths on windows #1548 2019-07-10 16:05:40 +02:00
Henrik Lissner
dfa5324f3d
cli/env: change how envvars are ignored
Improves the detection and omission algorithm of undesired envvars.
2019-07-10 15:06:45 +02:00
Henrik Lissner
b4d004a91a
Don't read envvar literally at startup #1549 2019-07-10 15:01:01 +02:00
Henrik Lissner
c99c184f85
Fix error in doom/help-packages for gnu packages
Due to validation checking for the wrong strings. Also extends support
for user-supplied archives (though the link may not be as helpful).
2019-07-09 23:30:59 +02:00
Henrik Lissner
ed9d7feb36
projectile: persist projectile-projects-cache-time
This way, projectile caches won't expire when restarting Emacs, but
instead time + projectile-files-cache-expire seconds from the time it is
serialized.
2019-07-09 19:54:21 +02:00
Henrik Lissner
c3c282f0a4
Add λ!! (lambda!!) macro
For quick inline commands for keybinds that simply call a
command (interactively) with a prefix argument.
2019-07-09 02:34:24 +02:00
Henrik Lissner
cd9378bb9e
Fix set-project-type!
Reference to non-existent variable, when
2019-07-09 02:19:35 +02:00
Henrik Lissner
df56ea5c60
Fix projectile breakage in windows in git projects
Because projectile tries to use `tr`, which doesn't exist on windows.
2019-07-08 22:08:54 +02:00
Henrik Lissner
71d505b893
Cache doom-modules on doom refresh 2019-07-07 14:10:21 +02:00
Henrik Lissner
b58b5e1d64
Fix auto-removal of builtin-preferred packges 2019-07-07 14:07:41 +02:00
Henrik Lissner
faeefc1775
Add FLAG argument to doom-module-p 2019-07-07 14:07:11 +02:00
Henrik Lissner
ebd53e5664
Allow expansion of stage-restricted forms
The package! family of macros will throw an error if used in the wrong
files. This same check would prevent macroexpand from expanding them, or
prevent them from being evaluated inline.
2019-07-07 13:29:22 +02:00
Henrik Lissner
dd4c70fe93
Add doom/reload-autoloads 2019-07-07 13:20:25 +02:00
Henrik Lissner
abfc8ced21
Add warning re :prefix-map in map! docstring
It really shouldn't be used outside of Doom proper; it has the
capability of destroying other :prefix-map's due to variable/keymap
naming collisions.
2019-07-07 02:00:36 +02:00
Henrik Lissner
51c067cc4d
Fix vanilla-doom+ sandbox instance
Now initializes doom-modules correctly and suppresses an undo-tree
error.
2019-07-07 01:58:49 +02:00
Henrik Lissner
9c15bb82f9
Fix hook collisions by setq-hook!
Fixes an edge case where setq-hook! would override the setq hooks of
other calls to setq-hook!

I want to avoid make-symbol/gensym so users can refer to these hook
functions by name, in case users want to remove these hooks by hand, if
necessary (e.g. for debugging purposes).
2019-07-06 23:22:28 +02:00
Henrik Lissner
af7a2d16c4
Clarify argument in after!'s docstring
after! takes a package, not a mode.
2019-07-06 23:22:28 +02:00
Henrik Lissner
0f0a8a5744
Rewrite custom-set-face!, add custom-theme-set-face!
custom-set-faces! and custom-theme-set-faces! are now drop-in
replacements for custom-set-faces and custom-theme-set-faces with one
major distinction: the latter will wait for the theme to be loaded
before applying the changes, this allows you to use theme-specific APIs
in your face definitions (like doom-color from doom-themes).

You no longer have to think about load order when using these macros.
2019-07-06 23:22:27 +02:00
Henrik Lissner
3b17d767b8
package!: fix the fix fix fix for the :built-in fix
fixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfix
fixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfix
fixfix   fixfixfixfixfixfixfixfixfixfixfixfi    fixfix
fixfi    fixfixfixfixfixfixfixfixfixfixfixf     fixfix
fixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfix
fixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfix
fixfix                                       fixfixfix
fixfixfix       everything is fine        fixfixfixfix
fixfixfixfixfix                     fixfixfixfixfixfix
fixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfix
fixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfixfix
2019-07-05 23:53:56 +02:00
Henrik Lissner
0dab58ef19
package!: fix the fix for :built-in fix
fixfixfix
2019-07-05 23:07:05 +02:00
Henrik Lissner
ecc4e8087c
package!: fix :built-in property 2019-07-05 22:30:24 +02:00
Henrik Lissner
1f644d07e0
package!: accept 'prefer in :built-in property
This tells Doom's package manager to prefer the built-in package, if it
is present, rather than installing the new version from elpa.
2019-07-05 20:03:37 +02:00
Henrik Lissner
cb783b0609
Prevent hash-table-p errors on startup 2019-07-02 23:17:20 +02:00
Henrik Lissner
d8e7a2003b
Fix custom.el writing to DOOMDIR/init.el too early
This would cause ~/.doom.d/init.el to exist before `doom quickstart` can
copy ~/.emacs.d/init.example.el into it, causing some newcomers to
experience a wrong-type-argument: hash-table-p error at startup (and no
modules being enabled).
2019-07-02 23:17:20 +02:00
Henrik Lissner
52f575d4d2
Exclude PROMPT & RPROMPT envvars from env file 2019-07-02 14:16:58 +02:00
Henrik Lissner
275f499ce9
Exclude PS1 envvar from env file 2019-07-02 13:01:28 +02:00
Henrik Lissner
2762a08a76
highlight non-default indent despite whitespace-mode
Before, a custom whitespace-style (or global-whitespace-mode) would
disable doom|highlight-non-default-indentation (because they were
incompatible). Now it injects itself into the current style, if one
exists.
2019-06-30 14:28:21 +02:00
Henrik Lissner
58299341b8
Fix vanilla-doom+ launcher in sandbox (C-c C-p)
vanilla-doom+ should launch an instance of Doom with doom core plus
modules minus your private config loaded.
2019-06-30 13:18:14 +02:00
Henrik Lissner
5d0c408c38
cli/env: ignore PWD envvar 2019-06-30 09:48:54 +02:00
Henrik Lissner
92676bfe39
uniquify-buffer-name-style = 'forward #1506 2019-06-28 17:28:53 +02:00
Henrik Lissner
81cf6080bf
doom/window-maximizer-buffer: fail gracefully in popups
Doesn't work within popups and it's non-trivial to fix this, so better
it fail gracefully with a suggestion, instead of fail silently.
2019-06-27 17:21:00 +02:00
Henrik Lissner
d6aa19b638
Suppress error from projectile-default-generic-command
Caused when using projectile-{run,test,compile,configure}-project
commands in a project that projectile cannot recognize (i.e. doesn't
match any project in projectile-project-types).
2019-06-27 17:17:04 +02:00
Henrik Lissner
22cc519ac1
Add set-project-type! autodef
And use it for love2d projects in lang/lua module.
2019-06-27 17:16:40 +02:00
Henrik Lissner
2aa9252725
Move doom|disable-show-paren-mode to autoload/ui 2019-06-27 13:26:03 +02:00
Henrik Lissner
6317fa0435
Fix #1509: failure to resize certain popups (part 2)
doom/window-enlargen would fail silently for windows with a preserved
size (e.g. all ui/popup popup windows)
2019-06-26 23:06:46 +02:00
Henrik Lissner
95dff9f2c6
Remove deprecated set-env! 2019-06-26 21:06:05 +02:00
Henrik Lissner
129377ca5f
Remap tags commands sooner
Makes them easier for users to remap later.
2019-06-26 14:49:39 +02:00
Henrik Lissner
a9951ee63b
Autorevert on switch window
Better coverage for lazy autoreverting
2019-06-26 14:31:07 +02:00
Henrik Lissner
9c29ad78e0
Add SHELL to doom-info 2019-06-26 14:31:07 +02:00
Henrik Lissner
9a02bd8ac8
Minor refactors across the board
- when-let* -> when-let
- Fix projectile-locate-dominating-file for connected remote files
2019-06-26 14:31:06 +02:00
Henrik Lissner
4f5f51237e
cli/env: remove ignored vars retroactively
doom-env-ignored-vars is now treated as a list of regexps.

Also updates docstrings and announces ignored variables.
2019-06-26 14:31:06 +02:00
Henrik Lissner
cdc41fc822
cli/env: reformat envvar file header
Places the generation command on line 2 for easier retrieval and
reformats explanation below.
2019-06-26 14:31:06 +02:00
Henrik Lissner
b245237b0c
Move custom-file to DOOMDIR/init.el
(And don't auto-load it at startup; no need)
2019-06-26 14:31:06 +02:00
Henrik Lissner
26da625981
Fix #1509: failure to resize certain popups 2019-06-26 14:28:40 +02:00
Henrik Lissner
1e357310c4
Fix localleader alt key in insert mode 2019-06-26 14:28:40 +02:00
Henrik Lissner
c0eb1f524d
Fix exclusion of doom local files in recentf
Due to a load order issue, the doom-local-dir regexp wouldn't be mapped
through our custom recentf-filename-handlers. `file-in-directory-p` is
more robust.
2019-06-26 14:28:40 +02:00
Henrik Lissner
b45591989b
Revert remote reloading after refreshing autoloads
It's too flimsy, breaks easily, and doesn't handle the case where
multiple instances of Emacs are open.
2019-06-18 22:10:19 +02:00
Henrik Lissner
4575cbef05
Add rg check to core/doctor.el 2019-06-18 17:30:08 +02:00
Henrik Lissner
798e10c4f2
Refactor doom doctor
And move font check into core/doctor.el
2019-06-18 17:29:50 +02:00
Henrik Lissner
fd1b31667e
Index projects with ripgrep/fd on Windows 2019-06-18 14:43:15 +02:00
Henrik Lissner
f2d7c5625d
Revise comments & docstring 2019-06-18 14:43:05 +02:00
Henrik Lissner
3589ce4c5b
Fix exclusion of doom-local-dir from recentf list 2019-06-18 13:38:21 +02:00
Henrik Lissner
ae365272ad
Set exec-path/shell-file-name in doom-load-env-vars
And perform file-readable-p check inside doom-load-env-vars
2019-06-18 11:46:27 +02:00
Henrik Lissner
12fa049012
Disable lazy autorevert if auto-revert-mode is used 2019-06-18 00:51:59 +02:00
Henrik Lissner
e2869c62a1
Add file-readable-p check to doom-project-find-file 2019-06-17 20:57:29 +02:00
Henrik Lissner
d27c148e14
Fix font-resizing in child frames #1500 2019-06-17 16:01:37 +02:00
Henrik Lissner
6be401f1a7
Refactor Doom core & reload autoloads remotely
- Move subr-x/cl-lib loading to core-lib
- Revise docstrings for and rename various CLI functions to be more
  descriptive and up-to-date
- After regenerating autoloads file, bin/doom will try to reload
  autoloads files remotely, through the server/daemon, if possible. This
  is highly experimental and could break
2019-06-16 23:01:17 +02:00
Henrik Lissner
72fd61e07b
Ensure order of after-change-major-mode-hook hooks
Reduces the likeliness of load order issues.
2019-06-16 19:16:23 +02:00
Henrik Lissner
5e9c020c21
doom-files-in: replace NOSORT w/ SORT; change default MATCH
- SORT defaults to t
- MATCH's new default regexp excludes files that start with underscore.
2019-06-16 19:16:23 +02:00
Henrik Lissner
47739698a8
Correct typo in doom env enable output #1499 2019-06-16 19:16:22 +02:00
Henrik Lissner
84fd744e3f
Minor, general refactor & comment revision 2019-06-14 11:08:59 +02:00
Gerry Agbobada
9d668791da Correct documentation of env_var file
Because of 3ed54e191b The `load-env-vars` advice is false now. Instead we can propose setting "doom-env-file" correctly, it seems to work for me.
2019-06-13 10:03:50 +02:00
Henrik Lissner
f3d8053933
Add internal doom-customize-theme-hook
Ensures custom-set-faces! take effect before any load-theme hooks.
2019-06-12 22:42:32 +02:00
Henrik Lissner
6641e26283
Refactor package management API
Sets out to solve a number of issues with the package management
process. Namely:

- To-be-removed packages that are simply being removed are no longer
  incorrectly labeled "quelpa->elpa", but "removed" instead.
- A backend (elpa vs quelpa) column was added to the package listing
  confirmation when running `doom update`.
- Doom now correctly recognizes that packages installed with a psuedonym
  are installed, and will not endlessly attempt to uninstall and
  reinstall them on every `doom refresh`.
- Packages declared with :built-in will no longer lose their built-in
  marking if said package is not actually present in Emacs' site load
  paths. i.e. if you say it's built in, Doom won't question it.
- package!'s :ignore property is now treated as a form whose evaluated
  result will be used as its value.
2019-06-11 08:01:42 +02:00
Henrik Lissner
158e4cc97c
Fix doom/clone-and-narrow-buffer
Also restores window scroll position after widening.
2019-06-10 09:38:57 +02:00
Henrik Lissner
4ae6faf627
scroll-margin = 0 2019-06-10 09:38:56 +02:00
Henrik Lissner
d329f216e3
Fix #1444: recentf hangs Emacs on quit & cleanup
Caused by using file-truename on (disconnected) remote files, which
invoked TRAMP authentication.

Replaces #1451
2019-06-10 09:38:56 +02:00
Henrik Lissner
79941a4fd7
Make recentf more aggressive
- Updates file order on window switch
- Adds dired directories to recentf list
- Reduce recentf-max-saved-items from 300 to 200 (reduce worst-case
  resorting costs)
2019-06-10 09:38:56 +02:00
Henrik Lissner
29293aa17f
Fix #1453: ensure package autoloads are reloaded
`doom-package-update` does not trigger regeneration of the package
autoloads file.
2019-06-10 09:38:56 +02:00
Henrik Lissner
653bd99b77
Polyfill kill-current-buffer in Emacs<=25.3 #1446
kill-current-buffer wasn't introduced until Emacs 26.
2019-06-10 09:38:55 +02:00
chrunchyjesus
2631ca90d9
fix shebang for macos patch 2019-06-08 07:31:24 +02:00
Brice Waegeneire
b29a7357c6 projectile: fd never use colors
Prevent projectile-find-file to be littered with escape codes when the
environment variable LS_COLORS is set.
2019-06-01 14:33:21 +02:00
Siddharth Shekar
aa64cf9426 Replace kill-this-buffer with kill-current-buffer
As per the documentation for kill-this-buffer, it should only be invoked
from the menu and behaves unpredictably when invoked programmatically.
2019-05-30 18:54:58 -07:00
Henrik Lissner
0733a6dfac
Replace SPC h p with doom/help-packages
Now that it supersedes describe-packages in functionality.
2019-05-30 14:01:48 -04:00
Henrik Lissner
990896ac9c
Fix doom quickstart help formatting
Not breaking lines in the right place.
2019-05-30 14:00:41 -04:00
Henrik Lissner
390647da87
Fix case where package has no backend
In doom/help-packages
2019-05-30 13:59:39 -04:00
Henrik Lissner
b68fb2aa11
Fix #1444: exclude TRAMP/remote files from recentf
Causes hanging due to authentication attempts.
2019-05-30 13:58:32 -04:00
Henrik Lissner
2643d7e5ba
Prefer vertical splits 2019-05-29 23:46:45 -04:00
Henrik Lissner
c9493038a0
Auto-unbind non-prefix keys on doom/reload #1431 2019-05-28 23:47:53 -04:00
Henrik Lissner
6c69bf5313
Fix emoji font initialization 2019-05-28 23:47:52 -04:00
Henrik Lissner
9413e9ccae
Remove tutorial--saved-dir
See #1433: it is a function, not a variable.
2019-05-28 23:47:52 -04:00
Henrik Lissner
9860cebe9f
Don't save package-selected-packages to custom-file
It's already saved in doom-package-autoload-file
2019-05-28 23:47:52 -04:00
Henrik Lissner
3d7626341f
Fix vestigial reference to load-env-vars
Was replaced with in-house envvar parser.
2019-05-28 23:47:49 -04:00
Henrik Lissner
93876028b4
cli/upgrade: always update packages
Even when Doom is up-to-date.
2019-05-22 17:10:44 -04:00
Henrik Lissner
977d587479
Bring back doom-big-font #1428
Falls back to doom-big-font-increment if doom-big-font isn't set.
2019-05-22 17:05:05 -04:00
Henrik Lissner
4d6d90399e
dtrt-indent-run-after-smie = t
Fix dtrt not updating indent variables in modes that use SMIE (like
sh-mode).
2019-05-22 14:50:31 -04:00
Henrik Lissner
7c3e4ffa0c
Fix over-eager ` pairing in minibuffer 2019-05-22 03:51:12 -04:00
Henrik Lissner
efb06ee42f
Improve deprecation warnings for modules
Hopefully makes them easier to understand.
2019-05-21 17:24:23 -04:00
Henrik Lissner
0383e504fe
Fix exec-path on Windows #1423
Windows uses ; as its PATH separator.
2019-05-21 17:24:22 -04:00
Henrik Lissner
66ddbf981e
Disable persistent undo
It's not worth the possible stack overflow and undo history corruption
issues.
2019-05-21 03:42:32 -04:00
Henrik Lissner
2214c3175e
Minor tweaks across the board 2019-05-21 00:34:32 -04:00
Henrik Lissner
8f9056906d
Rethink scratch buffer keybinds & commands
For non-evil users:

<leader> x    doom/open-scratch-buffer
<leader> X    doom/switch-to-scratch-buffer
<leader> p s  doom/open-project-scratch-buffer
<leader> p S  doom/switch-to-project-scratch-buffer

For evil users:

<leader> x    doom/open-scratch-buffer
<leader> b s  doom/open-scratch-buffer
<leader> b S  doom/switch-to-scratch-buffer
<leader> p s  doom/open-project-scratch-buffer
<leader> p S  doom/switch-to-project-scratch-buffer
2019-05-20 21:09:12 -04:00
Henrik Lissner
1df35c166a
Display package homepage in doom/help-packages
If possible.
2019-05-20 21:09:11 -04:00
Henrik Lissner
9f63d94b13
Add doom/help-package-homepage command (SPC h d P) 2019-05-20 21:09:11 -04:00
Henrik Lissner
243a3a84a8
Add doom/help-news-search command (SPC h d N) 2019-05-20 21:09:11 -04:00
Henrik Lissner
8aa6273dcf
Remove org link syntax from help search commands
And prevent ivy sorting them.
2019-05-20 21:09:11 -04:00
Henrik Lissner
7c33d2c2e0
Fix C-c & C-x when used as leader keys 2019-05-20 21:09:11 -04:00
Henrik Lissner
448d5fc71f
map!: fix :prefix-map for non-leader keys
Would no-op if used on a non-leader key.
2019-05-20 21:09:10 -04:00
Henrik Lissner
d6aea001c5
Implement lazy auto-revert
Instead of using auto-revert-mode or global-auto-revert-mode, we employ
lazy auto reverting on focus-in-hook, doom-switch-buffer-hook and
after-save-hook.

We do this because autorevert abuses inotify handles, which can grind
Emacs to a halt if you have hundreds of buffers open and something
performs expensive mtime or attribute-altering IO on their files outside
of Emacs. We only really need revert checks when we switch to or save a
buffer, or when we focus the Emacs frame.
2019-05-20 21:08:21 -04:00
Henrik Lissner
39d4fa2256
Improve better-jumper integration into ivy
And remove unnecessary set-jump on imenu-after-jump-hook (it should
happen before the jump, not after).
2019-05-19 02:18:26 -04:00
Henrik Lissner
c3cb7c5000
:tools password-store -> :tools pass
A simpler name and matches the prefix of its module.
2019-05-19 02:18:25 -04:00
Henrik Lissner
0674e4b4b0
Remove :emacs imenu module
Some of it was moved into core as reasonable defaults, but the rest of
it doesn't warrant a whole module dedicated to it.
2019-05-19 02:18:00 -04:00
Henrik Lissner
8c65a63b1c
Move eshell, term & vterm modules to :term 2019-05-19 02:17:59 -04:00
Henrik Lissner
01face314d
Fix doom/help-* search commands
They weren't actually doing anything.
2019-05-19 02:17:59 -04:00
Henrik Lissner
4cde9afd93
Refactor setq-hook!
Simplifies its expanded form and names the hook function to make the
hook's value more readable in help buffers.
2019-05-19 02:17:58 -04:00
Henrik Lissner
4d20655f78
Optimize incremental loading
Interrupt package loading if Emacs recieves input. This further reduces
percieved pauses at startup.
2019-05-19 02:17:58 -04:00
Henrik Lissner
f7fb729269
Enable show-trailing-whitespace selectively
Instead of enabling it globally and disabling it in particular modes, we
do the opposite. There are fewer edge cases this way.
2019-05-19 02:17:58 -04:00
Henrik Lissner
81a054deda
Add custom-set-faces! convenience macro
For setting face attributes non-destructively. See docstring for usage
example.
2019-05-18 16:46:21 -04:00
Henrik Lissner
d62e13c803
Alphabetize plugins in core-editor
Easier to find them this way.
2019-05-18 14:44:40 -04:00
Henrik Lissner
2e6d8be6fc
Rethink SPC n keybinds and add new ones
Adds the following keybinds:

SPC n .    Browses org-directory
SPC n /    Text search in org-directory
SPC n *    Text search in org-directory with symbol at point
SPC n h    Jump to org headline in org-agenda-files
2019-05-17 23:57:24 -04:00
Henrik Lissner
5ec0c5ba3f
cli/env: refactor 2019-05-17 21:34:21 -04:00
Henrik Lissner
3ed54e191b
Fix #1322: replace load-env-vars w/ custom loader
I've replaced load-env-var with our own custom parser. load-env-var
expects a well-formatted env file, which neither env nor set produces,
which is what doom env uses to dump the shell environment.

This should fix issues that arise when envvars (like PATH) contain
arbitrary whitespace.
2019-05-17 20:19:35 -04:00
Henrik Lissner
32f8fa9f46
Fix :prefix-map indentation in map! calls 2019-05-17 13:31:05 -04:00
Henrik Lissner
ba92adf7b3
Reformat core-ui, add outline headers to core-editor 2019-05-17 01:58:39 -04:00
Henrik Lissner
20720cda61
Remove visual-fill-column package from Doom core
It is not essential enough to keep in Doom core. I'm working on a new
module (or a rewrite for app/write) to replace it.
2019-05-17 01:58:27 -04:00
Henrik Lissner
67b6c44939
Enable show-trailing-whitespace globally
The variable is buffer-local and must be set with setq-default instead.

Also adds doom|{enable,disable}-show-trailing-whitespace hooks.
2019-05-17 01:58:08 -04:00
Henrik Lissner
5d2610fc31
Fix window issues due to switch-buffer hooks
- Fixes the issue that 45873615 was trying to address with frameworks
  like ivy, helm and hydra (where they would manipulate the wrong
  windows),
- Fixes an issue where notmuch couldn't find its buffers ("no buffer
  named *notmuch-X*" errors),
2019-05-16 11:42:30 -04:00
Henrik Lissner
4587361579
Prevent switch hooks while minibuffer is active
Fixes an issue where lv (used by hydra) would manipulate the wrong
window when invoked from, say, ivy.
2019-05-16 03:27:52 -04:00
Henrik Lissner
40d2d4d222
Minor tweaks & byte-compiler offerings 2019-05-15 20:53:11 -04:00
Henrik Lissner
c612ba58a9
Fix stringp errors in doom/help search commands 2019-05-15 20:51:52 -04:00
Henrik Lissner
a4fb4070ea
Rework how unicode fonts are set and loaded 2019-05-15 20:24:52 -04:00
Henrik Lissner
2525822791
Move GC optimization to init.el
And reformat core.el
2019-05-15 18:30:20 -04:00
Henrik Lissner
2cb5d895d7
cli/upgrade: fix void-function error
Derpity derp derp.

Derp McDerpington.

Derpsville, population me.
2019-05-15 17:29:43 -04:00
Henrik Lissner
4b66b7c29b
cli/upgrade: emit full error, if one occurs 2019-05-15 17:17:56 -04:00
Henrik Lissner
c6ceb147e6
doom-log: show source module before message 2019-05-15 15:22:09 -04:00
Henrik Lissner
962f6a1032
Fix switch-buffer hooks running from wrong buffer
The destination buffer should be current while the switch-buffer hooks
run.
2019-05-15 15:22:08 -04:00
Henrik Lissner
5cd1fb2a52
tutorial--saved-dir = doom-cache-dir/tutorial/ 2019-05-14 23:41:21 -04:00
Henrik Lissner
f7a6b2b33e
cli/upgrade: refresh before updating packages
So missing packages are installed and orphaned ones are removed (and env
file updated, if necessary).
2019-05-14 23:41:02 -04:00
Henrik Lissner
f0fe71892b
cli/upgrade: autoremove orphaned packages 2019-05-14 22:30:16 -04:00
Henrik Lissner
c5a3556510
Fix interactive codes for doom/{move,copy,sudo}-this-file 2019-05-14 20:53:51 -04:00
Henrik Lissner
75777756e1
Remove redundant dired sort hook #1414
This still means dired will be unsorted for BSD ls users, but that's
acceptable (for now).
2019-05-14 18:45:38 -04:00
Henrik Lissner
b7d1702484
Add :prefix-map to map! macro
Each prefix now defines a doom-leader-DESC-map keymap, where DESC is the
which-key description for that prefix key. This should make it easier
for users to move leader prefixes. e.g.

To move SPC TAB (workspaces) to SPC l:

  (map! :leader
        "TAB" nil
        "l" doom-leader-workspaces-map)
2019-05-13 22:30:21 -04:00
Henrik Lissner
9bc47ca329
Minor refactors
- Don't aggressively load gnu-elpa-keyring-update, it autoloads itself
- Update docstring + comments
- scroll-margin = 1
2019-05-13 19:34:44 -04:00
Henrik Lissner
20596cd41f
Reformat gc optimization & gc on focus-out
Also raises the gc upper limit to 512mb
2019-05-13 19:34:44 -04:00
Henrik Lissner
ddb03c6335
Optimize doom-local-dir entry in recentf-exclude
file-in-directory-p is a tad more expensive.

Also takes into account any modifications to recentf-filename-handlers
2019-05-13 19:34:44 -04:00
Henrik Lissner
7443669b1e
Minor refactors & comment revision 2019-05-13 14:37:00 -04:00
Henrik Lissner
646cba3f68
Bring back undo history compression
But only if zstd is available. Also strips text properties from the undo
list. This often provides a 30-50% size benefit, with a negligible
performance impact.
2019-05-13 14:31:49 -04:00
Henrik Lissner
6ea0c39137
Ensure use-package settings are set @ compile-time 2019-05-13 00:57:59 -04:00
Henrik Lissner
f696ff32f4
doom-project-find-file: add helm-find-files as a fallback 2019-05-13 00:18:51 -04:00
Henrik Lissner
6ab16621e0
better-jumper: quelpa -> melpa 2019-05-12 23:27:34 -04:00
Henrik Lissner
f2d267ce8b
projectile: fall back to git-grep instead of rgrep
Also changes projectile-sort-order, but this only affects the native
indexer.
2019-05-12 22:12:08 -04:00
Henrik Lissner
769cfbe5d1
projectile: resort to ripgrep if fd is absent
Speeds up file search in general, and on Windows especially.
2019-05-12 22:12:04 -04:00
Henrik Lissner
5e8db5a860
Refactor core-packages + add gnu-elpa-keyring-update
- Adds melpa-mirror, for those lonely days when melpa is down
- Reduce logging spam from package!
- Revise comments & use outline-mode headings
- Prioritize melpa over elpa
2019-05-12 22:09:52 -04:00
Henrik Lissner
0f0fdbc00c
Add doom/{increase,decrease,reset}-font commands
Borrows the idea from zoom-frm (see #1389).
2019-05-12 21:56:52 -04:00
Henrik Lissner
ef4106dae8
Remove echo-keystrokes fix in isearch
It isn't necessary anymore.
2019-05-12 17:06:56 -04:00
Henrik Lissner
e5d566ea2a
Prevent non-prefix key errors on doom//refresh
May also help doom/reload
2019-05-12 01:43:22 -04:00
Henrik Lissner
2358dbfc84
Replace "Doom" w/ ~/.emacs.d when 'upgrade' fails 2019-05-12 00:56:17 -04:00
Henrik Lissner
a558f9b3f1
cli/quickstart: fix font path for all-the-icons-install-fonts
all-the-icons-install-fonts guesses the font path based on
`window-system', which is nil in tty Emacs.
2019-05-12 00:56:17 -04:00
Bryan Gilbert
29fb8b3611 Enable better-jumper-mode when loaded 2019-05-10 12:43:25 -04:00
Henrik Lissner
e088a21335
Fix theme not loading in daemon sessions #1397 2019-05-09 23:15:13 -04:00
Henrik Lissner
17e337a434
Remove reload-theme-on-new-display-device feature
The intention for this feature was to ensure the theme always looks as
expected even if you were to open a new frame on a different display
device (e.g. open a GUI frame, start the server, then open a tty frame
from it).

It turned out to be buggier than anticipated. The underlying issue is
that solaire-mode is fundamentally incompatible with tty Emacs.
Terminals uses will need to disable it, as there's no good way to
predict what kind of frames a user will open.

TL;DR Avoid opening a TTY frame from a GUI session. If you must, and you
see odd colors, disable solaire-mode.
2019-05-09 21:45:42 -04:00
Henrik Lissner
d7bc99c3c3
Add deprecation warnings to doom patch-macos
And make "doom env enable" an alias for "doom env auto"
2019-05-09 18:43:32 -04:00
Henrik Lissner
ed562212eb
Fix & improve doom/help-package{s,-config}
The help buffer for Doom packages now display:

- locations of (and links to) where a package is configured in Doom
- limited documentation for site packages (like elisp-mode)
2019-05-08 02:08:08 -04:00
Henrik Lissner
f6dc4f6079
Fix void-function org-map-entries on doom/help-* 2019-05-08 00:56:16 -04:00
Henrik Lissner
e173fcbd54
Fix doom/help-package-config
And recenter after jumping to file.
2019-05-06 22:13:31 -04:00
Henrik Lissner
8e6953b3ac
Fix arrayp error when killing Emacs
Caused by doom|cleanup-project-cache, when a non-string key is present
in projectile-projects-cache (which will be removed).
2019-05-06 17:12:28 -04:00
Henrik Lissner
e0e82ffbeb
cli/quickstart: ensure new init.el doom! is seen 2019-05-06 02:12:49 -04:00
Henrik Lissner
e75c41b10d
Fix autoload/hydras.el autoloads #1388
Caused by autoloads paths not being resolved correctly during
generation.
2019-05-05 19:40:51 -04:00
Henrik Lissner
84c5da844b
Add email/{wanderlust,mu4e,notmuch} modules
Removed app/{email,notmuch}
2019-05-05 14:14:12 -04:00
Henrik Lissner
45266213a5
Revert 087127a3
Installing buttercup on demand wasn't robust enough. Tests were breaking
more often.
2019-05-05 00:02:59 -04:00
Henrik Lissner
c42600d771
Fix void-variable sym errors
And remove trailing hyphen on anonymous transient hooks.
2019-05-05 00:01:52 -04:00
Henrik Lissner
72e8178e42
show-trailing-whitespace = t
A sensible default.
2019-05-04 19:13:26 -04:00
Henrik Lissner
7f004f321a
Optimize set-transient-hook!
In case HOOK-OR-FUNCTION is an expensive lisp form.
2019-05-04 19:13:26 -04:00
Henrik Lissner
47f0f77d91
Fix #1384
Redundant with show-trailing-whitespace
2019-05-04 19:13:26 -04:00
Henrik Lissner
3bebf3ac9b
Extend switch-buffer hook coverage
To cover switch-to-{next,prev}-buffer commands, which are used in quite
a few places, but don't implicitly trigger switch-buffer hooks.

Also removes switch-{window,buffer,frame} logging. Adds too much noise,
which isn't very helpful.

Also fixes VC state not being refreshed when switching to stale buffers
in certain ways.
2019-05-02 23:10:09 -04:00
Henrik Lissner
388e0def2c
Cheer up the byte-compiler
You deserve better than those warnings.
2019-05-02 21:54:47 -04:00
Henrik Lissner
898ef11b76
Saving the world, one trailing space at a time 2019-05-02 16:20:40 -04:00
Henrik Lissner
aff63899b0
dtrt-indent: silence messages, but still log them 2019-05-02 16:00:18 -04:00
Henrik Lissner
eb47568701
cli/quickstart: generate {init,config,packages}.el separately
Instead of aborting if DOOMDIR exists, all three files will be
checked (and generated) separately.
2019-05-01 21:02:29 -04:00
Henrik Lissner
6d314c2795
Revise and update docstrings and comments 2019-05-01 21:02:28 -04:00
Henrik Lissner
4aa65aa019
Move avy, ace-link & ace-window out of core
They don't belong there, and ace-window is no longer a core dependency
anyhow.
2019-05-01 21:02:28 -04:00
Henrik Lissner
6bd6c1623b
Fix 'doom upgrade' not updating pkg autoloads
Folks should no longer need to run 'doom refresh' after upgrading.
2019-04-30 18:44:44 -04:00
Henrik Lissner
a57d9d3a25
Change :after-call heuristic for detecting fn/hook 2019-04-30 15:12:07 -04:00
Henrik Lissner
3a3017004c
Fix whitespace-style for non-default-indentation hl
And remove lines-tail. This is outside the purview of this hook.
2019-04-30 14:37:29 -04:00
Henrik Lissner
39db0a38c5
Record TRAMP files in recentf 2019-04-29 18:56:25 -04:00
Henrik Lissner
9735f034e1
General refactors & optimizations 2019-04-29 18:54:46 -04:00
Henrik Lissner
087127a31d
Lazy-install buttercup package 2019-04-29 18:48:35 -04:00
Henrik Lissner
7c5fb8ed9c
Remove highlight-escape-sequences
Payoff < performance cost, and is too opinionated.
2019-04-29 18:17:23 -04:00
Henrik Lissner
4aa4802885
ui/modeline: remove indent segment
It's wasted space now that dtrt-indent logs changes to indentation.

Also resolves a performance issue where the tab/space unicode character
would cause long 3-5s delays on startup or first-file load.
2019-04-29 18:03:18 -04:00
Henrik Lissner
26050bb1d7
Refactor interactive CLI commands
Also fixes an issue where output wasn't colored correctly.
2019-04-26 22:11:37 -04:00
Henrik Lissner
6b69eaa397
Minor refactors across the board 2019-04-26 17:42:44 -04:00
Henrik Lissner
ac55b6a826
Remove unused doom-which-key-leader-prefix-regexp 2019-04-26 17:39:13 -04:00
Henrik Lissner
a03b676297
Move leader which-key labels to core-keybinds 2019-04-26 17:29:54 -04:00
Henrik Lissner
1ab8dac872
Fix arg-less color functions in print!/format! 2019-04-24 18:16:07 -04:00
Henrik Lissner
88406bb11a
Fix unit test runner 2019-04-24 18:16:07 -04:00
Henrik Lissner
eb22177cea
Suppress kill-emacs-hook in noninteractive Doom 2019-04-24 18:16:06 -04:00
Henrik Lissner
cb172becd9
Make doom-get-outdated-packages synchronous
Concurrency doesn't speed this up enough to justify its problems. It
swallows errors emitted from the child processes and a child process can
block indefinitely.
2019-04-24 18:16:06 -04:00
Henrik Lissner
2066206e83
Update docstrings for config commands 2019-04-24 18:16:06 -04:00
Henrik Lissner
40f6a2b6e3
Rewrite vanilla sandbox & report-bug commands
- Renamed doom/open-vanilla-sandbox to doom/sandbox (because it's not
  just for vanilla testing anymore)
- Renamed doom/open-bug-report to doom/report-bug (for consistency with
  `report-emacs-bug`; makes it easier to discover)
- Add SPC h d b for doom/report-bug
- Add SPC h d s for doom/sandbox
2019-04-24 18:16:06 -04:00
Henrik Lissner
fa7f7042b0
Add and expand doom/help* commands
Adds the following commands:

- doom/help (opens the Doom manual)
- doom/help-search (for searching through org headlines in Doom's
  documentation)
- doom/help-faq (for searching the FAQ)
- doom/help-news (for browsing the Doom newsletters)
- doom/help-autodefs (renamed from doom/describe-autodef -- for looking
  up documentation on autodef function/macros, like
  `set-lookup-handler!`)
- doom/help-modules (renamed from doom/describe-module, for jumping to a
  Doom module's documentation)
- doom/help-packages (renamed from doom/describe-package and recently
  fixed -- looks up information about installed packages, including what
  Doom module(s) install it and where it is configured)
- doom/help-package-config (for searching and jumping to any block where
  a package is configured in Doom Emacs)

Also adds the SPC h d (or C-h d) prefix for Doom-specific help commands.
SPC h D will invoke doom/help.

However, the documentation itself hasn't been committed yet, so some of
these commands may be useless atm. Sorry!
2019-04-24 18:16:06 -04:00
Henrik Lissner
c399c07694
Add :tools lsp checks for +lsp flag
Also:
- Reorganizes some :lang modules' packages.el file.
- Adds setuptools check in lang/python
- Adds javac check in lang/java
- Removes the depends-on! macro
2019-04-24 18:16:05 -04:00
Henrik Lissner
9bea168cc1
Rewrite doom-doctor
- Use message library instead of reinventing the wheel
- Fix -d/--debug support for `bin/doom doctor`
- Add indent and autofill support to print! and format!
- Add doom-message-backend for forcing format! to use a specific backend
- Phase out anaphoric when! macro in doctor scripts, it was hardly used
2019-04-24 18:16:05 -04:00
Henrik Lissner
1fb2178716
Move sp skip-match disabler to config/default
This shouldn't be mandatory.
2019-04-24 18:16:04 -04:00