-*- mode: org -*-

This file containes the change log for the next major version of Spacemacs.

* Release 0.106.x
** 0.106.0 (no date)
*** IMPORTANT: Breaking changes
- =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)
- =<package>-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~
- Delete things key bindings are now more consistent using 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
  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~
- 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
- 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.
*** Hot new features
- Add lazy installation of layers based on =auto-mode-alist=.
- Support for Ivy, add the =ivy= layer to your dotfile and
  restart to replace =Helm= by =Ivy= (thanks to justbur and contributors)
- New micro states powered by =Hydra=. Micro states are now called transient
  states (thanks to justbur)
- 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 setting
  =--debug-init=, press ~SPC q D~ to restart Emacs with Spacemacs disabled and
  with a list of selected packages to load. (thanks to StreakyCobra)
- Improved =emacs= and =hybrid= editing styles which should fix inconsistencies
*** New Layers
- asm in =+lang= (thanks to thudo)
- bibtex in =+lang= (thanks to JP-Ellis)
- csv in =+lang= (thanks to jb55)
- imenu-list in =+tools= (thanks to bmag)
- pdf-tools in =+tools= (thanks to Andre0991)
- plantuml in =+lang= (thanks to robbyoconnor)
- rebox in =+tools= (thanks to choppsv1)
- ivy in =completion= (thanks to justbur)
- helm in =completion= (moved from spacemacs-base) (thanks to justbur)
- systemd in =+config-files= (thanks to StreakyCobra)
*** Dotfile changes
- The editing style value can now be a list. Like layers the keyword
  =:variables= allows to define some variables to modify the editing style.
  The following variables are available for the hybrid style:
  - =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 variable =dotspacemacs-command-key= has been renamed to
  =dotspacemacs-emacs-command-key= (the old name is still valid though).
- New variable =dotspacemacs-emacs-command-key= which is the key to
  press after the leader key to execute =M-x=.
- 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 values for =dotspacemacs-startup-lists=: =agenda= and =todos=
  (thanks to tonyday567)
*** Distribution layer changes
- Add =evil-ediff= package (thanks to justbur)
- Add =evil-visual-mark-mode= package (thanks to nixmaniack)
- Add =link-hint= package:
  - ~SPC x o~ to use avy to select a link in the frame and open it
  - ~SPC x O~ to  use avy to select multiple links in the frame and open them
  (thanks to StreakyCobra)
- Add =uuidgen= package:
  - ~SPC i U 1~ to insert UUIDv1 (use universal argument to insert with CID format)
  - ~SPC i U 4~ to insert UUIDv4 (use universal argument to insert with CID format)
  - ~SPC i U U~ to insert UUIDv4 (use universal argument to insert with CID format)
- Remove =evil-jumper= package, it is now integrated in =evil=
  (thanks to justbur)
- Move =unimpaired= layer to =spacemacs= layer
- ~C-i~ in GUI now execute =evil-jump-forward= (thanks to justbur)
- New key bindings to restart Emacs and restore Spacemacs layouts:
  - ~SPC q r~ to restart Emacs and restore layouts
  - ~SPC q R~ to restart Emacs without restoring layouts
  (thanks to StreakyCobra)
- New key binding ~SPC b N~ and evil ex-command =:enew= to open a new empty
  buffer (thanks to balajisivaraman)
- New key binding ~SPC f h~ to open a binary file with ~hexl~ (thanks to TheBB)
- New key binding ~SPC p F~ to find file around point in the project context
  (thanks to thudo)
- Change key binding ~SPC p T~ to =projectile-test-project= (thanks to joehillen)
- New key binding ~SPC p %~ to replace in project using a regular expression
  (thanks to d12frosted)
- New Spacemacs layouts key bindings:
  - ~SPC b a~ to add a buffer to the current layout
  - ~SPC b r~ to remove a buffer from the current layout
  - ~SPC B b~ to list all the buffers in all layouts
  (thanks to CestDiego)
- Command prefix ~SPC j~ is now also for =jumping=, introduced key bindings are:
  - ~SPC j 0~ to go to the beginning of line (and set a mark at the previous
    location in the line)
  - ~SPC j $~ to go to the end of line (and set a mark at the previous location
    in the line)
  - ~SPC j b~ to undo a jump (go back to previous location)
  - ~SPC j d~ to jump to a listing of the current directory
  - ~SPC j D~ to jump to a listing of the current directory (other window)
  - ~SPC j f~ to jump to the definition of the function around point
  - ~SPC j i~ to jump to a definition in buffer (imenu)
  - ~SPC j j~ to jump to a character in the buffer (works as an evil motion)
  - ~SPC j J~ to jump to a suite of two characters in the buffer (works as an evil motion)
  - ~SPC j I~ to jump to a definition in any buffer (imenu)
  - ~SPC j k~ to jump to next line and indent it using auto-indent rules
  - ~SPC j l~ to jump to a line with avy (works as an evil motion)
  - ~SPC j n~ to split the current line at point, insert a new line and auto-indent
  - ~SPC j s~ to split a quoted string or s-expression in place
  - ~SPC j S~ to split a quoted string or s-expression, insert a new line and auto-indent
  - ~SPC j u~ to jump to a URL in the current buffer
  - ~SPC j v~ to jump to the definition/declaration of the variable around point
  - ~SPC j w~ to jump to a word in the current buffer (works as an evil motion)
  (thanks to justbur)
- New key bindings under ~SPC h~:
  - ~SPC h .~ to search for dotfile variables
  - ~SPC h f~ to search for FAQ
  - ~SPC h l~ to search for layers
  - ~SPC h p~ to search for packages
  - ~SPC h r~ to search for documentation files
  - ~SPC h t~ to search for toggles
  (thanks to justbur)
- New text justification key bindings:
  - ~SPC x j c~ to set the justification to center
  - ~SPC x j f~ to set the justification to full
  - ~SPC x j l~ to set the justification to left
  - ~SPC x j n~ to set the justification to none
  - ~SPC x j r~ to set the justification to right
  (thanks to StreakyCobra)
- New key binding ~SPC w f~ to toggle =follow= mode (thanks to JAremko)
- New key binding ~SPC w R~ to rotate windows backward (thanks to Dominionized)
- New key binding ~SPC x a \~ to align backslashes (thanks to nocash)
- New key binding ~SPC h d d~ for =helm-apropos= (thanks to StreakyCobra)
- New key bindings ~[ f~ and ~] f~ to go to the next or previous file in current
  directory (thanks to fbergroth)
- New key binding ~gr~ in =helm-ag= buffers to update saved results
  (thanks to darkfeline)
- New key binding ~SPC f b~ for =bookmark-jump= (thanks to darkfeline)
- ~ESC~ now quits =help= buffers (thanks to olivierverdier)
- ~=~ can now be used to increase transparency in the transparency transient
  state (thanks to sooheon)
- Add ~p~ for previous match to =auto-highlight-symbol= transient state
  (thanks to microamp)
- Add numerical prefix argument support for ~G~ in =doc-view= to go to a page
  (thansk to TheBB)
- Add =smartparens= to =comint-mode= (thanks to CestDiego)
- Remove ~ESC~ re binding in visual state (thanks to sooheon)
- Fix =rainbow-delimiter-mode= in various modes (thanks to StreakyCobra)
- Fix =neotree= window number assigment (thanks to bmag)
- Fix =neotree= losing track of its window when changing workspaces or
  layouts (thanks to bmag)
- Fix ~SPC s e~ for emacs style users, the binding now call =iedit= instead of
  =evil-iedit-state= (thanks to AlejandroCatalina)
- Fix ~SPC s c~ to work with =evil-search-module= (thanks to StreakyCobra)
- Fix move up and down selected text in Vim style.
- Fix =dotspacemacs-remap-Y-to-y$= which had no effect (thanks to TheBB)
- Fix usage of deprecated function =avy--with-avy-keys= (thanks to NJBS)
- Move =org= base configuration from the =org= layer to the =spacemacs=
  distribution (thanks to d12frosted)
- Various =google-translate= fixes (thanks to TheBB)
- Prevent =auto-highlight-symbol= from setting up its own default map
  (thanks to bling)
- Delay =vi-tilde-fringe= loading after display init, fixes missing tildes
  when using Emacs daemon (thanks to StreakyCobra)
- Start to partition =spacemacs= layers into sub-layers (thanks to justbur)
*** Layer changes
**** Ansible
- Add =jinja2-mode= package
- Add support for =host_vars= and =group_vars= files (thanks to nixmaniack)
- Change key binding ~SPC m a ?~ to ~SPC m h a~
**** Auto-completion
- New layer variable =auto-completion-complete-with-key-sequence-delay= to
  set the delay in second between the keys of sequence used to select
  the auto-completion candidate (thanks to MadAnd)
- Enable ~C-p~ (hippie-expand) only in vim style (thanks to nixmaniack)
- Remap =evil-complete-previous= to =hippie-expand= (thanks to justbur)
**** Bépo
- Treat emacs-state the same as insert-state (thanks to StreakyCobra)
- Add support for =org-agenda= (thanks to StreakyCobra)
- Fix =elfeed= remapping (thanks to StreakyCobra)
- Fix =evil-magit= remapping (thanks to StreakyCobra)
- Fix =flycheck-error-list= remapping (thanks to StreakyCobra)
**** Clojure
- Add =clojure-snippets= package (thanks to AlejandroCatalina)
- New key binding ~SPC m s o~ for switching between REPL connections
  (thanks to mahinshaw)
- New key binding ~SPC m h a~ for cider apropos (thanks to birdspider)
- Remove indentation rules (thanks to ernestas)
**** Common-Lisp
- Add =common-lisp-snippets= package (thanks to thudo)
- Add support for =auto-highlight-symbol= (thanks to AlejandroCatalina)
**** CSharp
- New key bindings
  - ~SPC m g c~ to go to member in current file
  - ~SPC m g I~ to find implementations using ido
  - ~SPC m g U~ to find usages of symbol under cursor using ido
  - ~SPC m r M~ to rename symbol under cursor interactively
  (thanks to retran)
**** Elixir
- Remove =ruby-end-mode= and use =smartparens= instead (thanks to mmainz)
**** Elfeed
- New key binding ~o~ to open links with =ace-jump= (thanks to nixmaniack)
**** ERC
- New layer variable =erc-server-list= (thanks to jhenahan)
- Enable lazy loading.
**** Extra languages
- Add =thrift= package (thanks to secwang)
- Add =faust-mode= package (thanks to magnetophon)
- Make =matlab-mode= run =prog-mode-hook= (thanks to TheBB)
**** Games
- Add package =typit=.
**** Geolocation
- Rewrite of the layer, see its =README.org= for more info
  (thanks to usharf and declanqian)
**** Git
- New key binding ~SPC g A~ for =magit-cherry-pick-popup=
  (thanks to robbyoconnor)
- New key binding ~SPC g r~ for =magit-rebase-popup= (thanks to C089)
- New key binding ~SPC g x~ for =magit-reset-popup= (thanks to magthe)
**** 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)
**** Go
- New layer variable =go-tab-width= (thanks to microamp)
- Improve indentation (thanks to bogdanteleaga)
- Show function signatures (thanks to carlosgaldino)
**** Gtags
- Remove =helm-gtags= lighter from mode line (thanks to NJBS)
**** Haskell
- New =helm-hoogle= package under ~SPC m h f~ (thanks to jb55)
- Add all =haskell-mode= key bindings to =literate-haskell-mode=
  (thanks to jb55)
**** 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
- Use built-in =web-mode= pairing (disable =smartparens=) (thanks to TheBB)
- Enable =emmet-mode= in sass and scss modes (thanks to utkarshkukreti)
**** 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)
- Register Idris REPL for ~SPC a '~ (thanks to bixuanzju)
- Add basic auto-completion (thanks to bixuanzju)
- Add prefix command names (thanks to bixuanzju)
**** Jabber
- Add support for evilified key bindings (thanks to mssun)
**** Javascript
- Add REPL via =skewer-mode= and =livid-mode= (thanks to dcluna)
**** LaTeX
- 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 key binding ~SPC m c P~ to live preview in Emacs' built-in browser
  (thanks to lunaryorn)
**** mu4e
- Add =mu4e-maildirs-extension= package (thanks to choppsv1)
- Add =mu4-alert= package (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)
**** Org
- Add support for =org-babel=
- 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
- =org-indent= is now turned off by default because of the numerous glitches
 (thanks to TheBB)
- Set =org-imenu-depth= to 8 (thanks to justbur)
- Follow the confirm and abort conventions (thanks to myrjola)
**** OSX
- Support pasting text with ~s-v~ in terminals (thanks to lyallcooper)
**** Puppet
- Use =ruby-mode= for Puppetfile support (thanks to nwolfe)
**** Purescript
- Add package =flycheck-purescript= (thanks to diogob)
**** Python
- Add =live-py-mode= package (thanks to cpaulik)
- Add support for =org-babel=
- 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)
- Fix =pylookup= key binding ~SPC m h H~ (thanks to darkfeline)
- Make =pylookup= use std =completing-read= function (thanks to darkfeline)
- Enable lazy loading of =py-yapf=.
**** Restclient
- Add =ob-http= package.
- New key binding ~SPC m y~ to copy the query around point as a =curl= command
  (thanks to d1egoaz)
**** Ruby
- Add =rake= package 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 key binding ~SPC b o~ to run bundle open (thanks to asok)
- Add =popwin= configuration to =*rake-compilation*= (thanks to nixmaniack)
- Fix =chruby= configuration to find out the ruby version to use (thanks to asok)
**** 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
- New layer variable =scala-use-unicode-arrows= to replace ASCII arrows
  with unicode ones (thanks to moonranger)
- Enable lazy loading of =sbt-mode=.
**** Shell
- New =eshell-z= package (thanks to CestDiego)
- 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 '~)
- Fix first =eshell= with no color (thanks to TheBB)
- Enable =shell= language for =org-babel=.
- Disable =global-hl-line-mode= in =shell-like= buffers (thanks to TheBB)
**** Shell-scripts
- Add =company-shell= package (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)
**** 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=.
**** Typescript
- Rewrite of the layer, see its =README.org= for more info (thanks to JAremko)
- Add typescript format (thanks to JAremko)
**** 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)
*** Core Changes
- Move bootstrap packages from =core-spacemacs.el= to a new layer called
  =spacemacs-bootstrap=.
- New minor mode =space-doc-mode= to improve org files readability
  (thanks to JAremko)
- 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
- New package keyword =:toggle= which 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 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)
- Display more information about the number of loaded packages in the home
  buffer:
  - =e= elpa
  - =r= recipe
  - =l= local
  - =b= built-in
- Improve =spacemacs|diminish= function (thanks to TheBB)
*** Other fixes and improvements
- Fix all documentation links on GitHub (thanks to JAremko)
- Typos and documentation improvements (thanks to adrsta, andreas-h,
  balajisivaraman, cpaulik, johankj, microamp, pablooliveira, robert-m-johnson,
  TheBB, StreakyCobra, voidlily, xiaohanyu, xfq, zifeo)
- Other contributions (thanks to hujianxin, nixmaniack)
*** Core team members
- Sylvain Benner (syl20bnr)
- Eivind Fonn (TheBB)
- Fabien Dubosson (StreakyCobra)
- Justin Burkett (justbur)
