Commit graph

8925 commits

Author SHA1 Message Date
Henrik Lissner
eb3c569e1d
Replace +lsp|init with lsp! autodef 2019-03-02 01:34:19 -05:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
735ec58b36
ui/doom-dashboard: show command at point in echo-area 2019-03-02 01:34:15 -05:00
Henrik Lissner
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
Henrik Lissner
fb57f367e7
Enable delete-selection-mode & shift-select-mode
This makes text insertion behave more like traditional editors.

Delete-selection-mode allows selections to be replaced when yanking or
inserting. This enables it by default for non-evil users and in insert
mode for evil users. Also enables selecting text with shift.
2019-03-02 01:34:14 -05:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
868bd15abe
Fix undeferred flycheck-posframe
Accidentally eager-loaded it. Whoops!
2019-03-01 14:25:18 -05:00
Henrik Lissner
1f3c41a8ac
Revert ab797994 #226
These were merged into evil-collection-mu4e.
2019-03-01 03:56:10 -05:00
Henrik Lissner
cedadb3233
Enable magit by default #1052
Co-authored-by: Aria Edmonds <ar1a@users.noreply.github.com>
2019-03-01 00:44:45 -05:00
Huy Duong
61645bb9ca Bind some rspec functions for ruby and enh-ruby mode
Some rspec-mode's functions can be used under any Ruby source files. So
adding some localleader bindings for them.

Signed-off-by: Huy Duong <huy.duong@employmenthero.com>
2019-03-01 09:35:28 +07:00
Henrik Lissner
5f5874c1fc
Fix evil-embrace race condition at startup #345
The previous config would wait for evil-surround to load before adding
evil-embrace's hooks.
2019-02-28 18:26:13 -05:00
Henrik Lissner
ad837e6d13
Move evil ex commands to feature/evil
These commands aren't used by config/default anyway, and
+default:multi-{next,previous}-line were moved to my private config.

Also fixes #1208 (:cd without args will now CD to $HOME).
2019-02-28 14:31:16 -05:00
Henrik Lissner
cf07bac383
Fix persisted workspace storing broken posframes #1017
Not confident this is the best solution, but it will work for now.
2019-02-28 14:19:05 -05:00
Henrik Lissner
ab79799407
app/email: add :keep-visual prop on mu4e commands #975 2019-02-28 14:01:22 -05:00
Henrik Lissner
94a57f695e
Fix LSP restart prompt when killing Emacs 2019-02-28 13:50:59 -05:00
Henrik Lissner
b871d400e5
tools/flycheck: simplify popup-tip advice
Relevant to #1209
2019-02-28 13:50:48 -05:00
Henrik Lissner
812c834970
lang/python: fix ipython repl & change args type
+python-ipython-repl-args and +python-jupyter-repl-args are now lists,
rather than strings.
2019-02-28 04:10:35 -05:00
Henrik Lissner
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
Henrik Lissner
eb4450e99c
lang/java: remove finished TODO 2019-02-27 21:49:11 -05:00
Henrik Lissner
99904c0e05
Recenter window after lookup commands 2019-02-27 18:39:04 -05:00
Henrik Lissner
6fc7b8c1c4
Better electric-indent uninhibiter
Will now work in C modes as well as Csharp, Java and Python; possibly
others that forcibly set electric-indent-inhibit.
2019-02-27 18:38:28 -05:00
Henrik Lissner
aa9c4f63ed
Fix :cd #1208 2019-02-27 14:43:24 -05:00
Henrik Lissner
d0533fe99c
Fix lookup commands erroring when successful
Because message returns non-nil, and +lookup--jump-to needs to return
nil when it fails.
2019-02-27 03:14:47 -05:00
Henrik Lissner
574dae1426
Isolate builtin org at compile time
Attempts to address the elusive "invalid-function
org-preserve-local-variables" error mentioned in: #1116 #1169, and

This error is otherwise avoided by running `bin/doom compile :plugins`
2019-02-27 03:14:47 -05:00
Henrik Lissner
733eb962ac
Merge pull request #1207 from shanavas786/use-config-names
Use configured variables for rtags binary names
2019-02-27 03:13:46 -05:00
Henrik Lissner
c3a6d38da4
Fix void-variable rtags-rdm-binary-name error 2019-02-27 03:13:11 -05:00
Shanavas M
1f63358947 Use configured variables for rtags binary names 2019-02-27 12:53:03 +05:30
Henrik Lissner
c85565cfef
ui/modeline: add multiple cursors segment 2019-02-26 23:02:13 -05:00
Henrik Lissner
609e577ce7
Refactor evil keybinds; remove SPC {],[} prefixes
These were redundant with the ],[ motion keys.
2019-02-26 22:59:40 -05:00
Henrik Lissner
80d62aaaef
Fix electric indentation in c modes #510 #1206 2019-02-26 22:58:47 -05:00
Henrik Lissner
5ee4f03ce7
tools/lsp: no prompt for project root & autokill servers 2019-02-26 22:57:34 -05:00
Henrik Lissner
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
Henrik Lissner
3e85981695
Add process-menu-mode-map keybinds for evil 2019-02-26 22:55:09 -05:00
Henrik Lissner
7361e05582
tools/flycheck: refactor popup-tip minor mode
Less code, fewer problems.
2019-02-26 19:32:35 -05:00
Henrik Lissner
11a528be04
Fix infinite recursion in +flycheck|disable-popup-mode-for-lsp 2019-02-26 18:05:48 -05:00
Henrik Lissner
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
Henrik Lissner
de4b18a2dc
feature/lookup: refactor backend dispatcher
Hopefully improves compatibility with async handlers. Still a WIP.
2019-02-26 16:57:14 -05:00
Henrik Lissner
594df64913
Smarter RET in normal mode over flyspell regions
Will now trigger flyspell-correct-word-generic
2019-02-26 16:55:29 -05:00
Henrik Lissner
db2949ff32
Improve flyspell support
+ Make flyspell more selective about what to scan in markdown buffers.
+ Don't mark duplicates when proseline or langtool are present.
+ Add set-flyspell-predicate! for seeing mode-specific word predicates.
2019-02-26 16:55:28 -05:00
Henrik Lissner
d83ba452ef
Refactor +cc-c-c++-objc-mode
Improve docstring and a minor correction to C++ detection regexp.
2019-02-26 13:23:42 -05:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
ca6be0d715
Merge pull request #1203 from flatwhatson/cpp-tab-always-indent
Remove C/C++ tab-always-indent override
2019-02-26 12:18:55 -05:00
Henrik Lissner
43c8536a72
Merge pull request #1202 from flatwhatson/cpp-default-header
Restore C/C++ default-header-file-mode support
2019-02-26 12:14:30 -05:00
Andrew Whatson
6e4e11ebb8 Remove C/C++ tab-always-indent override 2019-02-26 20:30:00 +10:00
Andrew Whatson
2d3937ac1f Restore C/C++ default-header-file-mode support 2019-02-26 20:25:55 +10:00
Henrik Lissner
c4ed1031a5
Merge pull request #1188 from ar1a/lsp-haskell
Add haskell +lsp
2019-02-25 22:26:27 -05:00