Commit graph

98 commits

Author SHA1 Message Date
Henrik Lissner
6bd2eaf2c8
completion/helm: remove obsolete advice
Doesn't appear to be needed anymore.
2019-08-22 18:56:25 -04:00
Henrik Lissner
40eb9cf17e
Replace helm-projectile-* commands with +helm/* #1589 2019-07-29 21:23:51 +02:00
Henrik Lissner
82ae3a73f3
def-advice!->defadvice! & conform to new advice conventions
This commit does two things:

- Renames def-advice! to defadvice!, in the spirit of naming convenience
  macros after the function/macro they enhance or replace.
- Correct the names of advice functions to indicate visibility and
  intent. A public advice function like doom-set-jump-a is meant to be
  used elsewhere. A private one like +dired--cleanup-header-line-a
  shouldn't -- it likely won't work anywhere but the function(s) it was
  made to advise.
2019-07-23 17:24:56 +02:00
Henrik Lissner
76cacb5bfe
💥 Rename def-package! -> use-package!
Calling this pivotal macro "def-package!" has frequently been a source
of confusion. It is a thin wrapper around use-package, and it should be
obvious that it is so. For this reason, and to match the naming
convention used with other convenience macros/wrappers, it is now
use-package!.

Also changes def-package-hook! -> use-package-hook!

The old macros are now marked obsolete and will be removed when straight
integration is merged.
2019-07-23 12:50:45 +02:00
Henrik Lissner
149b2617b0
💥 revise hook/var fns naming convention (2/2)
This is second of three big naming convention changes. In this commit,
we change the naming conventions for hook functions and variable
functions:

1. Replace the bar | to indicate a hook function with a -h suffix, e.g.

     doom|init-ui -> doom-init-ui-h
     doom|run-local-var-hooks -> doom-run-local-var-hooks-h

2. And add a -fn suffix for functions meant to be set on variables,
   e.g.

     (setq magit-display-buffer-function #'+magit-display-buffer-fn)

See ccf327f8 for the reasoning behind these changes.
2019-07-22 02:30:38 +02:00
Henrik Lissner
51d3b1b424
💥 revise advice naming convention (1/2)
This is first of three big naming convention updates that have been a
long time coming. With 2.1 on the horizon, all the breaking updates will
batched together in preparation for the long haul.

In this commit, we do away with the asterix to communicate that a
function is an advice function, and we replace it with the '-a' suffix.
e.g.

  doom*shut-up -> doom-shut-up-a
  doom*recenter -> doom-recenter-a
  +evil*static-reindent -> +evil--static-reindent-a

The rationale behind this change is:

1. Elisp's own formatting/indenting tools would occasionally struggle
   with | and * (particularly pp and cl-prettyprint). They have no
   problem with / and :, fortunately.
2. External syntax highlighters (like pygmentize, discord markdown or
   github markdown) struggle with it, sometimes refusing to highlight
   code beyond these symbols.
3. * and | are less expressive than - and -- in communicating the
   intended visibility, versatility and stability of a function.
4. It complicated the regexps we must use to search for them.
5. They were arbitrary and over-complicated to begin with, decided
   on haphazardly way back when Doom was simply "my private config".

Anyhow, like how predicate functions have the -p suffix, we'll adopt the
-a suffix for advice functions, -h for hook functions and -fn for
variable functions.

Other noteable changes:
- Replaces advice-{add,remove}! macro with new def-advice!
  macro. The old pair weren't as useful. The new def-advice! saves on a
  lot of space.
- Removed "stage" assertions to make sure you were using the right
  macros in the right place. Turned out to not be necessary, we'll
  employ better checks later.
2019-07-22 02:27:45 +02:00
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