Commit Graph

177 Commits

Author SHA1 Message Date
b7228fdfad Default to ivy, rather than helm
As an ivy user, I maintain the ivy module more actively. Also, my former
misgivings with ivy have mostly be resolved.
2019-02-24 22:24:57 -05:00
69ed1a4a99 feature/{syntax-checker,spellcheck} -> tools/fly{check,spell} 2019-02-22 00:25:30 -05:00
88f50bbdec Merge pull request #1144 from SteamedFish/develop
Add vterm layer
2019-02-21 20:16:57 -05:00
cb923eadcc Add basic LSP support
Still needs to be documented, but includes support for the following
languages:

+ C/C++/ObjC
+ Go
+ Java
+ Javascript
+ OCaml
+ PHP
+ Python
+ Ruby
+ Scala
+ Swift
+ HTML/CSS

Relevant to #460, #716, #1186
2019-02-21 19:13:35 -05:00
ec55884aae General, minor reformatting & refactor 2019-02-18 00:47:46 -05:00
7d0caf3efd New editor/fold module
Extracted from feature/evil and emacs/hideshow.
2019-02-18 00:47:46 -05:00
3dcd253f71 Remove emacs/ediff & move to core-ui 2019-02-17 21:54:26 -05:00
d6496fc168 rename vterm from :emacs to :tools 2019-02-17 00:18:39 +08:00
424c358786 Add vterm layer
vterm layer uses emacs-libvterm for terminal support
2019-01-27 03:53:33 +08:00
9f2dff02fa Rethink config/default & keybindings
+ Added +smartparens flag to config/default for default smartparens
  config.
+ Fixed +tng support for completion/company.
+ Removed super keybinds (for all but MacOS)
+ Moved "keybind fixes" to config/default/config.el (these should be
  universally available).
+ Replaced both +default-repeat-forward-key and +default-repeat-backward-key
  with +default-repeat-keys. If this variable is nil, the universal
  repeat motions won't be bound.
2018-12-24 00:04:50 -05:00
f35837755c Disable tools/editorconfig by default 2018-12-22 20:18:29 -05:00
4daa9271a0 Introduce general.el & rewrite map!
+ Now uses an overriding keymap for leader keys, so that it is always
  available, even outside of normal/visual states. In insert/emacs
  states, or in sessions where evil is absent, an alternative prefix is
  used for leader/localleader keys. See these variables:
  + doom-leader-prefix
  + doom-leader-alt-prefix
  + doom-localleader-prefix
  + doom-localleader-alt-prefix
+ Keybinds now support alternative prefixes through the new :alt-prefix
  property. This is useful for non-evil users and non-normal evil
  states. By default, this is M-SPC (leader) and M-SPC m (localleader).
+ Removed +evil-commands flag from config/default (moved to
  feature/evil/+commands.el).
+ config/default/+bindings.el has been split into
  config/default/+{evil,emacs}-bindings.el, which one is loaded depends
  on whether evil is present or not. The latter is blank, but will soon
  be populated with a keybinding scheme for non-evil users (perhaps
  inspired by #641).
+ The define-key! macro has been replaced; it is now an alias for
  general-def.
+ Added unmap! as an alias for general-unbind.
+ The following modifier key conventions are now enforced for
  consistency, across all OSes:
    alt/option      = meta
    windows/command = super
  It used to be
    alt/option      = alt
    windows/command = meta
  Many of the default keybinds have been updated to reflect this switch,
  but it is likely to affect personal meta/super keybinds!

The map! macro has also been rewritten to use general-define-key. Here
is what has been changed:

+ map! no longer works with characters, e.g. (map! ?x #'do-something) is
  no longer supported. Keys must be kbd-able strings like "C-c x" or
  vectors like [?C-c ?x].
+ The :map and :map* properties are now the same thing. If specified
  keymaps aren't defined when binding keys, it is automatically
  deferred.
+ The way you bind local keybinds has changed:

    ;; Don't do this
    (map! :l "a" #'func-a
          :l "b" #'func-b)
    ;; Do this
    (map! :map 'local "a" #'func-a
                      "b" #'func-b)

+ map! now supports the following new blocks:
  + (:if COND THEN-FORM ELSE-FORM...)
  + (:alt-prefix PREFIX KEYS...) -- this prefix will be used for
    non-normal evil states. Equivalent to :non-normal-prefix in general.
+ The way you declare a which-key label for a prefix key has changed:

    ;; before
    (map! :desc "label" :prefix "a" ...)
    ;; now
    (map! :prefix ("a" . "label") ...)

+ It used to be that map! supported binding a key to a key sequence,
  like so:

    (map! "a" [?x])  ; pressing a is like pressing x

  This functionality was removed *temporarily* while I figure out the
  implementation.

Addresses: #448, #814, #860
Mentioned in: #940
2018-12-22 04:14:43 -05:00
d6ad5942be emacs/dired: move ranger module to ranger feature in dired module 2018-12-07 22:27:03 -08:00
b00ce82ef9 emacs/ranger: add ranger module to doom 2018-12-05 23:11:26 -08:00
43502af697 Merge pull request #998 from ar1a/lispy-init
Add lispy to init.example.el
2018-11-13 18:16:33 -05:00
19539dacef Alphabetize & disable lisp in init.example.el 2018-11-13 18:15:32 -05:00
7d2d27abe6 Make +childframe, +auto & +fuzzy opt-in
- +childframe is buggy on MacOS
- +auto is slow in some modes
- +fuzzy is slow with some ivy/helm commands
2018-11-12 02:37:58 -05:00
90f30efa67 Add lispy to init.example.el 2018-11-04 00:17:17 +11:00
91b76d8437 Move default snippets library to feature/snippets
Removes the +snippets flag from config/default. The default snippets can
be disabled by disabling the emacs-snippets package.
2018-11-02 18:43:44 -04:00
a116507672 Add tools/terraform to init.example.el 2018-10-16 14:02:02 -04:00
ae7fbf05c0 init.example.el: fix swtft -> swift typo 2018-10-16 13:53:32 -04:00
90140f1ab5 Add vala-mode 2018-10-16 06:22:34 +03:00
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
62212a4b94 Add tools/ansible 2018-09-11 22:42:05 +03:00
6052e27bd1 Alphabetize :tools docker in init.example.el 2018-09-09 09:55:56 -04:00
2fdd82a8f0 Add docker to init.example.el 2018-09-08 03:22:34 +03:00
3d5c8ba279 Add :lang idris to init.example.el
Needs a witty comment!
2018-09-02 17:20:19 +02:00
25ef67d01b Merge pull request #849 from patrl/initUpdate
init.example.el update
2018-08-31 03:33:16 +02:00
0cf9d1f2f2 Minor refactor & revision across the board 2018-08-31 02:53:50 +02:00
10a1e46bf5 Added deft and coq modules 2018-08-29 11:03:28 +02:00
a57c0fbede feature/lookup: remove devdocs support (for now)
devdocs-lookup is broken at the moment. devdocs search is still
available through +lookup/online as a provider however. This may be
reversed later, when (and if) we find a better devdocs backend.
2018-08-28 20:52:27 +02:00
f51f2948af New :editor format module
Centralized code formatting with built-in support for a variety of
languages. Provides the set-formatter! function for defining your own.

Still experimental and needs more testing!
2018-08-22 02:20:11 +02:00
a01aeb6daf Make helm the default completion module for Doom
It's been a change a long time coming. Ivy's snappiness and simple API
was Ivy's selling point (as far as Doom is concerned). It helps that
much of helm's vast featureset has been ported over and its API is so
much simpler to grok, but its greatest weakness lies in its choice of
display mechanism: the minibuffer.

Ivy's performance suffers dramatically with large datasets because
mutating results in the minibuffer blocks the minibuffer, which also
happens to be where we type in our queries. This can make input feel
dreadfully sluggish in the best cases, locking up Emacs entirely in the
worst.

Helm updates a buffer asynchronously, so it suffers none of this (though
the overhead of maintaining this buffer is certainly overkill for tiny
datasets).

And Ivy's simple API, while easier to understand, is significantly less
powerful. That it takes so much effort to grok Helm is a huge turn
off (and of course, no fault of the dev). Still, there simply is no
excuse for power users like myself to not do so anyway. The more I learn
about it, the more I wonder why I stuck to ivy for so long (but also
reminds me exactly why I did)!
2018-08-06 00:31:23 +02:00
8d26879f99 Add :editor multiple-cursors module
Moves evil-mc/evil-multiedit out of feature/evil.
2018-08-06 00:31:23 +02:00
884173112c Add :lang racket to init.example.el 2018-07-29 19:31:32 +02:00
088480047c Polish & move new modeline into :ui modeline
Removes modeline library out of core-ui and contains them in :ui
doom-modeline and :ui modeline.

:ui modeline will eventually replace :ui doom-modeline, but is still
considered experimental. This update provides makes it much more stable
and closer to being feature complete.
2018-07-29 19:31:32 +02:00
a2ffbe4ede Add new emacs/hideshow module
Brings better default code folding support to various languages, like
yaml, ruby, matlab, haml and vimrc. Hideshow is still quite
unsophisticated and will need the help of another package for complete
code folding functionality. Perhaps origami or vimish fold.

The code-folding functional in the feature/evil module will soon be
replaced by that.
2018-07-29 17:41:59 +02:00
d6461d495b General & minor reformatting+refactor 2018-07-19 03:40:31 +02:00
8ff5543d3b Moved lang/fish into lang/sh +fish 2018-07-18 15:56:55 -04:00
8bdc0f72b8 Added fish to init.example.el 2018-07-18 11:29:26 -04:00
f540c6c40a Disable neotree, enable treemacs (by default) 2018-07-11 01:09:14 +02:00
3a3eb92087 Move :tools rotate-text to :editor rotate-text
This change was a long time coming.
2018-06-22 01:49:20 +02:00
60779c9aed feature/version-control => ui/vc-gutter, emacs/vc
Reorganize vcs functionality. Moves the custom fringe bitmaps into :ui
vc-gutter.
2018-06-22 01:49:20 +02:00
9d8679cfaa Fix init.example electric module
I've been keeping my init up-to-date with the example, but the example
still has `electric-indent` whereas `make` warns me it's been renamed to
`electric`. This provides the correct module name in the example.
2018-06-20 09:32:05 -07:00
bac00f7d0a Enable +irony +rtags by default in init.example.el 2018-06-17 14:45:07 +02:00
ec8ae0bedc Add :ui pretty-code & set-pretty-symbols! autodef
Along with defaults for C/C++, elm, elisp, js, typescript, web-mode, and
org-mode. Thanks to @ar1a for inspiration.
2018-06-16 19:32:25 +02:00
733ac8bed7 Add :lang common-lisp to init.example.el 2018-06-14 19:49:55 +02:00
04ec62c8f2 General, minor refactor & feedback revision 2018-06-14 19:49:03 +02:00
63a8c30765 Merge pull request #670 from ar1a/parinfer
:editor parinfer for lisp editing
2018-06-12 21:36:46 +02:00
5d79729c15 Move :editor to top; disable parinfer by default
And shorten post-comment.
2018-06-12 21:36:09 +02:00