Commit graph

107 commits

Author SHA1 Message Date
syl20bnr
6220ace290 core: rework environment variables and PATH management
See updated DOCUMENTATION.org and FAQ.org for more info.

* add core-env.el
* add library load-env-vars.el
* add bootstrap package dotenv-mode.el
* remove spacemacs-environment from bootstrap layer
* remove dotspacemacs variable dotspacemacs-import-env-vars-from-shell
* remove dotspacemacs variable dotspacemacs-improt-env-vars-shell-file-name
* add new key binding SPC f e e to open spacemacs.env file
* add new key binding SPC f e E to reload environment variable from env file
* add new key binding SPC f e C-e to re-initialize the env file from shell.
2018-06-25 02:55:28 -04:00
syl20bnr
e1c8f1e3d6 Use add-to-list instead of push
Avoid pushing several time the same element on top of evil-surround-pairs-alist
2018-06-16 03:54:38 -04:00
syl20bnr
1abce5ec10 Correctly import PATH environment variable with setenv
Previously we were only updating exec-path.
2018-06-15 10:29:48 -04:00
syl20bnr
d28990537f Add new variable dotspacemacs-import-env-vars-shell-file-name
Used to fetch the environment variables. This allows to keep shell-file-name
untouched.
2018-06-15 02:40:44 -04:00
syl20bnr
9ee832955a core: async import of env.vars and add new dotfile variable
* new variable dotspacemacs-import-env-vars-from-shell
 * asynchronous import of environments variables
 * move loadenv function to funcs.el
 * update documentation
2018-06-15 01:38:07 -04:00
fiveNinePlusR
75f1d915a8 [CORE] synchronize the environment variables from the default shell 2018-06-14 20:12:26 -04:00
syl20bnr
e24be2186a Truly lazy load helm based on key bindings
We will need to also support Emacs editing style.
2018-06-14 02:05:01 -04:00
syl20bnr
55d18a1a3a Move SPC s c to bootsrap layer 2018-06-14 00:21:56 -04:00
Codruț Constantin Gușoi
8754b24509 Fixes errors when env file does not exist at startup 2018-06-12 23:05:14 +03:00
syl20bnr
c12b72090c Cache PATH and env vars. fetched with exec-path-from-shell
See updated documentation in this commit.
2018-06-11 03:54:51 -04:00
Josh Santos
7944ed2634 Fix environment variable setting for go and rust layers 2018-06-09 01:22:56 -04:00
syl20bnr
b282e553ba Use dotspacemacs backward compatibility macro instead of aliases 2018-06-08 02:24:38 -04:00
syl20bnr
434df17f8b Rename hybrid-mode-xxxx variables to hybrid-style-xxxx
Use aliases to retain backward compatibility.
2018-06-08 02:24:38 -04:00
syl20bnr
9539e4206d Rename Vim style related variable to vim-style-xxxxx
Update the documentation
Define alias for backward compatibility
2018-06-08 02:24:38 -04:00
Miciah Masters
e0b751bee3 Avoid non-idempotent use of push in init code
Replace push with add-to-list in layer init functions and related code.

Modify spacemacs|add-toggle to check for and update an existing toggle in
spacemacs-toggles and only create a new toggle if none already existed.

Replace a conditional push onto erc-packages with use of :toggle.

When initializing which-key, set which-key-replacement-alist to its default
or customized setting before adding all the Spacemacs replacements.  We
want to keep the stock replacements but avoid adding duplicates of the
Spacemacs replacements.

Replace the emacs-lisp-mode-hook lambda with a named function to avoid
adding duplicate hooks (which can add duplicate definitions of the
evil-surround pair).
2018-06-05 22:17:13 -04:00
syl20bnr
3595708d5f Enable italics in spacemacs theme 2018-06-05 16:50:30 -04:00
CeleritasCelery
6905d9cafa fix bug with evil-pasted object 2018-05-24 10:38:55 -07:00
bmag
260c3d98e3 pcre2el: move ownership to bootstrap
pcre2el is used by several layers, such as ivy and helm, so it needs to be
available outside of spacemacs-editing layer.
See also https://github.com/syl20bnr/spacemacs/pull/5990#issuecomment-217400470
2018-05-10 20:26:55 +03:00
syl20bnr
0fa3658cd8 reorganize spacemacs-base distribution into +spacemacs/spacemacs-xxx
This idea is to have the spacemacs-base distribution only configure defaults for
built-in packages. Those buit-in packages are now configured in the new layer
spacemacs-defaults.
Additionally some other packages of spacemacs-base have been dispatched to
better suiting spacemacs layers.

Projectile has been moved to the new layer spacemacs-project

- Move the following packages to bootsrap distributio layer:
  - exec-path-from-shell
  - evil-evilified-state
  - holy-mode
  - hybrid-mode
  - spacemacs-theme
- ace-window has been moved to spacemacs-navigation
- centered-buffer-mode has been moved to spacemacs-editing-visual
- pcre2el has been moved to spacemacs-editing
- evil-escape and evil-visualstar have been moved to spacemacs-evil
2018-03-04 20:54:54 -05:00
syl20bnr
ebe4c60264 Revert "Defer packages by default using use-package-always-defer"
This reverts commit 29c78ce841 and all other fixes
that have been made afterwards.

The motivation is that use-package is seen by many as a replacement for
`require`. Is use-package always defer the loading of packages then is breaks
this use case, this does not respect POLA so even if it was making Spacemacs
loading faster (up to 3s faster on some startup on my machine) we just cannot
use it, it would be irresponsible. Spacemacs should be easy to use, loading
performance will come with time but it is not a priority.
2018-03-03 23:40:10 -05:00
syl20bnr
29c78ce841 Defer packages by default using use-package-always-defer
Warning now `:defer t` is implied, to force a package to load `:demand t` is
now necessary.
2018-02-27 23:32:52 -05:00
smile13241324
aead79ca48 Fix doc for S>-bootstrap, S>-navigation, S>-visual and S>-org 2018-02-28 03:01:39 +02:00
oisincar
911544759f Fix #10091, which-key interface delay/ lag.
A fix for #10091. The default behavour for which-key is for
'which-key-idle-delay' to affect both the initial trigger and subsequent
actions. By setting 'which-key-idle-secondary-delay' to something non-nil,
that delay acts over the subsequent actions instead.

The which-key wiki recommends setting it to a 'non-zero value', as zero could
cause issues, so instead set it to 0.01.
2018-01-08 02:04:19 -05:00
syl20bnr
326965d4ce Happy New Year 2018! 2018-01-04 02:00:25 -05:00
Alexander Miller
6c77ed57a5 core: make it possible to define an evil state face without an evil cursor.
treemacs: do not define an evil cursor for treemacs.
2017-12-01 19:27:48 +02:00
bmag
450da6f204 spacemacs-evil-cursors: make them easy to configure
Motivation: so layers with their own evil states (e.g. treemacs) can also
contain their own cursor configuration

Example usage: `(spacemacs/add-evil-cursor "treemacs" "RoyalBlue1" '(hbar . 0))`
2017-10-15 17:15:23 +03:00
syl20bnr
b2eaf9fd30 groovy: update indent-variable-alist to support new groovy-mode 2017-08-28 11:02:44 -04:00
Paul
d3cef31ed6 Fix docstring for spacemacs/evil-smart-doc-lookup 2017-07-06 12:29:22 +02:00
syl20bnr
e2e532bb49 core: change <function>p to <function>-p suffixes for consistency
Also defined aliases for backward compatibility with `usedp` functions.
2017-07-02 10:09:39 -04:00
duianto
6a84fb3c0e Replace obsolete which-key functions
Problem:
Two which-key functions doc-strings, state that they are obsolete:

(which-key-declare-prefixes KEY-SEQUENCE REPLACEMENT &rest MORE)
This function is obsolete since 2016-10-05;
use ‘which-key-add-key-based-replacements’ instead.

(which-key-declare-prefixes-for-mode MODE KEY-SEQUENCE REPLACEMENT &rest MORE)
This function is obsolete since 2016-10-05;
use ‘which-key-add-major-mode-key-based-replacements’ instead.

Solution:
Replace the obsolete functions.

Searching with `SPC /` through the .emacs.d folder, didn't find any other
occurrences of these functions.
2017-06-15 13:22:13 +02:00
deb0ch
0dbfbd40ed bindings: improve buffers listing bindings
- bind spacemacs-layouts/non-restricted-buffer-list to SPC b B instead
of SPC B b
- rename buffer listing functions in which-key to be more explicit

PR title:

bindings: non-restricted-buffer-list-* to SPC B b instead of SPC B b

PR message:

I don't know what was the thought behind this, but `spacemacs-layouts/non-restricted-buffers-list-*` was alone in its `SPC B` prefix and `SPC b B` was almost free, only used in one layer that I would be surprised if it was widely used (`ibuffer`).

I also renamed buffers listing functions in `which-key` to be clearer for the user. Indeed, I find that names like `helm-mini` are pretty obscure and kind of defeat the purpose of `which-key` and `spacemacs-layouts-non-restricted-buffer-list-blah` was so long that it couldn't even be displayed.

Now the user can choose between `list-buffers` or `global-list-buffers` for listing buffers.
2017-06-12 12:46:35 +02:00
duianto
c6fda1a1d4 string-inflection: group which-keys, sort code/doc
Group together the which-key entries that call the same command:
k and - becomes k,-
u and _ becomes u,_

Declare a prefix name for SPC x i, this changes the SPC x entry:
from: "i -> +prefix"
to: "i -> +inflection".

Capitalize the transient state title, so that it matches the other TS titles.

Sort the code and documentation key bindings alphabetically.
2017-06-12 12:32:46 +02:00
duianto
fd4b74559c Update which-key popup: key/command grouping
Comment the code and group the keys/commands based on the
which-key section they appear in.

Reduce the width of the listed keys:
By removing spaces around the two dots `..` in the key sequences, and
by removing the modifier keys before the last number in a sequence.

Update the renamed select-window-[1-9] command name, to the new
winum-select-window-[1-9] name.

Combine keys that call the same command.
2017-05-24 09:32:16 +02:00
JAremko
6c5a0b2b14 update docs to the new toc-org format 2017-05-22 18:35:37 +03:00
JAremko
c1e4556882 Format and cleanup docs. Fix links. 2017-04-28 23:29:14 -04:00
syl20bnr
3f1bb43597 Move evil-declare-ignore-repeat to evil init function 2017-04-09 17:25:57 -04:00
syl20bnr
378a767a8e evil: add text objects "«" "「" "‘" "“" 2017-04-09 15:49:55 -04:00
bmag
f5a736cdc1 Set evil-search-module correctly
- Just setting evil-search-module is not enough. If Evil is loaded already, we
  must call evil-select-search-module as well to actually change the
  key-bindings to use the correct search module.
- If the user didn't set hybrid-mode-use-evil-search-module so it's not bound,
  we treat it as if it was set to nil, to match the documentation and the
  default value of hybrid-mode-use-evil-search-module.
2017-03-13 21:06:07 +02:00
syl20bnr
eef1a87e98 Fix evil-search module activation
The search module must be set before requering evil otherwise the variable is
set but it has not effect and `isearch` module is the active module.
2017-02-07 16:53:33 -05:00
deb0ch
cfcdb4dabc fix evil-search enabling in evil-state (c7e47de)
There was an error on startup saying that hybrid-mode-use-evil-search-module was
void as a variable.
2017-02-07 16:36:02 -05:00
syl20bnr
c7e47de938 evil: enable evil-search search module in evil state.
Add new hybrid variable hybrid-mode-use-evil-search-module to switch evil
search module to its own which is closer to Vim. Default is nil.

Fixes #5101
2017-02-03 19:36:19 -05:00
Somelauw
aed1594548 Add more bindings to scroll-transient-state
Move scroll bindings to SPC N
2017-01-14 17:08:57 +02:00
syl20bnr
fb27ede558 Bump year in copyright headers
Happy New Year 2017!
2017-01-05 23:08:17 -05:00
Nir Friedman
daa1e33f55
Add binding for jump to def'n other window 2017-01-04 19:30:58 +02:00
duianto
f5cfa4ad17 replace 9 buffer-to-window entries with one 1..9
Resolves #8038
This replaces the <kbd>SPC b</kbd> buffer-to-window 1 to 9 entries, with just one 1..9 > buffer to window 1..9.
2016-12-24 21:02:53 +02:00
Justin Burkett
afa2226051 which-key: Fix transient state descriptions 2016-12-09 19:24:45 -05:00
Justin Burkett
c69c3b7684 which-key: Implement combined select window keys
This is @deb0ch's idea and uses the new which-key interface
2016-12-09 19:24:45 -05:00
Justin Burkett
7bf00ad878 which-key: Update usage of replacement alists
See 19186917eb
2016-11-25 12:32:10 +02:00
syl20bnr
62f08d89fb Rename dotspacemacs-ex-key to dotspacemacs-ex-command-key
Also move the configuration to evil init function.
2016-10-09 21:28:09 -04:00
Eivind Fonn
53d2ae4f15 Remove evil-smart-goto-definition 2016-09-14 11:38:14 +02:00
Eivind Fonn
060934a4f0 Add evil-goto-definition as default jumper 2016-09-14 11:34:39 +02:00
Eivind Fonn
928983da47 Refactor jump to definition
This commit defines:

- spacemacs-default-jump-handlers: a list of functions that can jump to
  definition in ALL modes.

- spacemacs-jump-handlers-MODE: a list of functions that can jump to
  definition in MODE.

- spacemacs-jump-handlers: a buffer-local list of functions that can
  jump to definition. This is made up of the values of the two previous
  variables whenever a given major mode is activated.

- spacemacs/jump-to-definition: a function that tries each function in
  spacemacs-jump-handlers in order, and stops when one of them takes us
  somewhere new.

- spacemacs|define-jump-handlers: a macro that
  * defines spacemacs-jump-handlers-MODE, possibly filled with initial
    functions
  * defines a function that is added to the hook of the given MODE
  * binds “SPC m g g” of that MODE to spacemacs/jump-to-definition

This is an attempt to harmonize all the different approaches to jumping.
Specifically,

- Existing intelligent jump packages that work for only a single mode
  should go to the beginning of spacemacs-jump-handlers-MODE. E.g.
  anaconda for python, ensime for scala, etc.

- Packages like gtags that work for several modes (but potentially not
  all) and which is dumber than the intelligent jumpers should go the
  the END of spacemacs-jump-handlers-MODE.

- Packages like dumb-jump that work for all modes should go to
  spacemacs-default-jump-handlers.

In all cases the order of the jump handlers in each list should be from
most to least intelligent.

Fixes #6619
2016-08-22 15:08:25 +02:00
Eivind Fonn
08aeccb5af Add typescript variable for evil-shift-width 2016-08-18 14:34:32 +02:00
Steven Allen
22daaea708 Fix jumping backwards after calling spacemacs/evil-smart-goto-definition
Ensure that the "previous position" mark is set correctly. Credit goes to
@eltechnic0 to figuring this out.

Fixes #4942
2016-08-17 20:39:33 +02:00
Eivind Fonn
8e87132ba7 Fix possibly calling bad code after theme change 2016-07-25 14:00:02 +09:00
bmag
9c16c40724 New macro: define regexp-bound text object 2016-07-05 00:23:16 -04:00
syl20bnr
f23ecf0b12 Rename +distribution to +distributions 2016-06-08 22:17:04 -04:00