-*- mode: org -*- This file containes the change log for the next major version of Spacemacs. * Release 0.200.x ** 0.200.0 (September 2016) *** IMPORTANT: Breaking changes - The support for Emacs 24.3 has been dropped, Spacemacs needs at least Emacs 24.4 to work correctly. - =extensions= are deprecated as announced in previous releases, if you still have =extensions= directories you must rename them to =local= and move the contents of the =extensions.el= files to the =packages.el= files adding the keyword =:location local= to them in the package list. Refer to other layers for examples (for instance the =python= layer) - =-excluded-packages= variables are now deprecated as announced is previous releases, you must now use the keyword =:excluded t= of the package list, see the =vim-empty-lines= layer for example. - Key binding ~SPC :~ acting as M-x as been replaced by ~SPC SPC~. If you want to revert to the old ~SPC :~ key binding set the new variable =dotspacemacs-emacs-command-key= to ":". - Key binding ~SPC f e h~ is now ~SPC h SPC~ - Key bindings to delete things are now more consistent and use the ~d~ key. We had to move ~SPC w c~ and ~SPC w C~ to ~SPC w d~ and ~SPC w D~. - ~SPC j~ prefix has been modified to include =jump= commands: - =avy= commands are now behind the prefix ~SPC j~ for =jump=: - ~SPC j j~ to jump to a character in the buffer (works as an evil motion) - ~SPC j l~ to jump to a line with avy (works as an evil motion) - ~SPC j w~ to jump to a word in the current buffer (works as an evil motion) - the following key bindings have been moved: - ~SPC j j~ to split a line has been moved to ~SPC j n~ - ~SPC j h~ and ~SPC j l~ have been moved to ~SPC j 0~ and ~SPC j $~ respectively. - ~SPC J~ to split a string or sexp has been moved to ~SPC j s~ - All helm related key bindings under ~SPC h~ that are not about help have been moved to different key bindings: - ~SPC h b~ for =helm-filetered-bookmarks~is now ~SPC f b~ - ~SPC h l~ for =helm-resume= is now ~SPC r l~ - ~SPC h L~ for =helm-locate-library= is now ~SPC f e l~ - Refactor ~SPC w~ and ~SPC b~ regarding deletion to clean redundent actions and bring more consistency between the two prefixes (see =Distribution layer changes= section in change log for more information) - Git key bindings under ~SPC g~ have been reorganised to free up some keys amd capitalize on =Magit= dipatch menu to keep things consistent (see =git= section in change log for more information) - Spacemacs layouts scope has been changed, now ~SPC b b~ lists the buffers of the current layout, use ~SPC B b~ to list all the opened buffers. - =org-indent= is now turned off by default - Micro states are now called transient states, the macro =spacemacs|define-micro-state= is deprecated, it is replaced by the new =hydra= powered macro =spacemacs|define-transient-state=. - Spacemacs layouts and workspaces transient states now exit when a layout or workspace is selected, use ~C-0~ ... ~C-9~ to switch to a layout and keep the transient state open. - Remove support for =all= value for =dotspacemacs-configuration-layers= variable. To install all the packages supported by Spacemacs there is a new variable =dotspacemacs-install-packages=. - Remove layer variable =colors-enable-rainbow-identifiers= in =colors= layer, You have to replace it by =colors-colorize-identifiers 'all=. - The =bépo= layer has been replaced by the new layer =keyboard-layout=, see the readme of the layer for more info. *** Hot new features - Refactor of the layer system which should improve startup time by 20~25%. - New option to lazy install layers based on =auto-mode-alist= (similar to =Prelude= lazy install of packages but for layers) via the variable =dotspacemacs-enable-lazy-installation=. - Add support for Ivy via the new layer =ivy=, when used it replaces =helm= (thanks to justbur, d12frosted, lszekeres, nixmaniack, ralesi, TheBB, zilongshanren) - Add support for different keyboard layouts via the new layer =keyboard-layout=, currently supported layouts are =bépo= and =dvorak= (thanks to StreakyCobra) - New transient states powered by =Hydra=, they replace the deprecated micro states (thanks to justbur) - New =jump to definition= abstraction to handle multiple jump backends like tags, dumb-jump etc... (thanks to TheBB) - Global access to all available REPLs with ~SPC a '~ and `SPC m '~ (thanks to AlejandroCatalina and TheBB) - New debugging tools: - press ~SPC q d~ to restart Emacs in debug mode with command line parameter =--debug-init= - press ~SPC q D~ to restart Emacs without Spacemacs but with a list of selected packages to load. (thanks to StreakyCobra) - New way to install all the supported packages by Spacemacs via the variable =dotspacemacs-install-packages= - Improved =emacs= and =hybrid= editing styles to fix configuration inconsistencies - the =spacemacs= layer has been split into multiple layers to allow better modularity (these layers are in =+spacemacs= sub-directory): - spacemacs-completion - spacemacs-editing - spacemacs-editing-visual - spacemacs-evil - spacemacs-language - spacemacs-layouts - spacemacs-misc - spacemacs-org - spacemacs-ui - spacemacs-ui-visual (thanks to justbur) *** New Layers - asm in =+lang= (thanks to thudo) - bibtex in =+lang= (thanks to JP-Ellis) - csv in =+lang= (thanks to jb55) - cfengine in =+tools= (thanks to nickanderson) - helm in =completion= (moved from spacemacs-base) (thanks to justbur) - imenu-list in =+tools= (thanks to bmag) - ivy in =completion= (thanks to justbur) - keyboard-layout (replaces the bépo layer) (thanks to StreakyCobra) - nlinum in =+misc= (thanks to CodeFalling) - pdf-tools in =+tools= (thanks to Andre0991) - plantuml in =+lang= (thanks to robbyoconnor) - rebox in =+tools= (thanks to choppsv1) - shaders in =+lang= (thanks to Ell) - slack in =+chat= (thanks to kostajh) - systemd in =+config-files= (thanks to StreakyCobra) *** Dotfile changes **** Changes for variable values and keywords - Add new keyword =:packages= for the list of layers in variable =dotspacemacs-configuration-layer=, =:packages= allow to select or exclude packages from a layer. - The value of =dotspacemacs-editing-style= can now be a list containing the keyword =:variables= (similar to =dotspacemacs-configuration-layers=) to define addtional variables to modify the behavior of the editing syle. This new keyword is useful for =hybrid= style which supports these variables: - =hybrid-mode-enable-evilified-state=, if non nil then buffer are evilified, - =hybrid-mode-enable-hjkl-bindings=, if non nil navigation on ~hjkl~ keys is enabled (for instance in =helm= buffers), - =hybrid-mode-default-state=, the default state when opening a new buffer, by default it is =normal=. - The value of =dotspacemacs-default-font= can now be a list (thanks to TheBB) - New supported values for =dotspacemacs-startup-lists=: - agenda - todos (thanks to tonyday567) - Change default value of =dotspacemacs-startup-lists= to =nil= - Change default value of =dotspacemacs-check-for-update= to =nil= - Remove support for value =all= in variable =dotspacemacs-configuration-layers= - Remove variable =dotspacemacs-startup-recent-list-size= which has been replaced by adding support for cons cells in variable =dotspacemacs-startup-list= (thanks to ralesi) **** New variables - New variable =dotspacemacs-enable-lazy-installation= to install a layer only when a file with a supported type by this layer is opened. Possible values are =all=, =unused= and =nil=: - =unused= will lazy install only unused layers - =all= will lazy install any layer that support lazy installation even the used layers - =nil= disable the lazy installation feature Default value is =unused= - New variable =dotspacemacs-frozen-packages=. It is a list of packages, these packages cannot be updated or rollbacked. - New variable =dotspacemacs-install-packages= which replaces the variable =dotspacemacs-delete-orphan-packages=. This new variable defines the behavior of Spacemacs for installed packages. Possible values are =used-only=, =used-but-keep-unused= and =all=. - =used-only= installs only explicitly used packages and uninstall any unused packages as well as their unused dependencies. - =used-but-keep-unused= installs only the used packages but won't uninstall them if they become unused. - =all= installs *all* packages supported by Spacemacs and never uninstall them. Default value is =used-only=. - New variable =dotspacemacs-emacs-command-key= which replaces the variable =dotspacemacs-command-key=. This variable represents the key to press after the leader key to execute =M-x=. Default value is ~SPC~. - New variable =dotspacemacs-folding-method= to allow choosing between different code folding methods. Currently supported are =evil= and =origami=. Default value is =evil=. (thansk to ralesi) - New variable =dotspacemacs-ex-substitute-global=, if non-nil then the behavior of the =g= flag in =:subsitute= ex-command is inverted. Default value is nil (thanks to fbergroth) - New variable =dotspacemacs-smart-closing-parenthesis=. If non-nil pressing the closing parenthesis ~)~ key in insert mode passes over any automatically added closing parenthesis, bracket, quote, etc... This can be temporary disabled by pressing ~C-q~ before ~)~ (thanks to StreakyCobra) - New variable =dotspacemacs-retain-visual-mode-on-shift=, If non nil ~>~ is remapped to ~>gv~ and ~<~ is remapped to ~~ magit-submodule-popup - ~SPC g A~ magit-cherry-pick-popup - ~SPC g c~ magit-commit-popup - ~SPC g C~ magit-checkout - ~SPC g d~ magit-diff-popup - ~SPC g D~ spacemacs/magit-diff-head - ~SPC g e~ magit-ediff-compare - ~SPC g E~ magit-ediff-show-working-tree - ~SPC g f~ magit-fetch-popup - ~SPC g F~ magit-pull-popup - ~SPC g i~ magit-init - ~SPC g l~ magit-log-popup - ~SPC g L~ magit-log-buffer-file - ~SPC g r~ magit-rebase-popup - ~SPC g P~ magit-push-popup - ~SPC g U~ magit-unstage-file - ~SPC g x~ magit-reset-popup - the above key bindings have been replaced by only one key binding ~SPC g m~ displaying the =Magit= dispatch popup + =git-link= key bindings have been moved from ~SPC g h~ to ~SPC g l~ since it provides support for other Git hosting services (not only GitHub) - ~SPC g l c~ on a commit hash, browse to the current file at this commit - ~SPC g l C~ on a commit hash, create link to the file at this commit and copy it - ~SPC g l l~ on a region, browse to file at current lines position - ~SPC g l L~ on a region, create a link to the file highlighting the selected lines + New key binding ~SPC g f h~ to get the commit history of the current file **** Github - Add support for =git-link= in =git-timemachine=, this allow to copy the SHA-1 or selected lines links for the current commit (thanks to dcluna) - Move clone commands under ~SPC g h c~: - ~SPC g h c /~ search for a repository to clone it - ~SPC g h c c~ clone and optionally fork repository - ~SPC g h c r~ add a remote that is an existing fork of selected remote - ~SPC g h c f~ fork remote in current user namespace - ~SPC g h c u~ add upstream as remote **** Go - New layer variable =go-tab-width= (thanks to microamp) - New key binding ~SPC m g c~ to open a clone of the current buffer with a coverage info (thanks to JAremko) - Add support for =gometalinter= via new layer variable =go-use-gometalinter= (thanks to JAremko) - Improve indentation (thanks to bogdanteleaga) - Show function signatures (thanks to carlosgaldino) **** Graphviz - Add support for =org-babel= (thanks to choppsv1) **** Gtags - Refactoring of the layer to support more languages (thanks to choppsv1 and TheBB) - New layer variable =gtags-enable-by-default= to control whether =gtags-mode= should be enabled by default or not (thanks to TheBB) - New key binding ~SPC m g D~ to navigate to definition in another window (thanks to NJBS) - Remove =helm-gtags= lighter from mode line (thanks to NJBS) **** Haskell - New layer variable =haskell-completion-backend= to select the desired completion backend (thanks to d12frosted) - Add package =intero= (based on cydparser layer) (thanks to d12frosted) - Add package =helm-hoogle= under ~SPC m h f~ (thanks to jb55) - Add package =hlint-refactor= (thanks to cydparser) - Add package =company-ghci= (thanks to dysinger) - Add all =haskell-mode= key bindings to =literate-haskell-mode= (thanks to jb55) - Swap key bindings ~SPC m F~ and ~SPC m f~ (thanks to ljli) - Evilify =haskell-debug-mode= (thanks to d12frosted) - Fix ~SPC m h i~ and ~SPC m h t~ key bindinds (thanks to d12frosted) - Disable =haskell-tags-on-save= by default (thanks to bgamari) - Remove =structured-haskell-mode= because of poor integration (thanks to d12frosted) - Remove =ghci-ng= support (thanks to d12frosted) **** Helm - Rename action =Add layer= to =Install layer= in =helm-spacemacs-help= (thanks to CestDiego) - Fix =helm-source-header= face not updating when changing themes (thanks to ghoot) - Enable fuzzy matching in all Helm sources (thanks to bling) **** Html - Add prefix command names (thanks to shanavas786) - Use built-in =web-mode= pairing (disable =smartparens=) (thanks to TheBB) - Enable =emmet-mode= in sass and scss modes (thanks to utkarshkukreti) - Make =pug= files use =jade-mode= since Jade is now called Pug (thanks to robbyoconnor) - Fix =emmet= expansion if =yasnippet= isn’t turned on (thanks to TheBB) **** Idris - New key binding ~SPC m l~ for extracting lemma (thanks to bixuanzju) - New key binding ~SPC m c~ for =idris-case-dwim= (thanks to bixuanzju) - New key binding ~SPC m s q~ to quit the Idris process (thanks to bixuanzju) - Register Idris REPL for ~SPC a '~ (thanks to bixuanzju) - Add basic auto-completion (thanks to bixuanzju) - Add prefix command names (thanks to bixuanzju) - Enhance =auto-completion= support for Idris layer, now =auto-completion= will ask Idris process for completions (thanks to bixuanzju) - Enable =auto-completion= in REPL (thanks to bixuanzju) - Disable =golden-ratio= in holes buffer (thanks to houli) **** IPython-notebook - Move transient state key binding to ~SPC m .~ - Evilify notebooklist buffer - Fix loading of keymap (thanks to TheBB) **** Jabber - Add support for evilified key bindings (thanks to mssun) - Don't overwrite mini-buffer when active (thanks to toshism) **** Java - Add support for =eclimd= with new key bindings: - ~SPC m d s~ to start daemon - ~SPC m d k~ to stop daemon (thanks to elken) **** Javascript - Add REPL via =skewer-mode= and =livid-mode= (thanks to dcluna) - Fix offset detection in js2-mode (thans to TheBB) - Diminish =tern= and =skewer= modes (thanks to cpaulik) **** LaTeX - Add prefix command names (thanks to NJBS) - New key bindings for fill and uncomment: - ~SPC m %~ to comment or uncomment a paragraph - ~SPC m ;~ to comment or uncomment a region - ~SPC m f e~ to fill LaTeX environment - ~SPC m f p~ to fill LaTeX paragraph - ~SPC m f r~ to fill LaTeX region - ~SPC m f s~ to fill LaTeX section (thanks to kccai) - New key binding ~SPC m a~ for =TeX-command-run-all= (thanks to kccai) **** Markdown - New layer variable =markdown-live-preview-engine=, Possibe values are =eww= (built-in browser) or =vmd= (installed with =npm=) - Add package =vmd-mode= (thanks to bixuanzju) - New key binding ~SPC m c P~ to live preview in Emacs' built-in browser (thanks to lunaryorn) **** mu4e - Add package =mu4e-maildirs-extension= (thanks to choppsv1) - Add package =mu4-alert= (thanks to zakkak) - New key bindings: - ~J~ to go to next unread thread marking other mail read on the way - ~C-j~ to go to next header - ~C-k~ to go to previoys header (thanks to myrjola) - Enable =org-mu4e= (thanks to choppsv1) - Use =helm--completing-read-default= (thanks to jeizsm) - Improve set account by "to" field (thanks to sorpaas) **** OCaml - New key binding ~SPC m = ~ to indent buffer with =ocp-indent= (thanks to NJBS) - New key binding ~SPC m g o~ to list occurrences for identifier under point (thanks to NJBS) - Add support for =ocamllex= , =ocamlyacc= files (thanks to YasuharuIida) - Remove key binding =merlin-refresh=, this function is obsolete since merlin 2.0 (thanks to bixuanzju) - Remove unused =flycheck= config, merlin is capable of doing it (thanks to bixuanzju) - Fix override of =exec-path= by =utop= configuration (thanks to bixuanzju) **** Org - Add package =org-reveal= (thanks to knl) - Add local package =space-doc-mode= to improve org files readability (thanks to JAremko) - Add support for =org-babel= - Replace =org-repo-todo= by =org-projectile= (thanks to TheBB) - New layer variable =org-projectile-file= to set the filename where you want to store project-specific TODOs. - New key bindings for =org-agenda=: - ~RET~ for =org-agenda-goto= - ~M-RET~ for =org-agenda-show-and-scroll-up= - ~SPC m a~ for =org-agenda= - ~SPC m d~ for =org-agenda-deadline= - ~SPC m s~ for =org-agenda-schedule= - ~SPC m f~ for =org-agenda-set-effort= - ~SPC m P~ for =org-agenda-set-property= - ~SPC m :~ for =org-agenda-set-tags= - ~SPC m I~ for =org-agenda-clock-in= - ~SPC m O~ for =org-agenda-clock-out= - ~SPC m q~ for =org-agenda-clock-cancel= - ~SPC m q~ for =org-agenda-refile= - New key for bindings for =org-calendar=: - ~M-l~ One day forward - ~M-h~ One day backward - ~M-j~ One week forward - ~M-k~ One week backward - ~M-L~ One month forward - ~M-H~ One month backward - ~M-J~ One year forward - ~M-K~ One year backward - New key binding ~SPC h s~ for =org-insert-subheading= (thanks to jgertm) - =org-indent= is now turned off by default because of the numerous glitches (thanks to TheBB) - Add code blocks support for =evil-surround= using ~:~ and ~#~ (thanks to TheBB) - Set =org-imenu-depth= to 8 (thanks to justbur) - set =org-image-actual-width= to nil which allows to resize images in an org buffer. - Follow the confirm and abort conventions (thanks to myrjola) **** OSX - Add package =osx-dictionary= (thanks to nixmaniack) - New layer variable =osx-use-dictionary-app= to use OS X dictionary app instead of wordnet. Default value is =t=. (thanks to nixmaniack) - Support pasting text with ~s-v~ in terminals (thanks to lyallcooper) **** NixOS - Add =nix-mode= to variable =spacemacs-indent-sensitive-modes= to disable automatic indentation on pasting text (thanks to Profpatsch) **** Pdf-tools - New key bindings ~0~ and ~$~ to full left and right scroll (thanks to Andre0991) - New key binding ~zr~ to reset zoom factor (thanks to Andre0991) **** Puppet - Use =ruby-mode= for Puppetfile support (thanks to nwolfe) **** Purescript - Add package =flycheck-purescript= (thanks to diogob) - New key binding ~SPC m g g~ (thanks to kRITZCREEK) - Incorporate new functionality from =psc-ide=: - New layer variable =purescript-add-import-on-completion= to add imports on completion. Default value is =t=. - New layer variable =purescript-enable-rebuild-on-save= to get a popup buffer showing you your current warnings/errors one at a time. This is primarily meant as an alternative to using flycheck. Default value is =nil=. - New =psc-ide= key bindings: - ~SPC m m b~ to rebuilds the current file and displays any warnings or errors - ~SPC m m i a~ to add an import for the identifier at the current cursor position - ~SPC m m i s~ to inserts a suggestion for the warning/error at the current cursor position - ~SPC m m t~ to add a new clause for the function signature at point - ~SPC m m c s~ to casesplits on the identifier at the current cursor position - ~SPC m m q~ to quit the current psc-ide-server - ~SPC m m L~ to load a specific module (thanks to kRITZCREEK) - Fix org layout if there is no agenda files and display an error message (thanks to TheBB) **** Python - Add package =live-py-mode= (thanks to cpaulik) - Add package =py-isort= to sort the imports (thanks to swaroopch) - Add support for =org-babel= - Replace package =py-yapf= with =yapfify=. =Yapfify= uses project settings applicable to the file that yapf is called on. Also it shows an error if =yapf= fails (thanks to JorisE) - New layer variable =python-sort-imports-on-save=, if non-nil, automatically sort imports on save. Default value is =nil= (thanks to swaroopch) - New key binding ~SPC m r I~ to sort imports with =isort= python package (thanks to TheBB) - New key bindings to manage virtual environments: - ~SPC m V a~ to activate a virtual environment in any directory - ~SPC m V d~ to deactivate the active virtual environment - ~SPC m V w~ to work on virtual environment in ~WORKON_HOME~ (thanks to cpaulik) - New key binding ~SPC m g b~ for =anaconda-mode-go-back= (thanks to jluttine) - Add support for a lisp REPL in =hy= buffers (thanks to dannyfreeman) - Add support for =pyenv= in =hy= buffers (thanks to dannyfreeman) - Add support for =smartparens= in =hy= buffers (thanks to dannyfreeman) - Fix =pylookup= key binding ~SPC m h H~ (thanks to darkfeline) - Fix IPython 5 integration and make it work with =pyenv= (thanks to cpaulik) - Make =pylookup= use std =completing-read= function (thanks to darkfeline) - Make =pylookup.py= compatible with Python 2 and 3 (thanks to hemcsec) - Enable lazy loading of =py-yapf=. - Only disable =semantic-idle-summary= if =anaconda-mode= is used (thanks to cpaulik) - Set =comment-inline-offset= to 2 for =python-mode= Since python's PEP8 recommends two spaces for inline spaces (thanks to xiaohanyu) - Set breakpoints correctly when =pyenv= is used (thanks to cpaulik) **** React - Add support for =smartparens= (thanks to axyz) - Add "^import React" to =magic-mode-alist= (thanks to axyz) - Add =javascript-standard= as a =flycheck= checker (thanks to shahinism) - Use node_modules version of eslint or global if not available (thanks axyz) **** Restclient - Add package =ob-http=. - New key binding ~SPC m y~ to copy the query around point as a =curl= command (thanks to d1egoaz) **** Ruby - Add package =rake= with key bindings: - ~SPC m k k~ to runs rake - ~SPC m k r~ to re-runs the last rake task - ~SPC m k R~ to regenerates the rake cache - ~SPC m k f~ to finds definition of a rake task (thansk to asok) - New =rspec= key binding ~SPC m t ~~ for =rspec-toggle-spec-and-target-find-example= (thanks to asok) - New =rspec= key binding ~SPC m t TAB~ for =rspec-toggle-spec-and-target= (thanks to asok) - New =rspec= key binding ~SPC m t d~ to run rspec in a specified directory (thanks to dcluna) - New key binding ~SPC b o~ to run bundle open (thanks to asok) - Add =popwin= configuration to =*rake-compilation*= (thanks to nixmaniack) - Add support for =Appraisals= files (thanks to jcf) - Fix =chruby= configuration to find out the ruby version to use (thanks to asok) - Enter automatically =inf-ruby-mode= when an =rspec= compilation hits a breakpoint (thanks to dcluna) **** Ruby on Rails - Add =which-key= prefixes (thanks to ralesi) **** Rust - Remove layer variable =rust-enable-racer=, now =racer= is always used (thanks to fbergroth) - Remove package =company-racer= since =racer= works with default =company= backends (thanks to fbergroth) - Remove obsolete package =rustfmt= which has been integrated into =rust-mode= (thanks to fbergroth) - Remove =racer= lighter in the mode line (thanks to NJBS) - New layer variable =rust-enable-rustfmt-on-save= (thanks to isphinx) - New package =rustfmt= with new key binding ~SPC m =~ to format the buffer (thanks to isphinx) - New key binding ~SPC m c f~ to format all project files with =rustfmt= (thanks to dmit) - Add support for =Cargo.lock= and =.cargo/config= files for =toml-mode= (thanks to Stebalien) **** Scala - Add support for =org-babel= (thanks to tonylotts) - New layer variable =scala-use-unicode-arrows= to replace ASCII arrows with unicode ones (thanks to moonranger) - Enable lazy loading of =sbt-mode=. - Disable Ensime autostart (thanks to d1egoaz) - Use scala-mode instead of scala-mode-2 which is deprecated (thanks to j-martin) - Fix dot completion bug (thanks to gilbertw1) **** Search-engine - Denote all search functions as autoloadable (thanks to TheBB) **** Shell - New =eshell-z= package (thanks to CestDiego) - New layer variable =shell-default-full-span=, if non-nil, the shell buffers span full width of a window (thanks to dubnde) - New key binding ~SPC p '~ for =projectile-shell-pop= (thanks to StreakyCobra) - ~C-d~ is now bound to =eshell-delchar-or-maybe-eof= which checks if there is a char after the point. If so, it performs the normal delete-char, otherwise if quit eshell (thanks to microamp) - Add support for the universal prefix argument to open a shell/term buffer in the current window instead of a new window (i.e. ~SPC u SPC '~) - Add support for =org-babel= - Fix first =eshell= with no color (thanks to TheBB) - Fix =projectile-multi-term-in-root= (~SPC p $ t~) (thanks to TheBB) - Enable auto-jump to end of buffer in hybrid style (thanks to TheBB) - Disable =global-hl-line-mode= in =shell-like= buffers (thanks to TheBB) **** Shell-scripts - Add package =company-shell= (thanks to joehillen) - Enable =flycheck= in =sh-mode= (thanks to fbergroth) - New key binding ~SPC m \~ for =sh-backslash-region= to add a backslash at end of lines (thanks to fbergroth) **** SML - Improve indentation by binding ~RET~ to =reindent-then-newline-and-indent= (thanks to cpaulik) **** Spell-checking - Use package =flyspell-correct= instead of =helm-flyspell= (thanks to d12frosted) - Add package =flyspell-popup= (thanks to usharf) **** Spotify - Enable lazy loading **** Syntax-checking - New key binding ~SPC e L~ to open the errors buffer and switch to it. - Improve =flycheck= loading process (thanks to TheBB) - Enable lazy loading of =flycheck=. - Don't switch to =error-list= window if already on it (thanks to bmag) - Fix bug where errors are not filtered correctly when setting =flycheck-navigation-minimum-level= (thanks to maxigit) **** Themes-megapack - Add theme =Darkokai= (thanks to ekmecic) **** Typescript - Rewrite of the layer, see its =README.org= for more info (thanks to JAremko) - New key binding ~SPC m s p~ to send region or buffer to the web playground (thanks to JAremko) - Add typescript format and make tide formatter the default (thanks to JAremko) - Add support for =evil-shift-width= (thanks to TheBB) - Allow =tsfmt= to use the local project's configuration (thanks to overminder) - Swap ~C-j~ and ~C-k~ in tide reference mode (thanks to zilongshanren) **** Version-control - Fix git gutter toggle (thanks to ralesi) **** Vim-unimpaired - Keep the point at the same location when calling =evil-unimpaired/insert-space-above= and =evil-unimpaired/insert-space-below= (thanks to jschaf) - New key bindings ~] q~ and ~[ q~ for =spacemacs/next-error= and =spacemacs/previous-error= (thanks to bling) **** Windows-scripts - Add support for =.cmd= and =.psm1= files (thanks to ralesi) **** Yaml - Fix auto-completion (thanks to perfectayush) *** Core Changes - Refactor layer system to allow a 20~25% perfomance boost on startup. - Move bootstrap packages from =core-spacemacs.el= to a new layer called =spacemacs-bootstrap=. - Checking for new version on startup behavior has been tweaked to lower the frequency on the checks and reduce the number of operations made: - reduce number of required git commands per check from 3 to 1 - remove recurrent version check every 6 hours, i.e. the check happens only at startup - rate limit the checks to once per day - change default value of variable =dotspacemacs-check-for-update= to =nil= - make function =spacemacs/check-for-new-version= interactive so checking for a new version can be done on demand. - New macro =spacemacs|define-jump-handlers= to define jump backends for a given mode (thanks to TheBB) - Implement an API for =local-vars-hook= which allows to read some directory local variables before executing an hooked function (thanks to d12frosted) - Make function =spacemacs/get-last-version= interactive - New file in layers called =layers.el=, this file is reponsible to declare layer dependencies. - New variable =spacemacs-start-directory=. With this new variable, user can easily load spacemacs anywhere (thanks to exaos) - New variable =spacemacs-default-company-backends= which allow the user to fine tune the default company backends inherited by all the modes (thanks to izahn) - New command line parameters =--no-layer= and =--distribution= - =--no-layer= desactives all the layers except the distribution layer - =--distribution= allows to change temporarily the distribution - New funtion =spacemacs/report-issue= to create GitHub issues from within Emacs based on a template (thanks to dwang20151005) - New functions =configuration-layer/remove-layer= and =configuration-layer/remove-layers=. - New function =spacemacs/describe-package= giving useful information on a package in the Spacemacs layers context (key binding ~SPC h d P~) - New keyword =:toggle= for package lists =-packages=. Its value can be a symbol or a list. A package is considered to be used if the toggle evaluates to non nil. By default =:toggle= is =t=. - New keyword =:min-version= for package lists =-packages=. Providing a min-version allows to fetch the elpa version of a built-in package. - New value =bootstrap= for package =:step= keyword, it is used for bootstrap packages. - New value =site= for package =:location= keyword, a site package is a package installed on the host by a third party (ie. =mu4e= which is installed by =mu=) - New documentation formatting tool =doc-fmt= (thanks to JAremko) - New keywords for =spacemacs|add-toggle= macro: - =: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) - =:mode= a minor mode, when provided, =:on=, =:off= and =:status= are automatically defined to support the minor mode. (thanks to dcluna and TheBB) - Print toggles messages only when the toggle functions are used interactively (thanks to bmag) - Add =Quelpa= support for local packages which means that local packages can be installed like any other ELPA package (thanks to d12frosted) - Add footer in home buffer - Add support for functions for =:status= in =spacemacs|add-toggle= (thanks to TheBB) - Add support for themes =omtose-darker= and =omtose-softer= (thanks to Cifer-Y) - Update base16 themes to match new list (thanks to belak) - Add emojis to issue template (thanks to CestDiego) - Remove variable =user-dropbox-directory= - Center spacemacs banner in window at startup (thanks to ralesi) - Center ascii banners in window at startup (thanks to deb0ch) - Display warning buffer at the bottom of the screen when installing packages. - Display more information about the number of loaded packages in the home buffer: - =e= elpa - =r= recipe - =l= local - =b= built-in - Display a numerical progression in mode-line representing the number of packages to configure. - Display a warning message when a non-excluded package has no pre-init, init or post-init function in a layer. - Merge version strings into one string displayed in the left-hand side: =spacemacs-version@emacs-version (distribution)= - Improve =spacemacs|diminish= function (thanks to TheBB) - Use =$SPACEMACDIR/init.el= instead of =~/.spacemacs= when both exist (thanks to bmag) - Fix font definition for first frame in daemon mode (thanks to StreakyCobra) - Fix message format in =init.el= (thanks to YasuharuIida) - Fix home buffer random banner choice (thanks to deb0ch) - Fix =.gitignore= file to enable submodule update (thanks to jgmize) - Optimize function =spacemacs//get-package-directory= (thanks to ivanbrennan) - Improving performance by avoiding to visite dump files in function =spacemacs/dump-vars-to-file= (thansk to bmag) *** Other fixes and improvements - Fix all documentation links on GitHub (thanks to JAremko) - Improve Spacemacs themes readibility of highlight-persist and smartparens overlays when there is an active region (thanks to nashamri) - Typos and documentation improvements (thanks to adrsta, Andre099, 1andreas-h, axyz, balajisivaraman, benansell, bmag, brettcannon, cpaulik, d12frosted, d1egoaz, darkfeline, dathinaios, Dominionized, duianto, eareese, jfchevrette, gilch, hasufell, ivanbrennan, jgertm, jkrmr, johankj, Johnstone-Tech, jonboiser, jpfairbanks, jschnurr, kalouantonis, krobelus, li-xinyang, loxaxs, lzhoucs, madand, Marlin-Na, mathcass, maxigit, microamp, nashamri, NJBS, ohspite, pablooliveira, padi, rbanffy, robbyoconnor, robert-m-johnson, royxue, sbdchd, sebastianpoeplau, shanavas786, sooheon, splaspood, StreakyCobra, svanburen, taheris, TheBB, tj64, tko, tonylotts, trenpixster, voidlily, WillianPaiva, WuTheFWasThat, xiaohanyu, xfq, zifeo, zjyjer) - Other contributions (thanks to hujianxin, nixmaniack) *** Core team members - Sylvain Benner (syl20bnr) - Boris (d12frosted) - Eivind Fonn (TheBB) - Fabien Dubosson (StreakyCobra) - Justin Burkett (justbur)