Commit Graph

397 Commits

Author SHA1 Message Date
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
820d77c546 tools/magit: bind TAB in more magit modes 2019-03-26 03:43:23 -04:00
fa98551d19 tools/vterm: minor refactor
Don't end warnings in punctuation, and throw error if modules support is
missing.
2019-03-13 20:41:48 -04:00
4715412b5c tools/vterm: remove use-emacs-theme-colors hack
Causes invalid face errors. This will be resolved in doom-themes
instead.
2019-03-13 18:22:09 -04:00
f0013083c0 Restore minimal modeline in magit
With process indicator
2019-03-11 12:54:16 -04:00
d5ba685817 Don't overwrite C-i in GUI Emacs 2019-03-09 02:42:31 -05:00
8f733c2ab5 Don't kill magit with ESC 2019-03-08 04:25:45 -05:00
1f23eecdc8 (Try to) homogenize TAB/RET/ESC keybinds
Map them to \t/^M/^[, rather than [tab], [return] and [escape].
2019-03-08 04:25:45 -05:00
a05b1877be Rewrite switch-{buffer,window} hooks
+ Add doom-switch-frame-hook
+ Replace doom-{enter,exit}-{buffer,window}-hook with
  doom-switch-{buffer,window}-hook
+ New switch-buffer hooks run on buffer-list-update-hook rather than
  in select-window advice.
+ Blank our buffer-list-update-hook in some places to reduce how many
  times it gets triggered.
2019-03-08 02:37:33 -05:00
05303c0fdb 💥 Rethink core hook order & naming
- doom-post-init-hook was renamed doom-init-modules-hook
- doom-init-hook was renamed doom-before-init-modules-hook
- doom-init-modules-hook now runs before the user's config.el is run
- Moved doom-init-ui-hook to run later (on window-setup-hook rather than
  emacs-startup-hook).

Yield a modest improvement in startup times.
2019-03-04 20:47:26 -05:00
b5dcfd96d3 tools/flyspell: new flyspell-mode! autodef 2019-03-04 04:57:07 -05:00
12ddc3c360 ui/modeline: add indent segment 2019-03-04 04:57:06 -05:00
7c9e96da87 General module refactor 2019-03-02 02:04:11 -05:00
eb3c569e1d Replace +lsp|init with lsp! autodef 2019-03-02 01:34:19 -05:00
8832737671 Adopt seagle0128/doom-modeline for :ui modeline
And remove obsolete :ui doom-modeline module.

Relevant to: #136, #921
2019-03-02 01:34:14 -05:00
868bd15abe Fix undeferred flycheck-posframe
Accidentally eager-loaded it. Whoops!
2019-03-01 14:25:18 -05:00
94a57f695e Fix LSP restart prompt when killing Emacs 2019-02-28 13:50:59 -05:00
b871d400e5 tools/flycheck: simplify popup-tip advice
Relevant to #1209
2019-02-28 13:50:48 -05:00
5ee4f03ce7 tools/lsp: no prompt for project root & autokill servers 2019-02-26 22:57:34 -05:00
7361e05582 tools/flycheck: refactor popup-tip minor mode
Less code, fewer problems.
2019-02-26 19:32:35 -05:00
11a528be04 Fix infinite recursion in +flycheck|disable-popup-mode-for-lsp 2019-02-26 18:05:48 -05:00
594df64913 Smarter RET in normal mode over flyspell regions
Will now trigger flyspell-correct-word-generic
2019-02-26 16:55:29 -05:00
db2949ff32 Improve flyspell support
+ Make flyspell more selective about what to scan in markdown buffers.
+ Don't mark duplicates when proseline or langtool are present.
+ Add set-flyspell-predicate! for seeing mode-specific word predicates.
2019-02-26 16:55:28 -05:00
8604c0bbad Use the default face for vterm's bg/fg 2019-02-24 13:55:07 -05:00
899c4b8117 Disable +flycheck-popup-mode in lsp-ui-mode #1192
As its redundant with lsp-ui's sideline feature.
2019-02-24 13:52:36 -05:00
5e24c93d4c tools/lsp: move lsp-session-file to doom-etc-dir 2019-02-24 13:52:02 -05:00
69ed1a4a99 feature/{syntax-checker,spellcheck} -> tools/fly{check,spell} 2019-02-22 00:25:30 -05:00
88f50bbdec Merge pull request #1144 from SteamedFish/develop
Add vterm layer
2019-02-21 20:16:57 -05:00
e56a9580d7 tools/magit: don't close magit with ESC 2019-02-21 19:13:36 -05:00
cb923eadcc Add basic LSP support
Still needs to be documented, but includes support for the following
languages:

+ C/C++/ObjC
+ Go
+ Java
+ Javascript
+ OCaml
+ PHP
+ Python
+ Ruby
+ Scala
+ Swift
+ HTML/CSS

Relevant to #460, #716, #1186
2019-02-21 19:13:35 -05:00
f0048be7f8 More specific about "use vterm"
use the command to trigger vterm instead of a general "use vterm"
2019-02-22 00:58:31 +08:00
4ac096a55d Rewrite readme 2019-02-22 00:37:22 +08:00
df19747ca2 change warning messages 2019-02-21 23:33:21 +08:00
16b7c58da9 use fboundp instead of string-match-p 2019-02-21 23:22:04 +08:00
9567b1f97f Move ESC keybind for transient to tools/magit 2019-02-20 14:45:18 -05:00
7f1c275d62 +magit/clone: fix void-function ghub--username 2019-02-18 20:13:37 -05:00
483f2a492c Lazy-load vterm & refactor config 2019-02-18 18:56:20 -05:00
c79a992545 Include all files with vterm package
They are needed to compile vterm-module.so
2019-02-18 18:49:02 -05:00
ecfe52f71c Fix +magit/clone to no longer use magithub 2019-02-18 18:26:19 -05:00
6956525f79 I silenced the byte compiler, what happened next will blow your mind
Top 10 incredible ways to silence the byte compiler

The byte compiler just wouldn't shut up. You wouldn't believe what
happened next.

40 hot singles in your area are waiting for the byte compiler to shut
up.

20 INSANE life hacks to put an end to the byte compiler's tyranny.

(DEFINITELY NOT CLICKBAIT)
2019-02-18 01:05:26 -05:00
ec55884aae General, minor reformatting & refactor 2019-02-18 00:47:46 -05:00
ffcfde71d9 tools/magit: replace magithub with forge #1174
And we're back to using the latest version of magit, which should
resolve void-function and void-variable errors that we were avioding in
33ef9034.
2019-02-16 16:54:26 -05:00
d6496fc168 rename vterm from :emacs to :tools 2019-02-17 00:18:39 +08:00
33ef90343e Revert to stable version of magit, temporarily
Magit introduced some breaking changes in a recent commit that breaks
evil-magit and magithub. Magithub appears to be migrating to forge, so
until evil-magit has updated and I've properly replaced magithub with
forge, we'll use an earlier version of magit instead.
2019-02-14 23:47:29 -05:00
ba0ccc1d34 tools/magit: cleanup magit concurrently
A quick attempt to make +magit/quit faster.
2019-02-14 00:40:19 -05:00
9f96e3eae8 Merge pull request #1076 from filalex77/magit-forge
[tools/magit] Add magit-forge
2019-02-12 15:33:48 -05:00
99fd8b4e1b O'byte-compiler
Who forbade the obsolete,
Hooks, functions; adieu.

(And an unused argument too)
2019-02-03 18:42:09 -05:00
951b2be7d1 Enable magit-todos-mode globally
Rather than treat it like it's a minor mode.
2019-02-03 18:39:34 -05:00
5b44d3fa61 Set forge-database-file in doom-etc-dir
Suggested by @luigy
2019-01-26 12:18:31 +02:00
fa5bebc13a tools/magit: fix ivy's sorting with magit #1131
By default, magit-completing-read-function is set to
magit-builtin-completing-read, which already includes ivy support.
2019-01-23 14:43:01 -05:00