Commit graph

1021 commits

Author SHA1 Message Date
syl20bnr
ad40bae1bf core: fix deletion of orphan packages and deps 2016-05-31 14:32:21 -04:00
syl20bnr
9dfa7c3fa6 core: fix error with unknown layer listed in dotfile 2016-05-31 12:47:35 -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
881b1f1e7f Rename special banner cate to cat 2016-05-29 23:27:31 -04:00
syl20bnr
a2de9a63af Use :toggle keyword instead of when forms 2016-05-29 22:39:21 -04:00
syl20bnr
d98be63dfa core: new layer file -> layers.el / Fix regressions of previous commits
The new layer file `layers.el` is used to declared additional layers.
It is like the sibling of packages.el except that for now it does not
take a list (can do this in a futur commit).

The new order for file loading is the following:

layers.el > packages.el > funcs.el > config.el > keybindings.el

Since packages.el relies on some undefined stuff encapsulated
in init functions, it is not meant to be byte compiled. OTOH funcs.el
(where lies most of the computation added by a package config) should
be compilable.

Since we load packages.el very early it is not possible to use
`configuration-layer/package-usedp` in funcs.el.

This commit also fixes the tests.
2016-05-28 21:20:23 -04:00
syl20bnr
37dfa47961 core: allow package-usedp in both packages.el and funcs.el 2016-05-27 00:32:05 -04:00
syl20bnr
c6e47c0306 core: rename doc-fmt to spacefmt 2016-05-27 00:32:05 -04:00
syl20bnr
7f07a965ad core: expand doc-fmt usage to any form of formatting
Add argument `action` as first positional argument, the second
positonal argument is for tests.

Add actions `doc` and `config`, doc works on org files and config works
on configuration file like packages.el.
The special action `all` performs all actions.

Move test files to `test` sub-folder.

Choose between `md5sum` and `md5` (on OS X) executables.

Add a new formatting function `move-packages-to-config` to move
package lists to config.el file.
2016-05-27 00:32:05 -04:00
syl20bnr
c35e4ee27b core: remove packages-funcs and packages-config
Change the semantic of the files for a better control over the
configuration (like being able to use package-usedp function to
guard package configuration and function definition).

This is a big change!

The list of packages of the layer must now be placed in config.el
packages.el only contains pre-init, init and post-init functions

Now both packages.el and funcs.el can use
configuration-layer/package-usedp which is much more powerful than
just configuration-layer/layer-usedp.

Also merging into one file the layer variable and the list of packages
make sense (in this case config.el).

It also means that we can quickly load all the packages declared in
all layer for helm and ivy sources by just loading the config.el file.

Expect some regressions introduced by this change, like the helm
and ivy sources, they will be fixed in other commits.
2016-05-27 00:32:05 -04:00
syl20bnr
7945d39208 Move cate to 998 index and add support for `cate' value
Also removes some empty lines in the banner.
2016-05-27 00:32:05 -04:00
alex
77cb2237a5 Add a banner for my cute cate nemad momo 2016-05-27 00:32:05 -04:00
Diego Berrocal
0749c61add Add emojis to the Issue Template 2016-05-27 00:32:05 -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
1ebbe18b47 core: display warning buffers at the bottom of the screen
when synchronizing layers.
2016-05-14 22:10:20 -04:00
ralesi
f305bd01f9 Center spacemacs banner in window at startup.
Provide facility to refresh spacemacs-buffer.
2016-05-14 14:23:40 -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
Curtis Mackie
c9e866443c Prevent warnings when toggles are turned on
The edited sexp should not be quoted, it should be evaluated.
Removing the quoting allows it to work as intended.
2016-05-06 10:37:39 -05:00
Eivind Fonn
78f11f4493 Break long line in core-toggle.el 2016-05-06 13:53:42 +02:00
Daniel Luna
76610294a7 long-lines' toggle now accepts prefix arguments.
This commit introduces two new options to add-toggle:

:prefix, a symbol that is bound to the raw prefix argument (as
in `(interactive "P") forms).

:on-message, an expression overriding the default 'on' toggle
message (useful to document a toggle's argument).

These new options are applied to long-lines' toggle, so we can choose
how many lines to toggle it on via a raw prefix argument.
2016-05-06 13:53:41 +02: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
22774e6a96 Make font warning more explicit. 2016-05-05 15:10:30 +02:00
bmag
47e0951a1c spacemacs/dump-vars-to-file: don't visit dump file
Visiting the dump file before writing to it is slow, because it triggers
all the regular actions that happen when a user opens a file, e.g.
enable major mode and minor modes. We don't need all that,
with-temp-file is what we really want.
2016-05-05 13:03:26 +02:00
JAremko
c1d4774d63 doc-fmt iterate until all is fixed
rm unused var

*POKED TRAVIS IN THE EYE*
2016-04-29 21:58:38 -04:00
JAremko
0b9add2f0d Redesign space-doc 2016-04-29 20:00:12 -04:00
syl20bnr
419a0331ab Add font-locking for report-issue-mode buffers 2016-04-29 19:55:46 -04:00
Damon Wang
6e6732c9b5 Adds in-emacs editing to spacemacs/report-issue
spacemacs/report-issue opens a buffer prepopulated with a template and some
system information. The buffer is markdown-mode augmented with a keybinding to
send the contents to github.

Or if that doesn't work, the text remains in the buffer to be manually copied
and pasted. This makes the error reporting more robust: right after the user has
experienced one bug is the worst time to manifest another one.

This commit also rewrites spacemacs//describe-last-keys-string because I
couldn't figure out how else to prevent view-lossage from burying the new
REPORT_SPACEMACS_ISSUE buffer.  Suggestions welcome.
2016-04-29 19:32:36 -04:00
ralesi
5605fa5b66 Async is not present in spacemacs-base 2016-04-29 18:37:34 -04:00
Fabien Dubosson
ce803c6bab Let's try to get this message unnoticed
syl20bnr reported this message can be read on startup because there is a
small delay after it, so let's try to change it to something less weird.
2016-04-28 15:47:53 +02:00
syl20bnr
b21c7177ec core: new command line params --no-layer and --distribution
--no-layer: desactive all the layers except the distribution layer
--distribution: allow the change temporarily the distribution

example

Start emacs with spacemacs-base and no layers:
emacs --no-layer --distribution spacemacs-base
2016-04-21 23:29:23 -04:00
Fabien Dubosson
04267777ca Fix font definition for first frame in daemon mode 2016-04-21 21:10:28 -04:00
syl20bnr
92e144a361 Remove april fool 2016 starting code 2016-04-20 23:46:16 -04:00
Muneeb Shaikh
32f9b809ed core: update report-issue docs and docstring
* core/core-spacemacs.el (spacemacs/report-issue): update docstring
* doc/DOCUMENTATION.org (Reporting Issue table): reword key description
  to keep table width small

Fix #5155
2016-04-17 00:37:47 -04:00
syl20bnr
5ee970f07b Add an empty lines to ascii arts.
This line is used to inject version information.
2016-04-13 09:55:29 -04:00
syl20bnr
bdbe05e615 doc-fmt tool: fix typo 2016-04-12 23:24:28 -04:00
JAremko
b42cba0417 Upgrade doc-fmt
Add test mode: {repo-root}/core/tools/doc-fmt/run.bash test
  applies formatting only to {repo-root}/core/tools/doc-fmt/test.org

Use "gsed" if present.

Add new filters, refactor code.

test.org now represents most of the .org file formatting errors.
2016-04-12 23:19:07 -04:00
JAremko
6b24d059dd Add function spacemacs/prettify-org-buffer
Move Spacemacs documentation prettifiers to a separate function
so they can be used by users.
2016-04-12 23:18:10 -04:00
syl20bnr
f211d3dc28 Update docstring for spacemacs/view-org-file
Respecting convention of upercase function parameter in docstring.
2016-04-12 23:14:31 -04:00
JAremko
78f6b64ae1 Update spacemacs/view-org-file doc string 2016-04-12 23:12:01 -04:00
JAremko
de0f8ff677 Add space-doc link examples to README.org.template 2016-04-12 23:11:26 -04:00
JAremko
625f1a098e view-org-file emits error for non .org files
Now spacemacs/view-org-file emits user-error if used on non *.org file.
2016-04-12 23:08:10 -04:00
Eivind Fonn
bcea630826 Make matlab quasi-derived from prog-mode
Also make this a named function.
2016-04-12 22:48:34 -04:00
Eivind Fonn
2034195771 Remove some mentions of extensions 2016-04-11 14:53:28 +02:00
Richard Kim
4ce4d6de77 allow emacs to be launched with -q option
If emacs is launched with -q option and spacemacs files are loaded via
--eval option, then spacemacs fails due to depending `after-init-time'
variable being set properly which is done only when emacs is launched
without -q. This patch is to remove this dependence so that spacemacs
launched with -q can still work. This is done by introducing
`spacemacs-initialized' variable which is set properly regardless of
which command line options are present or absent.
2016-04-08 18:04:11 -04:00
Eivind Fonn
ec9f6cfd53 Discover layers before testing dotfile 2016-04-07 23:20:05 -04:00
syl20bnr
09ff77fbd4 Make it possible to use spacemacs-bootstrap layer as a distribution 2016-04-06 13:12:13 -04:00
Fabien Dubosson
57e91fe035 Correct more <SPC> to SPC 2016-04-05 12:52:54 +02:00
Robert Johnson
16e1be2691 Fix inconsistent notation of SPC key in docs
Replace all occurrences of <SPC> in org files with SPC.

Fixes syl20bnr/spacemacs#1823
2016-04-05 12:46:10 +02:00
Florian Bruhin
0653e1f3ea Fix spelling error in .spacemacs template 2016-04-05 12:40:12 +02:00
syl20bnr
c55c21d1c3 core: fix layer auto-mode function
Not installed used layers were not lazy installed appropriately.
2016-04-04 22:15:24 -04:00
syl20bnr
22c2763569 core: add package breakdown in summary message
e: elpa
r: recipe
l: local
b: built-in
2016-04-03 12:02:28 -04:00
syl20bnr
50515a826a core: new function spacemacs-buffer/display-info-box
Extract and rewrite the code to display the startup info box.
2016-04-03 02:51:44 -04:00
syl20bnr
d60228219f core: ensure quelpa is available when installing packages 2016-04-03 02:51:01 -04: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
eb14645d0f Lazy require space-doc-mode 2016-04-03 00:36:27 -04:00
syl20bnr
8e897f6b7b core: new layer spacemacs-bootstrap and new package :step
New package :step 'bootstrap', this step happens before 'pre' packages.
A new layer names 'spacemacs-bootstrap' gather all the ':step bootstrap'
packages. This layer is special and is always the first element of
the variable 'configuration-layer--layers' which assure that all
bootstrap packages are configured first.

This new layer leverages the configuration layer system, removes the
clutter of package installations in the function 'spacemacs/init' and
isolate the bootstrap packages in one place.
2016-04-03 00:28:47 -04:00
syl20bnr
a34f910367 Zemacs: Show startup-list for the next millennium 2016-04-01 07:31:22 -04:00
syl20bnr
749f0722b4 core: fix doc-fmt tool 2016-04-01 00:26:20 -04:00
syl20bnr
5efa0e58c0 April Fool 2016 2016-04-01 00:26:19 -04:00
syl20bnr
6770969b6f core: add variables for core-spacemacs-buffer
- spacemacs-buffer-version-info
- spacemacs-buffer-logo-title
2016-04-01 00:26:19 -04:00
syl20bnr
05a04768b1 core: new function spacemacs/window-system-is-mac
Use if to disable the menu-bar
2016-03-31 00:34:28 -04:00
syl20bnr
8f3494d83c core: move system functions to core-funcs.el 2016-03-31 00:33:56 -04:00
d12frosted
80874646fc properly check for system-is-mac 2016-03-31 00:23:59 -04:00
d12frosted
98b329e741 move system-is-* function to core 2016-03-31 00:23:59 -04:00
syl20bnr
ff941e4348 core: fix activation of space-doc-mode 2016-03-31 00:11:36 -04:00
syl20bnr
1f5b61969c Move doc-fmt to core/tools 2016-03-30 23:01:54 -04:00
JAremko
919a960fc2 update README.org.template to the new convention
Remove #+HTML_HEAD_EXTRA: <link ... /readtheorg.css" />

:TOC_4_org:noexport: -> :TOC_4_gh:noexport:
2016-03-30 22:40:16 -04:00
JAremko
8c3d05ee47 Add org-mode link-type "https" to open local copies
The https link-type opens the local copies of the Spacemacs documentation files with
the spacemacs/view-org-file function. It supports GitHub style heading links

For example, the link:

https://github.com/syl20bnr/spacemacs/blob/develop/layers/org/README.org#links

Will be handled similary to as if it was:

file:~/.emacs.d/layers/org/README.org::*links

Also the `space-doc' mode will be applied.

Refactored GH style anchor search.
2016-03-30 22:38:18 -04:00
syl20bnr
30f971d89c reformat some code to respect 80chars per line 2016-03-30 22:35:07 -04:00
JAremko
014bbfd921 Add Spacemacs docs minor mode to hide meta tags.
`space-doc-mode` - Buffer local minor mode for Spacemacs documentation files. The mode hides org meta tags.
Enabled when viewing documentation via `SPC` `h` `SPC`
2016-03-30 22:31:38 -04:00
JAremko
d776ee60b7 Make export to html compatible with GitHub and toc-org
Add new html preprocessors to the org-html-publish-to-html pipeline:
- `spacemacs//toc-org-unhrefify-toc`
- remove the `toc-org` modifications for the TOC
- `spacemacs//org-heading-annotate-custom-id`
- annotate org headings with the indexes that GitHub uses for linking.
  `org-html-publish-to-html` will use them instead of the default
  `#orgheadline{N}`. This way the GitHub links and the
  http://spacemacs.org/ links will be compatible."
- `spacemacs//reroot-links`
- find the links that start with
  https://github.com/syl20bnr/spacemacs/blob/ and end with
  .org{#an-optional-heading-link} (i.e the links between the local org
  files). Change their root to http://spacemacs.org/ so the links will
  point at files located on the site.

*For the "file to file" links to work properly the expor
2016-03-30 22:29:00 -04:00
JAremko
b2aadd06a3 Insert the readtheorg.css links wth html export advice
It removes the need to clutter Spacemacs documentation with
Also it reduces the amount of bugs, because it's hard to get the path right.
2016-03-30 22:28:27 -04:00
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