Commit graph

7955 commits

Author SHA1 Message Date
Henrik Lissner
53fe7a1f04 Refactor Project API to reflect changes upstream
projectile-project-root no longer returns `default-directory` if not in
a project (it returns nil). As such, doom-project-* functions (and their
uses) have been refactored.

+ doom-project-p & doom-project-root are aliases for
  projectile-project-p & projectile-project-root.
+ doom-project-{p,root,name,expand} now has a DIR argument (for
  consistency, since projectile-project-name and
  projectile-project-expand do not).
+ The nocache parameter is no longer necessary, as projectile's caching
  behavior is now more sane.
+ Removed some projectile advice/hacks that are no longer necessary.
+ Updated unit tests
2018-09-28 21:13:27 -04:00
Henrik Lissner
3961ba1662 Fix command-log-mode not disabling on toggle
clm/toggle-command-log-buffer enables global-command-log-mode, but
doesn't disable it on second invocation, so we use
global-command-log-mode instead.
2018-09-28 21:13:27 -04:00
Henrik Lissner
ddaf1e5b67 Fix wrong-type-arg error on menu-bar-open
Due to malformed menu-bar-lines frame property. Same for tool-bar-lines
as well.
2018-09-28 21:13:27 -04:00
Henrik Lissner
b43888901f lang/cc: add rotate patterns for c++-mode
These can be used by pressing ! in normal mode, over rotatable regions
of text.
2018-09-28 21:13:27 -04:00
Henrik Lissner
523c2a114b lang/web (tests): Remove empty before-each block 2018-09-28 21:13:27 -04:00
Henrik Lissner
15991b5639 Refactor quiet! to be less destructive
It's possible for the debugger to be invoked from inside code wrapped in
a (quiet! ...) call. The debugger pauses Emacs in a broken state where
the functions locally rebound by quiet! (e.g. message, load-file,
write-region, etc) are never returned to their original definitions.

This attempts to reduce that probabilityby changing how quiet! silences
code. Rather than silencing them completely, they will be logged
to *Messages* but not displayed in the echo area.

Also, quiet! is now used less, where it isn't strictly needed (or where
inhibit-message is sufficient).
2018-09-28 21:13:27 -04:00
Henrik Lissner
8a8b5c6089 Refactor bin/doom & doom-dispatch
Done to make bin/doom produce better debugger output (and more readily).
A lot of bin/doom errors aren't recurring, so it's better to produce the
full error report ASAP.
2018-09-28 21:13:27 -04:00
Henrik Lissner
4ea4754162 Add commands for using bin/doom from inside Emacs
This is experimental. I'd eventually like users to be able to management
Doom from inside Emacs, if they desire. This may be the only way to have
a decent user experience on Windows, for that matter.

Also adds a popup rule for it.
2018-09-28 21:13:27 -04:00
Henrik Lissner
078e3028a6 Minor, general comment revision 2018-09-28 21:02:59 -04:00
Sean Farley
8efc5828ea magit: only implement leader key logic when doom-leader-key is non-nil 2018-09-28 16:58:26 -07:00
Henrik Lissner
29ad900c1f
lang/css: refactor +css/toggle-inline-or-block
Replaces instances of replace-regexp (interactive-only functions),
removing the need for with-no-warnings and quiet!.

Improves regexp responsible for compacting whitespace in between
properties, which reduces compaction of whitespace in string arguments.
2018-09-27 22:44:07 -04:00
Henrik Lissner
4bdd6002a4
Restore projectile-project-root's old behavior
For now...
2018-09-27 21:55:19 -04:00
Henrik Lissner
d5f8ecdfce
ui/treemacs: fix leader key in treemacs
This is an ugly hack and I should be ashamed.

Shame.

Shame.

Shame.

But alas, it shall do until general.el is in.

Fixes #860
2018-09-27 18:16:21 -04:00
Henrik Lissner
01dde97776
lang/org: tweak org-todo-keywords{,-faces} 2018-09-26 20:44:54 -04:00
Henrik Lissner
c7032cf8b0
lang/web: fully remove nil autopair group
This removes the nil autopair group, rather than just setting it to nil.
No functional different, it's [slightly] more performant.
2018-09-26 20:38:47 -04:00
Henrik Lissner
431ea613b0
lang/python: set PIPENV_MAX_DEPTH in eval handler
Instead of changing the cwd, which chould have other reprecussions for
the code about to be executed.
2018-09-26 20:38:02 -04:00
Henrik Lissner
da55ee2af2
lang/python: fix pipenv support for +python/repl 2018-09-26 20:37:35 -04:00
Henrik Lissner
4a9a2c00d9
Remove smex-completion-read reference
Doom no longer uses smex.
2018-09-26 12:29:55 -04:00
Henrik Lissner
68699c3d5b
lang/python: make repl/eval handlers respect pipenv 2018-09-26 12:28:32 -04:00
Henrik Lissner
fcd1e913c5
tools/magit: update vc on +magit/quit
Instead of magit-post-refresh-hook, which fires much more frequently.
Updating vc across all buffers is expensive, so let's only do it when we
quit magit.

Warning: this may make quitting magit expensive when you have many
buffers open. Still searching for a better solution.
2018-09-26 12:10:00 -04:00
Henrik Lissner
d9a179d071
feature/evil: refactor neotree-make-executor fix
The autoload is necessary in case neotree was installed in another
session.
2018-09-26 10:46:43 -04:00
Henrik Lissner
eb9fa90adf
editor/parinfer: fix void-function evil-define-key errors
Parinfer uses `evil-define-key' without loading evil. This means that if
evil is installed *after* parinfer, parinfer will throw up void-function
errors, because evil-define-key (a macro) wasn't expanded at
compile-time.

So we make extra sure evil is installed before parinfer (or at least,
make sure evil-define-key is autoloaded at install time, in case evil
was installed in another session).
2018-09-26 10:45:05 -04:00
Henrik Lissner
4e0a4e1b51
lang/{ruby,python}: Fix advice arguments errors 2018-09-26 09:57:10 -04:00
Henrik Lissner
784dcf45f6
Merge pull request #911 from UndeadKernel/fix-pdf-modeline
tools/pdf: recognize modeline and doom-modeline
2018-09-26 09:23:34 -04:00
UndeadKernel
239c183b70 tools/pdf: recognize modeline and doom-modeline 2018-09-26 12:55:22 +02:00
Henrik Lissner
9afc61e57e
Refactor & optimize doom! + module API 2018-09-25 23:52:20 -04:00
Henrik Lissner
aa930256b8
Update doom/reload-project for changes upstream
In projectile.
2018-09-25 23:36:54 -04:00
Henrik Lissner
2a84836c11
+emacs-lisp-eval: emit backtrace on error
Running +eval/region (gr) and +eval/buffer (gR) will use
+emacs-lisp-eval (in emacs-lisp-mode buffers). This change will force it
to emit a backtrace in case of an error.
2018-09-25 23:26:08 -04:00
Henrik Lissner
8bdb42fe15
lang/ruby: major refactor
+ Robe is now to be started manually.
+ Adds more keybindings for robe (including <localleader> ' for
  robe-start).
+ Use ruby-mode if ruby isn't available (e.g. editing ruby files on
  remote systems), enh-ruby-mode otherwise.
+ Added rake, bundler, rvm, rbenv and minitest packages
+ Added $RBENV_ROOT/shims to exec-path. This should fix rbenv support
  for the ruby version display in the modeline.
2018-09-25 22:45:13 -04:00
Henrik Lissner
b91a8f0d2f
lang/python: rewrite modeline version segment
+ Add $PYENV_ROOT/shims was added to exec-path, so pyenv python version
  is picked up on.
+ Fixes out-of-date python version in the modeline of other buffers
  after switching pyenv/pyvenv/conda envs.
+ The pipenv version and regular python display have been merged.
2018-09-25 22:17:41 -04:00
Henrik Lissner
8afbb804d9
lang/ruby: add bundler + keybinds 2018-09-25 16:40:23 -04:00
Henrik Lissner
377dbae3fc
Install/compile packages in order of declaration
This should fix an issue where a package A, which uses macros from a
package B, is installed before package B, causing void-function errors.

The currently known and affected packages are neotree, parinfer, and
evil-collection.
2018-09-25 11:00:30 -04:00
Henrik Lissner
271e7689ae
Don't error when no gpg keys exist 2018-09-25 10:29:57 -04:00
Henrik Lissner
0c70d1bf08
Remove defunct [h keybind (smart-backward) 2018-09-24 08:36:20 -04:00
Henrik Lissner
3dbeb4e3a7
Add doctstrings to +evil/fold-* commands 2018-09-23 21:06:45 -04:00
Henrik Lissner
8c4504380f
+evil/fold-toggle: don't hide recursively
Otherwise sub-entries will be folded and remain folded when unfolding
entries.
2018-09-23 21:04:20 -04:00
Henrik Lissner
b53b300657
Don't affect ivy-switch-buffer's transformer
ivy-rich already does this under the hood. This is redundant.
2018-09-23 16:30:43 -04:00
Henrik Lissner
5a079c7fd6
Enable company-mode in comint-modes 2018-09-23 16:30:23 -04:00
Henrik Lissner
c2c7def192
editor/multiple-cursors: better command whitelist
+ Fixes explicit usage of evil-escape from evil-mc cursors (e.g. M-x
  evil-escape or C-g, not the escape sequences jk/fd)
+ Fixes delete-char (DEL key) from cursors
+ Fixes all custom commands when used with a COUNT
2018-09-23 10:26:41 -04:00
Henrik Lissner
5fd0699158 init.example.el: disable with two semicolons
This avoids disruptive behavior where aggressive reformatting tools --
like parinfer, aggressive-indent, the elisp formatter (in the
editor/format module), or even Emacs' own indent-according-to-mode
command -- will reindent lines commented with one semicolon far to the
right.
2018-09-22 16:38:35 -04:00
Henrik Lissner
74af5bde26 ui/modeline: fix buffer file path segment
To cope with changes upstream in the projectile package.
2018-09-22 13:15:12 -04:00
Henrik Lissner
cffb1d367f Update without-project-cache! macro
To match upstream changes in projectile
2018-09-22 13:15:12 -04:00
Henrik Lissner
ac63596be8 Fix doom-project-root returning nil if no project
It should return default-directory. A change upstream broke this.
2018-09-22 13:15:12 -04:00
Henrik Lissner
7acece3e0b
Disable projectile mode-line segment
If either module module is active, this is just extra overhead.
2018-09-22 11:47:36 -04:00
Henrik Lissner
f8fb321f2c
Remove outline support from +evil/fold-close-all
It is buggy in modes with a poorly written outline-level function (like
elisp).
2018-09-22 10:34:31 -04:00
Henrik Lissner
736bdeb205
lang/org: fix variable font-size for agenda paths
When you hover your cursor over agenda items, the path to that headline
is displayed in the minibuffer. If org-level-N have unusual :height
values, they'll cause the minibuffer to grow.

This removes any variable font sizes from this display.
2018-09-22 01:37:47 -04:00
Henrik Lissner
75ad188e01
Fix :defer-incrementally t
Should be the same as :defer-incrementally (<package-name>)
2018-09-21 22:43:52 -04:00
Henrik Lissner
9726a982d1
lang/org: revise org-modules & revise load order
Improves the startup performance of org-mode by disabling modules I
don't think are commonly used (it's easy to add back however).
2018-09-21 22:42:26 -04:00
Henrik Lissner
ed1775b42d
lang/org: refactor +babel/ipython library
+ Conform ipython advice and helpers to naming conventions.
+ Refactor out dash.el usage
2018-09-21 22:38:21 -04:00
Henrik Lissner
fad1fc8f1b
Resolve GPG keys by user name instead of address #877
epa-file-encrypt-to is now set to the ids of all keys that match
user-full-name, if it is set. This should fix issues with multiple keys
with the same email addresses.
2018-09-21 14:06:15 -04:00