diff --git a/CHANGELOG.org b/CHANGELOG.org index cea707b3f72d..c79b7c359802 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -1,5 +1,40 @@ -* Release 0.103.x (2015/07/01) -** 0.103.0 +* Release 0.103.x +** 0.103.5 (2015/08/09) +*** Layer changes +**** Osx +- Fix initialization of =reveal-in-osx-finder= (thanks to fintelkai) +*** Core +- Temporarily switch to HTTP instead of HTTPS to communicate with + elpa.gnu.org (thanks to robbyoconnor) +** 0.103.4 (2015/08/07) +*** Layer changes +**** Clojure +- Fix key bindings for new Clojure major modes: =clojurec-mode=, + =clojurescript-mode= and =clojurex-mode= (thanks to benalbrecht) +** 0.103.3 (2015/08/04) +*** Layer changes +**** Osx +- Rename =reveal-in-finder= to its new name =reveal-in-osx-finder= + (thanks to syohex) +** 0.103.2 (2015/07/04) +*** Layer changes +**** Git +- Fix =magit-repository-directories= variable name (thanks to travisbhartwell) +- Fix =magit-blame= key binding (thanks to jenanwise) +- Use -magit-log-all= instead of =magit-log= on ~SPC g l~ (thanks to tuhdo) +*** Other fixes and improvements +- Typos and documentation improvements (thanks to cscorley, dstcruz, h3dkandi, + kccai, MadAnd, person808, Profpatsch, stnly, stormpat, xfq, zachlatta) +** 0.103.1 (2015/07/02) +*** Layer changes +**** Git +- Fix ~F~ in Vim style in =Magit= status buffer, now ~F~ is correctly + bound to =pull= popup menu +- Fix intermittent erroneous ~k~ key binding in =Magit= status buffer. +*** Core +- Fix mandatory dependency on =evil-escape= +- Fix evilification of =evil-escape= starter key +** 0.103.0 (2015/07/01) *** IMPORTANT: Breaking changes - Spacemacs is now compatible only with =Magit 2.1= and later, be sure to update your packages. @@ -139,7 +174,7 @@ jenanwise) **** Gtags - Enable =helm-gtags= for =compilation-mode= and =shell-mode= (thanks to tuhdo) -**** Hakell +**** Haskell - Add =company-cabal= support for auto-completion in =.cabal= files (thanks to bjarkevad) - Fix error with =electric-indent-local-mode= in some versions of Emacs @@ -149,7 +184,7 @@ - Add ~C-RET~ and ~S-RET~ key bindings to behave like the =ein= web interface (thanks to cpaulik) - Bind ~SPC f s~ to save the notebook (thanks to cpaulik) -**** Latex +**** LaTeX - Add support for =RefTeX= (thanks to JP-Ellis) - Add support for =LatexMk=, to enable it set the layer variable =latex-build-command= to ="LatexMk"= (thanks to JP-Ellis) diff --git a/README.md b/README.md index cdef16124e50..9defba55843a 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ | goals | -for whom? +for whom? | screenshots | @@ -203,7 +203,7 @@ To fix it change the owner of the directory `~/.emacs.d/server`: Source: [Stackoverflow][so-server-unsafe] -For efficient searches we recommend to install `pt` [the platinum searcher][]. +For efficient searches we recommend to install `pt` ([the platinum searcher][]). `pt` version 1.7.7 or higher is required. # Install @@ -438,7 +438,7 @@ We especially need to create more configuration layers that, for instance, bring support for new languages. If you are ready to contribute please begin by consulting the -[contribution guidelines][CONTRIBUTE.org] and [conventions][CONVENTIONS.md], +[contribution guidelines][CONTRIBUTE.org] and [conventions][CONVENTIONS.org], thanks! # License @@ -519,8 +519,11 @@ the [emacs-mac-port][] build. See the [install OSX section][] for more details. [Twitter]: http://i.imgur.com/tXSoThF.png +[CONTRIBUTE.org]: doc/CONTRIBUTE.org [CONVENTIONS.org]: doc/CONVENTIONS.org +[DOCUMENTATION.org]: doc/DOCUMENTATION.org [HOWTOs.org]: doc/HOWTOs.org +[VIMUSERS.org]: doc/VIMUSERS.org [config]: doc/DOCUMENTATION.org#configuration-layers [dotfile]: doc/DOCUMENTATION.org#dotfile-configuration [manage_config]: doc/DOCUMENTATION.org#managing-private-configuration-layers @@ -534,9 +537,7 @@ details. [Evil Mode]: doc/DOCUMENTATION.org#evil [private]: ./private [layers]: ./contrib -[DOCUMENTATION.org]: doc/DOCUMENTATION.org [font section]: doc/DOCUMENTATION.org#font -[CONTRIBUTE.org]: doc/CONTRIBUTE.org [powerline-seps]: doc/DOCUMENTATION.org#powerline-separators [FAQ]: https://github.com/syl20bnr/spacemacs#faq [dotfile template]: ./core/templates/.spacemacs.template @@ -552,11 +553,11 @@ details. [emacs-mac-port-server]: https://github.com/railwaycat/emacs-mac-port/blob/master/README-mac#L210-L213 [homebrew]: https://github.com/Homebrew/homebrew [emacs-for-windows]: http://emacsbinw64.sourceforge.net/ -[the platinum searcher]: +[the platinum searcher]: https://github.com/monochromegane/the_platinum_searcher [powerline-srgb-issue]: https://github.com/milkypostman/powerline/issues/54 [powerline-doc]: doc/DOCUMENTATION.org#powerline-separators [so-server-unsafe]: http://stackoverflow.com/questions/885793/emacs-error-when-calling-server-start [Spacemacs logo]: https://github.com/nashamri/spacemacs-logo [Nasser Alshammari]: https://github.com/nashamri [cpaulik-unity-icon]: http://splendidabacus.com/posts/2015/03/spacemacs-unity-icon/ -[Windows Image Support]: http://stackoverflow.com/questions/2650041/emacs-under-windows-and-png-files \ No newline at end of file +[Windows Image Support]: http://stackoverflow.com/questions/2650041/emacs-under-windows-and-png-files diff --git a/contrib/!lang/c-c++/README.org b/contrib/!lang/c-c++/README.org index 20a87c43f616..7f05077f2949 100644 --- a/contrib/!lang/c-c++/README.org +++ b/contrib/!lang/c-c++/README.org @@ -48,7 +48,7 @@ by setting the variable =c-c++-default-mode-for-headers= to =c++-mode=. #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers - '((c-c++ variables: + '((c-c++ :variables c-c++-default-mode-for-headers 'c++-mode))) #+END_SRC diff --git a/contrib/!lang/clojure/packages.el b/contrib/!lang/clojure/packages.el index e587316f9152..f4a00ca2dad2 100644 --- a/contrib/!lang/clojure/packages.el +++ b/contrib/!lang/clojure/packages.el @@ -138,43 +138,44 @@ the focus." (evilify cider-inspector-mode cider-inspector-mode-map (kbd "L") 'cider-inspector-pop) - (evil-leader/set-key-for-mode 'clojure-mode - "mhh" 'cider-doc - "mhg" 'cider-grimoire - "mhj" 'cider-javadoc + (dolist (m '(clojure-mode clojurec-mode clojurescript-mode clojurex-mode)) + (evil-leader/set-key-for-mode m + "mhh" 'cider-doc + "mhg" 'cider-grimoire + "mhj" 'cider-javadoc - "meb" 'cider-eval-buffer - "mee" 'cider-eval-last-sexp - "mef" 'cider-eval-defun-at-point - "mer" 'cider-eval-region - "mew" 'cider-eval-last-sexp-and-replace + "meb" 'cider-eval-buffer + "mee" 'cider-eval-last-sexp + "mef" 'cider-eval-defun-at-point + "mer" 'cider-eval-region + "mew" 'cider-eval-last-sexp-and-replace - "mgb" 'cider-jump-back - "mge" 'cider-jump-to-compilation-error - "mgg" 'cider-jump-to-var - "mgr" 'cider-jump-to-resource + "mgb" 'cider-jump-back + "mge" 'cider-jump-to-compilation-error + "mgg" 'cider-jump-to-var + "mgr" 'cider-jump-to-resource - "msb" 'cider-load-buffer - "msB" 'spacemacs/cider-send-buffer-in-repl-and-focus - "msc" 'cider-connect - "mse" 'spacemacs/cider-send-last-sexp-to-repl - "msE" 'spacemacs/cider-send-last-sexp-to-repl-focus - "msf" 'spacemacs/cider-send-function-to-repl - "msF" 'spacemacs/cider-send-function-to-repl-focus - "msi" 'cider-jack-in - "msn" 'spacemacs/cider-send-ns-form-to-repl - "msN" 'spacemacs/cider-send-ns-form-to-repl-focus - "msq" 'cider-quit - "msr" 'spacemacs/cider-send-region-to-repl - "msR" 'spacemacs/cider-send-region-to-repl-focus - "mss" 'cider-switch-to-repl-buffer + "msb" 'cider-load-buffer + "msB" 'spacemacs/cider-send-buffer-in-repl-and-focus + "msc" 'cider-connect + "mse" 'spacemacs/cider-send-last-sexp-to-repl + "msE" 'spacemacs/cider-send-last-sexp-to-repl-focus + "msf" 'spacemacs/cider-send-function-to-repl + "msF" 'spacemacs/cider-send-function-to-repl-focus + "msi" 'cider-jack-in + "msn" 'spacemacs/cider-send-ns-form-to-repl + "msN" 'spacemacs/cider-send-ns-form-to-repl-focus + "msq" 'cider-quit + "msr" 'spacemacs/cider-send-region-to-repl + "msR" 'spacemacs/cider-send-region-to-repl-focus + "mss" 'cider-switch-to-repl-buffer - "mta" 'spacemacs/cider-test-run-all-tests - "mtr" 'spacemacs/cider-test-rerun-tests - "mtt" 'spacemacs/cider-test-run-focused-test + "mta" 'spacemacs/cider-test-run-all-tests + "mtr" 'spacemacs/cider-test-rerun-tests + "mtt" 'spacemacs/cider-test-run-focused-test - "mdi" 'cider-inspect - "mdb" 'cider-debug-defun-at-point) + "mdi" 'cider-inspect + "mdb" 'cider-debug-defun-at-point)) (when clojure-enable-fancify-symbols (clojure/fancify-symbols 'cider-repl-mode))) @@ -196,41 +197,43 @@ the focus." (cljr-add-keybindings-with-prefix "C-c C-f") ;; not supported for now ;; (spacemacs/declare-prefix "mr" "clj-refactor") - (evil-leader/set-key-for-mode 'clojure-mode - "mrad" 'cljr-add-declaration - "mrai" 'cljr-add-import-to-ns - "mram" 'cljr-add-missing-libspec - "mrap" 'cljr-add-project-dependency - "mrar" 'cljr-add-require-to-ns - "mrau" 'cljr-add-use-to-ns - "mrcc" 'cljr-cycle-coll - "mrci" 'cljr-cycle-if - "mrcn" 'cljr-clean-ns - "mrcp" 'cljr-cycle-privacy - "mrdk" 'cljr-destructure-keys - "mref" 'cljr-extract-function - "mrel" 'cljr-expand-let - "mrfu" 'cljr-find-usages - "mrhd" 'cljr-hotload-dependency - "mril" 'cljr-introduce-let - "mrmf" 'cljr-move-form - "mrml" 'cljr-move-to-let - "mrpc" 'cljr-project-clean - "mrpf" 'cljr-promote-function - "mrrd" 'cljr-remove-debug-fns - "mrrf" 'cljr-rename-file - "mrrl" 'cljr-remove-let - "mrrr" 'cljr-remove-unused-requires - "mrrs" 'cljr-rename-symbol - "mrru" 'cljr-replace-use - "mrsn" 'cljr-sort-ns - "mrsp" 'cljr-sort-project-dependencies - "mrsr" 'cljr-stop-referring - "mrtf" 'cljr-thread-first-all - "mrth" 'cljr-thread - "mrtl" 'cljr-thread-last-all - "mrua" 'cljr-unwind-all - "mruw" 'cljr-unwind)))) + + (dolist (m '(clojure-mode clojurec-mode clojurescript-mode clojurex-mode)) + (evil-leader/set-key-for-mode m + "mrad" 'cljr-add-declaration + "mrai" 'cljr-add-import-to-ns + "mram" 'cljr-add-missing-libspec + "mrap" 'cljr-add-project-dependency + "mrar" 'cljr-add-require-to-ns + "mrau" 'cljr-add-use-to-ns + "mrcc" 'cljr-cycle-coll + "mrci" 'cljr-cycle-if + "mrcn" 'cljr-clean-ns + "mrcp" 'cljr-cycle-privacy + "mrdk" 'cljr-destructure-keys + "mref" 'cljr-extract-function + "mrel" 'cljr-expand-let + "mrfu" 'cljr-find-usages + "mrhd" 'cljr-hotload-dependency + "mril" 'cljr-introduce-let + "mrmf" 'cljr-move-form + "mrml" 'cljr-move-to-let + "mrpc" 'cljr-project-clean + "mrpf" 'cljr-promote-function + "mrrd" 'cljr-remove-debug-fns + "mrrf" 'cljr-rename-file + "mrrl" 'cljr-remove-let + "mrrr" 'cljr-remove-unused-requires + "mrrs" 'cljr-rename-symbol + "mrru" 'cljr-replace-use + "mrsn" 'cljr-sort-ns + "mrsp" 'cljr-sort-project-dependencies + "mrsr" 'cljr-stop-referring + "mrtf" 'cljr-thread-first-all + "mrth" 'cljr-thread + "mrtl" 'cljr-thread-last-all + "mrua" 'cljr-unwind-all + "mruw" 'cljr-unwind))))) (defun clojure/init-clojure-mode () (use-package clojure-mode diff --git a/contrib/!lang/latex/README.org b/contrib/!lang/latex/README.org index 1cb36997d73b..4f528bb438ec 100644 --- a/contrib/!lang/latex/README.org +++ b/contrib/!lang/latex/README.org @@ -95,7 +95,7 @@ The variable =latex-nofill-env= provide the list of environment names where | ~SPC m p p~ | preview at point | | ~SPC m p f~ | cache preamble for preview | | ~SPC m p c~ | clear previews | -| ~SPC m v ~ | view | +| ~SPC m v~ | view | ** RefTeX diff --git a/contrib/!source-control/git/README.org b/contrib/!source-control/git/README.org index b306b03b0ba0..b0c7c1c1bd7b 100644 --- a/contrib/!source-control/git/README.org +++ b/contrib/!source-control/git/README.org @@ -61,7 +61,7 @@ function, this is the folder where you keep all your git-controlled projects (the path should end up with a ~=/~= to respect Emacs conventions): #+BEGIN_SRC emacs-lisp - (setq magit-repo-dirs '("~/repos/")) + (setq magit-repository-directories '("~/repos/")) #+END_SRC For more information, see [[https://magit.github.io/master/magit.html#Status][Magit-User-Manual#Status]] @@ -128,7 +128,7 @@ style you can refer directly to the magit manual: | ~b b~ | checkout a branch | | ~b c~ | create a branch | | ~f f~ | fetch changes | -| ~C-f -r F~ | pull and rebase | +| ~F -r F~ | pull and rebase | | ~h~ | go left | | ~j~ | go down | | ~C-S-j~ or ~C-n~ | goto next magit section | @@ -199,7 +199,7 @@ message. - ~C-c C-c~ to submit the changes - Squash last commit: - ~L l~ to open =log buffer= - - ~E~ on the second to last commit, it opens the =rebase buffer= + - ~r e~ on the second to last commit, it opens the =rebase buffer= - ~j~ to put point on last commit - ~s~ to squash it - ~C-c C-c~ to continue to the =commit message buffer= @@ -214,7 +214,7 @@ message. - ~M~ to open the =remote popup= - ~a~ to add a remote, type the name (i.e. =upstream=) and the URL - Pull changes from upstream (the parent repository you have forked) and push: - - ~C-f -r C-u F~ and choose =upstream= or the name you gave to it + - ~F -r C-u F~ and choose =upstream= or the name you gave to it - ~P P~ to push the commit to =origin= ** Git time machine diff --git a/contrib/!source-control/git/packages.el b/contrib/!source-control/git/packages.el index 79f0d46a0a1c..67d57cd3f0b8 100644 --- a/contrib/!source-control/git/packages.el +++ b/contrib/!source-control/git/packages.el @@ -106,8 +106,8 @@ (magit-diff "HEAD")) (evil-leader/set-key - "gb" 'magit-blame-mode - "gl" 'magit-log + "gb" 'magit-blame + "gl" 'magit-log-all "gL" 'magit-log-buffer-file "gs" 'magit-status "gd" 'spacemacs/magit-diff-head diff --git a/contrib/!source-control/github/README.org b/contrib/!source-control/github/README.org index e4ade821c95d..764fcb2afeb5 100644 --- a/contrib/!source-control/github/README.org +++ b/contrib/!source-control/github/README.org @@ -18,7 +18,7 @@ This layers adds support for [[http://github.com][Github]]. ** Features: - [[https://github.com/sigma/magit-gh-pulls][magit-gh-pulls]]: handy =magit= add-on to manage Github pull requests. -- [[https://github.com/defunkt/gist.el][gist.el]]: full-featured mode to browse and post Githug gists. +- [[https://github.com/defunkt/gist.el][gist.el]]: full-featured mode to browse and post Github gists. - [[https://github.com/osener/github-browse-file][github-browse-file]] and [[https://github.com/sshaw/git-link][git-link]]: quickly browse github URL in your browser. diff --git a/contrib/!source-control/version-control/README.org b/contrib/!source-control/version-control/README.org index 877be1637ef0..8ff4bfa1c899 100644 --- a/contrib/!source-control/version-control/README.org +++ b/contrib/!source-control/version-control/README.org @@ -29,7 +29,7 @@ To use this contribution add it to your =~/.spacemacs= | Key Binding | Description | |-------------+---------------| -| ~g h g~ | Go to hunk | -| ~g h N~ | Previous hunk | -| ~g h n~ | Next hunk | -| ~g h r~ | Revert hunk | +| ~SPC g h g~ | Go to hunk | +| ~SPC g h N~ | Previous hunk | +| ~SPC g h n~ | Next hunk | +| ~SPC g h r~ | Revert hunk | diff --git a/contrib/auto-completion/README.org b/contrib/auto-completion/README.org index 25bcb2a35cdf..426c6ae89ede 100644 --- a/contrib/auto-completion/README.org +++ b/contrib/auto-completion/README.org @@ -103,12 +103,12 @@ The variable has no effect when =auto-complete= is used. ** Show snippets in auto-completion popup By default, snippets are not shown in the auto-completion popup. To show them in -the popup, set the variable =auto-completion-show-snippets-in-popup= to =t=. +the popup, set the variable =auto-completion-enable-snippets-in-popup= to =t=. #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '((auto-completion :variables - auto-completion-show-snippets-in-popup t)) + auto-completion-enable-snippets-in-popup t)) #+END_SRC ** Enable company or auto-complete globally diff --git a/contrib/osx/keybindings.el b/contrib/osx/keybindings.el index c9513fe3ff7e..e8ab2e5ff734 100644 --- a/contrib/osx/keybindings.el +++ b/contrib/osx/keybindings.el @@ -1,5 +1,5 @@ (when (system-is-mac) - (evil-leader/set-key "bf" 'reveal-in-finder) + (evil-leader/set-key "bf" 'reveal-in-osx-finder) ;; this is only applicable to GUI mode (when (display-graphic-p) diff --git a/contrib/osx/packages.el b/contrib/osx/packages.el index 1d3db3267548..0c220b2fc2f2 100644 --- a/contrib/osx/packages.el +++ b/contrib/osx/packages.el @@ -1,7 +1,7 @@ (setq osx-packages '( pbcopy - reveal-in-finder + reveal-in-osx-finder )) (if (and (system-is-mac) (executable-find "gls")) @@ -16,7 +16,7 @@ :if (and (system-is-mac)(not (display-graphic-p))) :init (turn-on-pbcopy))) -(defun osx/init-reveal-in-finder () - (use-package reveal-in-finder +(defun osx/init-reveal-in-osx-finder () + (use-package reveal-in-osx-finder :if (system-is-mac) - :commands reveal-in-finder)) + :commands reveal-in-osx-finder)) diff --git a/contrib/slime/README.org b/contrib/slime/README.org index 1a5fda7930f1..1fe8f0bd9033 100644 --- a/contrib/slime/README.org +++ b/contrib/slime/README.org @@ -18,6 +18,11 @@ A Spacemacs contribution layer for [[https://github.com/slime/slime][SLIME]]. * Install +If you have previously installed slime in any other way, it is recommended that +you uninstall it before proceeding. You should clean up any config files tied to +slime that are left behind as well. Linux users can just purge the slime package +if it was a distribution install. + To use this contribution, add it to your =~/.spacemacs= #+BEGIN_SRC emacs-lisp @@ -69,6 +74,15 @@ of Common Lisp, you can specify it in your =~/.spacemacs= | ~SPC m c f~ | Compile function | | ~SPC m c r~ | Compile region | +** Definition + +| Key Binding | Description | +|---------------------------+---------------------------------| +| ~SPC m d d~ | Go to definition | +| ~SPC m d u~ or ~SPC m d D | Return from definition | +| ~SPC m d w~ | Open definition in other window | +| ~SPC m d f~ | Open definition in other frame | + ** Navigation | Key Binding | Description | diff --git a/contrib/slime/packages.el b/contrib/slime/packages.el index 583d0c83b791..c852b1c864f7 100644 --- a/contrib/slime/packages.el +++ b/contrib/slime/packages.el @@ -56,6 +56,12 @@ "mgN" 'slime-previous-note "mgp" 'slime-previous-note + "mdd" 'slime-edit-definition + "mdD" 'slime-pop-find-definition-stack + "mdu" 'slime-pop-find-definition-stack + "mdf" 'slime-edit-definition-other-frame + "mdw" 'slime-edit-definition-other-window + "mha" 'slime-apropos "mhd" 'slime-disassemble-symbol "mhh" 'slime-describe-function diff --git a/core/core-configuration-layer.el b/core/core-configuration-layer.el index 97b8828057f1..ae29738054e5 100644 --- a/core/core-configuration-layer.el +++ b/core/core-configuration-layer.el @@ -19,7 +19,7 @@ (setq package-archives '(("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/") ("ELPA" . "http://tromey.com/elpa/") - ("gnu" . "https://elpa.gnu.org/packages/"))) + ("gnu" . "http://elpa.gnu.org/packages/"))) ;; optimization, no need to activate all the packages so early (setq package-enable-at-startup nil) (package-initialize 'noactivate) diff --git a/core/core-evilify-keymap.el b/core/core-evilify-keymap.el index 88eee13e0d49..4d49deee6e39 100644 --- a/core/core-evilify-keymap.el +++ b/core/core-evilify-keymap.el @@ -21,7 +21,11 @@ (or ,evilified-map evil-evilified-state-map))) processed) (mapc (lambda (map-entry) - (unless (member (car map-entry) processed) + (unless (or (member (car map-entry) processed) + ;; don't care about evil-escape starter key + (and (boundp 'evil-escape-key-sequence) + (equal (car map-entry) + (elt evil-escape-key-sequence 0)))) (setq processed (spacemacs//evilify-event ,map ',map (car map-entry) (cdr map-entry))))) @@ -138,8 +142,7 @@ ,(spacemacs//evilify-wrapper-documentation map-value event evil-value evil-event) (interactive) - (if (and (eq 'evilified evil-state) - (null evil-escape-inhibit)) + (if (eq 'evilified evil-state) ;; evilified state ,(if evil-value (spacemacs//evilify-call evil-value event) diff --git a/core/core-fonts-support.el b/core/core-fonts-support.el index 9ad196bc08af..a987a31d1429 100644 --- a/core/core-fonts-support.el +++ b/core/core-fonts-support.el @@ -82,7 +82,7 @@ PLIST has the form (\"fontname\" :prop1 val1 :prop2 val2 ...)" (spacemacs-buffer/warning (concat "spacemacs/set-font is deprecated. " "Use the variable `dotspacemacs-default-font' " "instead (see Font section in " - "~/.emacs.d/doc/DOCUMENTATION.md for more " + "~/.emacs.d/doc/DOCUMENTATION.org for more " "info)."))) (provide 'core-fonts-support) diff --git a/doc/DOCUMENTATION.org b/doc/DOCUMENTATION.org index 185307d5e718..3491423c6400 100644 --- a/doc/DOCUMENTATION.org +++ b/doc/DOCUMENTATION.org @@ -266,7 +266,7 @@ For now it is still needed to update the =Spacemacs= repository manually. Close Emacs and update the git repository: #+begin_src sh - $ git pull --rebase git submodule sync; git submodule update + $ git pull --rebase; git submodule sync; git submodule update #+end_src *Note* It is recommended to update the packages first, see next session. @@ -480,7 +480,7 @@ done by setting the list =dotspacemacs-configuration-layer-path= in your *** Setting configuration layers variables Some configuration layers have configuration variables to enable specific -support. For instance the [[../contrib/!tools/git][git layer]] has several configuration variables, they +support. For instance the [[../contrib/!source-control/git][git layer]] has several configuration variables, they can be set directly in the =dotspacemacs-configuration-layers= like this: #+begin_src emacs-lisp @@ -1586,7 +1586,7 @@ or symbol under point is used as default input for the search. For instance If the tool key is omitted then a default tool will be automatically selected for the search. This tool corresponds to the first tool found on the system of the list =dotspacemacs-search-tools=, the default order is =ag=, -=pt=, =ack= then =grep=. For instance ~SPC b b~ will search in the opened +=pt=, =ack= then =grep=. For instance ~SPC s b~ will search in the opened buffers using =pt= if =ag= has not been found on the system. The tool keys are: diff --git a/doc/VIMUSERS.org b/doc/VIMUSERS.org index cc5544496132..94fdb535933a 100644 --- a/doc/VIMUSERS.org +++ b/doc/VIMUSERS.org @@ -39,7 +39,7 @@ the gap between vim and Spacemacs. While some information may be duplicated, this does not replace the Spacemacs documentation. It is recommended that you read both files to fully understand Spacemacs. -[[file:DOCUMENTATION.md][Spacemacs Documentation]] +[[file:DOCUMENTATION.org][Spacemacs Documentation]] * Philosophy One misconception many vim users have is that Spacemacs is an Emacs /clone/ of @@ -57,7 +57,7 @@ for new users. This section attempts to clear up any confusion. **** Modes vs. States In vim you have various editing modes like =insert mode= and =visual mode= to -manipulate text. In Emacs, we have [[./DOCUMENTATION.md#states][states]]. These are equivalent to vim modes. +manipulate text. In Emacs, we have [[./DOCUMENTATION.org#states][states]]. These are equivalent to vim modes. For example, =evil-insert-state= is the same as =insert-mode= in vim. A =minor-mode= in Emacs is like a feature that is activated. For example, @@ -76,8 +76,8 @@ several packages that integrate well with each other. For example, the =python= layer includes support for auto-completion, documentation look-up, tests, and much more by using several different packages. This keeps you from thinking about what packages to install, and instead worry about what features you want. -More information on layers in the [[./VIMUSERS.md#customization][customization]] section and in the -[[./DOCUMENTATION.md#configuration-layers][documentation]]. +More information on layers in the [[./VIMUSERS.org#customization][customization]] section and in the +[[./DOCUMENTATION.org#configuration-layers][documentation]]. **** Micro-states Spacemacs provides a special functionality called micro-states. Micro-states @@ -87,22 +87,22 @@ following pattern: ~ .~ where group is the category the micro-state falls under. When in a micro-state you will see documentation at the bottom of your window. To exit a micro-state press ~q~. -#+CAPTION: Microstate Documentation Window +#+CAPTION: Micro-state documentation window -[[https://cloud.githubusercontent.com/assets/6396431/7580784/d4716352-f816-11e4-896d-ffcb71220151.png]] +[[file:img/spacemacs-scale-micro-state.png]] *** Keybinding conventions Spacemacs uses ~SPC~ as its ~~ key. This document will use ~SPC~ to refer to the ~~ key. All keybindings are mnemonic and are organized under the ~~ key. For example, the keybindings for language-specific commands are always under the ~SPC m~ prefix. A full list of conventions used in Spacemacs is -[[./CONVENTIONS.md][here]]. Note that all keybindings can be changed. +[[./CONVENTIONS.org][here]]. Note that all keybindings can be changed. Spacemacs uses [[https://github.com/kai2nenobu/guide-key][guide-key]] to show available keybindings after a delay: -#+CAPTION: Guide Key +#+CAPTION: Guide-key window -[[https://cloud.githubusercontent.com/assets/6396431/7556069/b8dbfcd4-f6fd-11e4-8bdc-31c19611e7f3.png]] +[[file:img/guide-key.png]] *** Running commands Emacs commands can be run using ~SPC :~. This will pop up a buffer using [[https://github.com/emacs-helm/helm][Helm]] @@ -117,58 +117,57 @@ commands using ~SPC :~. Buffers in Emacs and vim are essentially the same. The keybindings for buffers are located under the ~SPC b~ prefix. -| Keybinding | Function | -|-----------------------+------------------------------------------------------| -| ~SPC b b ~ | Create a buffer named ==. | -| ~SPC b b~ | Search through open buffers and recent files. | +| Keybinding | Function | +|---------------------------+------------------------------------------------------| +| ~SPC b b ~ | Create a buffer named ==. | +| ~SPC b b~ | Search through open buffers and recent files. | | ~SPC b n~ or ~:bnext~ | Switch to the next buffer. (See [[*Special%20buffers][Special buffers]]) | | ~SPC b p~ or ~:bprevious~ | Switch to the previous buffer. (See [[*Special%20buffers][Special buffers]]) | | ~SPC b d~ or ~:bdelete~ | Kill current buffer. | -| ~SPC b k~ | Search for a buffer to kill. | -| ~SPC b K~ | Kill all buffers except the current buffer. | -| ~SPC b .~ | Buffer micro-state. | +| ~SPC b k~ | Search for a buffer to kill. | +| ~SPC b K~ | Kill all buffers except the current buffer. | +| ~SPC b .~ | Buffer micro-state. | ***** Special buffers By default Emacs creates a lot of buffers that most people will never need, like =*Messages*=. Spacemacs automatically ignores these when using these -keybindings. More information can be found -[[./DOCUMENTATION.md#special-buffers][here]]. +key bindings. More information can be found [[./DOCUMENTATION.org#special-buffers][here]]. **** Windows Windows are like splits in vim. They are useful for editing multiple files at once. All window keybindings are under the ~SPC w~ prefix. -| Keybinding | Function | -|--------------------+--------------------------------------| +| Keybinding | Function | +|------------------------+--------------------------------------| | ~SPC w v~ or ~:vsplit~ | Opens a vertical split on the right. | | ~SPC w s~ or ~:split~ | Opens a horizontal split below. | -| ~SPC w h/j/k/l~ | Navigate among windows. | -| ~SPC w H/J/K/L~ | Move the current window. | -| ~SPC w .~ | Window micro-state. | +| ~SPC w h/j/k/l~ | Navigate among windows. | +| ~SPC w H/J/K/L~ | Move the current window. | +| ~SPC w .~ | Window micro-state. | *** Files All file commands in Spacemacs are available under the ~SPC f~ prefix. -| Keybinding | Function | -|---------------+--------------------------------------------------------------| -| ~SPC f f~ | Opens a buffer to search for files in the current directory. | -| ~SPC f r~ | Opens a buffer to search through recently opened files. | +| Keybinding | Function | +|-------------------+--------------------------------------------------------------| +| ~SPC f f~ | Opens a buffer to search for files in the current directory. | +| ~SPC f r~ | Opens a buffer to search through recently opened files. | | ~SPC f s~ or ~:w~ | Save the current file. | -| ~:x~ | Save the current file and quit. | -| ~:e ~ | Open == | +| ~:x~ | Save the current file and quit. | +| ~:e ~ | Open == | *** The Help System Emacs has an extensive help system. All keybindings under the ~SPC h d~ prefix allow convenient access to the help system. The most important of these -keybindings are ~SPC h d f~ , ~SPC h d k~ , and ~SPC h d v~. There is also the +keybindings are ~SPC h d f~ , ~SPC h d k~ , and ~SPC h d v~. There is also the ~SPC ~ keybinding which allows you to search for documentation. -| Keybinding | Function | -|------------+----------------------------------------------------------------------------------| -| ~SPC h d f~ | Prompts for a function and shows its documentation. | -| ~SPC h d k~ | Prompts for a keybinding and shows what it is bound to. | -| ~SPC h d v~ | Prompts for a variable and shows its documentation and current value. | -| ~SPC ~ | Searches for a command, function, variable, or face and shows its documentation. | +| Keybinding | Function | +|-------------+----------------------------------------------------------------------------------| +| ~SPC h d f~ | Prompts for a function and shows its documentation. | +| ~SPC h d k~ | Prompts for a keybinding and shows what it is bound to. | +| ~SPC h d v~ | Prompts for a variable and shows its documentation and current value. | +| ~SPC ~ | Searches for a command, function, variable, or face and shows its documentation. | Whenever, you see weird behavior or want to know what something does, these functions are the first thing you should refer to. @@ -179,10 +178,10 @@ the [[https://github.com/syl20bnr/spacemacs][source code]] on Github. You can be how Spacemacs works this way. You can also use the following keybindings to explore: -| Keybinding | Function | -|------------+---------------------------------------------------------------| -| ~SPC f e h~ | Lists all layers and allows you to view files from the layer. | -| ~SPC ?~ | Lists all keybindings. | +| Keybinding | Function | +|-------------+---------------------------------------------------------------| +| ~SPC f e h~ | Lists all layers and allows you to view files from the layer. | +| ~SPC ?~ | Lists all keybindings. | * Customization ** The .spacemacs file @@ -200,10 +199,10 @@ function except to change default Spacemacs settings. The =dotspacemacs/config= function is the one you will use the most. This is where you define any user configuration. -| Keybinding | Function | -|------------+------------------------------------------------------------------------| -| ~SPC f e d~ | Open your =.spacemacs= | -| ~SPC f e D~ | Update your =.spacemacs= manually using a diff with the default template | +| Keybinding | Function | +|-------------+--------------------------------------------------------------------------| +| ~SPC f e d~ | Open your =.spacemacs= | +| ~SPC f e D~ | Update your =.spacemacs= manually using a diff with the default template | ** Emacs Lisp This section introduces a few emacs lisp functions that are needed to configure @@ -218,7 +217,7 @@ The syntax is simple: #+begin_src emacs-lisp (setq variable value) ; Syntax ;; Setting varibles example - (setq variable1 t ; True + (setq variable1 t ; True variable2 nil ; False variable3 '("A" "list" "of" "things")) #+end_src @@ -239,14 +238,12 @@ The map is the keymap you want to bind the key in. Most of the time you will use =evil--state-map=. These correspond to different =evil-mode= states. For example, using =evil-insert-state-map= maps the keybinding in insert mode. -To map ~~ keybindings, use the -=evil-leader/set-key= function. +To map ~~ keybindings, use the =evil-leader/set-key= function. #+begin_src emacs-lisp (evil-leader/set-key key function) ; Syntax ;; Map killing a buffer to b c - (evil-leader/set-key - "bc" 'kill-this-buffer) + (evil-leader/set-key "bc" 'kill-this-buffer) ;; Map opening a link to o l only in org-mode (evil-leader/set-key-for-mode 'org-mode "ol" 'org-open-at-point) @@ -269,17 +266,19 @@ customization. The syntax is simple: Here is an example of a function that is useful in real life: #+begin_src emacs-lisp - ;; By default, spacemacs does not show snippets in the autocomplete popup - ;; This snippet enables the display of snippets in the popup - (defun autocomplete-show-snippets () - "Show snippets in autocomplete popup." - (let ((backend (car company-backends))) - (unless (listp backend) - (setcar company-backends `(,backend :with company-yasnippet company-files))))) - - ;; See http://www.gnu.org/software/emacs/manual/html_node/emacs/Hooks.html - ;; for what this line means - (add-hook 'after-change-major-mode-hook 'autocomplete-show-snippets) + ;; This snippet allows you to run clang-format before saving + ;; given the current file as the correct filetype. + ;; This relies on the c-c++ layer being enableds. + (defun clang-format-for-filetype () + "Run clang-format if the current file has a file extensions + in the filetypes list." + (let ((filetypes '("c" "cpp"))) + (when (member (file-name-extension (buffer-file-name)) filetypes) + (clang-format-buffer)))) + + ;; See http://www.gnu.org/software/emacs/manual/html_node/emacs/Hooks.html for + ;; what this line means + (add-hook 'before-save-hook 'clang-format-for-filetype) #+end_src ** Activating a Layer @@ -299,19 +298,20 @@ this: ;; git-gutter-use-fringe t) ;; markdown ;; org - ;; syntax-checking))) + ;; syntax-checking + ))) #+end_src You can uncomment these suggested layers by deleting the semi-colons for a nice out-of-the-box experience. To add a layer, add its name to the list and restart -Emacs or press ~SPC f e R~ . To view all layers and -their documentation use ~SPC f e h~ . +Emacs or press ~SPC f e R~ . To view all layers and their documentation use ~SPC +f e h~. ** Creating a Layer -To group configuration or when configuration doesn't fit well in your =.spacemacs= -file, you can create a configuration layer. Spacemacs provides a builtin command -to generate the layer boilerplate: ~SPC :configuration-layer/create-layer~ . This -generates a folder that looks like this: +To group configuration or when configuration doesn't fit well in your +=.spacemacs= file, you can create a configuration layer. Spacemacs provides a +builtin command to generate the layer boilerplate: +~SPC :configuration-layer/create-layer~. This generates a folder that looks like this: #+BEGIN_EXAMPLE [layer-name] @@ -325,8 +325,7 @@ generates a folder that looks like this: |__ keybindings.el* |__ packages.el - [] = directory - *not created by the command + [] = directory *not created by the command #+END_EXAMPLE The =packages.el= file contains a list of packages that you can install in the @@ -346,11 +345,11 @@ package. It would look like this: If something is not available on MELPA, you must use an extension. Extension configuration is done in the =extensions.el= file. Each extension must be placed -in its own folder inside the =extensions= folder. Extensions can be declared using -the =-
-extensions= variables. =pre= extensions are loaded
-before the packages and =post= extensions are loaded after. The name of the
-extension is the name of the folder it is in. Using the above example structure,
-the extensions would be activated like so:
+in its own folder inside the =extensions= folder. Extensions can be declared
+using the =-
-extensions= variables. =pre= extensions are
+loaded before the packages and =post= extensions are loaded after. The name of
+the extension is the name of the folder it is in. Using the above example
+structure, the extensions would be activated like so:
 
 #+begin_src emacs-lisp
   (setq layer-name-pre-extensions '())
@@ -364,13 +363,14 @@ pattern as packages.
 
 Make sure you [[*Activating%20a%20Layer][add]] your layer to your =.dotspacemacs= file and restart to
 activate it.
+
 ** Installing a single package
 Sometimes creating a layer is a bit overkill. Maybe you just want one package
 and don't want to maintain a whole layer. Spacemacs provides a variable in the
-=dotspacemacs/init= function in =.spacemacs= called
+=dotspacemacs/layers= function in =.spacemacs= called
 =dotspacemacs-additional-packages=. Just add a package name to the list and it
 will be installed when you restart. Loading the package is covered in the next
-[[*Loading%20packages][section.]]
+[[#loading-packages][section]].
 
 ** Loading packages
 Ever wonder how Spacemacs can load over a 100 packages in just a few seconds?
@@ -384,7 +384,6 @@ to using it:
   ;; try to lazy load the package.
   (use-package package-name
     :defer t)
-
   ;; The :init section is run before the package loads The :config section is
   ;; run after the package loads
   (use-package package-name
@@ -394,7 +393,8 @@ to using it:
       ;; Change some variables
       (setq variable1 t variable2 nil)
       ;; Define a function
-      (defun foo () (message "%s" "Hello, World!")))
+      (defun foo ()
+        (message "%s" "Hello, World!")))
     :config
     (progn
       ;; Calling a function that is defined when the package loads
@@ -403,19 +403,20 @@ to using it:
 
 This is just a very basic overview of =use-package=. There are many other ways
 to control how a package loads using it that aren't covered here.
+
 ** Uninstalling a package
 Spacemacs provides a variable in the =dotspacemacs/init= function in
-=.spacemacs= called =dotspacemacs-excluded-packages=. Just add a package name
-to the list and it will be uninstalled when you restart.
+=.spacemacs= called =dotspacemacs-excluded-packages=. Just add a package name to
+the list and it will be uninstalled when you restart.
 
 ** Common tweaks
 This section is for things many will want to change. All of these settings go in
 the =dotspacemacs/config= function in your =.spacemacs= unless otherwise noted.
 
 *** Changing the escape key
-Spacemacs uses =[[https://github.com/syl20bnr/evil-escape][evil-escape]]= to allow escaping from many =major-modes= with one
-keybinding. You can customize the variable in your =dotspacemacs/init= like
-this:
+Spacemacs uses =[[https://github.com/syl20bnr/evil-escape][evil-escape]]= to
+allow escaping from many =major-modes= with one keybinding. You can customize
+the variable in your =dotspacemacs/init= like this:
 
 #+begin_src emacs-lisp
   (defun dotspacemacs/init ()
@@ -425,13 +426,13 @@ this:
 #+end_src
 
 This is one of the few variables that must be set in =dotspacemacs/init=. More
-documentation is found in the =evil-escape= README.
+documentation is found in the =evil-escape= [[https://github.com/syl20bnr/evil-escape/blob/master/README.md][README]].
 
 *** Changing the colorscheme
 The =.spacemacs= file contains the =dotspacemacs-themes= variable in the
 =dotspacemacs/init= function. This is a list of themes that can be cycled
-through with the ~SPC T n~ keybinding. The first
-theme in the list is the one that is loaded at startup. Here is an example:
+through with the ~SPC T n~ keybinding. The first theme in the list is the one
+that is loaded at startup. Here is an example:
 
 #+begin_src emacs-lisp
   (defun dotspacemacs/init
@@ -449,36 +450,36 @@ All installed themes can be listed and chosen using the ~SPC T h~ keybinding.
 
 *** Nohlsearch
 Spacemacs emulates the default vim behavior which highlights search results even
-when you are not navigating between them. You can use ~SPC s c~ or ~:nohlsearch~ to
-disable search result highlighting.
+when you are not navigating between them. You can use ~SPC s c~ or ~:nohlsearch~
+to disable search result highlighting.
 
 To disable the result highlighting when it is not needed anymore automatically,
-you can [[*Uninstalling%20a%20package][uninstall]] the =evil-search-highlight-persist= package.
+you can [[#uninstalling-a-package][uninstall]] the =evil-search-highlight-persist= package.
 
 *** Sessions
 Spacemacs does not automatically restore your windows and buffers when you
 reopen it. If you use vim sessions regularly you may want to add
 =(desktop-save-mode t)= to you =dotspacemacs/config= in your =.spacemacs= to get
-this functionality. You will then be able to load the saved session using
-~SPC : desktop-read~. The location of the desktop
-file can be set with the variable =desktop-dirname=. To automatically load a
-session, add =(desktop-read)= to your =.spacemacs=.
+this functionality. You will then be able to load the saved session using ~SPC :
+desktop-read~. The location of the desktop file can be set with the variable
+=desktop-dirname=. To automatically load a session, add =(desktop-read)= to your
+=.spacemacs=.
 
 *** Navigating using visual lines
 Spacemacs uses the vim default of navigating by actual lines, even if they are
-wrapped. If you want ~j~ and ~k~ to behave like ~g j~ and ~g k~, add this to your
-=.spacemacs=:
+wrapped. If you want ~j~ and ~k~ to behave like ~g j~ and ~g k~, add this to
+your =.spacemacs=:
 
 #+begin_src emacs-lisp
-(define-key evil-normal-state-map (kbd "j") 'evil-next-visual-line)
-(define-key evil-normal-state-map (kbd "k") 'evil-previous-visual-line)
+  (define-key evil-normal-state-map (kbd "j") 'evil-next-visual-line)
+  (define-key evil-normal-state-map (kbd "k") 'evil-previous-visual-line)
 #+end_src
 
 * Other useful links
 - [[https://www.gnu.org/software/emacs/manual/emacs.html][Emacs Manual]]
-- [[file:DOCUMENTATION.md][Spacemacs Documentation]]
+- [[file:DOCUMENTATION.org][Spacemacs Documentation]]
 - [[http://ian.mccowan.space/2015/04/07/Spacemacs/][Spacemacs: A Vimmer's Emacs Prerequisites]]
-    - Note: The article refers to ~SPC b s~
-      as the keybinding to switch buffers. It is ~SPC b b~
+    - Note: The article refers to ~SPC b s~ as the keybinding to switch buffers.
+      It is ~SPC b b~
 - [[http://thume.ca/howto/2015/03/07/configuring-spacemacs-a-tutorial/][Configuring Spacemacs: A Tutorial]]
 - [[http://juanjoalvarez.net/es/detail/2014/sep/19/vim-emacsevil-chaotic-migration-guide/][From Vim to Emacs+Evil chaotic migration guide]]
diff --git a/doc/img/guide-key.png b/doc/img/guide-key.png
new file mode 100644
index 000000000000..85d78a4632ac
Binary files /dev/null and b/doc/img/guide-key.png differ
diff --git a/doc/img/spacemacs-scale-micro-state.png b/doc/img/spacemacs-scale-micro-state.png
index 90e670903227..1b2726ad00a9 100644
Binary files a/doc/img/spacemacs-scale-micro-state.png and b/doc/img/spacemacs-scale-micro-state.png differ
diff --git a/init.el b/init.el
index 75735cf4218c..321ea98b9c3a 100644
--- a/init.el
+++ b/init.el
@@ -13,7 +13,7 @@
 ;; Without this comment emacs25 adds (package-initialize) here
 ;; (package-initialize)
 
-(defconst spacemacs-version          "0.103.0" "Spacemacs version.")
+(defconst spacemacs-version          "0.103.5" "Spacemacs version.")
 (defconst spacemacs-emacs-min-version   "24.3" "Minimal version of Emacs.")
 
 (defun spacemacs/emacs-version-ok ()
diff --git a/private/README.md b/private/README.md
index 385cef701e3f..c755c1e50c8b 100644
--- a/private/README.md
+++ b/private/README.md
@@ -18,4 +18,4 @@ Each created file has further guidance written in them.
 Once the configuration is done, restart Emacs to load, install and configure
 your layer.
 
-[conf_layers]: https://github.com/syl20bnr/spacemacs/blob/master/doc/DOCUMENTATION.md#extensions-and-packages
+[conf_layers]: https://github.com/syl20bnr/spacemacs/blob/master/doc/DOCUMENTATION.org#extensions-and-packages