Commit Graph

92 Commits

Author SHA1 Message Date
Henrik Lissner
9d5e8fdda4
completion/helm: use ;;;###package cookies 2019-05-20 21:09:11 -04:00
Henrik Lissner
a7069b93f2
Remove vestigial imenu-anywhere remappings 2019-05-20 21:09:10 -04:00
Henrik Lissner
a4c5396558
Add better-jumper
Replaces evil's jumplist; makes its functionality available for non evil
users.
2019-04-24 18:16:04 -04:00
Henrik Lissner
77e4cc4d58
💥 Remove :feature category
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
2019-04-24 18:16:04 -04: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
0312f8656a
completion/helm: remove +helm-global-prompt
This could hide helpful prompt text.

Addresses #923
2018-10-03 00:02:01 -04:00
Henrik Lissner
394633b5d8
Leave lifecycle management of helm buffers to helm
Could cause buffer processes to get killed, inadvertently.
2018-10-01 19:58:23 -04:00
Henrik Lissner
5ef94de541 Minor refactor, reformat & comment revision 2018-09-18 21:39:54 -04:00
Henrik Lissner
86d51dd056
Add +doom-dashboard-mode to swiper-font-lock-exclude
It breaks the dashboard
2018-09-09 09:58:22 -04:00
Henrik Lissner
7d3ffdff06
Remove third line in section headers
This is truly important stuff. We've saved many lives with this update.
2018-09-09 09:58:19 -04:00
Henrik Lissner
48c77b1126
Move helm-css-scss package to lang/web/+css 2018-09-09 09:58:18 -04:00
Henrik Lissner
36bdf7782b
completion/helm: don't hide minibuffer input line
Some helm sources don't display input in the headerline, despite
helm-echo-input-in-header-line's value, making your input invisible.
2018-08-31 23:44:21 +02:00
Henrik Lissner
9eee22e3fc
completion/helm: redesign keybindings
A more vim-friendly (and spacemacs-friendly) keybinding scheme.

May address #829
2018-08-24 01:47:44 +02:00
Henrik Lissner
619ac43017
completion/helm: unbind <left>/<right> #829
Disables special behavior on <left>/<right> and <M-left>/<M-right>,
which are strange.
2018-08-24 01:08:39 +02:00
Henrik Lissner
627aae436d
completion/helm: add helm-ff-fuzzy-matching
Also resorts the fuzzy-match variable list.
2018-08-24 01:07:55 +02:00
Henrik Lissner
ee73d6c9af
Minor reformatting & comment tweaks 2018-08-21 03:34:39 +02:00
Henrik Lissner
154b3c331b
helm: remap find-library -> helm-locate-library
Is superior to find-library
2018-08-21 02:56:54 +02:00
Henrik Lissner
c69543fecc
Fix helm not cooperating with other popups
Like the compilation window
2018-08-15 23:32:53 +02:00
Henrik Lissner
11b8ee55a1
Use helm-do-ag instead of helm-ag #805
Fixes project search matching against the leading file name.

And ensures modeline remains disabled.
2018-08-15 21:19:59 +02:00
Henrik Lissner
90fa4a8c37
Add helm-ag-fuzzy-match support 2018-08-13 21:47:55 +02:00
Henrik Lissner
5714ff423a
Fix evil jumplist after jumping to ag match
helm-ag would formerly add multiple entries to the jump list. It now
only adds one, and recenters the window when jumping to an ag match.
2018-08-13 21:47:55 +02:00
Henrik Lissner
b0c71c2492
Add +helm/workspace-mini command & bind to SPC b b
+ Rename +helm/persp-buffer-list to +helm/workspace-buffer-list
+ Silence compiler warnings when feature/workspaces is disabled
+ Throw error if feature/workspaces is disabled and these commands are
  called.
2018-08-13 03:47:30 +02:00
Henrik Lissner
3b4fd56cac
Force helm posframe to respect min-(width|height)
And enable solaire-mode if available, and unused in origin buffer (to
make it easier to see posframe over non-solaire-mode buffers).
2018-08-11 01:59:37 +02:00
Henrik Lissner
7a216692e8
Don't modify helm-echo-input-in-header-line
This variable isn't reliable; some sources change it, making it
difficult to see our input.
2018-08-10 19:31:22 +02:00
Henrik Lissner
3d363d4cb1
completion/helm: refactor posframe support (again) 2018-08-07 14:42:58 +02:00
Henrik Lissner
85e837e06a
Fix wrong-type-arg: integerp by posframe
Due to destructive advice.

Fixes #787
2018-08-07 12:57:21 +02:00
Henrik Lissner
d5363a5a2e
Fix recursive helm error in helm-buffers-list 2018-08-06 11:56:50 +02:00
Henrik Lissner
2aaea3a0d5
Use helpful for helm-apropos 2018-08-06 00:31:24 +02:00
Henrik Lissner
b56404f0ce
Correct docstring for +helm-project-search-engines
Re:git-grep/grep fallback
2018-08-06 00:31:24 +02:00
Henrik Lissner
bd0b7d2341
Remove wgrep from completion/helm (unused package) 2018-08-06 00:31:24 +02:00
Henrik Lissner
d04efc9774
helm-imenu: don't autojump to symbol at point 2018-08-06 00:31:23 +02:00
Henrik Lissner
9c11ee9eef
Fix workspace-restricted helm-buffers-list
Now SPC b b and SPC b B can both enjoy the power of helm-buffers-list,
while the former is restricted to the buffers in the current workspace.
2018-08-06 00:31:23 +02:00
Henrik Lissner
0cfd35cfc0
Refactor how helm mode-line is hidden 2018-08-06 00:31:22 +02:00
Henrik Lissner
41697e4e6e
Move helm posframe up slightly
And display input line in posframe.
2018-08-06 00:31:22 +02:00
Henrik Lissner
ca6afcf3c7
Add +helm-posframe-border-width option
Controls posframe's internal-border-width
2018-08-06 00:31:18 +02:00
Henrik Lissner
a9357bb467
completion/helm: use hide-mode-line-mode 2018-08-05 00:39:54 +02:00
Henrik Lissner
860dff3e63
completion/helm: refactor posframe config 2018-08-05 00:39:54 +02:00
Henrik Lissner
7f5e778b0c
Replace helm-swoop with swiper-helm
Swiper is superior. The downside is it pulls in ivy as a dependency, but
that is acceptable considering how small it is.
2018-08-04 19:54:54 +02:00
Henrik Lissner
b180aceaa8
completion/helm: fix 'n refactor +fuzzy flag
Didn't properly disable fuzzy search when +fuzzy flag was absent.
2018-08-04 18:42:38 +02:00
Henrik Lissner
2c956593cf
completion/helm: don't index HOME
Invoke helm-find-files instead
2018-08-04 16:00:11 +02:00
Henrik Lissner
fb233bd37d
completion/helm: fix evil keybinds in helm
Evil-mode was disabled in the minibuffer due to odd behavior, causing
all helm's evilified keybinds to be inaccessible.
2018-07-30 03:43:43 +02:00
Henrik Lissner
5aef36951d
Goto file keybind in helm-ag-edit buffers 2018-07-29 17:41:59 +02:00
Henrik Lissner
e865526c75
Add +(helm|ivy)-project-search-engines variables
This allows you to control what search engines for project-search
commands (bound to SPC / p) to try, and in what order. If you didn't
want to use ripgrep, for instance, remove 'rg from these variables, or
move it to the end of the list.
2018-07-23 00:06:47 +02:00
Henrik Lissner
afa1fe3fc5
Phase out meta keybinds in helm+evil integration
We want to generally avoid meta. M-RET is an exception, and is commonly
used as an "alternate open" key.
2018-06-25 15:45:24 +02:00
Henrik Lissner
f6dc6ac74e
Refactor out map.el usage
After some profiling, it turns out map-put and map-delete are 5-7x
slower (more on Emacs 25) than delq, setf/alist-get and add-to-list for
small lists (under 250 items), which is exactly how I've been using
them.

The only caveat is alist-get's signature is different on Emacs 25, thus
a polyfill is necessary in core-lib.
2018-06-23 19:53:54 +02:00
Henrik Lissner
6808c46b58
💥 Change set-popup-rule! usage
Now accepts a flat plist of all its former parameters, including new
:parameters and :actions properties to increase your control over the
fate of your windows.

The old usage of set-popup-rule! is deprecated and may not work right!

The :ui popup module has also seen a major refactor to improve
efficiency and load times.

Sorry! This is the last "big" change before 2.1!
2018-06-18 02:34:16 +02:00
Henrik Lissner
ce86fa0557
helm-swoop: always split below current window 2018-06-17 17:19:33 +02:00
Henrik Lissner
f8625a62ac
Lazy-load helm-projectile 2018-06-16 15:05:08 +02:00
Henrik Lissner
4122ff4314
Reformat helm package configs 2018-06-16 15:04:27 +02:00
Henrik Lissner
44363cae40
General, minor refactor & revision
Across the board. All the boards.
2018-06-16 12:26:58 +02:00