Commit graph

261 commits

Author SHA1 Message Date
Codruț Constantin Gușoi
8754575550 Fixes insert point for lazy loaded layers
A recent change in the `.spacemacs.template` made it so that the
`dotspacemacs-configuration-layers` variable name can be found inside a
comment right before the expression that sets it's value. This makes the
lazy insertion fail to detect the proper place to add lazy loaded
layers.

This fix solves the immediate problem but maybe a better solution can
be found.
2017-06-08 21:03:45 +02:00
bmag
6fd0d2573b New dotvariable: auto-generate layout names
If dotspacemacs-auto-generate-layout-names is non-nil, and the user
tries to open a layout in a position that doesn't yet have a layout,
then create a new layout with an automatically generated name.
2017-05-25 13:40:28 +02:00
Eivind Fonn
7a6a2d0abb More robust dotspacemacs/add-layer
- Don’t greedily search until last paren, just the first one
- Better call on newlines
2017-05-24 12:47:21 +02:00
Leo Joseph Buchignani III
cb8de28b8f replaced "uninstall" with "delete"
to avoid conflation of loading/ignoring with downloading/deleting.
2017-05-14 22:09:02 -04:00
syl20bnr
8db21403d7 Fix support for fancy frame title 2017-04-28 23:39:41 -04:00
Kepi
7e266f4f3c Improve support for fancy frame title 2017-04-28 23:16:22 -04:00
Uri Sharf
cb30ec1df8 Add support for fancy frame title
Acked-by: Uri Sharf <uri.sharf@gmail.com>
2017-04-28 23:13:25 -04:00
syl20bnr
2d0c3ae92c Rename dotspacemacs-zone-when-idle-for to dotspacemacs-zone-out-when-idle
Set key binding to SPC T Z
Improve the configuration a bit by selecting only the most interesting pgm
2017-04-09 23:55:00 -04:00
JAremko
96be9c9aeb zonefy 2017-04-09 23:26:14 -04:00
syl20bnr
be7ba7f920 core: filter out private vars in dotspacemacs/get-variable-string-list 2017-02-05 20:28:10 -05:00
deb0ch
a28e17c4d3 line numbers: finer configuration of line numbers activation 2017-02-05 12:47:19 -05:00
syl20bnr
415b29b140 core: dotspacemacs-themes entries now accept package properties
It is now possible to use package properties like :location in
dotspacemacs-themes.

Added hooks ran at the beginning and end of configuration-layer/sync:
- configuration-layer-pre-sync-hook
- configuration-layer-post-sync-hook

configuration-layer-pre-sync-hook is used to hook the new function
spacemacs//add-theme-packages-to-additional-packages. This new function updates
dotspacemacs--additional-theme-packages variables.

Update documentation to mention the new feature.
2017-02-01 22:59:03 -05:00
syl20bnr
b3c8ebc816 core: improve theme application
Add all theme packages defined in dotspacemacs-themes to the variable
dotspacemacs-additional-packages and delay the application of user theme at the
end of startup (only when user theme cannot be applied at the very beginning
of Emacs startup).

This has nice properties:
- we leverage the layer system to handle the theme packages installation and
  cleanup.
- theme packages are automatically owned by the dotfile preventing them from
being garbage collected.
- the protected package mechanism is now obsolete since themes were the last
packages using it. This mechanism may be removed in a near future.

Thanks to TheBB for the initial idea.
2017-01-25 23:37:57 -05:00
syl20bnr
fb27ede558 Bump year in copyright headers
Happy New Year 2017!
2017-01-05 23:08:17 -05:00
syl20bnr
467a5cc0ff core: move some functions to their correct source file 2016-12-18 12:05:10 -05:00
Markus Koller
766c284332 Disable paste transient state by default
To match the default configuration template which also disables it.
See https://github.com/syl20bnr/spacemacs/issues/6251#issuecomment-262289770
2016-11-24 23:05:55 +01:00
syl20bnr
e699f1816a core: wrap Emacs custom in a dotfile new function
New function `dotspacmacs/emacs-custom-settings` wrapping Emacs
custom settings sexps.
`dotspacemacs/emacs-custom-settings` is called just after the user
configuration (`dotspacemacs/user-config`)

Customize cannot write its auto-generated sexps inside a function, to
accomplish this we trick Emacs by setting the custom file to a file
in `.cache` directory, the path to this file is defined by the variable
`spacemacs--custom-file`. At the startup of Emacs we read this file
to insert its content inside the function
`dotspacemacs/emacs-custom-settings` in the dotfile, this is done in the
function `spacemacs/write-custom-settings-to-dotfile`.

I don't think we need to write the custom settings to the dotfile when
exiting Emacs as well, since we do it at startup at the very beginning
(i.e. before actually loading the dotfile) we should be OK.

Fixes #5170
2016-11-22 22:55:36 -05:00
Aron Griffis
385c12743a Add ripgrep support
* Add rg to helm completion layer
* Add rg to ivy layer
* Prepend rg to dotspacemacs-search-tools
* Add rg to documentation
2016-11-11 15:22:03 +02:00
syl20bnr
2c4cd4dd42 core: Revert dotfile installation time and fix editing style bug
Force a call to dotspacemacs/init after dotfile installtion.
Move call to (spacemacs/maybe-install-dotfile) to spacemacs/init.
2016-11-07 10:40:39 -05:00
syl20bnr
caca16052a core: remove empty function dotspacemacs//install-and-replace 2016-11-07 10:24:51 -05:00
bmag
e5c9632678 New dotvariable to control switch-to-buffer behavior
With a nil value for dotspacemacs-switch-to-buffer-prefers-purpose,
switch-to-buffer prefers using the current window, same as vanilla
Emacs. With a non-nil value, switch-to-buffer prefers another window
with the same purpose as the buffer. This affects actions like
spacemacs/alternate-buffer, and opening buffers from Dired.
2016-10-23 19:44:35 +02:00
Eivind Fonn
1a97aeb215 Warn if layers changed outside dotspacemacs/layers 2016-10-18 10:13:17 +02:00
Aku Kotkavuo
f478686c69 Fix typos 2016-10-17 13:52:09 +02:00
syl20bnr
d6a286d176 Revert "Set default value of dotspacemacs-startup-lists to nil"
This reverts commit 36f861aaff.

This is indeed very useful for new users (and the others :-))
2016-10-16 22:33:05 -04: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
Dietrich Daroch
d1457feafb Restore easy ex-command remap
Pressing semi-colon is easier than the default colon.

Added ex-key defvar too
2016-10-09 13:21:31 -04:00
syl20bnr
36f861aaff Set default value of dotspacemacs-startup-lists to nil 2016-10-09 12:25:56 -04:00
syl20bnr
03c1b5c466 core: Add an alias for dotspacemacs-enable-paste-micro-state 2016-10-03 00:23:15 -04:00
Eivind Fonn
e207038208 Add dsm variable for responsive home buffer 2016-09-03 12:07:03 +02:00
Eivind Fonn
2ef8c00e6b Add global bound on startup list lengths 2016-09-03 12:06:57 +02:00
syl20bnr
1e64768fb7 core: rename dotspacemacs-download-packages
Rename dotspacemacs-download-packages to dotspacemacs-install-packages
to better reflect the changes in the previous commit.

Also change the value 'used to 'used-only (note that 'used is still
supported for backward compatibility).
2016-08-19 21:31:57 -03:00
syl20bnr
64d3eb953e Standardize docstring for dotspacemacs-helm-use-fuzzy 2016-08-18 22:51:10 -03:00
Nir Friedman
ed1f782bdf Add option for helm fuzzy matching
Change-Id: If3f59e53fa954c230938876184852d1a34f3e7d3
2016-08-17 20:53:45 +02:00
Eivind Fonn
36f3b63079 Make elpa directory more flexible
- Rename variable to dotspacemacs-elpa-subdirectory
- Allow arbitrary form to be evaluated
2016-08-13 14:21:01 +02:00
Bar Magal
6b23983205 core: different elpa dir per emacs version
For emacs 24.5 packages will be installed in .emacs.d/elpa/24.5, for
emacs 24.4 packages will be installed in .emacs.d/elpa/24.4, etc.
For a user that uses several emacs versions with the same config, the
packages for version X will be in .emacs.d/elpa/X and the packages for
version Y will be in .emacs.d/elpa/Y.  This is instead of using the same
.emacs.d/elpa and possibly having copmiled elisp packages the are
incompatible with one of the emacs versions in use.

Rollback directories are also separated by version:
.cache/.rollback/24.5, .cache/.rollback/24.4, etc.
2016-08-13 14:02:06 +02:00
bmag
1aacf4003d Create $SPACEMACSDIR/init.el when needed
Don't fallback to default init file when SPACMACSDIR is used and
$SPACEMACSDIR/init.el doesn't exist. The file will be created during
the startup process.
2016-08-07 16:24:55 +02:00
bmag
6d60d2ef05 Prefer $SPACEMACDIR/init.el over ~/.spacemacs
If SPACMEACSDIR is used, and both $SPACEMACDIR/init.el and ~/.spacemacs
exist, use $SPACEMACDIR/init.el as the dotspacemacs file.
2016-08-07 16:24:52 +02:00
syl20bnr
9d72b12245 change default value of dotspacemacs-check-for-update to nil
Since git commands contacts remotes hosted on GitHub this settings
should be an opt-in.

Fixes #6692
2016-08-03 20:47:09 -04:00
syl20bnr
1c4f685b13 core: refactor layer system
TL;DR Should get 20~25% speed improvement on startup, should get a big
improvement when using ivy or helm SPC h SPC. Users with layers.el files
in their layers must use `configuration-layer/declare-used-layer`
instead of `configuration-layer/declare-layer`

The implementation of the layer system made heavy use of `object-assoc`
and `object-assoc-list` functions which are not efficient. This PR
mainly replaces those object lists with hash maps in order to index the
objects by their name and achieve an O(1) access time.

The old object lists `configuration-layer--layers` and
`configuration-layer--packages` have been each by two variables each:
- `configuration-layer--indexed-layers` which is a hash-map of all the
layer objects and `configuration-layer--used-layers` which is a list of
all _used_ layers symbols,
- symmetrically `configuration-layer--indexed-packages` which is a
hash-map of all the package objects and
`configuration-layer--used-packages` which is a list of all _used_
packages symbols.

The hash map `configuration-layer--layer-paths` is gone, now we create
directly layer objects when discovering the layers and set the :dir
property. Note that previously the layer paths were the parent directory
of the layer, now :dir is the layer path.

The function `configuration-layer//make-layer` is now similar to its
counterpart `configuration-layer//make-package` in the sense that it
takes an optional `obj` to be able to override its properties.

The functions `configuration-layer/declare-layer` and
`configuration-layer/declare-layers` now takes an optional parameter
`usedp` in order to declare used or not used layers. For convenience
new functions have been added: `configuration-layer/declare-used-layer`
and `configuration-layer/declare-used-layers`, users _must_ update all
occurrences of `configuration-layer/declare-layer` by
`configuration-layer/declare-used-layers` in their `layers.el` files.

`helm-spacemacs-help` and `ivy-spacemacs-help` are updated to match the
changes in `core-configuration-layer.el`.

Rename some variables to make them more explicit:
`configuration-layer-no-layer` -> `configuration-layer-exclude-all-layers`
`configuration-layer-distribution` -> `configuration-layer-force-distribution`
2016-07-28 23:26:54 -04:00
syl20bnr
f1247c8d18 core: new variable dotspacemacs-frozen-packages
Packages listed in dotspacemacs-frozen-packages cannot be updated or
rollbacked.
2016-07-09 14:58:30 -04:00
d12frosted
5b9e84ea72 improve font documentation
- make it clear that setting dotspacemacs-default-font has no effect in
  terminal
- make it clear that it's user responsibility to install Source Code Pro
  font
2016-07-05 00:23:16 -04:00
ralesi
1a13cba730 Fix #6429, provide tests for new startup-list. 2016-06-26 14:09:12 -04:00
d12frosted
86c7796fa8 allow to set dotspacemacs-filepath 2016-06-26 14:07:16 -04:00
ralesi
052142ab33 Add list length designstion to startup-list.
* Allow dotspacemacs-startup-list to contain cons cells, specifying list
  length for items.
* Deprecates dotspacemacs-startup-recent-list-size
2016-06-24 18:52:08 -04:00
syl20bnr
dc94784e70 Remove leuven theme from spacemas-ui-visual and simplify default value
for dotspacemacs-themes, set only the spacemacs themes.
2016-06-12 21:15:10 -04:00
Albin Ludvig Otterhäll
9e3f75a36f Remove references to Solarized themes
Solarized themes has been removed from the default distribution of
Spacemacs.
2016-06-12 21:12:34 -04:00
syl20bnr
f23ecf0b12 Rename +distribution to +distributions 2016-06-08 22:17:04 -04:00
Eivind Fonn
5a444184f1 core: allow list of fonts 2016-06-03 23:41:22 -04:00
syl20bnr
b5ec99aa58 Change default value of dotspacemacs-visual-line-move-text to nil 2016-06-02 23:10:35 -04:00
syl20bnr
f76136c86d Rename dotfile variable to dotspacemacs-visual-line-move-text 2016-06-02 23:09:18 -04:00
Steven Allen
db3e867347 make visual line move configurable 2016-06-02 23:06:03 -04:00
Muneeb Shaikh
371dd85ff2 core: add another code folding method using origami to spacemacs-editing
* layers/+spacemacs/spacemacs-editing/packages.el (spacemacs-editing/init-origami):
  add origami package and initialize it
* core/core-dotspacemacs.el (dotspacemacs-override-evil-folding): new
  variable to allow choosing between different code folding methods.
  Currently supported `evil' and `origami'
2016-05-31 22:46:04 -04:00
syl20bnr
60f5a3a0fa New dotfile variable dotspacemacs-download-packages
This new variable replace dotspacemacs-delete-orphan-packages

It defines the behaviour of Spacemacs when downloading packages.

Possible values are `used', `used-but-keep-unused' and `all'.
- `used' will download only explicitly used packages and remove any
unused packages as well as their dependencies.
- `used-but-keep-unused' will download only the used packages but won't
delete them if they become unused.
- `all' will download all the packages regardless if they are used or
not and packages won't be deleted by Spacemacs.

Default value is `used`.
2016-05-30 22:58:59 -04:00
Eivind Fonn
d51987f497 core: remove support for all layers 2016-05-30 21:06:54 -04:00
syl20bnr
1f993bddf6 Rename spacemacs-helm and spacemacs-ivy layers to helm and ivy
For ivy users: be sure to update your dotfile by replacing spacemacs-ivy
by ivy
2016-05-15 22:24:27 -04:00
syl20bnr
fed2e3c04f Fix dotspacemacs wizard
THe dotfile was not reloaded after being updated by the wizard.
2016-05-14 12:09:25 -04:00
syl20bnr
738f425276 Add spaceline-compile to spacemacs-post-user-config-hook
Also improve support for GUI client using a server launcher with
emacs --daemon.
2016-05-11 20:07:26 -04:00
Eivind Fonn
5b719df500 Some fixes for visual shift variable
- Rename mode to state (preferred nomenclature in evil)
- Change default value
- Add to dotspacemacs template
- Fix parens
2016-05-06 13:46:41 +02:00
Steven Allen
bd4bdd3119 core: make retaining visual mode on shift optional
default to disabled to follow vim's behavior.

fixes #5273
2016-05-06 13:36:46 +02:00
Eivind Fonn
ec9f6cfd53 Discover layers before testing dotfile 2016-04-07 23:20:05 -04:00
Fabien Dubosson
57e91fe035 Correct more <SPC> to SPC 2016-04-05 12:52:54 +02:00
syl20bnr
cc5afabcae Experimental: defer by 0.1s spaceline
spaceline can sometime take 1s to load when Emacs starts, using
:defer 0.1 seems to smooth the startup a little bit.
2016-04-03 00:38:13 -04:00
syl20bnr
ae9f40ae77 core: new variable dotspacemacs-ask-for-lazy-installation 2016-03-27 15:56:15 -04:00
syl20bnr
5e5b7a6569 core: new values for dotspacemacs-enable-lazy-installation
- all
- unused
- nil
- t

Fixed #5608
2016-03-27 15:55:24 -04:00
syl20bnr
16afe67907 core: enhance lazy installation of layer
Now Spacemacs will ask for layer installation when opening a file with
a known file type.
The auto-mode-alist entries are added by the file auto-layer.el in
the layers directory.

Easy insert of forms for lazy initialization can be done with the
interactive function configuration-layer//insert-lazy-install-form.

Change default value of dotspacemacs-enable-lazy-installation to t.
2016-03-25 01:03:37 -04:00
syl20bnr
5585a40db1 doc: update editing style documentation 2016-03-17 20:38:23 -04:00
syl20bnr
2d61e5304e core: add support for :variables keyword in dotspacemacs-editing-style
Add variable `hybrid-mode-enable-hjkl-bindings` to enable hjkl
navigation in hybrid mode.

example:

dotspacemacs-editing-style '(hybrid :variables
                                     hybrid-mode-enable-hjkl-bindings t
                                     hybrid-mode-default-state 'normal)
2016-03-16 22:43:50 -04:00
syl20bnr
d52eb414bb Remove dotspacemacs-use-ido
Users should now bind ido commands themselves.
2016-03-10 23:13:19 -05:00
Ista Zahn
2d353a329e Default to using helm for files and buffers. 2016-03-10 23:13:19 -05:00
syl20bnr
359df9e4c3 Minor docstring change for dotspacemacs-large-file-size 2016-03-10 23:13:19 -05:00
ralesi
3f376a431b Prompt to open file literally when opening large files. 2016-03-10 23:13:19 -05:00
Boris
51d56232cd fix typo in dotspacemacs/install 2016-03-05 13:43:31 +02:00
Muneeb Shaikh
aebef8bfcd core: fix dotspacemacs-editing-style docstring 2016-03-01 18:56:24 +01:00
Fabien Dubosson
21cab12125 Add smart closing parenthesis 2016-02-14 23:09:13 -05:00
justbur
b149f4e13a transient-state: new dotspacemacs variable to hide titles
dotspacemacs-show-transient-state-title
2016-01-31 23:50:10 -05:00
justbur
c12f6b85c8 transient-state: Add .spacemacs var to hide color guide 2016-01-31 23:48:19 -05:00
Balaji Sivaraman
2b1ed603dc Change all references of micro-state in codebase to transient-state 2016-01-31 23:04:47 -05:00
tonyday567
36e7e4ef73 Add support for todos and agenda in home buffer 2016-01-31 20:31:09 -05:00
Xue Fuqiao
4958f7fc10 Fix "the point" problems
Point is a proper name when it refers to the current editing location.
Moreover, point designates a place *between* two characters (or before the first
character, or after the last character), rather than a particular character.

References:

* http://lists.gnu.org/archive/html/emacs-devel/2008-10/msg00414.html
* https://www.gnu.org/software/emacs/manual/html_node/elisp/Point.html#index-point
2016-01-31 21:48:52 +01:00
syl20bnr
45def1ec60 core: Add support for lazy installed layer.
New function configuration-layer/lazy-install to add support for
lazy installation of layers based on auto-mode-alist emacs mechanism.

This is essentially the Prelude feature but translated at the layer
level for Spacemacs.

New dotspacemacs variable to enable this feature:
dotspacemacs-enable-lazy-installation
For now this variable is set to nil by default, it will be put to t when
the feature is stable.

POC with elixir layer.
2016-01-31 00:10:14 -05:00
syl20bnr
33ead6fc42 Deprecation of extensions and <pkg>-excluded-packages variables
As announced in previous releases, see CHANGELOG.next for more info
in the Breaking Changes section.
2016-01-17 22:06:04 -05:00
syl20bnr
3d63dd4392 core: fix red mode-line when an error occurred
Rename function configuration-layer//set-error to
configuration-layer//increment-error-count
2016-01-12 00:08:36 -05:00
syl20bnr
046d86800c Clean copyrights and update for year 2016 2016-01-11 21:42:17 -05:00
Eivind Fonn
d8833215b0 Make scratch buffer major mode configurable 2016-01-11 01:13:10 -05:00
syl20bnr
6d1df2845f core: remove evil variable aliases and change default to nil
People transitioning from Vim could be surprised if we set these
variable to t by default, so setting them to nil respects better
the POLA principle.

Impacted variables:
dotspacemacs-ex-substitute-global
dotspacemacs-remap-Y-to-y$
2016-01-11 01:13:10 -05:00
Fredrik Bergroth
71aa5f6616 Add dotspacemacs-ex-substitute-global setting
If non-nil, this setting inverts the behavior of the 'g' flag in

    :s/pattern/replacement/g
2016-01-11 01:13:10 -05:00
syl20bnr
53d55d3da6 core: offer completion framwork choice in wizard 2016-01-09 14:19:01 -05:00
syl20bnr
4a51254f05 core: backward compatibility with dotspacemacs-command-key 2016-01-09 02:23:04 -05:00
syl20bnr
58e5241c8d dotfile: rename dotspacemacs-command-key for dotspacemacs-emacs-command-key
And change the key from ":" to "SPC"
This key does not try to bind evil ex-command anymore, it only bind
M-x behind the leader key.
2016-01-09 01:53:24 -05:00
syl20bnr
63fbdb4e01 core: change dotspacemacs-whitespace-cleanup default value to nil
And update documentation

Fixes #4386
2016-01-05 00:37:19 -05:00
syl20bnr
96a648d1da Update deprecation TODO to 0.106 2016-01-03 22:46:01 -05:00
justbur
46f36dc74d core: Declare macro before it's called 2015-12-21 00:42:52 -05:00
justbur
39760a1cfe core: Update to preferred versions of functions
1. Don't use beginning-of-buffer (or end):
   These are for interactive use only according to compiler

2. reduce => cl-reduce

3. next-line => forward-line
   next-line is only for interactive use

4. set-default-font => set-frame-font
   set-default-font is obsolete since 23.1

5. show-subtree => outline-show-subtree (alias)

6. show-all => outline-show-all (alias)
2015-12-21 00:25:41 -05:00
syl20bnr
4be87ef4cb core: rename dotspacemacs-version-check-enable
to dotspacemacs-check-for-update
2015-12-11 01:47:34 -05:00
Eldon Nelson
2b4f259389 Add dotspacemacs variable to skip check for update 2015-12-11 01:40:19 -05:00
syl20bnr
26ecdee0e3 New dotspacemacs variable dotspacemacs-elpa-timeout
Increase timeout from 3 seconds to 5 seconds.
2015-12-06 02:22:49 -05:00
justbur
246ebc1a27 core-keys: Enable distinction between C-i and TAB
Added dotfile variable to template and core-dotspacemacs.el

After enabling, if C-i is translated to the "key" <C-i> which allows you
to bind a separate command in the GUI like this

(define-key map [C-i] 'c-i-command)

or this

(define-key map (kbd "<C-i>") 'c-i-command)

This has the side effect of no longer making C-i default to TAB in the
GUI, but will not affect the TAB or <tab> bindings.

Removes spacemacs//handle-terminal-keys
2015-12-04 00:23:10 -05:00
syl20bnr
1061adbac9 New variable dotspacemacs-elpa-https
If non nil use HTTPS otherwise use HTTP.
Default is t.
2015-11-18 13:50:30 -05:00
Bar Magal
1a91e3ea14 Home buffer: make number of recent files configurable #2335
Fixes issue #2335
2015-11-15 12:33:23 +01:00
caleb
1a917c429c fix typo for spacemacs-base option 2015-11-15 12:19:54 +01:00