Commit Graph

424 Commits

Author SHA1 Message Date
Henrik Lissner
dac0307a80
Rewrite menu system
On consecutive runs, def-menu dispatchers now rerun the last command,
unless the universal argument is passed. e.g. SPC u SPC m b

The :cwd and :project properties now accept functions (take no arguments
and return a directory or boolean).
2018-03-14 19:03:32 -04:00
Henrik Lissner
cdbd677423
Allow use of package.el #444
This makes package.el commands safe to use in Doom, and prevents errors
caused by unitialized state, by running package-initialize before
you use a package.el command.
2018-03-14 18:25:25 -04:00
Henrik Lissner
44d30ca3ce
Fix doom-active-minor-modes 2018-03-14 04:49:14 -04:00
Henrik Lissner
03e6900d3c
doom//packages-update: output feedback earlier 2018-03-13 03:18:02 -04:00
Henrik Lissner
74c8b1d113
Rewrite doctor; move warn! blocks out in doctor.el files 2018-03-12 13:32:01 -04:00
Henrik Lissner
5726da8be2
Fix unbalanced-parenthesis error in some helpful-variable buffers 2018-03-12 13:32:00 -04:00
Henrik Lissner
686ce7b26e
New doom-delete-backward-functions hook as fallback in doom/delete-backward-char 2018-03-12 12:42:26 -04:00
Henrik Lissner
7afc62fb1d
Rewrite scratch buffer commands
+ No longer open persistent scratch buffers by default. Supply the
  universal argument to do that.

  SPC x = open throw-away scratch buffer
  SPC u SPC x = open persistent scratch buffer (prompted for file)

+ Added doom/delete-scratch-files
2018-03-07 21:15:15 -05:00
Henrik Lissner
4c535b2643
Refactor + slight optimization for backspace #452 2018-03-06 16:19:47 -05:00
Henrik Lissner
74d8ea2b0f
New doom-demote-warnings option for suppress dependency warnings 2018-03-05 03:02:17 -05:00
Henrik Lissner
55b2a6df68
Fix doom/forward-to-last-non-comment-or-eol when visual-line-mode is off #450 2018-03-05 02:59:21 -05:00
Henrik Lissner
57efa1b864
Update & fix unit tests 2018-03-02 20:46:45 -05:00
Henrik Lissner
0425724571
Major rewrite of doom module API
+ Fix #446, where the .local/packages.el cache was generated with
  a faulty load-path.
+ Entries in the doom-modules hash table are now plists, containing
  :flags and :path, at least.
+ Add doom-initialize-modules for loading module config.el files.
+ Add doom-module-get for accessing this plist, e.g.

    (doom-module-get :some module)         ; returns plist
    (doom-module-get :some module :flags)  ; return specific property

+ Replace doom-module-enable with doom-module-set, e.g.

    (doom-module-set :some module :flags '(+a +b +c))

+ Remove doom-module-flags (use doom-module-get instead)
+ Rename doom-module-enabled-p with doom-module-p
+ Replace doom-module-path with doom-module-find-path and
  doom-module-expand-file. The former will search for an existing module
  or file in doom-modules-dirs. The latter will expand the path from
  whatever path is stored in doom-modules.
+ Replace doom-module-paths with doom-module-load-path
+ Changed doom! to allow for nested doom! calls by delaying the loading
  of module config.el files until as late as possible.
+ Refactor doom-initialize-packages to only ihitialize package state
  (i.e. doom-packages, package-alist, and quelpa-cache), rather than its
  previous behavior of loading all Doom files (and sometimes all module
  files). This is faster and more predictable.
2018-03-02 19:14:45 -05:00
Henrik Lissner
7542f4a660
Fix doom-visible-windows including popup windows 2018-03-01 22:07:14 -05:00
Henrik Lissner
2f7c9254d6
Fix over-zealous delete-backward-char #431
Would consume entire sexps.
2018-02-24 20:05:35 -05:00
Henrik Lissner
55c6244e9f
doom-install-package: clean up after failed quelpa install 2018-02-22 04:48:36 -05:00
Henrik Lissner
446a66603f
Fix quelpa packages looking up elpa version
This is a regression introduced in b1bf67f6.

Package management would incorrectly compare quelpa package versions
with elpa package versions. This would cause "outdated" packages to get
deleted.
2018-02-22 04:19:25 -05:00
Henrik Lissner
fe81a501f3
Fix void-function doom--menu-read error in byte-compiled Doom #427
The macro would be expanded, and then its helpers would never be loaded.
2018-02-21 15:32:51 -05:00
Henrik Lissner
7bfd0a3304
And changed-quelpa-recipe detection
These packages are now reinstalled on make install.
2018-02-20 17:55:55 -05:00
Henrik Lissner
b1bf67f630
Refactor package init process
quelpa is now initialized by doom-initialize-packages.
2018-02-20 17:54:10 -05:00
Henrik Lissner
95009c08f8
doom/describe-module: detect module associated with major-mode 2018-02-19 20:27:18 -05:00
Henrik Lissner
cf4420e903
Fix doom//run-tests 2018-02-17 22:18:04 -05:00
Henrik Lissner
d04a1fa940
Remove doom-module-pairs 2018-02-16 04:47:02 -05:00
Henrik Lissner
2b1c323dbf
💥 Redesign private sub-module system
~/.doom.d/modules is now a full module tree, like ~/.emacs.d/modules.
Symlinks are no longer involved.

Private modules can now shadow Doom modules. e.g.
~/.doom.d/modules/lang/org will take precendence over
~/.emacs.d/modules/lang/org.

Also, made doom--*-load-path variables public (e.g. doom--site-load-path
=> doom-site-load-path), and rearranged the load-path for a 10-15%
startup boost.
2018-02-16 02:11:10 -05:00
Henrik Lissner
dfefbd0176
Fix make test not resetting doom-modules properly 2018-02-14 21:18:56 -05:00
Henrik Lissner
4321f20b3e
Appease byte-compiler-sama 2018-02-14 20:54:53 -05:00
Henrik Lissner
ae52b2ff60
Fix empty load-file-name in warn! macro during byte-compilation 2018-02-14 20:52:25 -05:00
Henrik Lissner
0f404a513a
Fix overaggressive backspace
delete-backward-char would kill adjacent delimited regions:

1. |
   (...)
2. (|...)
2018-02-14 16:46:01 -05:00
Henrik Lissner
57adae5ec6
Introduce more opinionated backspace/del/newline behavior
+ Instead of remapping delete-backward-char to doom/delete-backward-char
  (which was unreliable, depending on the mode), it is now overridden
  with it, without sacrificing its original functionality. The new
  behavior is as follows:
  + Fall back to sp-backward-delete-char when it makes sense to delete
    the adjacent pair: {|} => |
  + Collapse an indented pair block, if at bolp in between: {
      |
    } => {|}
  + Refresh a pair's :post-handlers when deleting into pair: {
      |
    } => {|} => {
      |
    } (can be repeated)
  + When cursor is preceded by whitespace, delete in increments of
    tab-width.
+ newline-and-indent has been advised to:
  + Only newline when in a string.
  + Continue comment lines consistently (needs more testing!)
  + Falls back to basic newline-and-indent, without affecting whitespace
    in the origin line (it would originally delete-horizontal-space
    before creating a new line).
+ Incorporates a set of reasonable defaults for brace expansion on RET
  or SPC, as mentioned in #343 and #413.

Affects #343, #413
2018-02-14 05:42:51 -05:00
Henrik Lissner
11373e0128
Move doom-ansi-apply away from macros + add docstring 2018-02-14 05:40:37 -05:00
Henrik Lissner
5e5d075431
New doom/*-this-file commands; move doom/sudo* to new files library 2018-02-14 05:40:37 -05:00
Henrik Lissner
f6039eaee3
Use delay-warning instead of message in warn! macro 2018-02-14 03:17:51 -05:00
Henrik Lissner
cb3e780a96
Fix package manager not detecting outdated quelpa packages 2018-02-13 05:23:40 -05:00
Henrik Lissner
ba19032d29
Rename doom/narrow-buffer => doom/clone-and-narrow-buffer 2018-02-12 01:44:02 -05:00
Henrik Lissner
57b2b5c546
Fix doom//packages-update not updating dependencies 2018-02-11 16:13:15 -05:00
Henrik Lissner
0019deb276
Rewrite doom/info 2018-02-10 17:27:02 -05:00
Sergey Trofimov
139a0c8045 Fix kill-buffer arguments. 2018-02-10 19:36:06 +03:00
Henrik Lissner
7e87ab3e29
New warn! macro; replace debug! with log! macro 2018-02-04 17:53:31 -05:00
Henrik Lissner
7d9f2e5078
New doom/toggle-debug-mode command 2018-02-04 17:53:05 -05:00
Henrik Lissner
414383e5f4
Remove vestigial references to doom/{next,previous}-buffer 2018-02-04 05:05:40 -05:00
Henrik Lissner
245ef02597
Fix misplaced info in doom/info output
And update its docstring
2018-02-04 01:39:50 -05:00
Henrik Lissner
4262b9912c Revert "Move init.test.el into core/autoload/test.el"
This reverts commit 3bfb7fa17d.
2018-02-03 22:46:18 -05:00
Henrik Lissner
e2a6028643
Add docstring to doom/toggle-profiler 2018-02-03 22:41:34 -05:00
Henrik Lissner
ee24aba034
Fix whitespace inconsistencies in doom/info 2018-02-03 22:35:40 -05:00
Henrik Lissner
3bfb7fa17d
Move init.test.el into core/autoload/test.el 2018-02-03 03:30:49 -05:00
Henrik Lissner
1dfe6c472a
Rewrite doom/info for concise debug output 2018-02-02 23:44:09 -05:00
Henrik Lissner
160902bd18
Remove doom/toggle-fullsreen; redundant with toggle-frame-fullscreen 2018-02-02 20:47:34 -05:00
Henrik Lissner
bbb969fa59
Combine doom/open-scratch-buffer & doom/open-project-scratch-buffer
These two are now doom/open-scratch-buffer. If you're in a project,
a (persistent) scratch buffer is opened. Otherwise, a non-persistent,
transient scratch buffer is opened.

If ARG (universal argument) is non-nil, then use the current window
instead of a new window (or popup, if feature/popup is enabled).

Also, the ex command :x[!] is improved. The BANG = open in current
window.
2018-02-02 20:47:33 -05:00
Henrik Lissner
d1953e00c4
Remove doom--cycle-real-buffers; refactor kill-this-buffer advice
cycle-real-buffers was a tidbit of complexity that was never necessary
in the first place. This functionality was already available in the form
of the frame buffer-predicate parameter, which controls where functions
like next-buffer and other-buffer can land you.

The only thing I have to do myself, is check for the condition where
there are no more real buffers left to switch to, and in that case send
you to the fallback-buffer.
2018-02-02 20:47:31 -05:00
Henrik Lissner
ca262f5e4e
Rename doom-fallback-buffer (variable) => doom-fallback-buffer-name 2018-02-01 20:06:00 -05:00