Commit graph

5862 commits

Author SHA1 Message Date
Henrik Lissner
b01606e99b
ui/vc-gutter: fix gutter not updating after stage
When using git-gutter:stage-hunk, the gutter would be updated just
before its state is changed, creating a stale diff.
2019-07-22 02:30:41 +02:00
Henrik Lissner
5005721039
lang/emacs-lisp: make company-elisp use helpful
Instead of describe-*
2019-07-22 02:30:40 +02:00
Henrik Lissner
62f2f6af48
lang/emacs-lisp: revise macrostep evil keybinds
Most of these are upstream in evil-collection-macrostep.
2019-07-22 02:30:40 +02:00
Henrik Lissner
18078dd160
Add special lisp indent logic for add-hook
So that inline defun forms are indented like other body forms.
2019-07-22 02:30:40 +02:00
Henrik Lissner
be789caa04
Add elisp demos for Doom API in helpful buffer 2019-07-22 02:30:40 +02:00
Henrik Lissner
b90dede1ab
💥 Replace package.el/quelpa with straight #374
There are a few kinks to iron out, but for the most part it's done. Doom
Emacs, powered by straight. Goodbye gnutls and elpa/quelpa issues.

This update doesn't come with rollback or lockfile support yet, but I
will eventually include one with Doom, and packages will be (by default,
anyway) updated in sync with Doom.

Relevant threads: #1577 #1566 #1473
2019-07-22 02:30:40 +02:00
Henrik Lissner
0a84d2f0a9
core-lib: add auto-minor-mode, revise def-project-mode!
- Adds the auto-minor-mode package to replace our in-house
  implementation.
- Merges associate! into the def-project-mode! macro because associate!
  on its own is less useful than auto-minor-mode-alist,
  auto-minor-mode-magic-alist or hooks.
- Changes the semantics of :modes and :add-hooks properties of
  def-project-mode!. Its arguments are evaluated as is; lists will need
  to be quoted.

squash! core-lib: remove associate! macro
2019-07-22 02:30:39 +02:00
Henrik Lissner
ee10b3b0d9
core-lib: add doom-{glob,path,dir}, replace {file,dir}!
- file! replaces FILE!
- dir! replaces DIR!
- doom-{glob,path,dir} have the power to construct paths out of the
  segment pieces provided to it.
- Move doom-files-in to core-lib and refactor to use the above.
2019-07-22 02:30:39 +02:00
Henrik Lissner
99e23adec1
ui/doom: simplify solaire init 2019-07-22 02:30:38 +02:00
Henrik Lissner
8c41093fae
ui/doom: update doom-themes config for treemacs/neotree 2019-07-22 02:30:38 +02:00
Henrik Lissner
fdcb259bcd
Major refactor of Doom core files
- Remove core-os and move many of its settings out to other core
  libraries, where they belong
- Significantly improve commenting & compartmentalization of many
  settings
- Correct some mis-named public hooks (that were named as if they were
  private)
- Move the vast majority of optimizations to "Optimizations" section in
  core.el
- Don't activate xclip-mode or osx-clipboard-mode if we're accessing
  Emacs through an SSH connection (does more bad than good there)
- Add fast-but-imprecise-scrolling = t
- Set bidi-display-reordering = 'left-to-right, at the recommendation of
  an Emacs dev. Apparently setting it to nil is undefined, as Emacs is
  designed to always assume it's set; setting it explicitly to
  left-to-right will still do what was originally intended by turning it
  off: to reduce line/text scans for bidirectional text, which gives us
  a moderate boost in general runtime snappiness
- Set inhibit-compacting-fon-caches = t on windows (where it struggles
  especially with icon fonts)
- Disables "literal" mode for very large files (because I will be
  backporting so-long.el from Emacs 27 in the next commit)
2019-07-22 02:30:38 +02:00
Henrik Lissner
81ab3dbc5d
Simplify and decouple init files
The two doom-gc-* variables in init.el couples the rest of the config to
these two files. The bulk of GC/file-handler optimization was moved into
core.el and simplified (all that idle-timer voodoo was overkill).

Also adds (setq frame-inhibit-implied-reize t) to early-init, which
speeds up startup a fair bit in some edge cases with larger fonts.

squash! Simplify and decouple init files
2019-07-22 02:30:38 +02:00
Henrik Lissner
8147bc1aee
💥 lang/org: conform to new name conventions 2019-07-22 02:30:38 +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
Julian DeMille
50dd1e63ac
Remove flycheck-rust since it is no longer used. 2019-07-21 09:16:13 -04:00
Henrik Lissner
c0530202a5
lang/org: restore attach entry in org-link-abbrev-alist 2019-07-20 11:40:03 +02:00
Edmund Miller
a01f1e436c
Add NixOS example 2019-07-19 13:24:25 -05:00
Henrik Lissner
ba71d95066
emacs/vc: add git-timemachine-show-commit fix
See https://gitlab.com/pidu/git-timemachine/issues/77
2019-07-18 13:13:31 +02:00
Henrik Lissner
345d09d393
lang/emacs-lisp: don't fontify function in quoted list 2019-07-18 13:13:31 +02:00
Henrik Lissner
0625bf87d6
Add a nxml-mode file template 2019-07-18 03:41:47 +02:00
Henrik Lissner
854d8ce00a
Fix (null uniquify-buffer-name-style) errors from ivy
Errors out in Emacs 25.x
2019-07-17 16:14:38 +02:00
Sean Farley
d88085068d ansible: fix upstream changing coding conventions
Pull request here: https://github.com/k1LoW/emacs-ansible/pull/31
2019-07-16 17:28:25 -07:00
Henrik Lissner
d12e7b831f
editor/snippets: load doom-snippets sooner
We want +snippets-dir to be first in yas-snippet-dirs. To ensure this,
doom-snippets should be loaded immediately before it is added to it, if
possible.
2019-07-14 22:47:15 +02:00
Henrik Lissner
2ff762b397
Fix fd/rtags on debian/ubuntu
On debian/ubuntu, these executables have a different name:

- fd -> fdfind
- rc -> rtags-rc
- rdm -> rtags-rdm
2019-07-14 22:04:50 +02:00
Henrik Lissner
62af55dad0
Move emacs-snippets -> doom-snippets
The repo was renamed upstream.
2019-07-14 17:05:48 +02:00
Henrik Lissner
de85f67b7c
lang/org: remove redundant attach: link abbreviation 2019-07-14 05:35:51 +02:00
Henrik Lissner
43a82c7e92
non-evil users: C-c C-S-z = open repl in same window 2019-07-14 05:34:28 +02:00
Henrik Lissner
6153af9594
lang/markdown: only warn if all compilers are unavailable
Rather than check each individual module.
2019-07-14 00:24:09 +02:00
Henrik Lissner
0b28480a21
Remap xref-pop-marker-stack -> better-jumper
Better to have only one jumplist system.

Also remaps xref-find-* commands to +lookup commands earlier in the
startup process.
2019-07-13 15:47:19 +02:00
Henrik Lissner
c54509f99c
lang/rest: add basic imenu support 2019-07-13 13:00:26 +02:00
Henrik Lissner
4ebd3fad7f
Add :term shell module 2019-07-13 13:00:24 +02:00
Henrik Lissner
b57dccf825
ui/tabbar: remove buffer-order function reference
centaur-tabs-adjust-buffer-order-function and
centaur-tabs-adjust-buffer-order were removed upstream
2019-07-13 12:03:13 +02:00
Henrik Lissner
e81cdc0523
lang/org: prioritize checkboxes lower in dwim command
Otherwise, checkboxes take priority over links, clocks or tables.
2019-07-13 02:24:11 +02:00
Henrik Lissner
05eb333a0c
editor/snippets: expand on snippet commands & keybinds
- Introduces the +snippets/new (SPC s n) command for creating a new
  private snippet
- Introduces the +snippets/new-lias (SPC s N) command for creating a new
  private snippet alias, which will invoke another snippet (you will be
  prompted to select one). This will only work with the emacs-snippets
  library bundled with Doom Emacs, however, as it depends on its API.
- Introduces +snippets/edit (SPC s c) for modifying existing snippets.
  How this differs from yas-visit-snippet-file is it will copy the
  contents of built-in snippets into a buffer primed for your private
  snippets (in DOOMDIR/snippets), while yas-visit-snippet-file will
  simply open the originating snippet.
- Introduces the +snippets/find (SPC s ?),
  +snippets/find-for-current-mode (SPC s /) and
  +snippets/find-private (SPC s f) commands for, respectively, finding a
  snippet file among *all* directories in yas-snippet-dirs, finding a
  snippet for the current major mode (plus parents), and finding a
  snippet from among your private library. This opens built-in snippets
  in read-only mode, but you can press C-c C-e to open it in
  +snippets/edit.
2019-07-12 20:41:50 +02:00
Henrik Lissner
f90c0b8040
Add <escape> to blacklisted evil-collection keys
evil-collection is overzealous about its role in aborting things. We
already have our own doom-escape mechanism.
2019-07-12 18:25:28 +02:00
Henrik Lissner
92ca6762ac
ui/tabbar: rewrite to use centaur-tabs
Plus some modifications to make tabs truly window-local, like they are
in any tabbed modern editor.
2019-07-12 17:40:48 +02:00
Henrik Lissner
fddef812ec
tools/editorconfig: refactor how we ignore lisp modes 2019-07-12 16:47:49 +02:00
Henrik Lissner
18758c3926
Fix +evil/easymotion for certain keys 2019-07-12 16:24:01 +02:00
Henrik Lissner
157cb5287e
lang/org: enable latex export backend by default #1560
ox.el doesn't eager-load these packages anyway.
2019-07-12 15:42:26 +02:00
Henrik Lissner
0a7173b7f8
Auto-pair ( in lisps if cursor is before another ( 2019-07-12 15:05:08 +02:00
Henrik Lissner
8158cb1402
lang/rust: rustic-format-on-save = nil by default
Use :editor format instead.
2019-07-12 01:14:16 +02:00
Henrik Lissner
feb9799f23
Add f surround key to other lisp modes
This already existed for elisp, but is now available to lisp-mode (CL),
clojure and racket.
2019-07-12 01:08:41 +02:00
Henrik Lissner
403c2e1b5d
Add < surround key
ysiw<testRET will transform

  String

To

  test<String>

In C-style major modes that use angle bracket generics/templates (e.g.
C++, rust, C#, java, swift, and typescript).
2019-07-12 01:07:23 +02:00
Henrik Lissner
fb16afb4f2
ivy-prescient-retain-classic-highlighting = t
Because prescient's highlighting turns any assumptions themes make
about ivy's faces on their head, making them look odd.
2019-07-11 17:23:20 +02:00
Henrik Lissner
dbcd2f7624
Move treemacs-last-error-persist-file out of ~/.emacs.d
Git off my lawn.
2019-07-11 17:22:27 +02:00
Henrik Lissner
c627972d20
Add set-indent-width & toggle-indent-style commands
And SPC t I keybind

Also sorts keybinds under the SPC t prefix
2019-07-11 17:22:01 +02:00
Henrik Lissner
d2b694ed53
lang/scala: fix REPL command for non-project files
run-scala errors out if you're not in a valid project.
2019-07-11 01:24:28 +02:00
Henrik Lissner
aeb5cca727
Fix ob-ipython popup rule affecting python REPL 2019-07-11 01:23:34 +02:00
Henrik Lissner
5c09772219
lang/rust: fix rustic load order
Since both the rust-mode and rustic packages aggressively fight for
precedence in auto-mode-alist, rustic *must* be loaded after rust-mode,
so we switch from rust-mode to rustic-mode if it's available. This only
needs to happen once.
2019-07-11 01:09:30 +02:00