Commit graph

923 commits

Author SHA1 Message Date
Henrik Lissner
0502b9581e
feature/lookup: reformat/revise README 2019-01-05 17:18:13 -05:00
Henrik Lissner
9db39b0242
feature/lookup: remove unused set-docset! alias 2019-01-05 17:14:57 -05:00
Henrik Lissner
d02b601dd4
feature/lookup: refactor set-lookup-handlers! docs 2019-01-05 17:04:40 -05:00
Henrik Lissner
fffee76f7a
feature/eval: update README (remove :repl)
And use a simpler set-repl-handler! example.
2019-01-05 16:55:01 -05:00
Henrik Lissner
6a03b37dd3
General refactor for comments & docstrings 2019-01-05 15:20:49 -05:00
Henrik Lissner
5274ab6368
feature/eval: rewrite README (WIP) 2019-01-03 02:01:57 -05:00
Henrik Lissner
cc36f9608e
feature/snippet: reformat README (WIP) 2019-01-03 01:52:06 -05:00
Henrik Lissner
5c9c59a719
feature/file-template: add README (WIP) 2019-01-03 01:51:34 -05:00
Henrik Lissner
415a542ce9
feature/evil: rewrite README 2019-01-03 01:49:15 -05:00
Henrik Lissner
64e633df0d
Add feature/evil/+commands.el 2018-12-22 04:43:48 -05:00
Henrik Lissner
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
Henrik Lissner
c71a73e43b
feature/eval: split shrink-window & scroll-to-bof hook
Easier to customize.
2018-12-06 17:45:53 -05:00
Henrik Lissner
72bf089249 Move evilified helpful keybinds to feature/evil
So that they are available even if config/default isn't enabled.
2018-12-05 22:11:54 -05:00
Henrik Lissner
7c3cc3ed5f Expand %:P relative to % instead of current buffer
So ~/some/other/project/somefile.txt:P will resolve to
~/some/other/project, and not the project root of the current buffer.
2018-12-05 22:11:54 -05:00
Henrik Lissner
9363ea8738
Don't trigger flycheck on leaving insert state
This is a bit overzealous (and can be slow where slow checkers/big
projects are involved). Triggering it on ESC from normal mode (or C-g)
should be enough.
2018-11-07 19:24:59 -05:00
Henrik Lissner
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
Quentin Le Guennec
db9bc3848d feature/workspaces: Fix +workspace-delete to match docstring 2018-10-30 19:10:16 +01:00
Henrik Lissner
9599ca3cf2
feature/lookup: fix missing other-window args
For +lookup/references & +lookup/documentation
2018-10-22 22:16:27 -04:00
Henrik Lissner
915467cb13
feature/lookup: update dumb-jump integration
dumb-jump-go now returns a results plist, so our cl-letf hack is no
longer necessary.
2018-10-21 17:54:15 -04:00
Henrik Lissner
9337c3f8c3
feature/lookup: fix OTHER-WINDOW arg
For +lookup/definition, +lookup/references and +lookup/documentation.
2018-10-21 17:53:23 -04:00
Henrik Lissner
54749d04e6
Have :P modifier throw error when not in a project
If it returns nil, it will throw a stringp error otherwise.
2018-10-19 23:27:58 -04:00
Henrik Lissner
ab95ae1975
feature/eval: minor refactor
Now that I've "backported" display-line-numbers to Emacs 25, it isn't
necessary to conditionally enable nlinum-mode.

Also, use after! isntead of def-package!; this usage is equivalent, and
after! imposes less overhead.
2018-10-19 22:01:01 -04:00
Henrik Lissner
005a07b416
+evil:apply-macro: fix operator & fail gracefully
Formly, this would fail silently. This has been rewritten to let you
know if no macro is available at a register. It will also inform you how
many times the macro was executed.

Also fixes g@ not invoking the operator state.
2018-10-18 19:41:29 -04:00
Henrik Lissner
2ca2050c6d
feature/evil: fix o/O indentation in haskell-mode
Refactors +evil*insert-newline-*-and-respect-comments advice. This also
fixes an issue where o uses haskell's line indenter in haskell-mode,
which is naive. Instead, we use haskell-indentation-newline-and-indent,
which is smarter.

This is a dirty dirty hack. May Nyarlathotep have mercy on our souls.

Reported by @ar1a
2018-10-18 12:17:30 -04:00
Henrik Lissner
09f9e12638
Fix evil-open-above in auto-filled comments
If comment-auto-fill-only-comments is enabled, evil-open-above (O) can
break comments, e.g. in haskell

-- 1 :. 2 :. 3 :. Nil
-- |a
--

Becomes

-- 1 :. 2 :. 3 :. Nil
-- |
--
  a
--

Reported by @ar1a
2018-10-17 22:27:41 -04:00
Henrik Lissner
eb1440caa9
feature/evil: add evil-collection-resclient 2018-10-16 18:27:34 -04:00
Henrik Lissner
f4d49acdc8
More descriptive signatures for set-file-template!
And set-file-templates!
2018-10-16 17:32:59 -04:00
Zaiste
b4f0d60894
fix: allow deadgreap folding in normal mode 2018-10-08 18:37:13 +02:00
Henrik Lissner
352d9902e4
Fix set-eval-handler!
This ensures eval handlers shadow the correct entries in
quickrun--language-alist, rather than adding new/duplicate ones.
2018-10-07 00:36:34 -04:00
Amos Bird
ab273db50d
Rule is too restrict for file templates 2018-10-06 23:52:18 +08:00
Henrik Lissner
fe425c005e
Add g-/g= keys for buffer narrowing/widening 2018-10-03 11:14:08 -04:00
Henrik Lissner
6515efa19e
feature/workspaces: add +workspaces-on-switch-project-behavior #836
To control when a new workspace is created when switching projectile
projects.
2018-10-03 00:00:56 -04:00
Henrik Lissner
e7fc1d3290
Fix wrong-type-arg: stringp, nocache errors
Fix old usage of doom-project-name and doom-project-root.
2018-09-28 23:49:18 -04:00
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
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
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
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
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
1b3511890e
feature/evil: fix overzealous folding from :n TAB
Changes +evil/matchit-or-toggle-fold to be less trigger-happy about
toggling folds (it will only open folds not, not toggle them).

Also updates its docstring.
2018-09-20 22:27:15 -04:00
Henrik Lissner
feabbc31da feature/evil: add +evil/fold-{next,previous}
Brings zj/zk to evil
2018-09-20 22:27:01 -04:00
Henrik Lissner
5410f1d575 feature/evil: add arbitrary code folding keybinds 2018-09-20 22:27:01 -04:00
Henrik Lissner
6fce87bd06 feature/evil: refactor folding & outline support
Code folding commands will now obey outline headers (if
outline-minor-mode is on and in outline-mode).
2018-09-20 22:26:36 -04:00
Henrik Lissner
316aa428fb lang/evil: refactor +everywhere
Removed unnecessary blocks and reduced the amount of code to maintain.
2018-09-18 21:39:54 -04:00
Henrik Lissner
ed0857b988
Fix invalid-function error on snippet prompt 2018-09-17 08:53:13 -04:00
Henrik Lissner
1b7ae37447
feature/evil: refactor evil-collection integration
+ Move disabled modules into +evil-collection-disabled-list to make it
  easier to maintain our copy of evil-collection-list
+ Update evil-collection-list to reflect changes upstream
+ Fixes errors wrt missing evil-collection-* modules
2018-09-16 12:58:51 -04:00
Henrik Lissner
2b5738194e
feature/lookup: reduce coupling w/ lookup backends
You can now control exactly what lookup backends are used for the
various lookup commands (definition, references, online and file).

This allows you to disable (or add) backends by manipulating the default
value for these lists with add-hook or remove-hook:

* +lookup-definition-functions
* +lookup-references-functions
* +lookup-documentation-functions
* +lookup-file-functions
2018-09-13 19:15:15 -04:00
Henrik Lissner
03ce3db322
feature/evil: update for evil-collection changes
Now, evil-want-keybindings must be set to nil instead of
evil-want-integration.
2018-09-13 19:15:15 -04:00
Edwin Török
b9c966ec54 Backport to Emacs 25: avoid (setf (alist-get ... 'equal))
We would need to use `'equal` for comparison, but Emacs 25 only allows `'eq`.
Using `advice-add` to override `alist-get` does not work, because `setf`
has special handling for `alist-get`.

`repl.el`: Switch to a hash table which already supports multiple comparison
functions, and changing of elements even in Emacs 25.
`eshell/autoload/settings.el`: use conditional set-or-push.
Drop `doom*alist-get`, it is unused now.

Thanks to @hlissner for the reimplementation.
2018-09-12 23:03:02 +01:00
Henrik Lissner
856e4f27e5
feature/eval: autoload +eval-{repls,runners}
Fix void-variable error when, under certain conditions, these variables
are referred to before their containing files are loaded.
2018-09-10 22:57:26 -04:00