Commit Graph

1416 Commits

Author SHA1 Message Date
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
a37d199862 lang/org: add ob-async 2018-12-10 20:31:31 -05:00
ced8f94830 lang/org: improve ob-async lazy loading
ob-async adds its own advice around org-babel-execute-src-block, which
directly interferes with Doom's lazy loader for babel
packages (sometimes bypassing it entirely). This ensures it can't do
that.
2018-12-10 18:09:28 -05:00
2d13dbe10a lang/org: fix ob-async support
ob-async uses org-babel-load-languages to load babel packages in a child
process, but packages entered into the org-babel-load-languages variable
by Doom's lazy loader were misnamed. This caused load errors in the
child process.

The language-to-package resolution is now performed before it is entered
into org-babel-load-languages. Additionally, ob-async will now be lazy
loaded if it is available (and fail silently otherwise).
2018-12-10 13:50:58 -05:00
5e96b42ccc lang/latex: fix TeX-latex-mode error
Caused because use-package is creating an autoload for TeX-latex-mode as
if it were in the tex package, but it's in the latex package, instead.

Since auctex already autoloads TeX-latex-mode, there's no need to set
our own.
2018-12-06 19:07:36 -05:00
c2bce8cee4 lang/elixir: src_block{,_end} commented out 2018-12-06 17:09:00 +11:00
1dc3e5289b lang/elixir: add pretty-symbols 2018-12-06 17:05:50 +11:00
408eecad8e lang/python: lazyload python-pytest #1026 2018-12-05 22:11:54 -05:00
38d0d88018 lang/common-lisp: lazyload sly-repl-ansi-color #1032 2018-12-05 22:11:54 -05:00
7b761a9b42 Refactor feature deferral for (common|emacs)-lisp
'lisp-mode is now deferred, to make it easier to lazy-configure it
2018-12-05 22:11:54 -05:00
f003d2b4fe Merge pull request #1032 from mfiano/develop
Various changes
2018-12-05 18:59:42 -05:00
4455dc8baa Extract ipython/jupyter arglist to variables
Also fixes #1022 by removing default --pylab arg from
+python/open-ipython-repl.
2018-12-05 14:31:02 -05:00
553cee5921 lang/cc: remove naive cdb file check #1028
irony looks for compile_commands.json in several places, but
+cc/reload-compile-db would error out if there it didn't exist at the
project root.
2018-12-05 14:22:14 -05:00
1a7797f0fa Merge pull request #1026 from Emiller88/feature/pytest
Add pytest
2018-12-03 23:16:12 -05:00
30fbb0d62f Lazy-load python-pytest 2018-12-03 23:15:40 -05:00
714c30aea1 Merge pull request #1034 from djeis97/coq-popup-config
Coq popup config
2018-12-03 22:24:33 -05:00
84af639fc3 set-popup-rules! -> set-popup-rule!
Semantic refactor.

Also adjusts regexp to use non-capturing group (for slight performance benefit).
2018-12-03 22:23:57 -05:00
dcbcc4d1e7 Added a popup rule to ignore proof general popups 2018-12-02 13:22:42 -05:00
261750c158 Fix: Improve common-lisp module bindings 2018-12-02 01:51:48 -05:00
89c1180b73 Minor: lexicographically sort bindings
Just so I can see what is bound already more easily.
2018-12-02 00:42:15 -05:00
2522862016 Feature: Enable sly-repl-ansi-color in common-lisp
This gives ANSI color escape sequence support in the REPL, needed by
some software.
2018-12-01 15:30:48 -05:00
3635e23be7 Minor: common-lisp macro expander hydra as default
It is usually the case that we want to easily step through the expansion
of a macro inline, so prevent a modifier key press.
2018-12-01 15:26:44 -05:00
fead537328 Fix: common-lisp module jump hydra conflict
This hydra conflicts with Doom's popup windows in the case a jump
creates a sly-xref-mode buffer. Use direct local leader bindings instead.
2018-12-01 15:25:12 -05:00
52f805ba62 Add some extra keybindings 2018-11-23 11:14:25 -06:00
2c0b0fac77 Keybindings are added to python-mode-map 2018-11-23 11:06:03 -06:00
e9bdf89c73 Fix 'SPC m b r' in go-mode. 2018-11-23 23:13:32 +09:00
ba49765358 Initial pytest 2018-11-22 12:53:08 -06:00
7e02cbb17d lang/python: add miniconda3 path 2018-11-14 22:33:18 -08:00
80e53eee5d lang/python: add homebrew miniconda3 path
For `brew cask install miniconda`
2018-11-15 00:55:54 -05:00
a1e8fde75c Removed :select nil from cider-repl popup rules 2018-11-13 21:29:16 -05:00
2f47ab9f28 Merge pull request #1001 from myme/company-psc-ide-backend
purescript: Properly register company backend
2018-11-13 18:19:14 -05:00
412063f452 lang/web: fix 'pair was never defined' error
Caused by recent change upstream, in smartparens
2018-11-12 02:38:09 -05:00
34c490aae5 lang/web: correct config file check for jekyll
Jekyll looks for _config.(yml|toml), not config.yml.
2018-11-07 19:22:03 -05:00
b9b9c629af purescript: Properly register company backend 2018-11-05 20:10:38 +01:00
4029bd7dd0 lang/ocaml: drop bad imenu initialization 2018-10-31 00:03:26 +00:00
81cccbcc51 lang/org: only update parent statistics cookies
This would formerly update _all_ statistics cookies in the org document,
which can be terribly slow in large documents. This restricts that to
just the parent headlines of the subtree the cursor is in.
2018-10-30 16:20:25 -04:00
86305f2175 lang/haskell: just detect evil
Instead of detect the feature/evil module. This is more versatile.
2018-10-24 01:14:35 -04:00
0665d10377 lang/ruby: remove dtrt-indent fix
This was merged upstream
2018-10-24 01:08:31 -04:00
f9d6ee49ee lang/haskell: fix evil keybinds for intero/dante 2018-10-24 01:08:11 -04:00
e0f7ba19cd lang/org: use correct todo on RET
Improves on baa6f640. This fixes RET cycling between different keyword
sets.
2018-10-19 15:44:25 -04:00
8e67e591d6 lang/org: don't conditionally install org-yt
Forgot to update packages.el in b292795.
2018-10-19 12:54:47 -04:00
e8b6887259 lang/rust: remove company-racer
Racer provides completion-at-point integration, which makes
company-racer redundant (and it conflicts with company-capf).
2018-10-18 13:11:28 -04:00
936f13744b lang/org: improve error handling for remote image previews 2018-10-18 12:54:37 -04:00
b2927955e7 lang/org: move org-yt out of +attach in config.el 2018-10-18 12:51:35 -04:00
ecaa8fc7cd lang/org: move custom links into new hook function 2018-10-18 12:50:39 -04:00
99b7b7f740 lang/org: add inline base64/http(s) image support
Adds inline image preview support for http/https links, as well as
base64 encode image support with the img protocol. e.g.

Examples:
[[http://domain.com/some/image.png]]
[[https://raw.githubusercontent.com/hlissner/doom-emacs/screenshots/company.png]]
[[img:iVBORw0KGgoAAAANSUhEUgAAACUAAAAuCAAAAACKMo8cAA...]]
2018-10-17 16:31:23 -04:00
fda4734164 lang/common-lisp: disable fuzzy/flex completions
Fuzzy search is slower and less predictable, and is generally disabled
by default across Doom (or gated behind variables/flags).
2018-10-17 15:01:03 -04:00
baa6f64025 lang/org: use correct todo keyword on M-RET
Previously, new TODO headers created with M-RET or M-S-RET (bound to
+org/insert-item) would use the first TODO keyword in org-todo-keywords
in the new header. This wouldn't necessarily match the previous header.
e.g.

* [ ] Item 1
* TODO |

This fix ensures new headers will preserve the correct header, even if
the previous one is in a DONE state.

* [ ] Item 1
* [ ] |
2018-10-17 01:24:26 -04:00
a1ca5b2850 lang/ocaml: update README
Signed-off-by: Edwin Török <edwin@etorok.net>
2018-10-17 00:13:20 +01:00
a4a42d3141 lang/ocaml: enable merlin-imenu and merlin-iedit (part of merlin)
merlin-imenu works nicely with `SPC / i`.

merlin-iedit is a refactoring tool that locates all occurences of an
identifier in scope and you can use multiple cursors to edit.
integration with evil-multiedit could be better.

There is also a merlin-xref backend, but since we got the individual
def/lookup/etc. already bound not sure if it is worth using it.

Signed-off-by: Edwin Török <edwin@etorok.net>
2018-10-17 00:06:20 +01:00