Commit Graph

3120 Commits

Author SHA1 Message Date
4055f667fb Defer doom|disable-whitespace-mode-in-childframes 2019-03-08 02:37:34 -05:00
8e32f0da18 Rethink theme/font initialization order
+ Don't use set-frame-font. Causes issues for daemon users and is
  slower.
+ Revice init function docstrings
+ Load fonts a little earlier than themes

May resolve an issue where fonts in daemon Emacs are too small on
startup.

Addresses #1223
2019-03-08 02:37:33 -05:00
917d89da87 Refactor module init hooks
Also adds doom-after-init-modules-hook for consistency, which is an
alias to after-init-hook until I decide if it's necessary for it to be
independent.
2019-03-08 02:37:33 -05:00
a4c0bc2738 Optimize general integration
Using general to bind leader keys was responsible for 40-50% of Doom's
startup time. This change reduces that significantly, but not entirely.
It may be better that the config/default module not use map!. It is a
convenient macro, but general is a huge bottleneck.
2019-03-08 02:37:33 -05:00
44de995ca5 config/default: change SPC h keymaps
SPC h now maps to help-map to reduce redundancy. Some adjustments and
additions were made to this map so all users (evil and vanilla) can
benefit from Doom's extra help commands.
2019-03-08 02:37:33 -05:00
a05b1877be Rewrite switch-{buffer,window} hooks
+ Add doom-switch-frame-hook
+ Replace doom-{enter,exit}-{buffer,window}-hook with
  doom-switch-{buffer,window}-hook
+ New switch-buffer hooks run on buffer-list-update-hook rather than
  in select-window advice.
+ Blank our buffer-list-update-hook in some places to reduce how many
  times it gets triggered.
2019-03-08 02:37:33 -05:00
8f2fb07948 Add advice-add! & advice-remove! helpers 2019-03-08 02:37:33 -05:00
9b180fda97 Refactor doom-initialize & bootstrap in core.el 2019-03-08 02:37:32 -05:00
8c701ef7d4 Fix void-variable error from ediff config 2019-03-08 02:34:26 -05:00
31688c921d Refactor doom-get-outdated-packages
Partitions quelpa packages so there are 4 threads tops.
2019-03-08 02:34:26 -05:00
2d353b849c Change file-exists-p! to return file if it exists 2019-03-08 02:34:26 -05:00
d94aa9b57c Add xclip.el for tty clipboard support
Needs more testing
2019-03-08 02:34:26 -05:00
4fbf7a2687 Remove expand-region package
It was unused, and is redundant with evil's text object expansion keys.
2019-03-08 02:34:26 -05:00
884957bdc6 Refactor format! macro
By removing the cl-flet call, we reduce the size of backtraces produced
during bin/doom commands by a whopping 80%. Noice.

Also renames doom-ansi-apply -> doom-color-apply
2019-03-07 18:26:44 -05:00
e497df4a28 Restore obsolete doom-(post-)?init hooks
These will be removed later.
2019-03-05 19:23:50 -05:00
024e27b618 Add contingency plan for local-vars hooks
They don't run if enable-local-variables is set to nil.
2019-03-05 17:08:39 -05:00
1ec9f5b2e9 Move hl-line-range-function fix to ui/doom
Remapping the hl-line face is what causes the bug that this fix
addresses.
2019-03-05 03:01:59 -05:00
c1beb39c5b Rename doom/describe-setters -> doom/describe-autodefs 2019-03-05 01:55:40 -05:00
cfa97470fc Add links to config files in describe-packages
Also dims packages that aren't installed.
2019-03-05 01:55:40 -05:00
cf5a398e0d doom-log: include doom-debug-mode test in result
Relevant to #1215
2019-03-05 00:19:51 -05:00
6a4682f3f1 Change doom/describe-module to browse module
Instead of opening its README.org, which may or may not exist.
2019-03-05 00:04:30 -05:00
fbcb4e6973 Minor refactor across the board 2019-03-04 20:47:26 -05:00
f18e1c0ea1 Refactor switch {buffer,window} hooks 2019-03-04 20:47:26 -05:00
05303c0fdb 💥 Rethink core hook order & naming
- doom-post-init-hook was renamed doom-init-modules-hook
- doom-init-hook was renamed doom-before-init-modules-hook
- doom-init-modules-hook now runs before the user's config.el is run
- Moved doom-init-ui-hook to run later (on window-setup-hook rather than
  emacs-startup-hook).

Yield a modest improvement in startup times.
2019-03-04 20:47:26 -05:00
b054190820 New doom/describe-packages command
Replaces describe-packages and adds Doom module awareness to package
documentation.
2019-03-04 20:47:25 -05:00
f6cc2644b0 New doom-log macro for debug-time logging
doom-log won't interfere with the minibuffer if it's in use, and will
report the originating module.

Addresses #1215
2019-03-04 18:38:25 -05:00
b98f34d1fd Add :killb & doom/kill-buried-buffers
Also fix reported killed-buffer count when invoking kill commands
interactively.
2019-03-04 14:07:34 -05:00
f0ad9b7585 Ensure explicitly installed pkgs are user-selected 2019-03-04 04:57:07 -05:00
66d23e39bb Fix doom/move-this-file not opening renamed file 2019-03-03 02:17:42 -05:00
78b4c784a6 Remap describe-symbol -> helpful-symbol 2019-03-03 01:26:30 -05:00
1eb1933518 Don't let packages modify command-switch-alist
From their autoloads.
2019-03-02 03:55:15 -05:00
3ea805cc94 Minor experimental startup optimizations
Definitely premature optimization.
2019-03-02 03:54:04 -05:00
84343f57aa Refactor UTF-8 setters
Some were redundant
2019-03-02 03:53:13 -05:00
80607ff033 Confirm quit on doom/restart-and-restore 2019-03-02 03:06:29 -05:00
d46bb287ae General refactor of Doom core
- Code reduction and refactor across the board (cull unneeded minor
  advise, hooks and hacks or update them)
- Revise outdated comments and docstrings
- Reorganize core autoload libraries
- Remove large file check (Emacs already has a built-in one, which we
  augment to be even more performant when it does kick in)
- helpful.el can now be disabled completely through package!
2019-03-02 01:34:19 -05:00
687496167a Fix void-function projectile-relevant-known-projects
Thrown when using doom/find-file-in-other-project and
doom/browse-in-other-project too soon.
2019-03-02 01:34:19 -05:00
8a90f29c91 Make session persistence module agnostic
They've been removed from feature/workspaces and moved into
core/autoload/sessions, which falls back to desktop.el if persp-mode
isn't present. This also offers a substantial speed up to
restart+restoring and restoring sessions in general.

Also fixes #1210, where the newly spawned frame after doom/restart
wasn't focused.

Introduces the following commands:

- doom/restart
- doom/restart-and-restore
- doom/quickload-session
- doom/quicksave-session
- doom/load-session
- doom/save-session
- +workspace/restore-last-session (alias for doom/quickload-session)

And removes

- +workspace/load-session
- +workspace/save-session
- +workspace/load-last-session (renamed to +workspace/restore-last-session)
- +workspace/restart-emacs-then-restore (replaced by doom/restart-and-restore)
- :ss (ex command)
- :sl (ex command)
2019-03-02 01:34:19 -05:00
21e01189b9 Properly keep cursor out of minibuffer prompt
The prompt in the minibuffer is read-only. You are able to move the
cursor into it before this fix.

This also more effectively silences echo-area output when deleting text
in the minibuffer. No more "Text is read-only" blocking what you're
typing.
2019-03-02 01:34:14 -05:00
8903eebdc4 Change purpose of autodef cookie argument
;;;###autodef FORM

FORM was used as a predicate for inclusion as an autodef. Now it is used
as the replacement sexp in case the module is disabled.

Oh, you don't know what autdefs are? Well let me explain (thanks for
asking, by the way). An autdef'ed function, macro, or function alias is
always available to be called, anywhere in Doom, even if its containing
module is disabled. For instance:

  ;;;###autodef
  (defun say-hello! (name)  ; the trailing ! denotes an autodef
    (message "Hello %s" name))

This makes it safe to call `do-something` without a check whether it
exists (or if its module is enabled). When the module is enabled, an
autoload entry is added to the Doom autoloads file:

  (autoload 'do-something "path/to/some/modules/autoloads")

And it is autoloaded as normal when it is first used. However, if the
module is disabled, then this is inserted instead:

  (defmacro do-something (&rest _))

This no-ops; it does nothing and doesn't evaluate its arguments. If FORM
above was provided, that is used instead of a noop macro.

It's a little smarter than simple substitution, but that's the gist of
it.
2019-03-02 01:34:14 -05:00
8832737671 Adopt seagle0128/doom-modeline for :ui modeline
And remove obsolete :ui doom-modeline module.

Relevant to: #136, #921
2019-03-02 01:34:14 -05:00
fbce94cd20 Remove select-enable-{clipboard,primary} #1008
select-enable-clipboard is already `t` by default and
select-enable-primary disturbs non-evil yanking behavior.
2019-02-28 03:21:40 -05:00
9b7d95f43a Remove doom-cleanup-hook & doom/cleanup-session
These weren't reliable, often times buggy or overzealous about killing
buffers and processes. Best to do it manually or come up with a better
solution.
2019-02-26 22:57:02 -05:00
4c35618044 Improve version check for line-numbers polyfill
Since there are early versions of Emacs [26.0, 26.1) that don't have the
new line numbers library.
2019-02-26 17:29:40 -05:00
1b43ea50f0 Revise SPC f keybinds
- SPC f . -> counsel-file-jump or find-file
- SPC f > -> doom/browse-in-other-projects
- SPC f / -> projectile-find-file
- SPC f ? -> doom/find-file-in-other-project
- Moved doom/sudo-find-file to SPC f S

This change was made to accommodate the new
doom/browse-in-other-projects and doom/find-file-in-other-project
commands, which make it easy to jump to files in other known projects.
2019-02-26 13:21:16 -05:00
15dd5870ea Fix uniquify+persp-mode compatibility
Uniquify would rename buffers across workspaces, causing "sticky"
buffers when switch between workspaces with buffers that have the same
base name.
2019-02-26 12:19:35 -05:00
fed0a51f9e Fix ns-auto-titlebar not correctly being activated
Makes +doom|determine-ns-appearance redundant.
2019-02-25 00:26:31 -05:00
4ccbc9c7df Update major-mode=>module alist for help commands 2019-02-24 21:00:19 -05:00
6fd34cd10f Revise documentation for defer-feature! macro 2019-02-24 20:59:29 -05:00
1758266ce4 Fix doom/describe-setters 2019-02-24 20:40:16 -05:00
7c5eefee3e General, minor refactoring 2019-02-24 13:58:56 -05:00