Commit graph

946 commits

Author SHA1 Message Date
JAremko 0557087406 Remove query.stickytableheaders.js (error 404) 2016-03-30 22:28:19 -04:00
JAremko 84370154a2 fix typo 2016-03-30 22:28:11 -04:00
syl20bnr ad2d0b18d0 core: remove General layers section
Since it is empty right now.
2016-03-30 17:51:16 -04:00
syl20bnr 91eeccc7a5 core: change meaning of t for dotspacemacs-enable-lazy-installation
t now means unused.
2016-03-28 12:10:12 -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 d37c38053e core: fix installation and configuration of lazy installed packages
Several things have been fixed:
- correctly set the :lazy-install flag on all packages of a lazy
  installed layer
- correctly unset the :lazy-install flag when installing the packages
- sort the packages before installation and configuration

Fixes #5610
2016-03-27 12:23:24 -04:00
syl20bnr 21496c462c core: fix detection of packages to lazy install
Make cfgl-layer-owned-packages return a list of package objects instead
of just package names.
Use this function to correctly excluded non owned package when flagging
package for lazy installation.

Fixes #5608
2016-03-27 03:27:53 -04:00
syl20bnr 842bb368ea core: display home buffer when installing a layer lazily 2016-03-26 03:36:54 -04:00
syl20bnr b7923ad1d9 core: don't configure package marked for lazy install 2016-03-26 03:23:18 -04:00
syl20bnr f70bcbcd4c core: improve lazy install robustness
- only consider distant packages (i.e. requiring an installation)
- remove lazy install flag of a layer if at least one owned package is
  already installed
2016-03-26 03:23:03 -04:00
syl20bnr fe8f0a74ad core: fix lazy install prompt for installed layers
Fixes #5591
2016-03-26 02:15:55 -04:00
syl20bnr a7f46a496e core: fix mode activation when lazy install is cancelled 2016-03-26 00:50:13 -04:00
syl20bnr 8815868524 core: fix lazy installation of not used packages
Fixes #5591
2016-03-26 00:46:11 -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 9d0558992c layers directory: create new categories
+chat
+checkers
+emacs
+intl
+os
+pair-programming
+tags
+theme
+web-services
2016-03-23 21:39:43 -04:00
syl20bnr 9bd6078cc5 Update README.org template for layers 2016-03-21 20:04:38 -04:00
syl20bnr c3bb8a609e core: add overriding rules for :toggle
:toggle is ignored if not used in the owner of a package, it can
be overridden by new owners or by the dotfile.
2016-03-19 18:26:18 -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 82fdd9a511 Use evil in holy-mode
Motivation

While disabling Evil in holy-mode makes its implementation shorter and
sounds elegant on the paper, in practice it puts a big burden on the
configuration parts which need to know if Evil is enable or not. This is
a bad separation of concerns and the bunch of fixes that we were forced
to do in the past weeks shows this issue. Those fixes were about
removing the knowledge of the activation of Evil by implementing new
dispatching functions to be used by layers, this is cumbersome and makes
Spacemacs layer configuration more subtle which is not good. There was
additional bad consequences of the removal of Evil state like the
impossibility to use Evil lisp state or iedit states, or we would have
been forced to implement a temporary activation of Evil which is
awkward.

Instead I reintroduce Evil as the central piece of Spacemacs design thus
Evil is now re-enabled in holy-mode. It provides the abstraction we need
to isolate editing styles and be able to grow the Spacemacs
configuration coverage sanely. Layers don't need to check whether the
holy mode is active or not and they don't need to know if Evil is
available (it is always available). We also don't need to write
additional dispatching functions, this is the job of Evil, and I think
it provides everything for this. Ideally configuration layer should be
implemented with only Evil in mind and the holy-mode (and hybrid-mode)
should magically make it work for Emacs style users, for instance we can
freely use `evil-insert-state` anywhere in the code without any guard.

Evil is now even more part of Spacemacs, we can really say that
Spacemacs is Emacs+Evil which is now an indivisible pair. Spacemacs
needed this stable API to continue on the right track.

While these changes should be rather transparent to the user, I'm sorry
for this experimental period, I failed to see all the implications of
such a change, I was just excited about the possibility to make Evil
optional. The reality is that Spacemacs has to embrace it and keep its
strong position on being Emacs+Evil at the core.

Implementation

- insert, motion and normal states are forced to emacs state using an
advice on `evil-insert-state`, `evil-motion-state` and
`evil-normal-state` respectively. These functions can be used freely in
the layer configuration.
- A new general hook `spacemacs-editing-style-hook` allow to hook any
code that need to be configured based on the editing style. Functions
hooked to this hook takes the current style as parameter, this
basically generalize the hook used to setup hjkl navigation bindings.
- ESC has been removed from the emacs state map.
- Revert unneeded changes
  - Revert "evil: enter insert-state only from normal-state"
    commit bdd702dfbe.
  - Revert "avoid being evil in deft with emacs editing style"
    commit f3a16f49ed.

Additional changes

All editing style packages have been moved to a layer called
`spacemacs-editing-styles`

Notes

I did not have time to attack hybrid mode, I should be able to do it
later.
2016-03-13 21:16:55 -04:00
syl20bnr 00d13b4ff9 core: use eval for toggle property
In this case the dispatch to symbol-value is useless since we accept
an prog form.

See https://www.gnu.org/software/emacs/manual/html_node/elisp/Eval.html
2016-03-12 14:02:51 -05:00
syl20bnr 7f50c16566 core: add google analytics support for website pages 2016-03-12 13:51:25 -05:00
Joe Hillenbrand 262c760fe6 remove dotspacemacs-use-ido from template 2016-03-12 17:56:06 +01: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
bmag 0daba08781 Use package-user-dir where appropriate
Elpa dir is no longer hard-coded to <user-emacs-directory>/elpa/. Users
can change the location of Elpa dir by changing the value of
package-user-dir.
2016-03-10 23:13:19 -05:00
syl20bnr 1eb2e095a5 Improve previous commit. 2016-03-09 20:05:39 -05:00
Th. Rikl cb0fb035a2 Modified dotspacemacs/user-init//config comments
to clarify their pre- resp. post-layers character.
2016-03-09 20:03:06 -05:00
syl20bnr f6657a5382 core: new interactive function to insert lazy installation config
New function configuration-layer/insert-lazy-install-configuration
This function asks for a layer and then insert the lazy configuration
for all the packages owned by this layer.
2016-03-05 23:25:00 -05:00
Boris 51d56232cd fix typo in dotspacemacs/install 2016-03-05 13:43:31 +02:00
syl20bnr bfec254221 core: replace :additional-docs by an independent macro
- New macro `spacemacs|transient-state-format-hint`
Additional hints can be formatted outside of the transient state macro.
This is a better separation of concern from an API point of view
because those hint are coupled to with the usage of :dynamic-hint
keyword. The transient state macro only need to know the entry point
for such dynamic hints, effectively increasing the readability of
transient state definition.

To be able to decouple the formatting of additional hints, a new
private variable whose name is given by the function
`spacemacs//transient-state-props-var-name` has been introduced.
An alternative would have been the save the whole transient state macro
props but a variable allows the cherry-pick only the values we really
need.

- Remove commented code about old variable
`spacemacs-transient-state-title-face`

- Remove unused keyword :entry-binding since it is not used. Given
the number and diversity of transient states in Spacemacs currently it
is a safe guess to remove this keyword for now. We can reintroduce it
later if really needed.
2016-03-04 18:20:23 -05:00
syl20bnr 9c46bad357 core: add :hint-is-doc keyword to transient state 2016-03-04 17:26:11 -05:00
syl20bnr 613ccb0070 core: add :dynamic-hint keyword to transient state 2016-03-04 17:02:58 -05:00
Eivind Fonn 66ed054a15 Better implementation of previous commit 2016-03-03 21:43:33 +01:00
Eivind Fonn 067ac63f15 Avoid using condition-case during pkg load 2016-03-03 21:37:42 +01:00
Eivind Fonn 52bb7b7c7f Revert one instance of condition-case 2016-03-03 21:14:40 +01:00
bmag b224c9f1e1 Bugfix: honor package :toggle spec when provided 2016-03-03 20:41:10 +01:00
justbur 39e06feba9 Use unless-debug version of condition-case
It's not possible to get full backtraces in these instances when an
error is signaled, and I think we should generate full backtraces when
debug-on-error is enabled as a general rule.

I had to make this change at one place to track down the root of problem
2 in #5200.
2016-03-03 20:30:30 +01:00
Muneeb Shaikh aebef8bfcd core: fix dotspacemacs-editing-style docstring 2016-03-01 18:56:24 +01:00
Eivind Fonn 83556719cb Add display-graphic-p to SPC hds 2016-02-23 23:34:49 +01:00
syl20bnr 8849e9c807 core: fix activation of package dependencies
Bug lurking in the code for quite some time, if both a package and
its dependencies were uninstalled then activation of the dependencies
could fail. This is resolved by explicitly asking package.el to install
the dependencies if required.
2016-02-23 13:00:38 -05:00
syl20bnr fd9326486a core: new function configuration-layer/describe-package
Add actions for both helm and ivy.

TODO:
- see TODO in function body
- replace SPC h d p (list all packages, use spacemacs describe when
it is a layer package, otherwise use vanilla describe).
2016-02-22 02:29:43 -05:00
syl20bnr e4447264d9 core: new package keyword :toggle
This new keyword allows to add all the packages to the <layer>-packages
even when a package is not toggled on by a given layer variable.

This fixes an issue of the layer system where we had to choose between
discoverability (ie. the list of package in helm or ivy with SPC h SPC)
and installation of package (because any package listed in the variable
<layer>-packages were installed).
2016-02-21 00:01:39 -05:00
syl20bnr 308fb1118d core: replace package keyword :skip-install by :location site 2016-02-20 23:05:36 -05:00
syl20bnr 6bb306a999 Improve theme installation robustness
Also use stock Emacs functions for warning reporting before the
home buffer is actually created.
2016-02-19 23:30:35 -05:00
syl20bnr da83bef2cb Fix unusable Emacs when an ELPA repository is down 2016-02-19 22:14:45 -05:00
justbur aab007d225 evil-jumper: Remove obsolete package
The functionality is now incorporated into the evil core and this
package has been marked as obsolete.
2016-02-16 21:23:07 -05:00
syl20bnr 7b6588d017 Fix typo in spacemacs-force-resume-layouts 2016-02-15 00:05:38 -05:00
Kosta Harlan d6c29bdb8c Add majapahit-theme
This is a nice theme with light & dark versions.
2016-02-14 23:09:26 -05:00
Fabien Dubosson 21cab12125 Add smart closing parenthesis 2016-02-14 23:09:13 -05:00
bmag 31f532dfe5 install-package: don't set lazy-install pkg is nil
Fix bug: When the list of package names returned by
configuration-layer//get-uninstalled-packages contains a package that
isn't contained in configuration-layer--packages, then
configuration-layer//install-package throws "wrong-argument-type:
eieio-object-p nil" error at startup.
configuration-layer//install-packages catches it and prints it in the
home buffer.
2016-02-14 23:07:22 -05:00
Fabien Dubosson 24f0e8cc4b Restart Spacemacs restoring layouts
Fix #5058
2016-02-14 20:59:05 -05:00
Igor Avdeev 0e416290c4 Fix display of recent bookmarks without filename 2016-02-14 20:57:46 -05:00
Xue Fuqiao a0d33123e5 Update layers/LAYERS.org
Languages like HTML, LaTeX, and Markdown are markup languages.
2016-02-07 14:28:07 +01:00
Muneeb Shaikh d3ec9a1791 fix paste micro -> paste transient 2016-02-02 16:52:32 +01:00
syl20bnr 065f45f83f Add default value for transient-state dotspacemacs variables 2016-01-31 23:53:52 -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 c40e49f1a1 transient-state: Add pink to color guide
Pink is for keys that do not exit hydras that run foreign keys.
2016-01-31 23:49:49 -05:00
justbur afec0f2264 transient-state: Add :additional-docs option
Used to format additional docstrings and store the resulting string in a
variable.
2016-01-31 23:48:19 -05:00
justbur a55e8dc6fa transient-state: Make title face match mode-line 2016-01-31 23:48:19 -05:00
justbur c12f6b85c8 transient-state: Add .spacemacs var to hide color guide 2016-01-31 23:48:19 -05:00
justbur c6b7eaca3d transient-state: Tweak formatting of doc
Make title formatting span length of message window, add space
between color guide and keys, and make italic.
2016-01-31 23:48:19 -05:00
syl20bnr 3b6b55485a core: don´t catch errors if --debug-init 2016-01-31 23:15:29 -05:00
Levin Du 330f852752 core: update doc after auto executing in micro state.
This is useful if :doc is a function to return the state which may be
modified by :execute-binding-on-enter.
2016-01-31 23:04:47 -05:00
Balaji Sivaraman 2b1ed603dc Change all references of micro-state in codebase to transient-state 2016-01-31 23:04:47 -05:00
Alex R 62337a3e3a Ensure that pcache-directory ends in a slash 2016-01-31 23:04:46 -05:00
Robert O'Connor 42735c9f9f core: fix typo 2016-01-31 22:18:32 -05:00
syl20bnr fd4c2fb546 core-spacemacs-buffer: respect 80 characters per line 2016-01-31 20:31:09 -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 5a061b3813 core: new layer files packages-config.el and packages-funcs.el
Start to isolate the list of packages. Also we want to define packages
function at the top level of an elisp file in order to not prevent
emacs from knowing where the functions are defined.

This commit has a POC made with elfeed and elixir layers.
2016-01-31 00:03:04 -05:00
syl20bnr 5b757eb090 core: remove corelv
Since hydra is now a bootstrap package.
2016-01-26 02:05:32 -05:00
Curtis Mackie 5511bdbd6f Added support for remaining base16 themes that were not listed 2016-01-26 01:21:02 -05:00
Fabien Dubosson aa39eb3fd0 Add a command for reporting issue to spacemacs 2016-01-26 01:21:02 -05:00
justbur a19710846e transient state: Add color guide to hints 2016-01-26 01:21:01 -05:00
justbur 35ad5f32ba core: Add defer-until-after-user-config
Add function that can be used to defer execution until after
dotspacemacs/user-config is run. If it has already been run the function
executes immediately.

Initially this is only used for deferring the definitions of
transient-states.
2016-01-26 01:21:01 -05:00
justbur 76cd590667 transient-state: Put code in new core file 2016-01-26 01:21:01 -05:00
justbur 9e097d898c transient-state: Load defs after user-config 2016-01-26 01:21:00 -05:00
justbur f3e68b95a3 transient-state: Defer declaration of transient states 2016-01-26 01:21:00 -05:00
justbur bbcac824ef transient-state: Add/remove bindings with variables
spacemacs-STATE-transient-state-remove-bindings is a list of keys whose
associated bindings should be removed for a transient state, when this
variable is defined.

spacemacs-STATE-transient-state-add-bindings is a list of bindings
suitable for a hydra whose associated bindings should be added to a
transient state, when this variable is defined.
2016-01-26 01:21:00 -05:00
justbur e97af03ff7 Call new micro-state a transient state 2016-01-26 01:21:00 -05:00
justbur 154cfeea19 micro-state: Add :title option 2016-01-26 01:21:00 -05:00
justbur 0f4105d09d core-funcs: Cleaner expansion of create-key-binding-forms 2016-01-26 01:21:00 -05:00
justbur da645c627e micro-state: Add add-micro-state-bindings
Macro that allows additional bindings to be specified for a micro-state
before that micro-state is declared.
2016-01-26 01:21:00 -05:00
justbur dbd9725c39 spacemacs(-base): Translate micro-states to use new macro
1. spacemacs: scroll
2. spacemacs-base: paste
3. spacemacs-base: macrostep
4. spacemacs-base: transparency
5. spacemacs-base: scale-font
6. spacemacs-base: wind-manip
7. spacemacs-base: buffer
8. spacemacs: symbol-highlight
9. spacemacs: move-text
10. spacemacs: zoom-frm
11. spacemacs: evil-numbers
2016-01-26 01:20:59 -05:00
justbur 13c41947b1 micro-state: Define wrapper for defhydra
Try to use as many of the old keywords from spacemacs|define-micro-state
as possible in the new macr spacemacs|define-micro-state-2 (the 2 is
just to use for the transition period)
2016-01-26 01:20:59 -05:00
justbur 90df083ad3 spacemacs-base: Add hydra package 2016-01-26 01:20:59 -05:00
Eivind Fonn ad6efee8a2 Don't accidentally overwrite skip-install 2016-01-26 01:20:59 -05:00
Eivind Fonn 2d29953200 Enhance theme handling
- Restrict default theme code to spaceacs/load-theme
- Don't download package for default
- Explicitly call post-theme-init for default
- Explicitly disable existing themes when loading
2016-01-23 14:40:24 +01:00
Ista Zahn 86dd7926b7 Allow default theme in dotspacemacs-themes 2016-01-23 14:13:25 +01:00
Eivind Fonn e8a10c3d54 Clean up REPL code 2016-01-22 16:31:37 +01:00
Alejandro Catalina Feliú fb99f3ff19 Add global access to all available REPLs
Enable a global binding to access a list of available REPLs to run
everywhere. If the requested REPL depends on a major-mode that hasn't
been loaded, it will be loaded along its dependencies.

To make this work, a new `spacemacs/register-repl` function is included.
This function adds a major-mode and its repl function to a global
variable.
2016-01-22 16:01:19 +01:00
Eivind Fonn 82cb1fe780 Enhance spacemacs|diminish
- Overwrite instead of push to front (fix #4679)
- Allow unicode to be nil (fully diminish)
2016-01-21 16:10:24 +01:00
james sangho nah 23525a3d1d Remove non-directories from rollback slot list
Addressing #4586. The bug stops Spacemacs from listing rollback slots if
there exists a file (i.e. non-directory) in the rollback directory.
e.g. .emacs.d/.cache/.rollback/.DS_Store (common in OS X)
2016-01-21 15:55:32 +01:00
syl20bnr 1a5229048c core: new keyword :skip-install 2016-01-17 23:27:30 -05:00
Fredrik Bergroth 061805c7ea Add prev/next file navigation to unimpaired layer 2016-01-17 22:48:12 -05:00