Commit Graph

64 Commits

Author SHA1 Message Date
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
eb1296387f
Make load-env-vars a core package
Fixes a race condition where the load-env-vars package is used before it
was (or could be) installed.
2019-03-28 13:30:39 -04:00
Henrik Lissner
2dc52bc9be
💥 Replace exec-path-from-shell w/ 'bin/doom env'
IMPORTANT: This is a breaking update for Mac users, as your shell
environment will no longer be inherited correctly (with the removal of
exec-path-from-shell). The quick fix is: 'bin/doom env refresh'. Also,
the set-env! autodef now does nothing (and is deprecated), be sure to
remove calls to it in your config.

Smaller changes:
+ This update also adds --no-* switches to doom quickstart
+ Includes general improvements to the documentation of several bin/doom
  commands.
+ Moves doom/reload* commands to core/autoload/config.el
+ doom/reload-project has been removed (it didn't actually do anything)

The breaking change:
This update adds an "envvar file" to Doom Emacs. This file is generated
by `doom env refresh`, populated with variables scraped from your shell
environment (from both non-interactive and interactive sessions). This
file is then (inexpensively) loaded at startup, if it exists.

+ The file is manually generated with `doom env refresh`.
+ It can be regenerated automatically whenever `doom refresh` is run by
  running `doom env enable` (`doom env clear` will reverse this and
  delete the env file).
+ `doom quickstart` will ask if you want to auto-generate this envvar
  file. You won't need it if you're confident Emacs will always be
  started from the correct environment, however.
+ Your env file can be reloaded from a running Emacs session with `M-x
  doom/reload-env`. Note: this won't work if the Emacs session you're
  running it in doesn't have a correct SHELL set. i.e. don't use this to
  create your first env file!

The idea isn't mine -- it's borrowed from Spacemacs -- and was
introduced to me in #1053 by @yurimx. I was impressed with it. Prior to
this, I was unhappy with exec-path-from-shell (no hate to the dev, I
understand its necessity), and 'doom patch-macos' wasn't ideal for mac
users (needed to be reapplied every time you update Emacs). What's more,
many users (even Linux users) had to install exec-path-from-shell
anyway.

This solution suffers from none of their shortcomings. More reliable
than patch-macos, more performant and complete than
exec-path-from-shell, and easily handled by bin/doom.
2019-03-28 01:56:09 -04:00
Henrik Lissner
8392c9dcf6
Add new :ui indent-guides module
Replaces old highlight-indentation-mode with new highlight-indent-guides
plugin.
2019-03-11 12:39:38 -04:00
Henrik Lissner
d94aa9b57c
Add xclip.el for tty clipboard support
Needs more testing
2019-03-08 02:34:26 -05:00
Henrik Lissner
4fbf7a2687
Remove expand-region package
It was unused, and is redundant with evil's text object expansion keys.
2019-03-08 02:34:26 -05:00
Henrik Lissner
e6debe55f1
Switch to main repo for all-the-icons
The font-lock-fix branch was merged.
2019-02-17 14:44:23 -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
Ting Zhou
eedbbdd9c1 emacs/dired: use all-the-icons font lock fix recipe 2018-12-08 21:52:24 -08:00
Henrik Lissner
f43e64e505
Add ns-auto-titlebar package for MacOS
This fixes mismatching frame title and frame coloring, as well as
auto-sets the ns-appearance parameter depending on your theme.
2018-10-25 13:42:20 -04:00
Henrik Lissner
d80e79203a
Replace delete-trailing-whitespace with ws-butler
ws-butler only strips trailing spaces on lines that have been modified.

+ ws-butler is disabled if editorconfig enables
  trim_trailing_whitespace, which resorts to delete-trailing-whitespace
  instead.
+ Updates doom|(enable|disable)-delete-trailing-whitespace hooks to use
  ws-butler-mode.
2018-08-31 13:59:12 +02:00
Henrik Lissner
9a4cce8d9a
Refactor detection of native display-line-numbers 2018-08-21 04:10:18 +02:00
Henrik Lissner
ce9f03f310
Use personal fork of highlight-escape-sequences
Improves elisp support, adds support for more modes and fixes some minor
issues.
2018-08-16 15:17:07 +02:00
Henrik Lissner
4dc5ef3879
Add highlight-escape-sequences 2018-08-06 00:31:23 +02:00
Henrik Lissner
7eb3ae62d7
Conditionally install os packages #741
Fixes an issue where exec-shell-from-path could not be installed on
Linux or Windows.

Doom used :ignore because, at the time, it supported a workflow where
your Emacs config was shared over dropbox or rslsync across multiple
computers. This workflow is no longer supported (it was very buggy!), so
this is no longer necessary. :ignore should also be reserved for private
use and not used internally.
2018-07-04 21:08:23 +02:00
Henrik Lissner
eaca8c58fa
Move unit tests from ert to buttercup
Easier to organize and write. Now I can hopefully strive for better
coverage!
2018-06-15 03:42:01 +02:00
Henrik Lissner
1d99ee5017
Add esup back to core package list 2018-05-20 00:37:48 +02:00
Henrik Lissner
3d0745c3ec
Add automatic indentation-detection (experimental)
Editorconfig is given precedence. If it successfully sets an
indent_style or indent_size for the current buffer, automatic
indentation detection will be disabled.
2018-05-18 01:28:41 +02:00
Henrik Lissner
682587ac26
Remove esup 2018-05-15 01:46:08 +02:00
Henrik Lissner
0bd88b8414
Add restart-emacs package & commands 2018-05-14 13:05:03 +02:00
Henrik Lissner
2b2f6bcf32
New command: doom/profile-emacs (powered by esup) 2018-05-11 10:00:23 +02:00
Henrik Lissner
27f99f040c
Remove shackle (why is this still here?!) 2018-05-11 10:00:23 +02:00
Henrik Lissner
8d936f2d0b
Move editorconfig out of core into tools/editorconfig 2018-05-08 19:59:08 +02:00
Henrik Lissner
99ca62c106
Remove smart-forward package 2018-05-08 19:56:31 +02:00
Henrik Lissner
0afae2eacf
Remove fringe-helper package 2018-05-08 19:42:28 +02:00
Henrik Lissner
5c9ef4ee38
Replace doom-hide-modeline-mode w/ hide-mode-line-mode #423 2018-03-02 19:14:44 -05:00
Henrik Lissner
c5b72566ea
Remove help-fns+, add helpful plugin #363 2018-01-21 21:37:15 -05:00
Henrik Lissner
45c2221316
General update for docstrings and comments & minor refactor 2018-01-15 00:43:28 -05:00
Henrik Lissner
5ee50c6b53
Move wgrep config from core-editor to completion/{ivy,helm} 2018-01-14 02:04:34 -05:00
Henrik Lissner
e168118243
Revert a8f4d85d; back to help-fns+
Helpful, while sometime useful, tended to be slow when invoked.
2017-12-10 11:49:02 -05:00
Henrik Lissner
a8f4d85da3
core-editor: remove help-fns+ & add helpful 2017-12-09 16:21:42 -05:00
Henrik Lissner
4450f08b0b
Make async a core package again 2017-12-09 14:17:23 -05:00
Henrik Lissner
0118535267
Install core packages from melpa-stable
Use-package broke in a recent update, as with Doom, since it relies so
heavily on it. To combat this issue arising again, use-package will be
installed from melpa-stable from now on.

Addresses #283
2017-12-04 13:22:21 -05:00
Henrik Lissner
40a1aaae8e
Make async a core package 2017-11-05 01:16:35 +01:00
Henrik Lissner
582e69db05
Move vi-tilde-fringe to new ui/vi-tilde-fringe module 2017-09-24 17:10:48 +02:00
Henrik Lissner
68aeaebff4
Move imenu plugins from core to tools/imenu 2017-09-24 17:10:47 +02:00
Henrik Lissner
597bfb1a3c
Move feature/hydra into core-keybinds 2017-09-24 17:10:47 +02:00
Henrik Lissner
f2d8681ef4
Refactor line number implementation
+ Add relative line number support (see doom-line-numbers-style)
+ Update doom/toggle-line-numbers
+ New hook functions: doom|enable-line-numbers,
  doom|disable-line-numbers

Addresses #156
2017-07-19 00:25:05 +02:00
Henrik Lissner
d6762bc893
Add undo-tree to core/packages.el #149 2017-07-14 23:09:48 +02:00
Henrik Lissner
c0bfaec9d4
Add display-line-numbers support in Emacs 26 #59 2017-07-12 23:59:38 +02:00
Henrik Lissner
55f0760c4e
Add nlinum-hl to core/packages.el 2017-06-14 12:14:34 +02:00
Henrik Lissner
5f65855f13
Remove goto-last-change
This plugin conflicts with goto-chg dependency in Evil.
2017-06-10 22:58:35 +02:00
Henrik Lissner
7ba22d0d86
Possibly fix disappearing line numbers (#59) 2017-06-09 13:48:28 +02:00
Henrik Lissner
ae2ca94609
Add all-the-icons to core/packages.el 2017-06-09 01:48:29 +02:00
Henrik Lissner
4aece988ff
Add fringe-helper to core-ui 2017-06-07 14:32:34 +02:00
Henrik Lissner
27bfa14def General refactor + cleanup 2017-06-05 14:23:17 +02:00
Henrik Lissner
861cc537cc Add nlinum-hl 2017-06-05 12:35:51 +02:00
Henrik Lissner
8ca6e2630b Bring back nlinum
linum-mode *really* slows down buffers when they're displayed in more
than one window. This lag isn't present in nlinum. nlinum isn't perfect
either but... lesser of two evils.

This includes advisors and an ESC hook to mitigate the issue of
disappearing nlinum line numbers.
2017-05-28 02:48:20 +02:00
Henrik Lissner
435c414e18 core-ui: add vi-tilde-fringe 2017-05-14 00:20:00 +02:00
Henrik Lissner
5491fd552e Replace nlinum with linum 2017-05-13 22:40:52 +02:00