#+COMMENT -*- mode: org -*-

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

Use the following template structure and fill it in with your changes.
When a release will be drafted, the notes will be copied at the top of
the [[file:CHANGELOG.org][CHANGELOG.org]] file.

#+BEGIN_EXAMPLE
 * Release 0.400.x
 ** 0.400.0
 *** Breaking Changes
 **** Major
 **** Key bindings
 **** Layers
 ***** Layer 1
 ***** Layer 2
 ***** Layer 3
 *** Hot new features
 *** Dotfile changes
 *** Core changes
 *** Distribution changes
 *** Layers
 **** New layers
 **** Layer 1
 **** Layer 2
 **** Layer 3
 *** Various improvements
 **** Code syle and organization
 **** Documentation and website
 **** Testing and CI
#+END_EXAMPLE

* Release 0.300.x
** 0.300.0
*** Hot new feature
- Extensive use of lazy loading of packages and other tricks to reduce Spacemacs
  startup time. In most cases you should see a noticable improvement in load
  time and smoothness in startup. We also added the time spent to load your
  personal =dotspacemacs/user-config= so you can quickly spot if it is a
  bottleneck (thanks to Sylvain Benner, Ben Leggett, and bmag)
- Added support for native line numbers in Emacs 26+ (thanks to bmag)
- Improved themes support. Support are now handled like regular packages. The
  list of themes now supports =:location= keyword like in package lists. More
  information in the =Themes= section of the documentation.
- Added environment-variable caching. At startup, if the cache does not exist,
  Spacemacs loads environment variables and writes the cache to be used on next
  startup. Please read carefully the new documentation section =Environment
  variables and PATH= in =DOCUMENTATION.org= (thanks to Sylvain Benner,
  Codruț Constantin Gușoi, fiveNinePlusR, Paolo G. Giarrusso,
  and Miciah Dashiel Butler Masters)
- Improved support of custom settings file. All custom settings are now
  encapsulated in a function called =dotspacemacs/emacs-custom-settings= in the
  dotfile if the user does not specify a custom location for the custom settings
  file by modifying the variable =custom-file=. This allows Spacemacs to
  correctly loads custom settings at the end of the loading process, fixing
  unwanted overriden custom settings by layers. See section =Custom variables=
  in =DOCUMENTATION.org=.
- Introduction of =spacemacs-purpose= layer that assigns newly created buffers
  to windows based on their inferred purpose (=edit=, =help=, =chat=, =mail=,
  etc.).  See [[https://github.com/bmag/emacs-purpose][emacs-purpose]] repository for more info (thanks to bmag)
- New distribution =spacemacs-docker= used to build the official docker image
  for the Spacemacs container (thanks to Eugene Yaremenko)
- Added support for =ripgrep=. To enable it add =rg= to
  =dotspacemacs-search-tools=. =ripgrep= key bindings are under ~SPC s r~
  prefix. (thanks to Aron Griffis)
- Make =ripgrep= work properly with =ripgrep config files=
  (thanks to Jacek Swierk)
- Simplify declaration of company backends, see the section
  =Add auto-completion in a layer= of the =README.org= file of the
  =auto-completion= layer.
- Added experimental support for the emacs portable dumper; see
  =EXPERIMENTAL.org=. This allows for instant Spacemacs startup time with
  pre-loaded heavy packages like =Org= and =Helm=
  (thanks to Sylvain Benner, Compro Prasad and Keith Simmons)
- Added support for native fill column indicator in Emacs 27+ (thanks to
  Andriy Kmit)
- Add support for background transparency aka true transparency. Key bindings are under ~SPC T B~ (thanks to JoshTRN)
*** Breaking Changes
**** Major
- Support for Emacs 25 or Emacs 26 has been dropped, the minimal Emacs version
  is now =27.1=.
**** Core
- Change loading order of layers init functions. Previously the =pre-init=,
  =init= and =post-init= function were called in a row for each package. Now
  /all/ =pre-init= functions are called for all packages, then /all/ =init=
  functions of all packages are called, finally /all/ =post-init= functions of
  all packages are called. It might require some updates of your private layers.
- All custom settings are now encapsulated in a function called
  =dotspacemacs/emacs-custom-settings= which is managed by Spacemacs and written
  to your dotfile. This allows Spacemacs to control when those settings are
  applied. While it should not break your custom settings you should check that
  they are all applied correctly once you reboot Emacs. Also you may have to
  clean up your dotfile if some custom settings are still present in your
  dotfile outside of the function =dotspacemacs/emacs-custom-settings=.
- Company backends declaration has been revamped to be less verbose and easier
  to use. For more info see the section =Add auto-completion in a layer= of
  the README.org file of the =auto-completion= layer, also you can read [[https://github.com/syl20bnr/spacemacs/commit/74fdbb6][commit
  message of commit 74fdbb6]].
- The function =add-flycheck-hook= has been renamed to =enable-flycheck=.
- The property =:powerline-scale= of variable =dotspacemacs-default-font= has
  been removed and replaced by the property =:separator-scale= used in the new
  dotfile variable =dotspacemacs-mode-line-theme=.
**** Layers
***** Spacemacs distribution layers
- Key bindings:
  - ~SPC p $~ to open the default shell in the project root (thanks to Ryan Prior)
  - Changed ~SPC b B~ to ~SPC b I~ for =ibuffer= (thanks to Thomas de Beauchêne)
  - Changed ~SPC B b~ to ~SPC b B~ for non restricted buffer list
    (thanks to Thomas de Beauchêne)
  - Changed ~SPC b i~ to ~SPC b t~ for =imenu= tree view
    (thansk to Sylvain Benner)
  - ~SPC b m~ now opens the =*Messages*= buffer. The old ~SPC b m~ to kill other
    buffers has been moved to ~SPC b C-d~. Killing other buffers using a regular
    expression is now under ~SPC b C-D~.
  - Changed ~SPC f T~ to ~SPC 0~ for =neotree-show= / =treemacs-select-window=
    (thanks to Dela Anthonio)
  - Changed ~SPC j j~ from =evil-avy-goto-char= to =evil-avy-goto-char-timer=,
    and removed default binding for =evil-avy-goto-char-2=
    (thanks to duianto and Sylvain Benner)
  - Scrolling key bindings are now under ~SPC N~ instead of ~SPC n~ to be able
    to define more key bindings to scroll.
  - Changed decribe themes from ~SPC h d t~ to ~SPC h d T~.
  - ~SPC q z~ is now ~SPC q f~ to kill a frame.
  - Remove ~SPC T N~ and make ~SPC T n~ cycle and start the theme transient
    state (thanks to Sylvain Benner)
  - Restricted ~SPC b C-d~ to only kill other buffers in current perspective
    (thanks to Seong Yong-ju)
  - Changed ~SPC t t m~ from ~timeclock-modeline-display~ which was deprecated
    in Emacs 24.3 to ~timeclock-mode-line-display~ (thanks to Zach Pearson)
  - Added =vim-style-enable-undo-region= style variables to enable undo-region
    in Vim editing style; disabled by default. (thanks to Benedict HW)
  - Added ~SPC m r R~ to show tide refactorings submenu (thanks to Roberto 
    Previdi)
- Other:
  - Support for multiple cursors using =evil-mc= is now encapsulated in the
    =multiple-cursors= layer (thanks to Codruț Constantin Gușoi)
***** C-C++
- CMake support has been extracted from the =c-c++= layer into the new =cmake=
  layer.
- LSP code navigation / completion added via clangd or ccls
  (thanks to Cormac Cannon)
- Removed cquery.
***** EPUB
- Add ~J/K~ for scrolling down/up (thanks to Daniel Nicolai)
***** ESS
- ESS key bindings were re-organised in the following list
  (thanks to Guido Kraemer, Yi Liu, Jack Kamm and Ben Swift):
  - ~SPC m ,~ for =ess-eval-region-or-function-or-paragraph-and-step=
  - ~SPC m d~ for =ess-dev-map=
  - ~SPC m h h~ for =ess-display-help-on-object=
  - ~SPC m h p~ for =ess-R-dv-pprint=
  - ~SPC m h t~ for =ess-R-dv-ctable=
  - ~SPC m r~ for =ess-extra-map=
  - ~SPC m s B~ for =ess-eval-buffer-and-go=
  - ~SPC m s D~ for =ess-eval-function-or-paragraph-and-step=
  - ~SPC m s F~ for =ess-eval-function-and-go=
  - ~SPC m s L~ for =ess-eval-line-and-go=
  - ~SPC m s R~ for =ess-eval-region-and-go=
  - ~SPC m s S~ for =ess-switch-process=
  - ~SPC m s b~ for =ess-eval-buffer=
  - ~SPC m s d~ for =ess-eval-region-or-line-and-step=
  - ~SPC m s f~ for =ess-eval-function=
  - ~SPC m s i~ for =spacemacs/ess-start-repl=
  - ~SPC m s l~ for =ess-eval-line=
  - ~SPC m s Q~ for =ess-quit=
  - ~SPC m s r~ for =ess-eval-region=
  - ~SPC m s s~ for =ess-switch-to-inferior-or-script-buffer=
  - ~SPC m w~ for =ess-r-package-dev-map=
***** Elixir
- Key bindings;
  - Changed ~SPC m p t~ to ~SPC m t F~ for =alchemist-project-find-test=
    (thanks to Lyuben Petrov)
- Remove flycheck-mix-compile in favour of alchemist and lsp syntax checking
***** Git
- Improvements:
  - Adapted configuration to new transient commands of Magit (thanks to bmag)
- Key bindings;
  - Changed ~SPC g f h~ to ~SPC g f l~ for 'git log' of current file
    (thanks to Ag Ibragimov)
- Fixed rebase mode displaying incorrect keybindings when using emacs editing style
***** gtags
- Key bindings;
  - Regenerate tags are now under ~SPC m g C~ instead of ~SPC m g c~.
***** Haskell
- Key bindings;
  - Swapped key bindings for better usability (thanks to Tony Lotts):
    - ~SPC m s s~ for =haskell-interactive-switch=
    - ~SPC m s S~ for =spacemacs/haskell-interactive-bring=
- Removed =intero=, =ghc-mod= (both not maintained any more) and =company-ghci= (not competitive) backends
  and made =dante= default backend (thanks to Martin Sosic)
***** imenu-list
- Improvements:
  - Added function/binding to focus the imenu sidebar, creating it if none found.
- Key bindings:
  - Bound new focus function under ~SPC b i~
  - Moved existing toggle binding to ~SPC T i~ (from ~SPC b t~)
***** LSP
- Key bindings;
  - Change jump back to last mark from ~SPC m g p~ to ~SPC m g b~
    to follow the keybindings convention (thanks to Magnus Therning)
  - Use ~lsp-ivy~ when ~ivy~ layer is present.
  - added  ~lsp-use-lsp-ui~ variable to control whether ~lsp-ui~ is installed or not.
  - added ~SPC m g h~ to go to call hierarchy.
  - added ~SPC m g T~ to go to type hierarchy.
***** IPython notebook
- Key bindings;
  - Change prefix from ~SPC a i~ to ~SPC a y~ (thanks to Swaroop C H)
***** Java
- Moved Ensime support to the Scala layer, Java support removed.
***** JavaScript
- CoffeeScript support has been extracted from the =javascript= layer into the
  new =coffeescript= layer.
- Added missing prefix for =js2-mode=
- Added =eslint_d= support (thanks to Seong Yong-ju)
***** Markdown
- Key bindings:
  - Removed ~SPC m i I~ for =markdown-insert-reference-image=
    (folded into ~SPC m i i~)
  - Removed ~SPC m i L~ for =markdown-insert-reference-link-dwim=
    (folded into ~SPC m i l~)
  - Added ~SPC m x k~ for =markdown-insert-kbd= (thanks to Ben Swift)
  - Added ~SPC m t a~ for =markdown-table-align= in consistency with Org layer (thanks to deb0ch)
***** nlinum
- The =nlinum= layer is deprecated on Emacs 26.1 and newer in favor of native
  line number support (thanks to bmag)
***** Org
Org key bindings were all over the place and we needed to reorganize them in a
sane way, here is the complete list of changed key bindings
(thanks to Sylvain Benner and Paweł Siudak):
- New prefixes:
  - ~SPC C~ clocks
  - ~SPC d~ dates
  - ~SPC m T~ toggles
  - ~SPC m b~ org-babel commands
  - ~SPC m i D~ download
  - ~SPC m s~ trees/subtrees
- Changed key bindings:
  - ~SPC m A~ org-attach
  - ~SPC m C I~ org-clock-in-last
  - ~SPC m C R~ org-clock-report
  - ~SPC m C c~ org-agenda-clock-cancel
  - ~SPC m C c~ org-clock-cancel
  - ~SPC m C d~ org-clock-display
  - ~SPC m C e~ org-evaluate-time-range
  - ~SPC m C g~ org-clock-goto
  - ~SPC m C i~ org-agenda-clock-in
  - ~SPC m C i~ org-clock-in
  - ~SPC m C j~ org-clock-jump-to-current-clock
  - ~SPC m C o~ org-agenda-clock-out
  - ~SPC m C o~ org-clock-out
  - ~SPC m C p~ org-pomodoro
  - ~SPC m C r~ org-resolve-clocks
  - ~SPC m T V~ space-doc-mode
  - ~SPC m T i~ org-toggle-inline-images
  - ~SPC m T t~ org-show-todo-tree
  - ~SPC m T x~ org-toggle-latex-fragment
  - ~SPC m d T~ org-time-stamp-inactive
  - ~SPC m d d~ org-agenda-deadline
  - ~SPC m d d~ org-deadline
  - ~SPC m d s~ org-agenda-schedule
  - ~SPC m d s~ org-schedule
  - ~SPC m d t~ org-time-stamp
  - ~SPC m e m~ org-mime-org-buffer-htmlize
  - ~SPC m i D s~ org-download-screenshot
  - ~SPC m i D y~ org-download-yank
  - ~SPC m i H~ org-insert-heading-after-current
  - ~SPC m i K~ spacemacs/insert-keybinding-org
  - ~SPC m i d~ org-insert-drawer
  - ~SPC m i e~ org-agenda-set-effort
  - ~SPC m i e~ org-set-effort
  - ~SPC m i h~ org-insert-heading
  - ~SPC m i l~ org-insert-link
  - ~SPC m i n~ org-add-note (thanks to Tommi Komulainen)
  - ~SPC m i p~ org-agenda-set-property
  - ~SPC m i p~ org-set-property
  - ~SPC m i s~ org-insert-subheading
  - ~SPC m i t~ org-agenda-set-tags
  - ~SPC m i t~ org-set-tags
  - ~SPC m p~ org-priority
  - ~SPC m s A~ org-archive-subtree-default
  - ~SPC m s N~ widen
  - ~SPC m s S~ org-sort
  - ~SPC m s b~ org-tree-to-indirect-buffer
  - ~SPC m s h~ org-promote-subtree
  - ~SPC m s j~ org-move-subtree-down
  - ~SPC m s k~ org-move-subtree-up
  - ~SPC m s l~ org-demote-subtree
  - ~SPC m s n~ org-narrow-to-subtree
  - ~SPC m s r~ org-agenda-refile
  - ~SPC m s r~ org-refile
  - ~SPC m s s~ org-sparse-tree
  - ~SPC m x o~ org-open-at-point
- Moved =org-trello= keys from ~SPC m o~ to ~SPC m m t~
  (thanks to Magnus Therning)
- New keybindings for push and pull (thanks to Magnus Therning):
  - ~SPC m t d b~ for =spacemacs/org-trello-pull-buffer=
  - ~SPC m t d c~ for =spacemacs/org-trello-pull-card=
  - ~SPC m t u b~ for =spacemacs/org-trello-push-buffer=
  - ~SPC m t u c~ for =spacemacs/org-trello-push-card=
- New keybinding for =org-table-field-info= ~SPC m t f~
  (thanks to Dominik Schrempf)
In org-agenda-mode
  - Add consistent keybinding ~SPC m .~ to enter transient-state (thanks to Daniel Nicolai)
  - Removed ~C-h~ binding in =org-agenda-mode= (thanks to Ag Ibragimov)
  - Rebind =org-agenda-refile= to ~r~ in transient state (thanks to Muneeb Shaikh)
***** Perforce
- Added =p4-shelve= and =p4-unshelve= commands from =p4= package
  (thanks to Binary-Eater)
- Key bindings:
  - New ~SPC p 4 [~ to shelve changes
  - New ~SPC p 4 ]~ to select a changelist to unshelve
***** Python
- fix/implement pyvenv-tracking-mode (thanks to Daniel Nicolai)
- Key bindings (thanks to Danny Freeman):
  - Changed ~SPC m s F~ to ~SPC m e F~ for =lisp-eval-defun-and-go=
  - Changed ~SPC m s R~ to ~SPC m e R~ for =lisp-eval-region-and-go=
  - Changed ~SPC m s e~ to ~SPC m e e~ for =lisp-eval-last-sexp=
  - Changed ~SPC m s f~ to ~SPC m e f~ for =lisp-eval-defun=
  - Changed ~SPC m s r~ to ~SPC m e r~ for =lisp-eval-region=
- Hy support has been extracted from the =python= layer into the new =hy= layer.
- Made =nose= fail compilation when tests fail (thanks to wizmer)
***** Ruby
- Key bindings:
  - Changed ~SPC m h d~ to ~SPC m h h~ for =robe-doc= (thanks to Paweł Siudak)
  - Changed ~SPC m T {~ to ~SPC m r {~ for =ruby-toggle-block= (thanks to Codruț
    Constantin Gușoi)
  - Changed ~SPC m T '~ to ~SPC m r '~ for =ruby-toggle-string-quotes= (thanks
    to Codruț Constantin Gușoi)
  - Added ~SPC m i f~ for =spacemacs/ruby-insert-frozen-string-literal-comment=
    (thanks to Codruț Constantin Gușoi)
  - Added ~SPC m i s~ for =spacemacs/ruby-insert-shebang= (thanks to Codruț
    Constantin Gușoi)
  - Added ~SPC m r }~ for =ruby-toggle-block= (thanks to Codruț Constantin
    Gușoi)
  - Added ~SPC m r "~ for =ruby-toggle-string-quotes= (thanks to Codruț
    Constantin Gușoi)
***** Ruby on Rails
- Key bindings:
  - New ~SPC m r f S~ to find serializer (thanks to Boris Buliga)
  - Changed =projectile-rails= key binding prefix from ~SPC m r~ to ~SPC m f~
    to avoid conflicts with key bindings in the =web-mode= layer
    (thanks to Adam Sokolnicki)
***** Search-engine
  - Add Debian & Ubuntu package search engines (thanks to Alfonso Montero).
  - Allow to configure a TLD other than =.com= for Amazon searches (thanks to Alfonso Montero).
  - Add Rails API search engine
  - Add Docker Hub image search engine (thanks to Alfonso Montero).
***** Spacemacs-navigation
- Key bindings:
  - Add ~J/K~ to scroll up/down (or next/previous node) in Info-mode
  - Add ~o~ to link-hint-open-link in woman-mode
***** Shaders
- =shaders= layer has been moved to =gpu= layer.
***** Shell-scripts
- Add variable =shell-scripts-shfmt-args= to pass through arguments to =shfmt= package.
***** Syntax checking
- Key bindings (thanks to Loris Lucido):
  - Key binding ~SPC e e~ is now for triggering a syntax check, the old action
    (explain error around point) has been moved to ~SPC e x~.
  - Move major specific error key bindings to ~SPC m E~ prefix
    (thanks to Sylvain Benner)
  - Changed ~SPC e e~ to ~SPC e b~ for =flycheck-buffer=
***** Tabs
- Add auto hide tabs feature (thanks to Daniel Nicolai)
***** Transmission
- Key bindings (thanks to Arif Er):
  - Organised and corrected in both =packages.el= and =README.org=.
  - Change ~SPC m s l~ to ~SPC m s r~ for =transmission-set-ratio= and =transmission-set-torrent-ratio=.
  - Change ~SPC m r~ to ~SPC m R~ for =transmission-remove=.
  - Change ~SPC m m~ to ~SPC m r~ for =transmission-move=.
  - Change ~SPC m r~ to ~SPC m X~ for =transmission-files-command=.
  - Swap ~SPC m a a~ and ~SPC m a t~ for =transmission-add= and =transmission-trackers-add= respectively.
  - Change ~SPC m s b~ to ~SPC m s p~ for =transmission-set-bandwidth-priority=.
  - Change ~SPC m g t~ to ~SPC m g f~ for =transmission-files=.
  - Change ~SPC m m u~ and ~SPC m m w~ to ~SPC m t u~ and ~SPC m t w~ for =transmission-files-unwant= and =trasnmission-files-want= respectively
***** Vagrant
- Key bindings:
  - Vagrant key bindings prefix is now ~SPC a V~.
  - Actually use ~SPC a t v t~ for =vagrant-tramp-term=
***** Version Control
- Key bindings:
  - Changed ~SPC g h o~ to ~SPC g o~ for =browse-at-remote= (thanks to Codruț
    Constantin Gușoi)
  - Add ~SPC g f m~ for ~magit-file-dispatch~ (thanks to Ag Ibragimov and Ilya Grigoriev)
- Removed [[https://github.com/defunkt/gist.el][gist.el]] due to it being broken and unmaintained (thanks to Robby O'Connor)
***** YAML
- Added LSP support (thanks to Seong Yong-ju)
***** ycmd
- The =ycmd= layer has been deleted and moved to the =c-c++= layer.
*** New layers
**** Completion
- compleseus (thanks to thanhvg)
- templates (thanks to YasuharuIida and Eivind Fonn)
**** Emacs
- helpful (thanks to Johnson Denen, Andriy Kmit)
- tabs (thanks to Deepu Mohan Puthrote)
- verb (thanks to Federico Tedin)
**** Email
- notmuch (thanks to Francesc Elies Henar, Leonard Lausen, Willian Casarin,
  Kalle Lindqvist)
**** Filetree
- treemacs (thanks to Alexander Miller, Kalle Lindqvist, duianto,
  Thomas de Beauchêne, Boris Buliga and Sylvain Benner)
**** Fonts
- unicode-fonts (thanks to Aaron Jensen)
**** Frameworks
- emberjs (thanks to Robert O'Connor)
- phoenix (thanks to Lyuben Petrov)
- vue (thanks to Thanh Vuong)
- svelte (thanks to Marco Süß)
**** Intl
- japanese (thanks to Kenji Miyazaki)
**** Languages
- alda (thanks to Andrew Hill (AstroEngiSci))
- coffeescript (thanks to Sylvain Benner)
- conda (thanks to Zach Pearson)
- coq (thanks to Xuan Bi, Jeremy Bi and Langston Barret)
- crystal (thanks to Sylvain Benner)
- dart (thanks to Bruno Tavares)
- dhall (thanks to Colin Woodbury)
- elasticsearch (thanks to Jean Rigotti)
- extempore (thanks to Ben Swift)
- factor (thanks to timor)
- forth (thanks to Tim Jaeger)
- fountain (thanks to Damien Picard)
- gpu (thanks to Evan Klitzke)
- groovy (thanks to Sylvain Benner)
- hy (thanks to Sylvain Benner and yuhan0)
- jr (thanks to Philippe Baron)
- json (thanks to Sylvain Benner, Boris Buliga and Tommi Komulainen)
- jsonnet (thanks to liztio and Robby O'Connor)
- julia (thanks to Adam Beckmeyer and Guido Kraemer)
- kivy (thanks to Ryota Kayanuma)
- kotlin (thanks to Shanavas M)
- mercury (thanks to Ludvig Böklin)
- pact (thanks to Colin Woodbury)
- perl5 (thanks to Troy Hinckley, Jinseop Kim and Michael Rohleder)
- prolog (thanks to Newres Al Haider)
- raku (thanks to Bahtiar Gadimov, yuhan0 and Alex Kapranoff)
- reasonml (thanks to fredyr and Dave Aitken)
- solidity (thanks to Brooklyn Zelenka and Seong Yong-ju)
- tabs (thanks to Deepu Puthrote)
- protobuf (thanks to Amol Mandhane)
- restructuredtext (thanks to Wei-Wei Guo and Kalle Lindqvist)
- semantic-web (thanks to Andreas Textor)
- yang (thanks to Christian Hopps)
- zig (thanks to Michael Hauser-Raspe)
**** Misc
- tree-sitter
- copy-as-format (thanks to Ruslan Kamashev)
- dtrt-indent (thanks to Kevin Doherty)
- ietf (thanks to Christian Hopps and Robby O'Connor)
- multiple-cursors (thanks to Codruț Constantin Gușoi and Thomas de Beauchêne)
- parinfer (thanks to Tianshu Shi)
- Keybinding
  - Moved ~spacemacs/browse-docs-online-at-point~ from ~SPC d b~ to ~SPC h b d~.
**** Music
- pianobar (thanks to Leo Littlebook)
- tidalcycles (thanks to rbino)
- outshine (thanks to Langston Barrett)
**** Readers
- epub (thanks to Jeremy Dormitzer and André Peric Tavares)
- djvu (thanks to Daniel Nicolai)
**** Spacemacs
- spacemacs-defaults
- spacemacs-modeline
- spacemacs-navigation
- spacemacs-project
- spacemacs-purpose (thanks to bmag)
- spacemacs-visual
**** Tools
- bm (thanks to Eugene Yaremenko and Binbin Ye)
- cmake (thanks to Alexander Dalshov, Sylvain Benner and Jonas Jelten)
- dap (thanks to Ivan Yonchovski)
- debug (thanks to Hodge Shen, Troy Hinckley, and Sylvain Benner)
- dotnet (thanks to Jordan Kaye)
- eaf (thanks to Daniel Nicolai)
- import-js (thanks to Thanh Vuong and Seong Yong-ju)
- kubernetes with tramp support (thanks to Matt Bray and Maximilian Wolff)
- languagetool (thanks to Robbert van der Helm)
- lsp (thanks to Fangrui Song, 0bl.blwl, Cormac Cannon, Juuso Valkeejärvi,
  Guan Xipeng, Ivan Yonchovski, Justin Martin, dscole and Sylvain Benner)
- node (thanks to jupl)
- pass (thanks to Andrew Oppenlander, Kepi, Kalle Lindqvist, and Evan Klitzke)
- prettier (thanks to Seong Yong-ju)
- quickurl (thanks to Spenser "equwal" Truex)
- sailfish-developer (thanks to Victor Polevoy)
- sphinx (thanks to Wei-Wei Guo)
- tern (thanks to Sylvain Benner and Juuso Valkeejärvi)
- tide (thanks to Thanh Vuong)
- translate (thanks to Ray Wang)
- transmission (thanks to Eugene Yaremenko)
- web-beautify (thanks to Sylvain Benner and Juuso Valkeejärvi)
- xclipboard (thanks to Charles Weill, Sylvain Benner, and Alex Palaistras)
**** WEB services
- confluence
- reddit
- eww (thanks to Colton Kopsa, Maximilian Wolff and Daniel Nicolai)
- lobsters
- hackernews
- streamlink
- twitch
*** Renamed layers
- =extra-langs= renamed to =major-modes= (thanks to Eivind Fonn)
- =pdf-tools= renamed to =pdf=
- =mercury-layer= renamed to =mercury=
*** Removed layers
- evil-cleverparens (moved to =spacemacs-evil=)
- extra-langs (replaced by =ad-hoc= layers)
- flow-type (replaced by LSP in =javascript= layer)
- ycmd (moved to =c-c++=)
*** Dotfile changes
- Added type bases validation for .spacemacs variables.
- New Variables:
  - New dotvariable =dotspacemacs-auto-generate-layout-names= (thanks to bmag)
  - New dotvariables =dotspacemacs-emacs-pdumper-executable-file=,
    =dotspacemacs-emacs-dumper-dump-file= and
    =dotspacemacs-enable-emacs-pdumper= to configure dump
    (thanks to Sylvain Benner)
  - New variable =dotspacemacs-enable-server= (thanks to Tad Fisher)
  - New variable =dotspacemacs-frame-title-format= which is the default format
    string for a frame title bar, see docstring of function
    =spacemacs/frame-title-prepare= for more info (thanks to Uri Sharf and Kepi)
  - New variable =dotspacemacs-gc-cons= (thanks to Sylvain Benner)
  - New variable =dotspacemacs-initial-scratch-message= for the initial message
    in the scratch buffer (thanks to Carl Lange)
  - New variable =dotspacemacs-mode-line-theme= adds support for mode-line
    themes. Supported themes are =spacemacs=, =all-the-icons=, =vim-powerline=,
    =custom=, and =vanilla=. The first three are spaceline themes, =custom= is
    user defined, and =vanilla= is the default Emacs mode-line.
    (thanks to Sylvain Benner and James Wang)
  - New variable =dotspacemacs-server-socket-dir= for setting the server socket
    location (thanks to Carl Lange)
  - New variable =dotspacemacs-switch-to-buffer-prefers-purpose= which controls
    where =switch-to-buffer= displays the buffer. If nil, =switch-to-buffer=
    displays the buffer in the current window even if another same-purpose
    window is available. If non nil, =switch-to-buffer= displays the buffer in a
    same-purpose window even if the buffer can be displayed in the current
    window. (thanks to bmag)
  - New variable =dotspacemacs-use-spacelpa= (thanks to Sylvain Benner)
  - New variable =dotspacemacs-zone-out-when-idle= to zone when idle. Zoning
    will obfuscate the current buffer acting like a screen saver.
    (thanks to Eugene Yaremenko and Sylvain Benner)
  - New variable =dotspacemacs-undecorated-at-startup= (thanks to bb2020)
  - New variable =dotspacemacs-startup-buffer-show-version=
    (thanks to Zach Pearson)
  - New variable =dotspacemacs-read-process-output-max= to optimise lsp
    performance in emacs 27 (thanks to Maximilian Wolff)
  - New variable =dotspacemacs-show-trailing-whitespace= (thanks to duianto)
  - New var =dotspacemacs-startup-buffer-multi-digit-delay= (thanks to duianto)
  - New variable =dotspacemacs-scroll-bar-while-scrolling= (thanks to duianto)
  - New variable =dotspacemacs-show-startup-list-numbers= (thanks to duianto)
  - New variable =dotspacemacs-startup-banner-scale= (thanks to Daniel)
- Removed Variables:
  - Removed unused variable =dotspacemacs-verbose-loading= from
    =.spacemacs.template= (thanks to Ying Qu)
Other:
  - =.gitignore= now ignores tag files and the bbdb database.
  - =.gitignore= now ignores org-journal-cache-file (thanks to Benjamin Hipple)
  - =.gitignore= now ignores image-dired-dir (thanks to Alfonso Montero)
  - =.gitignore= now ignores devdocs (thanks to Alfonso Montero)
  - Added =vim-style-visual-feedback= and =hybrid-style-visual-feedback= style
    variables to enable =evil-goggles= pulse in the Vim and Hybrid editing
    styles, respectively; disabled by default (thanks to Sylvain Benner)
  - Renamed style variables for consistency; the old names are still recognized
    but deprecated (thanks to Sylvain Benner):
    - =dotspacemacs-remap-Y-to-y$= renamed to =vim-style-remap-Y-to-y$=
    - =dotspacemacs-retain-visual-state-on-shift= to
      =vim-style-retain-visual-state-on-shift=
    - =dotspacemacs-visual-line-move-text= to =vim-style-visual-line-move-text=
    - =dotspacemacs-ex-substitute-global= to =vim-style-ex-substitute-global=
    - =hybrid-mode-enable-evilified-state= to
      =hybrid-style-enable-evilified-state=
    - =hybrid-mode-enable-hjkl-bindings= to =hybrid-style-enable-hjkl-bindings=
    - =hybrid-mode-use-evil-search-module= to
      =hybrid-style-use-evil-search-module=
    - =hybrid-mode-default-state= to =hybrid-style-default-state=
  - Renamed =helm= variables and made them layer variables; the old dotfile
    variables are still recognized but deprecated
    (thanks to Sylvain Benner and Kalle Lindqvist):
    - =dotspacemacs-helm-resize= to =helm-enable-auto-resize=, in the
      =spacemacs-completion= layer
    - =dotspacemacs-helm-no-header= to =helm-no-header=, in the =helm= layer
    - =dotspacemacs-helm-position= to =helm-position=, in the =helm= layer
    - =dotspacemacs-helm-use-fuzzy= to =helm-use-fuzzy=, in the
      =spacemacs-completion= layer
  - Removed obsolete =:powerline-scale= property from
    =dotspacemacs-default-font= variable
    (thanks to Muneeb Shaikh and Sylvain Benner)
  - Modified =dotspacemacs-major-mode-leader-key= so that =M-RET= key works in
    org-mode as well as in terminal and GUI modes. =C-M-m= still works in
    terminal mode, but no longer in GUI mode. (emacs18)
*** Core changes
- Improvements:
  - Support =recents-by-project= in =dotspacemacs-startup-lists=, which allows
    combining the existing =recents= and =projects= into one coherent view (thanks
    to Keith Pinson)
  - Make =set-selective-display=, which is a kind of built-in Emacs quick-n-dirty
    whole-file folding mechanism for indentation-based syntaxes, more
    discoverable for Evil users by placing it (with a small DWIM wrapper) in the
    folding menu as ~z $~ (thanks to Keith Pinson)
  - Provide keybindings for using narrow with an indirect buffer for when you
    want narrowing multiple times in the same base buffer:
    - ~SPC n F~ for narrow to function
    - ~SPC n P~ for narrow to page
    - ~SPC n R~ for narrow to region
    (thanks to Keith Pinson and duianto)
  - Make =describe-text-properties= available in the help -> describe menu via
    ~SPC h d t~ (thanks to Keith Pinson)
  - Bind ~SPC c n~ to ~:cn~ / ~next-error~ and ~SPC c N~ to ~:cN~ / ~previous-error~
    (thanks to Keith Pinson)
  - Display time spent in =user-config= in home buffer (thanks to Sylvain Benner)
  - Added dotfile function =dotspacemacs/user-load= (thanks to Sylvain Benner)
  - Added dotfile function =dotspacemacs/user-env= (thanks to Sylvain Benner)
  - Added layer shadowing system, see [[https://github.com/syl20bnr/spacemacs/commit/dc58801c7ddd770a1f94a17890b4efbd1f20f6e8][commit dc58801]] (thanks to Sylvain Benner)
  - Added support for stable ELPA repository hosted on GitHub
    (thanks to Sylvain Benner)
  - Added =--no-package-sync= startup flag to prevent package from being
    installed or uninstalled set the variable (thanks to Valts Liepiņš)
  - Added =:requires= keyword for package declarations and owned packages
    (thanks to Eivind Fonn)
  - Added new interactive function =spacemacs/diminish-undo= to undo all the
    diminished mode-line lighters and have all of them be displayed in the
    mode-line. (thanks to hodge)
  - Conventions: added support for major mode specific toggles on ~SPC m T~
    prefix (thanks to Sylvain Benner)
  - Conventions: added ~SPC m f~ for web frameworks (thanks to Sylvain Benner)
  - Added universal prefix argument support to open both the =*scratch*= buffer
    and the =*Messages*= buffer in another window
    (thanks to Thomas de Beauchêne)
  - Added support for building multi-file local packages with =Quelpa=
    (thanks to Andriy Kmit')
  - Improved handling of additional bindings for transient states
    (thanks to Andriy Kmit')
  - More robust =dotspacemacs/add-layer= implementation (thanks to Eivind Fonn)
  - Improved issue reporting (thanks to Eugene Yaremenko)
  - Enabled backward theme cycling and added dedicated transient state
    accessible with ~SPC T n~ and ~SPC T N~ (thanks to Adrien Becchis and bmag)
  - Remove wizard question about completion engine. (thanks to Sylvain Benner)
  - Added e key bindings in Quick Help home screen (thanks to Sylvain Benner)
  - Increased =gc-cons-threshold= during startup to reduce startup time
    (thanks to Aaron Jensen)
  - Wrap init with =file-name-handler-alist nil= to speed up init
    (thanks to Aaron Jensen)
  - Changed startup to hide loading message unless =--debug-init= is specified
    (thanks to Sylvain Benner)
  - New command line parameter =--force-dump= to force dump emacs
    (thanks to Sylvain Benner)
  - Added prompt about unsaved changes when closing an issue report
    (thanks to timor)
  - Added =:off-message= keyword to the =spacemacs|add-toggle= macro to allow
    overriding the default toggled-off expression (thanks to bmag)
  - Added =spacemacs|add-transient-hook= macro to add hooks that vanish the
    first time they are executed (thanks to Sylvain Benner)
  - Added =doom-emacs= mode-line theme (thanks to Sylvain Benner)
  - Optimized =spacemacs/title-prepare= (thanks to Andriy Kmit')
  - Cached expensive computations in =spacemacs/title-prepare=
    (thanks to Dieter Komendera)
  - Added line text object using =evil-textobj-line= (thanks to Uroš Perišić)
  - Added more =kaolin-themes= (thanks to ogdenwebb)
  - Calling =spacemacs/recompile-elpa= with an argument nukes all *.elc files
    (thanks to Ag Ibragimov)
  - Allow customizing default major mode for new empty buffers in ~SPC b N n~,
    see =dotspacemacs-new-empty-buffer-major-mode= (thanks to Juha Jeronen)
  - Changed =dotspacemacs-default-font= =:size= from =13= (pixel size) to =10.0=
    (point size) (thanks to Aaron Zeng and duianto)
  - Updated the list of =base16= themes (thanks to kenranunderscore)
  - Updated the list of =solarized= themes (thanks to Muneeb Shaikh)
  - Added a =spacemacs-layouts-restrict-spc-tab= variable to
    =spacemacs/alternate-buffer= that restricts ~SPC-TAB~ to the current layouts
    buffers (default: =nil=) (thanks to Thanh Vuong)
  - Use a unique variable for each transient state's full-hint toggle function
    so that toggling the full hint in one transient state does not affect other
    transient states (thanks to Miciah Dashiel Butler Masters)
  - Converted obsolete =cl= to =cl-lib= (thanks to kimr)
  - Removed uses of =lexical-let=, part of the deprecated =cl= package
    (thanks to Spenser Truex)
  - Converted =case= to =cl-case= to fix =cl-lib= related errors
    (thanks to Nikita Leshenko)
  - Open Spacemacs home buffer in other/new window with prefix argument
    (thanks to duianto)
  - Add =emacs-version= to the default value for
    =dotspacemacs-emacs-dumper-dump-file= (thanks to Evan Klitzke)
  - Add =spacemacs-scratch-mode-hook= to run functions
    after =spacemacs-scratch-mode= is applied to =*scratch*= buffer (thanks to rayw000)
  - Add toggles for persistent which-key keymaps, (full)-major/minor mode
    keymaps and top-level keymap, under prefix ~SPC t k~ (thanks to Daniel Nicolai)
  - Add =describe-ex-command= on ~SPC h d x~ (thanks to Daniel Nicolai)
  - Support packing elisp to *.elc and *.el.gz (thanks to Lin Sun)
  - Add option to select and update only some packages (thanks to Daniel Nicolai)
- Fixes:
  - Avoid non-idempotent use of push in init code (thanks to Miciah Masters)
  - Moved Spacemacs startup progress bar to =core-progress-bar.el=, removed
    counter from progress bar, fixed updating, and fixed size when Emacs is
    started maximized (thanks to Sylvain Benner)
  - Fixed loading of themes having dependencies (thanks to Benno Fünfstück)
  - Fixed error when =layers= directory does not exist in dotdirectory
    (thanks to Eivind Fonn)
  - Fixed insert point for lazy loaded layers
    (thanks to Codruț Constantin Gușoi)
  - Fixed reference to cfgl-package-distant-p (thanks to Alex Coventry)
  - Fixed computation of elpa directory (thanks to Sylvain Benner)
  - Fixed loading order for package configuration it is now:
    - pre-init functions for all packages
    - init function of all packages
    - post-init functions for all packages (thanks to Sylvain Benner)
  - Fixed base16-theme mapping for all themes (thanks to Philippos Boon Alexaki)
  - Fixed package initialization on Emacs 27
    (thanks to Miciah Dashiel Butler Masters)
  - Fixed bugs that could cause =layers.el= and =packages.el= files to be loaded
    multiple times (thanks to Sylvain Benner)
  - Fixed warning about quoted lambda in =core-configuration-layer.el=
    (thanks to Sylvain Benner)
  - New function =configuration-layer/load-file= to load files silently
    (thanks to Sylvain Benner)
  - Fixed configuration-layer/insert-lazy-install-configuration, which has been
    broken since v0.200.0.
  - Fixed duplicate "Open quick help..." in the minibuffer at startup
    (thanks to Sylvain Benner)
  - Fixed overflow of line in page-break-lines-mode when using line number
    (thanks to Compro Prasad)
  - Changed the layer loading process so that customizing a package variable
    using =:variables= in =dotspacemacs-configuration-layers= overrides any
    default value that the layer's package configuration sets
    (thanks to Sylvain Benner)
  - Fixed bug that could overwrites customize variables (thanks to bmag)
  - Don't suggest ~SPC q r~ if =restart-emacs= package is missing after an
    update (thanks to Keshav Kini)
  - spacemacs-layouts: Improvements to ~SPC l l~ (=spacemacs/helm-perspectives=
    or =spacemacs/ivy-spacemacs-layouts=):
    - If the user selects a project that does not already have a layout and then
      quits without selecting a file or buffer, kill the new layout.
    - When creating a new layout, add any buffers that belong to the project.
  - spacemacs-layouts: Improvements to ~SPC p l~
    (=spacemacs/helm-persp-switch-project= or
    =spacemacs/ivy-persp-switch-project=):
    - Fixed the default action to display the home buffer in the new layout.
    - Added actions to copy the current layout or create a new project layout.
    - Added action for opening project in dired. (thanks to Magnus Therning)
  - Resolve symlinks in warning message about duplicate layers
    (thanks to Ben Gamari)
  - Check toggle condition in status function (thanks to Eivind Fonn)
  - Always reset applied themes when a theme is applied (thanks to Eivind Fonn)
  - Assume "no" for lazy installation in the --batch mode
    (thanks to Eugene Yaremenko)
  - Use =url-hexify-string= to encode issue report body (thanks to Boris Buliga)
  - Deleted the quote preceding the lambda in =spacemacs|add-toggle= to avoid
     warning (thanks to Miciah Dashiel Butler Masters)
  - Escaped left and right bracket character literals to avoid warning
    (thanks to Miciah Dashiel Butler Masters)
  - Backported battery fix for macOS (thanks to Sylvain Benner)
  - Disabled spaceline responsiveness for =all-the-icons= theme
    (thanks to Sylvain Benner)
  - Disabled auto-start of Emacs server by default (thanks to Sylvain Benner)
  - Alternate buffers without taking into account their purpose
    (thanks to Thomas de Beauchêne)
  - Made query-replace work when frame is split (thanks to Dieter Komendera)
  - Don't skip missing .elc files when recompiling Elpa (thanks to RockyRoad29)
  - Updated =quelpa= to fix installing of some recipes on macOS
    (thanks to Dieter Komendera)
  - Added startup support for doom-sourcerer theme (thanks to Parker Johnson)
  - Fixed modeline when started in daemon mode (thanks to Benno Fünfstück)
  - Fixed search for "find" executable in windows (thanks to Charlie Barto)
  - Found workaround for =buffer-list-update-hook= performance issue.
    (thanks to Alexander Miller)
  - Added missing force argument to the =spacemacs//init-spacemacs-env= call in
    the function =spacemacs/load-spacemacs-env= (thanks to sergeiz2)
  - Fixed =spacemacs/alternate-buffer= to restore point.
  - Removed Unicode triple dot in both =dotspacemacs-smart-closing-parenthesis=
    variable comments in favor of the ASCII one (thanks to nshadov)
  - Fixed home buffer version insertion removing first line (thanks to duianto)
  - Fixed ~SPC TAB~ in =spacemacs-base= distribution (thanks to duianto)
  - Frame title setting doesn't need to depend on environment (gui/cli)
    (thanks to Mpho Jele)
  - Replaced =destructuring-bind= with =cl-destructuring-bind=
    (thanks to duianto)
  - Ignore nils in dotspacemacs-configuration-layers (thanks to Ag)
  - Fixed redundant package version checking during update
    (thanks to aaronjensen)
  - Fixed unexpected behavior in =spacemacs/open-junk-file=
    (thanks to Matt Kramer)
  - Replace =spacemacs/close-compilation-window= with
    =spacemacs/show-hide-compilation-window= (thanks to Hans Jang)
  - Avoid unnecessary packages installation of tern layer
  - Fixed terminal mode line indicator overlapping (thanks to duianto)
  - Fixed broken --timed-requires and --adv-timers under Emacs 27 and above (thanks to Ying Qu)
  - Removed nils from =dotspacemacs-configuration-layers= when running tests
    (thanks to Ag Ibragimov)
  - Fixed duplicate quick help and release notes in home buffer
    (thanks to mark30247)
  - Fixed evil undo in =spacemacs-base= (thanks to duianto)
  - Fix macOS GUI full screen button wreck caused by GUI setup in early-init.el
- Other:
  - New function =configuration-layer/message= to display message in
    =*Messages*= buffer (thanks to Sylvain Benner)
  - Enabled lexical binding in new template (thanks to André Peric Tavares)
  - Reworked =spacemacs//reroot-link= to make links relative
    (thanks to Eugene Yaremenko)
  - Rename =configuration-layer/sync= to =configuration-layer/load=
    (thanks to Sylvain Benner)
  - Replace the optional argument =no-install= by a global variable named
    =spacemacs-sync-packages= (thanks to Sylvain Benner)
  - Added optional parameter to =spacemacs/set-mode-line= to redisplay
   (thanks to Sylvain Benner)
  - Added optional =append= and =local= parameters to =spacemacs/add-to-hooks=
    (thanks to Sylvain Benner)
  - Added =spacemacs-buffer/error= like =spacemacs-buffer/warning=
    (thanks to Sylvain Benner)
  - Move versions functionality to new file =core/core-versions.el=
    (thanks to Sylvain Benner)
  - Use =cl-loop= instead of =loop= (thanks to Sylvain Benner)
  - Renamed =spacemacs/mplist-get= function to =spacemacs/mplist-get-values=,
    renamed =spacemacs/plist-get= function to =spacemacs/mplist-get-value=, and
    refactored the latter function (thanks to Benjamin Reynolds)
  - Added =pupo-split-active-window= variable to split the active window or the
    entire frame (thanks to tddsg)
  - New emacs banner: "100-banner.txt" (thanks to Robert Zaremba)
  - Added Dogemacs inverted banner for dark themes: "997-banner.txt"
    (thanks to Vitor Finotti and Robby O'Connor)
  - Added reference handler as per jump handler (thanks to Fangrui Song)
  - Added =spacemacs/iwb-region-or-buffer= (thanks to bb2020)
  - Enabled eager spacebind bindings by default (thanks to JAremko)
  - Add info about requirement to also load additional-package in user-config
    section (thank to Daniel Nicolai)
  - New function =spacemacs/inherit-leader-keys-from-parent-mode= to
    inherit leader key bindings from another mode
  - Open buffers with major-mode derived from =special-mode= in motion-state by
    default (thanks to Daniel Nicolai)
  - Add evil-jump-backward/forward (=C-o=/=C-i=) keybindings to
    evil-evilified-state-map (thanks to Daniel Nicolai)
  - Improve helm completion in spacemacs-help (thanks to @dankessler)
  - Improve the =configuration-layer/declare-layer-dependencies= to avoid loading
    the dependence layers multiple times (thank to Lin Sun)
*** Distribution changes
- Refactored =spacemacs-bootstrap=, =spacemacs-ui=, and =spacemacs-ui-visual=
  layers:
  - The =spacemacs-bootstrap= layer no longer configures built-in packages;
    instead, the new =spacemacs-defaults= layer configures built-in packages.
  - The =spacemacs-base= distribution now uses only the new =spacemacs-defaults=
    layer. As a result, =spacemacs-base= no longer installs any packages, but
    instead only configures defaults for built-in packages.
  - The new =spacemacs-navigation= layer configures packages for navigation.
  - The new =spacemacs-modeline= layer configures packages for the mode line.
  - The new =spacemacs-project= layer configures =projectile=.
  - Merge =spacemacs-ui= and =spacemacs-ui-visual= into layer =spacemacs-visual=
- New Packages:
  - Added =evil-lion= package to =spacemacs-evil= layer
    (thanks to et2010 and Eivind Fonn)
  - Added =editorconfig= package to =spacemacs-editing= layer
    (thanks to Vladimir Kochnev and Eivind Fonn)
  - Added =password-generator= package to =spacemacs-editing= layer
    (thanks to Sylvain Benner)
  - Added =persistent-scratch= package to =spacemacs-editing= layer
    (thanks to Ray Wang)
  - Added =unkillable-scratch= package to =spacemacs-editing= layer
    (thanks to Ray Wang)
  - Added =symon= package to =spacemacs-modeline= layer
    (thanks to Eugene Yaremenko)
  - Added =evil-goggles= to the =spacemacs-evil= layer
    (thanks to Sylvain Benner)
  - Added =dotenv-mode= to the =spacemacs-bootstrap= layer
    (thanks to Sylvain Benner)
  - Added the following local packages (thanks to Sylvain Benner):
    - =info+=
    - =hide-comnt=
    - =help-fns+=
    - =font-lock+=
  - Remove package =adaptive-wrap=
  - Added =symbol-overlay= to the =spacemacs-navigation= layer
    (thanks to kenkangxgwe)
  - Added =valign= package to =spacemacs-org= layer
    (thanks to rayw000)
  - Added =string-edit= package to =spacemacs-editing= layer
    (thanks to Ivan Yonchovski)
  - Remove package =evil-ediff=
    (thanks to Xuanqing Xu)
- Key bindings:
  - Toggle line numbers (i.e. toggle =display-line-numbers-mode=) via ~SPC t n n~
    without having to think about which variant of line numbers you have turned
    on (thanks to Keith Pinson)
  - Evilify =Custom-mode= (thanks to Keith Pinson)
  - Fixed ~M-x~ prefix visualization for ~dotspacemacs-emacs-command-key~
  - New ~SPC a Q~ prefix for dispatching quickurl
    (thanks to Spenser "equwal" Truex:)
    - ~SPC a Q l~ List quickurls
    - ~SPC a Q Q~ Expand quickurl abbrev at point
    - ~SPC a Q i~ Ask for which quickurl to insert
    - ~SPC a Q e~ Edit quickurls
    - ~SPC a Q b~ Ask to browse some url from those stored (with completion).
  - New evil text objects =«=, =｢=, =‘= and =“=.
  - Improved buffer transient state with extra bindings and new commands:
    - Added ~<right>~ for next-buffer
    - Added ~<left>~ for previous-buffer
    - Added ~o~ for other window
    - Added ~C-d~ for bury buffer
    - Added ~b~ for helm-buffer-list
    (thanks to Adrien Becchis and Sylvain Benner)
  - Added alignment support for ~{~ (thanks to Paulo Diniz)
  - Added functionality to move layouts in layout list using the layouts
    transient state:
    - Added ~<~ for =spacemacs/move-current-persp-left=
    - Added ~>~ for =spacemacs/move-current-persp-right=
    (thanks to Linus Marton)
  - New ~SPC b u~ keybinding for reopening killed buffers
    (thanks to Alex Palaistras)
  - New ~SPC b x~ and ~SPC w x~ to remove both buffer and window in one go
    (thanks to Codruț Constantin Gușoi)
  - New key binding ~SPC b H~ to open or select the =*Help*= buffer
    (thanks to duianto)
  - New ~SPC D~ prefix for diff commands using =ediff=:
    - ~SPC D b 3~ Between 3 buffers
    - ~SPC D b b~ Between 2 buffers
    - ~SPC D b p~ With backup file
    - ~SPC D B~   With a patch
    - ~SPC D d 3~ Between 3 directories
    - ~SPC D d d~ Between 2 directories
    - ~SPC D d r~ Using SCM revisions
    - ~SPC D f .~ With Spacemacs dotfile
    - ~SPC D f 3~ Between 3 files
    - ~SPC D f f~ Between 2 files
    - ~SPC D f p~ With a patch
    - ~SPC D f v~ Between file revisions
    - ~SPC D h~ Documentation
    - ~SPC D m b 3~ Buffer 3-way merge
    - ~SPC D m b b~ Buffer 2-way merge
    - ~SPC D m d 3~ Directorie 3-way merge
    - ~SPC D m d d~ Directorie 2-way merge
    - ~SPC D m f 3~ File 3-way merge
    - ~SPC D m f f~ File 2-way merge
    - ~SPC D m r 3~ Revision 3-way merge
    - ~SPC D m r r~ Revision 2-way merge
    - ~SPC D r l~ Between 2 large regions
    - ~SPC D r w~ Between 2 small regions
    - ~SPC D s~ Show registries
    - ~SPC D w l~ Linewise between visible text
    - ~SPC D w w~ Wordwise between visible text
    (thanks to Spenser Truex)
  - New ~SPC K~ prefix and subprefixes to use keyboard macros built-ins:
    - ~SPC K c a~  increment macro counter
    - ~SPC K c c~  insert the current value of the macro counter
    - ~SPC K c C~  set the macro counter
    - ~SPC K c f~  set the display format for the macro counter
    - ~SPC K e b~  assign a key binding to the last macro
    - ~SPC K e e~  edit last macro in a buffer
    - ~SPC K e l~  edit a macro from lossage information
    - ~SPC K e n~  give a name to the last macro
    - ~SPC K e r~  write the last macro to a register (use ~SPC r r~ to call it)
    - ~SPC K e s~  step by step edit of the last macro
    - ~SPC K k~ start recording macro, if already recording then insert counter
    - ~SPC K K~  stop recording macro or run last macro
    - ~SPC K r L~  view head macro in ring
    - ~SPC K r d~  delete head macro in ring
    - ~SPC K r l~  run second macro in ring
    - ~SPC K r n~  cycle to next macro in ring
    - ~SPC K r p~  cycle to previous macro in ring
    - ~SPC K r s~  swap the first two macros in ring
    - ~SPC K v~    view last macro string in minibuffer
    (thanks to Spenser Truex)
  - New ~SPC C-v~ prefix to use rectangle manipulation built-ins:
    - ~SPC C-v !~ clear-rectangle
    - ~SPC C-v c~ close-rectangle
    - ~SPC C-v d~ delete-rectangle
    - ~SPC C-v e~ rectangle-exchange-point-and-mark
    - ~SPC C-v i~ copy-rectangle-to-register
    - ~SPC C-v k~ kill-rectangle
    - ~SPC C-v l~ rectangle-left-char
    - ~SPC C-v m~ rectangle-mark-mode
    - ~SPC C-v n~ rectangle-next-line
    - ~SPC C-v N~ rectangle-number-lines
    - ~SPC C-v o~ open-rectangle
    - ~SPC C-v p~ rectangle-previous-line
    - ~SPC C-v r~ rectangle-right-char
    - ~SPC C-v s~ string-rectangle
    - ~SPC C-v t~ transpose-regions
    - ~SPC C-v y~ yank-rectangle
    (thanks to Spenser Truex)
  - New ~SPC t t~ prefix for timeclock clock-in clock-out management:
    - ~SPC t t c~ timeclock-change
    - ~SPC t t e~ timeclock-workday-elapsed-string
    - ~SPC t t g~ timeclock-workday-remaining-string
    - ~SPC t t i~ timeclock-in
    - ~SPC t t l~ timeclock-when-to-leave-string
    - ~SPC t t m~ timeclock-modeline-display
    - ~SPC t t o~ timeclock-out
    - ~SPC t t r~ timeclock-reread-log
    - ~SPC t t s~ timeclock-status-string
    - ~SPC t t u~ timeclock-update-mode-line
    - ~SPC t t v~ timeclock-visit-timelog
    - ~SPC t t w~ timeclock-when-to-leave-string
    (thanks to Spenser Truex)
  - New ~SPC i b~ keybinding to insert another buffer's contents into the
    current one. (thanks to Spenser Truex)
  - New ~SPC b N~ prefix to create an empty buffer:
    - ~SPC b N h~ create new empty buffer in a new window on the left
    - ~SPC b N j~ create new empty buffer in a new window at the bottom
    - ~SPC b N k~ create new empty buffer in a new window above
    - ~SPC b N l~ create new empty buffer in a new window below
    - ~SPC b N n~ create new empty buffer in current window
    - ~SPC b N f~ create new empty buffer in a new frame
    (thanks to duianto and Jesse Byler)
  - Added ~c~ to create a workspace in the workspaces transient state
    (thanks to duianto)
  - enabled Helm or Ivy (if one of these is enabled) for:
    - ~SPC a d~ (=dired=)
    - ~SPC F f~ (=find-file-other-frame=)
    - ~SPC F b~ (=switch-to-buffer-other-frame=)
    - ~SPC F B~ (=display-buffer-other-frame=)
    - ~SPC F O~ (=dired-other-frame=)
    (thanks to Miciah Masters)
  - New key binding ~SPC f i~ for =insert-file=.
  - New key binidng ~SPC f e I~ to open =early-init.el= file
    (thanks to Sylvain Benner)
  - New ~SPC f e U~ to update packages (thanks to Codruț Constantin Gușoi)
  - New frame manipulation key bindings:
    - Added ~SPC F f~ for =find-file-other-frame=
    - Added ~SPC F d~ for =delete-frame=
    - Added ~SPC F D~ for =delete-other-frames=
    - Added ~SPC F b~ for =switch-to-buffer-other-frame=
    - Added ~SPC F B~ for =display-buffer-other-frame=
    - Added ~SPC F O~ for =dired-other-frame=
    - Added ~SPC F o~ for =other-frame=
    - Added ~SPC F n~ for =make-frame=
    (thanks to Ben Lloyd, duianto and bmag)
  - Added multiple key bindings to copy a file path:
    - ~SPC f y c~ to show and copy current file absolute path with line and
      column number in the minibuffer
    - ~SPC f y d~ to show and copy current directory absolute path in the
      minibuffer
    - ~SPC f y l~ to show and copy current file absolute path with line number
      in the minibuffer
    - ~SPC f y y~ to show and copy current file absolute path in the minibuffer
    - ~SPC f y C~ to show and copy current file path relative to the project
      root with line and column number
    - ~SPC f y D~ to show and copy current directory path relative to the
      project root
    - ~SPC f y L~ to show and copy current file path relative to the project
      root with line number
    - ~SPC f y Y~ to show and copy current file path relative to the project
      root
    - ~SPC f y b~ to show and copy buffer name.
    (thanks to Codruț Constantin Gușoi)
  - New ~SPC f e e~ to open spacemacs.env file (thanks to Sylvain Benner)
  - New ~SPC f e E~ to reload environment variable from env file
    (thanks to Sylvain Benner)
  - New ~SPC f e C-e~ to re-initialize the env file from shell
    (thanks to Sylvain Benner)
  - New ~SPC f A~ to open a file and replace buffer with it
    (thanks to Masayuki Takemura)
  - Added ~SPC f y n~ and ~SPC f y N~ to copy the name of a file
    (thanks to Sylvain Benner)
  - Changed ~SPC h d d~ to ~SPC h d a~ for =helm-apropos=, it's more mnemonic
    (thanks duianto and yuhan0)
  - Added ~SPC h d a~ for =counsel-apropos= (thanks duianto and yuhan0)
  - Added profiling key bindings:
    - ~SPC h P k~ to stop the profiler
    - ~SPC h P r~ to display the profiler report
    - ~SPC h P s~ to start the profiler
    - ~SPC h P w~ to write the profiler report to a file
    (thanks to Codruț Constantin Gușoi)
  - New =spacemacs-completion= key bindings:
    - ~C-S-j~ for =helm-follow-action-forward=
    - ~C-S-k~ for =helm-follow-action-backward=
    (thanks to Diego Berrocal)
  - Overhauled the scroll transient state and moved all scrolling key bindings
    from ~SPC n~ to ~SPC N~ (thanks to Somelauw)
  - Alternative keybinding ~M-0~ to switch to =neotree= / =treemacs= window
    (thanks to Alexander Miller)
  - Fixed ~hjkl~ bindings in =image-mode= and add leader bindings:
    - ~SPC m a a~ calls =image-toggle-animation=
    - ~SPC m a +~ calls =image-increase-speed=
    - ~SPC m a -~ calls =image-decrease-speed=
    - ~SPC m a r~ calls =image-reset-speed=
    - ~SPC m g n~ calls =image-next-file=
    - ~SPC m g N~ calls =image-previous-file=
    - ~SPC m t +~ calls =image-increase-size=
    - ~SPC m t -~ calls =image-decrease-size=
    - ~SPC m t f~ calls =image-mode-fit-frame=
    - ~SPC m t r~ calls =image-transform-reset=
    - ~SPC m t h~ calls =image-transform-fit-to-height=
    - ~SPC m t w~ calls =image-transform-fit-to-width=
    - ~SPC m t s~ calls =image-transform-set-scale=
    - ~SPC m t r~ calls =image-transform-rotation=
    (thanks to Kalle Lindqvist)
  - New ~SPC p e~ to edit =dir-locals.el= (thanks to Dela Anthonio)
  - Move ~SPC q z~ to ~SPC q f~ to kill a frame (thanks to Steven Allen)
  - New =spacemacs-navigation= key bindings:
    - ~SPC q t~ for restarting with =--timed-requires=
    - ~SPC q T~ for restarting with =--adv-timers=
    (thanks to Rich Alesi)
  - Move ~SPC t C p~ to ~SPC t h p~ for =highlight-parentheses-mode=
    (thanks to Thomas de Beauchêne)
  - New ~SPC t m r~ to toggle responsiveness of the mode-line
  - New themes transient state keys to list available themes: ~t~ or ~<up>~
    (thanks to duianto and Muneeb Shaikh)
  - Added ~SPC t z~ to toggle zero-based column indexing in the mode line
  - New key binding and function ~SPC w d~ for =spacemacs/maximize-vertically
    (thanks to Ag Ibragimov)
  - New ~SPC w 1~ to set the window layout to a single column
    (thanks to Alejandro Arrufat)
  - New ~SPC w 4~ to set the window layout to a 2x2 grid
    (thanks to Alejandro Arrufat, Codruț Constantin Gușoi, and bmag).
  - New text align key bindings:
    - ~SPC x a [~ align region at [
    - ~SPC x a ]~ align region at ]
    - ~SPC x a {~ align region at {
    - ~SPC x a }~ align region at }
    (thanks to Thomas de Beauchêne)
  - New text align key binding ~SPC x a %~ to align region at =%=
    (thanks to Gunnar Bastkowski)
  - New transient state for string inflection under ~SPC x i~
    (thanks to Eivind Fonn)
  - New ~SPC x d SPC~ to delete all spaces except one (thanks to Fabian Wilk)
  - New string inflection key bindings:
    - ~SPC x i i~ cycle symbol naming styles
    - ~SPC x i u~ change symbol style to =under_score=
    - ~SPC x i U~ change symbol style to =UP_CASE=
    - ~SPC x i k~ change symbol style to =kebab-case=
    - ~SPC x i c~ change symbol style to =lowerCamelCase=
    - ~SPC x i C~ change symbol style to =UpperCamelCase=
    (thanks to Ric da Silva)
  - Improved UX on link opening key bindings:
    - Added ~SPC x A~ for =link-hint-open-all-links=
    - Added ~SPC x m~ for =link-hint-open-multiple-links=
    - Added ~SPC x Y~ for =link-hint-copy-link=
    - Changed ~SPC x o~ to =link-hint-open-link-at-point=
    - Changed ~SPC x O~ to =link-hint-open-link=
    - Changed ~SPC x y~ to =link-hint-copy-link-at-point=
    (thanks to Codruț Constantin Gușoi)
  - New transpose sentences and transpose paragraphs keybindings
    (thanks to Daniel Gomez):
    - ~SPC x t p~ for =transpose-paragraphs=
    - ~SPC x t s~ for =transpose-sentances=
  - Added missing which-key prefix names =new empty buffer= and =justification=
    (thanks to duianto)
  - New ~SPC x t e~ to transpose sexps (thanks to Guido Kraemer)
  - Added evil key bindings for visualizer and window mode of =undo-tree=
    (thanks to Rich Alesi)
  - New key bindings ~SPC x l r~ and ~SPC x w r~ to randomize lines and words
    in region (thanks to Sylvain Benner)
  - Improved =which-key= readibility by grouping prefixes together and display
    at least 6 lines (thanks to Sylvain Benner)
  - Improved =which-key= replacement regular expressions (thanks to duianto)
  - Added ~SPC o~ which-key prefix name: =user bindings= (thanks to duianto)
  - Added =symbol-overlay= key bindings (thanks to kenkangxgwe):
    - ~SPC s o~ calls =spacemacs/symbol-overlay=
    - ~SPC s O~ calls =symbol-overlay-remove-all=
  - New symbol overlay transient state, ~SPC s o~ on a symbol:
    - ~b~ calls =symbol-overlay-switch-backward=
    - ~c~ calls =symbol-overlay-save-symbol=
    - ~d~ calls =symbol-overlay-jump-to-definition=
    - ~e~ calls =symbol-overlay-echo-mark=
    - ~f~ calls =symbol-overlay-switch-forward=
    - ~n~ calls =symbol-overlay-jump-next=
    - ~N~ calls =symbol-overlay-jump-prev=
    - ~o~ calls =symbol-overlay-put=
    - ~O~ calls =symbol-overlay-remove-all=
    - ~p~ calls =symbol-overlay-jump-prev=
    - ~r~ calls =symbol-overlay-query-replace=
    - ~R~ calls =symbol-overlay-rename=
    - ~s~ calls =symbol-overlay-isearch-literally=
    - ~t~ calls =symbol-overlay-toggle-in-scope=
    - ~z~ calls =recenter-top-bottom=
    - ~q~ exits the transient state
      (thanks to kenkangxgwe)
  - Added =link-hint-copy-link= to ~SPC x y~ (thanks to William Casarin)
  - Added =evil-unimpaired= navigation keys prefixed by ~[~ and ~]~ to the
    Spacemacs home buffer (thanks to Sorawee Porncharoenwase)
  - Added key bindings for indirect buffer functions under ~SPC b N~:
    - ~C-i~ calls =make-indirect-buffer=
    - ~i~ calls =clone-indirect-buffer=
    - ~I~ calls =clone-indirect-buffer-other-window=
  - Added key bindings (thanks to duianto):
    - Evil numbers ~SPC n _~ decrease number at point
      and in the transient state ~j~ and ~k~
    - Font scaling ~SPC z x _~ scale down
    - Frame transparency ~SPC T T _~ decrease transparency
    - Zoom frame ~SPC z f _~ zoom frame out
  - Added ~SPC j U~ for =spacemacs/avy-open-url= (thanks to Dominik Schrempf)
  - Added workspaces transient state key bindings (thanks to duianto):
    - ~SPC l w s~ =spacemacs/single-win-workspace= (exits the TS)
    - ~SPC l w S~ =spacemacs/single-win-workspace=
  - Added ~SPC t C-S-l~ =spacemacs/toggle-visual-line-navigation-globally=
    (thanks to Matt Kramer)
  - Added visual-line-navigation keys (thanks to duianto)
    - ~up~ =evil-previous-visual-line=
    - ~down~ =evil-next-visual-line=
  - Added ~a~ for =ace-window= to window manipulation transient state
    (thanks to fleimgruber)
  - Added =dired= evil search next/prev key bindings (thanks to duianto):
    - With the =vim= editing style in =normal= state:
      - ~n~ =evil-ex-search-next=
      - ~N~ =evil-ex-search-previous=
    - With the =hybrid= editing style in =normal= state:
      - ~n~ =evil-search-next=
      - ~N~ =evil-search-previous=
  - Added ~SPC x d l~ =delete-blank-lines= (thanks to duianto)
  - Added keybindings for Easy PG built in Emacs application
    (thanks to John Stevenson)
  - Added ~SPC c b~ to switch to last compilation buffer
    (thanks to Ivan Yonchovski)
  - Added ~SPC x n~ for multi-line transient state
    (thanks to Tristan Harmer)
  - Added ~s~ =hydra-dired-quick-sort/body= (thanks to duianto)
  - Added ~SPC p E~ for =projectile-find-references= (thanks to Alfonso Montero)
- Improvements:
  - Inhibited golden-ratio mode from interfering with ediff windows
  - Rewrote window layout functions for ~SPC w 1~, ~SPC w 2~, ~SPC w 3~, and
    ~SPC w 4~ (thanks to Codruț Constantin Gușoi):
    - Added =spacemacs-window-split-delete-function= variable, which can be used
      to customize how the window layout functions delete windows.
    - Added =spacemacs-window-split-ignore-prefixes= variable, which can be used
      to customize the default =spacemacs-window-split-delete-function= function.
      By default, this variable specifies treemacs and neotree sidebar windows.
    - Added =spacemacs/window-split-default-delete=, which is the default
      function for =spacemacs-window-split-delete-function=, and which deletes
      windows that do not match the prefixes in
      =spacemacs-window-split-ignore-prefixes=.
    - Allow a prefix argument to ~SPC w 1~, ~SPC w 2~, ~SPC w 3~, and ~SPC w 4~,
      which causes them to delete all windows, ignoring window parameters and
      =spacemacs-window-split-ignore-prefixes=.
  - Fill the current filename as a suggestion of
    =spacemacs/rename-current-buffer-file= (thanks to tddsg)
  - Added support for =helm-swoop-edit= in =helm= transient state
    (thanks to Troy Hinckley)
  - Added prefix argument to =rename-current-buffer-file=. If the prefix
    argument is non-nil then use the directory instead of filename as default
    value when prompting the user (thanks to Eivind Fonn)
  - Added prompt to save modified, user created buffers on quit
    (thanks to Valts Liepiņš)
  - Made it easy to configure =spacemacs-evil-cursors= (thanks to bmag)
  - Made popwin handle =google-translate= buffers (thanks to Kalle Lindqvist)
  - Use =counsel-projectile-switch-project-action= instead of
    =projectile-switch-project-by-name=, to match the additional actions
    available via =counsel-projectile-switch-project= (thanks to Tad Fisher)
  - Use new custom actions mechanism from upstream =counsel-projectile=
    (thanks to Muneeb Shaikh)
  - Added support for directories in =spacemacs/rename-file=
    (thanks to Boris Buliga)
  - Improved messages when deleting a file (thanks to duianto)
  - Replaced =centered-buffer-mode= with =writeroom-mode=
    (thanks to Eugene Yaremenko)
  - Added =ivy= support to buffer transient state (thanks to yuhan0)
  - Enabled =evil-search= search module in evil state.
  - Improved function =spacemacs/sort-lines-by-column= to work on rectangular
    block selection and warn the user about its requirements (thanks to duianto)
  - Smarter default alignment with =spacemacs/align-repeat=
    (thanks to Eric Siegel and Eivind Fonn)
  - Set =case-fold-search= to =nil= in =compilation-finish-function=
    (thanks to Wieland Hoffmann)
  - Hide =evil-mc= single cursor mode-line lighter "emc" (thanks to duianto)
  - Rewrite function =spacemacs/sudo-edit=. Old version worked only for method
    =ssh= and did not work at all if user was not specified (e.g.
    /ssh:hostname:/path). Since the symbol '@' was required in a filename.
    (thanks to dvzubarev)
  - Implemented distraction free mode (thanks to Eugene Yaremenko)
  - Added =helm= to spacemacs default distribution (thanks to Sylvain Benner)
  - Made it possible to define an evil state face without an evil cursor
    (thanks to Alexander Miller)
  - Use =evil-smartparens-mode= when =dotspacemacs-smartparens-strict-mode= is
    enabled (thanks to timor)
  - Set =which-key-idle-secondary-delay= to 0.01 to make which-key update more
    promptly after each key-press following the initial key-press in a sequence
    (thanks to oisincar)
  - Reset initial useful and useless buffers regexp lists to empty lists
    and left this to the user. This prevents surprising behavior for lots of
    users (thanks to Sylvain Benner)
  - Colorized hybrid and inactive states for vim-powerline
    (thanks to Muneeb Shaikh)
  - Switched to HTTPS for org packages repo (thanks to Sylvain Benner)
  - Switched =center-cursor-mode= to melpa source (thanks to Dieter Komendera)
  - Added =Process List= to =popwin:special-display-config= (thanks to simendsjo)
  - Added actions to open =funcs.el= and =layers.el= from layers help
    (thanks to Boris Buliga)
  - Cleanup =which-key= by removing obsolete entries and adding some missing
    ones (thanks to duianto)
  - Added =go-run-args= to pass command line arguments to `go run`
  - Editing: Enable smartparens in eldoc-eval-expression
    (thanks to Aaron Jensen)
  - Check for universal argument before paste (thanks to bet4it)
  - New variable =spacemacs-yank-indent-modes= to enable auto indent in modes
    not derived from =prog-mode= (thanks to bet4it)
  - Remap ~M-SPC~ and ~SPC-x-d-SPC~ to =cycle-spacing= (thanks to bb2020)
  - Added ~j~ and ~k~ to transient states (thanks to Ag Ibragimov):
    - Font Scaling
    - Frame Transparency
    - Zoom Frame
  - Added key bindings to the zoom frame transient state:
    - ~m~ for toggle maximize
    - ~f~ for toggle fullscreen
    (thanks to Ag Ibragimov)
  - Updated Scrolling Transient State (thanks to duianto)
  - Removed new layout confirmation question (thanks to duianto)
  - Revealed already bound Helm Transient State navigation keys:
    - ~g~ go to first candidate
    - ~G~ go to last candidate
    (thanks to duianto)
  - Added support for visual line numbers (thanks to jcaw)
  - Updated evil-numbers transient state to run foreign keys
    (thanks to Jake Romer)
  - Added a =tutorials= section to ~SPC h T~ (thanks to duianto):
    - ~SPC h T e~ for =emacs-tutorial= (aliased from =help-with-tutorial=)
    - ~SPC h T v~ for =evil-tutor-start=
  - Improved Window Manipulation Transient state (thanks to yuhan0)
  - Added a =spacemacs-layouts-restricted-functions= variable to restrict
    functions to the current layouts buffers
    Default: '(spacemacs/window-split-double-columns
               spacemacs/window-split-triple-columns
               spacemacs/window-split-grid)
    (thanks to Thanh Vuong)
  - Updated the =spacemacs-layouts= layers readme to describe the variables:
    - =spacemacs-layouts-restricted-functions=
    - =spacemacs-layouts-restrict-spc-tab=
    - =persp-autokill-buffer-on-remove=
    (thanks to John Stevenson)
  - Updated =spacemacs-layouts= layers readme to include keybinding
    (thanks to John Stevenson)
  - Added a link to =spacemacs|create-align-repeat-x= in the docstring for
     =align-repeat-= commands (thanks to Troy Pracy)
  - Improved TS formatting: workspaces & layouts (thanks to duianto)
  - Added more persistant =helm= actions ~C-z~ to switch layout ~SPC p l~
    - Switch to Project Perspective and Show Recent Files
    - Switch to Project Perspective and Search
    (thanks to Gia Thanh Vuong)
  - Added persistant =helm= actions for ~SPC h p~ to recompile emacs package
    (thanks to thanhvg)
  - Enabled =doom= mode-line theme to respect
    =dotspacemacs-display-default-layout= (thanks to Jake Romer)
  - Hide =spacemacs//= command prefixes in which-key (thanks to duianto)
  - Prevented removal of =eldoc= info when switching to insert state
    (thanks to Ivan Yonchovski)
  - Added a toggleable hint for the Scrolling Transient State (~SPC N~)
    (thanks to Andriy Kmit)
  - Improved google-translate for set source language to "auto" and
    select target language interactively (thanks to Lin Sun)
  - Allowed users to specify layout local variables (thanks to CeleritasCelery, fauxsoup)
  - Refactor +layers/+tools packages to use prefix ~at~
    migrating most key bindings to lower cases and
    expanding room for further aliases (thanks to John Stevenson)
  - Refactor layers/+chat|email|fun|readers|web-services packages to use
    relative key binding, migrating most key bindings to lower cases and
    expanding room for further aliases (thanks to John Stevenson)
  - Added a =org-enable-valign= variable to make =valign-mode= opt-out
    in org-mode-hook (thanks to Claude Ray)
- Fixed:
  - Fixed ~h~ key binding in compilation and grep buffers
    (thanks to Sylvain Benner)
  - Disabled the paste transient state when using multiple cursors
    (thanks to Koray AL)
  - Fixed ~.~ repeat operator with the unimpaired keybindings ~[ q~ and ~] q~ to
    jump to flycheck errors in the current buffer.
    (thanks to Robbert van der Helm)
  - Fixed colorization of compilation buffer (thanks to Abdó Roig-Maranges)
  - Fixed placement of created new empty buffer (thanks to bmag)
  - Fixed renaming of a buffer without a visited file (thanks to duianto)
  - Fixed frame cycling in =evil-unimpaired= (thanks to Vladimir Kochnev)
  - Fixed frame killer logic with persistent server (thanks to Rich Alesi)
  - Fixed terminal RET and TAB in layouts/workspaces transient state
    (thanks to Don March)
  - Fixed overriding =sp-show-pair-delay= (thanks to Eivind Fonn)
  - Fixed margin scaling ignoring window (thanks to Eivind Fonn)
  - Fixed avy dependency in =spacemacs/ace-buffer-links=
    (thanks to Jonas Strømsodd)
  - Fixed =evil-paste-pop= (thanks to Nicholas Ochiel)
  - Fixed search direction in =spacemacs/integrate-evil-search=
    (thanks to Thanh Vuong)
  - Fixed left/right bindings in =undo-tree= (thanks to Eivind Fonn)
  - Replaced obsolete =which-key= functions (thanks to duianto)
  - Fixed =default= theme loading (thanks to Eivind Fonn)
  - Fixed scrollbar still active when disabled (thanks to Valts Liepiņš)
  - Fixed the =linum= text scaling advice (thanks to Codruț Constantin Gușoi)
  - Removed obsolete =purpose-conf= name argument (thanks to duianto)
  - Don't show warning on layout key clashes (thanks to Boris Buliga)
  - Fixed ~SPC w =~ for balancing windows (thanks to Sylvain Benner)
  - Fixed typos related to =persp-mode= (thanks to Ruslan Kamashev)
  - Fixed moving cursor in previous buffers when switching to home buffer
    (thanks to duianto)
  - Fixed =pupo-mode= loading for =spacemacs-purpose-popwin=
    (thanks to Muneeb Shaikh)
  - Fixed =undo-tree= buffer name in =spacemacs-visual= (thanks to Winkey Wong)
  - Fixed renamed =helm= split window variable (thanks to duianto)
  - Fixed =neotree= and =treemacs= window number allocation
    (thanks to Sylvain Benner)
  - Fixed handling of Windows paths of package archives (thanks to Igor Avdeev)
  - Fixed using =eyebrowse= without =persp-mode= (thanks to Steven Allen)
  - Fixed misaligned =evil-mc= cursors on macOS and Windows
    (thanks to Benjamin Reynolds)
  - Fixed regression to allow new project perspectives (thanks to Bruno Tavares)
  - Compute =spacemacs-modeline= height only after display init
    (thanks to Benno Fünfstück)
  - Fixed vertical and horizontal in window manipulation transient state
    (thanks to Jesse Byler)
  - Changed initialization of =recentf-exclude= to use
    =recentf-expand-file-name= in order to respect =recentf-filename-handlers=
    (thanks to bet4it)
  - Removed buggy =find-file-hook--open-junk-file= (thanks to Sylvain Benner)
  - Fixed copy-paste error in =lazy-load= hook name (thanks to bmag)
  - Fixed errors when restoring a perspective (thanks to Codruț Constantin Gușoi)
  - Fixed activation of line number in =text-mode= and =prog-mode= while the
    user disabled it (thanks to bmag)
  - Fixed issue with =spacemacs/smart-closing-parenthesis= sometimes adding an
    extra closing parenthesis (thanks to Miciah Masters)
  - Fixed updating buffer names in window configurations
    (thanks to Miciah Dashiel Butler Masters)
  - Made =spacemacs/counsel-search= with proper highlighting
    (thanks to Ting Zhou)
  - Removed compilation finish hook as it was surprising and annoying for lots
    of users (thanks to Miciah Masters)
  - Fixed global toggles for =aggressive-indent= and =smartparens=
    (thanks to Matt Kramer)
  - Fixed loading of outdated compiled files (thanks to Boris Buliga)
  - Fixed =helm= loading for layouts transient state
    (thanks to Thomas de Beauchêne)
  - Added support for =info-find-file= in emacs 27 by adding third argument
    (thanks to Richard Kim)
  - Fixed =:noh= ex-command to correctly clear search highlights initiated with
    both ~/~ and ~C-s~ (thanks to duianto)
  - Force =separator-scale= to be 1 when the =utf-8= separator is used
    (thanks to Sylvain Benner)
  - Fixed =find-ert-test-buffer= that moves point (thanks to Alexander-Miller)
  - Disabled popwin-mode at startup (thanks to bmag)
  - Fixed spaceline colors on emacs-mac port (thanks to Paweł Siudak)
  - Fixed a bug where setting =dotspacemacs-line-numbers= to =t=, =relative=,
    or a property list with =:enabled-for-modes= omitted or set to =nil= enabled
    line numbers in every buffer instead of only in buffers that derived from
    =prog-mode= and =text-mode= (thanks to bmag)
  - Fixed bug with =evil-pasted= text object (thanks to Troy Hinckley)
  - Fixed =golden-ratio= to correctly update after ~[ w~ and ~] w~
    (thanks to duianto)
  - Fixed =projectile-switch-project-action= (thanks to John Soo)
  - Fixed =evil-escape= lighter being shown in the mode line
    (thanks to Sylvain Benner)
  - Fixed ~TAB~ to toggle occurrences in iedit state in Vim and Hybrid editing
    styles (thanks to Sylvain Benner)
  - Fixed the projectile global mode function call (thanks to Karol Wójcik)
  - Fixed handling of keymap property when the value is a symbol instead of a
    keymap (thanks to Rudi Grinberg)
  - Fixed value of =persp-add-buffer-on-after-change-major-mode= to add free
    buffers to current layout (thanks to Miciah Masters)
  - Keep previous position on =toggle-maximize-buffer= (thanks to Ag Ibragimov)
  - Deactivate =evil-escape= in =holy-mode= (thanks to Maximilian Wolff)
  - Removed obsolete =purpose-conf= argument for good
    (thanks to Codruț Constantin Gușoi)
  - Stopped configuring =fci-rule-color=, which was overriding themes that
    configured it (thanks to Victor Cuadrado Juan)
  - Added ranger-mode to golden-ratio-exclude-modes (thanks to Langston Barrett)
  - Fixed evil surround bindings (thanks to Hoyon Mak)
  - Exclude which-key from layer sync powerline restore (thanks to Doug Wilson)
  - Fixed =doom-modeline= in the messages buffer (thanks to duianto)
  - Fixed void function error when =recentf-save-list= is undefined
    (thanks to Compro-Prasad)
  - Fixed =global-hl-todo-mode= prevents activation in =org=
    (thanks to Sam Pillsworth)
  - Made =spacemacs-theme= variables user customizable from =user-init=
    - =spacemacs-theme-keyword-italic=
    - =spacemacs-theme-comment-bg=
    - =spacemacs-theme-org-height=
      (thanks to Dominik Schrempf)
  - Key bindings (thanks to bb2020)
    - ~SPC j (~ to =check-parens=
    - ~SPC j c~ to =goto-last-change=
  - Excluded =fundamental-mode= from =spacemacs/check-large-file=
    (thanks to Alexander Miller)
  - Excluded =tags-table-mode= from =spacemacs/check-large-file=
    (thanks to Hong Xu)
  - Fixed copied dir/path not shown in minibuffer when =select-enable-clipboard=
    is =nil= (thanks to duianto)
  - Used return value from advised function in =spacemacs//yank-indent-region=
    (thanks to Brandon T. Willard)
  - Fixed canceling =spacemacs/ace-buffer-links= (thanks to duianto)
  - Required =ivy= to load =counsel-projectile= (thanks to Thanh Vuong)
  - Remove obsolete custom location for =counsel-css= (thanks to Richard Kim)
  - Make =search-engine= layer support custom keywords for =engine-mode=
    (thanks to Maximilian Wolff)
  - Fixed =search-engine= layer customization issue (thanks to Haisheng Wu)
  - Replaced deprecated =avy--generic-jump= with =avy-jump=
    (thanks to Dominik Schrempf)
  - Switch recreated messages buffer to =evil-normal-state= (thanks to duianto)
  - Fixed =spacemacs/layouts-ts-close-other= with =ivy= (thanks to duianto)
  - Fixed =spacemacs/rename-current-buffer-file=, separate messages for
    move & rename, just move and just rename (thanks to duianto)
  - Fixed =spacemacs/rename-current-buffer-file= handle same new and old name
    (thanks to duianto)
  - Fixed sudo-edit on TRAMP (thanks to Carlos Ibáñez)
  - Replaced obsolete function =doom-modeline-init= with =doom-modeline-mode=
    (thanks to duianto)
  - Fixed searching in the =helm-find-file= actions (thanks to duianto)
  - Fixed =evilified-state=, mapped ~C-w~ to =evil-window-map=
    (thanks to Muneeb Shaikh)
  - Fixed ~SPC h f~ =helm-spacemacs-help-faq= (thanks to duianto)
  - Fixed =cl= package deprecated =letf= (thanks to duianto)
  - Fixed origami bindings in normal mode (thanks to Tomasz Kowal)
  - Handled buffer move/select/swap to last window nr +1 (thanks to duianto)
  - Set =evil-undo-system= to =undo-tree= (thanks to duianto)
  - Checked that =evil-undo-system= exists before it's called (thanks to khjcph)
  - Fixed ~SPC w TAB~ golden-ratio resizing.
*** Layer changes and fixes
**** Agda
- Fixes
  - Fixed auto bind breaking after Agda 2.6.0 api changes
  - Retained indentation on paste (thanks to Georgy Lukyanov)
**** Alda
- Key bindings:
  - ~SPC m b~ Play the entire buffer
  - ~SPC m c~ Play block (paragraph on point)
  - ~SPC m n~ Plays the current line
  - ~SPC m r~ Play region (selected text)
    (thanks to Andrew Hill (AstroEngiSci))
**** Ansible
- Improvements:
  - Added support for multiple vault password files, see the layer =README.org=
    (thanks to Sylvain Benner)
  - Simplified filename matching re (thanks to Anatoli Babenia)
  - Added additional YAML paths and refactored =spacemacs--ansible-filename-re=
    (thanks to Brett Campbell)
- Fixes:
  - Fixed ansible-doc-mode error on ~SPC h d k~
    (thanks to Codruț Constantin Gușoi)
  - Fixed =error void function ansible: auto-decrypt-encrypt=
    (thanks to Sylvain Benner)
  - Matched upstream Emacs coding convention names (thanks to Ayush Goyal)
  - Fixed void-variable =company-backends= (thanks to duianto)
**** Asm
- Improvements:
  - Added support for =company= package declaration (thanks to Kalle Lindqvist)
  - Added jump handlers for =nasm-mode= (thanks to Benjamin Levy)
**** Auto-completion
- New packages:
  - Added =yasnippet-snippets= package (thanks to Jack Kamm)
  - Added =ivy-yasnippet= (thanks to Kalle Lindqvist)
  - Added =company-box= (thanks to Tianyao Chou)
  - Added =company-posframe= (thanks to Thanh Vuong)
- Improvements:
  - Added =autocomplete-idle-delay= layer variable, which Spacemacs uses to set
    =company-idle-delay= or =ac-delay= (thanks to Benjamin Hipple)
  - Prefer =.spacemacs.d/snippets= over =.emacs.d/private/snippets=
    (thanks to Aaron Jensen)
  - Use =counsel-company= to show completion candidates
    (thanks to Kalle Lindqvist)
  - Added =company-semantic= as a default company backend (thanks to bet4it)
  - Don't install =company-statistics= unless necessary (thanks to Tianshu Wang)
- Fixes:
  - Check if =dotspacemacs-directory-snippets-dir= exists before adding it
    (thanks to Wojciech Wojtyniak)
  - Fixed check for =dotspacemacs-directory-snippets-dir=
    (thanks to Sylvain Benner)
  - Fixed =spacemacs/swiper-all-region-or-symbol= function
    (thanks to Ayush Goyal)
  - Fixed backends when =auto-completion-enable-snippets-in-popup= is nil
    (thanks to Sylvain Benner)
  - Removed the assumption that ~C-k~ was bound to =evil-insert-digraph= after
    closing/finishing a company completion (thanks to lovrolu)
  - Make ~C-j~ and ~C-k~ work when searching/filtering =company= results if in
    `vim` mode or `hybrid` mode with `hybrid-style-enable-hjkl-bindings` set to
    `t` (thanks to dankessler)
- Key bindings:
  - Removed ~C-f~ because it interfered with the default key binding for
    =forward-char= (thanks to scturtle and duianto)
  - Fixed ~C-k~ in company with tooltip (thanks to duianto)
**** Autohotkey
- Key bindings:
  - Added names to autohotkey mode prefixes (thanks to Ying Qu)
**** BibTeX
- Key bindings:
  - Replaced =org-ref-helm-insert-cite-link= with =org-ref-insert-link=
    (thanks to Tianshu Wang)
  - Add [[https://joostkremers.github.io/ebib/ebib-manual.html][ebib]] support (thanks to Daniel Nicolai)
**** C-C++
- Breaking changes:
  - Moved =cmake-ide= and cmake script support to separate =cmake= layer
    (thanks to Alexander Dalshov)
- New packages:
  - =cpp-auto-include= Insert and delete C++ header files automatically:
    - Added variable: =c-c++-enable-organize-includes-on-save=
    - Added key binding: ~SPC m r i~ organize includes
    (thanks to Seong Yong-ju)
- Improvements:
  - Added =lsp= support using either =clangd= or =ccls= backends
    (thanks to Cormac Cannon, Sergey Litovchuk, Fangrui Song and David Vo)
  - Fixed =lsp= support for =ccls= server (thanks to Alexander Dalshov)
  - Added automatic formatting on save using ClangFormat with the variables
    =c-c++-enable-clang-format-on-save= (thanks to Robbert van der Helm)
  - Made =c-c++-enable-clang-format-on-save= work the first time a c++ file
    is opened (thanks to AJ Bond)
  - Added possible value =no-completion= to =c-c++-enable-rtags-support= flag.
    This adds the option to opt-out of =company-rtags= while enabling Rtags.
  - Added option to use =google-c-style= with the variable
    =c-c++-enable-google-style=, and install the =google-make-newline-indent=
    hook with the variable =c-c++-enable-google-newline= (thanks to Evan Klitzke)
  - Refactor to reduce duplication (thanks to Dela Anthonio)
  - Improved auto-completion for header includes (thanks to Fredrik Bergstrand)
  - Added option to use =google-c-style= (thanks to Evan Klitzke and Richard Kim)
  - Added possible value =no-completion= to =c-c++-enable-rtags-support= flag
    (thanks to Farva)
  - Control auto-newline using the =c-c++-enable-auto-newline= variable
    (thanks to Fangrui Song and Codruț Constantin Gușoi)
  - Added =org-babel= support (thanks to Michael Rohleder)
  - Added debugger integration via =dap= layer
  - Added detecting ".ccls" for ccls powered projects
  - Fixed the =c-c++-default-mode-for-headers= should not affect the default
    behavior that opening a .h file will turn C or C++ mode depending on
    language used in Emacs > 26.1+ (thanks to Lin Sun)
  - Added =Doxygen= doc comment generation using =gendoxy= (thanks to Cormac Cannon)
- Key bindings:
  - ~SPC m = =~ clang-format current region or buffer (thanks to Dela Anthonio)
  - ~SPC m = f~ clang-format current function (thanks to Dela Anthonio)
  - Declare =mg= prefix as =goto= (thanks to Dela Anthonio)
  - Support =rtags=, available under ~SPC m g~ prefix
    (thanks to Alexander Dalshov and Sylvain Benner)
  - =Doxygen=/=gendoxy= keybindings under ~SPC m i~ prefix
- Fixes:
  - Fixed a typo by moving one closing parenthesis :-) (thanks to Richard Kim)
  - Fixed clang format on save (thanks to Dela Anthonio and Silver Chan)
  - Installation of =gtags= layer conditional on =c-c++-enable-rtags-support=
    flag (thanks to Sylvain Benner)
  - Only activate =rtags= keybindings when =rtags-mode= is active
    (thanks to lixinchin)
  - Fixed =google-set-c-style= functions being added regardless of configuration
    (thanks to Martin Øinæs Myrseth)
  - Updated ~SPC m g y~ binding to reflect upstream renaming of commands
    (thanks to Miciah Masters)
  - Fixed issue with =c++-enable-clang-format-on-save= not taking effect when set
    (thanks to Silver Chan)
**** Cfengine
- New packages:
  - Added =ob-cfengine3= (thanks to Nick Anderson)
  - Added =mustache-mode=
- Improvements:
  - Configure =org-babel= for =cfengine= source blocks
   (thanks to Sylvain Benner)
- Fixes:
  - Fixed flycheck initialization for syntax checking (thanks to Nick Anderson)
  - Fixed opening org file when cfengine and org layers enabled
    (thanks to Nick Anderson)
**** Chinese
- New packages:
  - Added package =chinese-conv= for conversion between simplified and
    traditional Chinese texts (Xiang Ji)
- Improvements:
  - Added variable =chinese-fcitx-use-dbus=, and fixed the misinformation about
    dbus in README.org (thanks to AmaiKinono)
  - Added =fcitx5= support (thanks to wgjak47)
- Fixes:
  - Make =fcitx.el= work by default (thanks to AmaiKinono)
  - Evilify the pyim-dict-manager-mode-map after the pyim-dict-manager-mode be
    loaded (thanks to Lin Sun)
**** Chrome
- Key bindings:
  - Added =markdown= key bindings to gmail message mode
    (thanks to Christoph Paulik)
**** Clojure
- New packages:
  - Added =sayid= debugger (thanks to Daniel Manila and Arne Brasseur)
  - Added =flycheck-clojure= linters (thanks to Eugene Yaremenko)
  - Added =clj-kondo= to Clojure linters (thanks to Luo Tian and John Stevenson)
  - Added =flycheck-joker= to Clojure linters (thanks to didibus)
  - Added =kaocha-runner= to Clojure linters (thanks to practicalli-john)
- Improvements:
  - Stored cider REPL history in spacemacs cache (thanks to Ryan Fowler)
  - Removed backtick from smartparens pairs for Clojure
    (thanks to Erwin Kroon and Eivind Fonn)
  - Improved =jump-to-definition= for Clojure modes (thanks to Ag Ibragimov)
  - Enabled safe structural editing for =.cljs=, =.cljx=, and =.cljc= files
    (thanks to Dieter Komendera)
  - Enabled command history navigation in the cider REPL in an insert mode
    (thanks to Wojciech Wojtyniak)
  - Made =clj-refactor= off by default (thanks to Arne Brasseur)
  - Enabled =clojure-mode= refactorings without =clj-refactor= (thanks to yuhan0)
  - Allowed to send input to the REPL via ~RET~ in normal mode
    (thanks to Dieter Komendera)
  - Improved spacemacs-jump-handlers (thanks to Ag Ibragimov)
  - Autoscroll to end of REPL when sending buffer content
    (thanks to Vitaly Banchenko)
  - Added ability to use multiple linters together (thanks to didibus)
  - Added `spacemacs/cider-eval-sexp-end-of-line` to match lisp functionality
    (thanks to John Stevenson)
  - Added `spacemacs/cider-find-and-clear-repl-buffer` which allows you to find
    and clear the associated cider repl buffer (thanks to didibus)
- Key bindings:
  - ~SPC m e ;~ to eval sexp and show result as comment
    (thanks to John Stevenson)
  - Added ~SPC m g n~ to run =cider-find-ns=
  - Added key bindings for profiling and spec browsing:
    - ~SPC m g s~ to browse spec
    - ~SPC m g S~ to browse all specs
    - ~SPC m p +~ to display or set current max-sample-count
    - ~SPC m p c~ to clear profile
    - ~SPC m p n~ to toggle namespace profiling
    - ~SPC m p s~ to get profile summary for variable under point
    - ~SPC m p S~ to get summary of all currently collected profile data
    - ~SPC m p t~ to toggle variable profiling
    - ~SPC m p v~ to display or set profiling status of variable
    (thanks to Luo Tian)
  - ~SPC m e P~ to pprint eval last sexp (thanks to Tim Jäger)
  - ~SPC m h c~ for =clojure-cheatsheet= to Clojure documentation.
    (thanks to Michael van der Nest)
  - Moved =cider-browse-ns-all= to ~SPC m h N~
  - ~SPC m r c :~ to toggle between a keyword and a string
    (thanks to John Stevenson)
  - ~SPC m s X~ to restart the REPL (thanks to James Conroy-Finn)
  - ~SPC m e u~ undefine symbol in the current namespace
    (thanks to John Stevenson)
  - ~SPC m e i~ interrupt the current evaluation (stop long running process)
    (thanks to John Stevenson)
  - ~SPC m e v~ to evaluate s-expression at point (=cider-eval-sexp-at-point=)
  - ~SPC m s u~  require Clojure utils into current namespace
    i.e. functions =doc= =source= (thanks to John Stevenson)
  - ~SPC m s j c~ updated to call =cider-jack-in-clj= rather than old alias
    =cider-jack-in= (thanks to John Stevenson)
  - ~SPC m s j f~ new keybinding to call =cider-jack-in-clj&cjls=
    (thanks to John Stevenson)
  - ~SPC m s j s~ updated to call =cider-jack-in-cljs= rather than old alias
    =cider-jack-in-clojurescript= which is deprecated
  - ~SPC m g g~ changed to =spacemacs/clj-find-var=, a wrapper for
    =cider-find-var= if REPL running, otherwise =dumb-jump-go=
    (thanks to John Stevenson)
  - Restored standard ~SPC m s i~ binding for =cider-jack-in-clj=
    (thanks to Russell Mull)
  - ~SPC m h d~ new keybinding for =cider-clojuredocs= (thanks to Sam Hedin)
  - Removed ~SPC m h g~ for =grimoire= as it is deprecated (thanks to Sam Hedin)
  - ~C-return~ to =cider-repl-newline-and-indent= in REPL evil insert state
    (thanks to Gia Thanh Vuong)
  - Changed clear repl buffer of evaluation to match terminal clear key
    ~SPC s s l~ 'cider-find-and-clear-repl-buffer
    ~SPC s s L~ 'cider-find-and-clear-repl-output
    (thanks to John Stevenson)
  - Added sesman session management keybindings to ~SPC m m~
    ~SPC m m b~ 'sesman-browser
    ~SPC m m i~ 'sesman-info
    ~SPC m m g~ 'sesman-goto
    ~SPC m m l b~ 'sesman-link-buffer
    ~SPC m m l d~ 'sesman-link-directory
    ~SPC m m l p~ 'sesman-link-project
    ~SPC m m l u~ 'sesman-unlink
    ~SPC m m q q~ 'sesman-quit
    ~SPC m m q r~ 'sesman-restart
    ~SPC m m s~ 'sesman-start
    ~SPC m m S j~ 'cider-connect-sibling-clj
    ~SPC m m S s~ 'cider-connect-sibling-cljs
    (thanks to John Stevenson)
  - Updated repl shortcut to use sesman-start wrapper, selecting any repl type
    ~SPC m '~ 'sesman-start
  - Changed toggle between source and repl to match key for toggle between code
    and test
    ~SPC m s a~ (if (eq m 'cider-repl-mode)
                     'cider-switch-to-last-clojure-buffer
                   'cider-switch-to-repl-buffer)
    (thanks to John Stevenson)
  - Added formatting command not previously included
    ~SPC m = =~ 'cider-format-buffer
    ~SPC m = e b~ 'cider-format-edn-last-sexp
    ~SPC m = e e~ 'cider-format-edn-last-sexp
    ~SPC m = e r~ 'cider-format-edn-region
    ~SPC m = f~ 'cider-format-defun
    ~SPC m = l ~ 'cider-format-region
    ~SPC m = r~ 'cider-format-region
    (thanks to John Stevenson)
  - Added evaluation keybinding - evaluate up to point
    ~SPC m e V~ 'cider-eval-sexp-up-to-point
    (thanks to John Stevenson)
  - Added evaluation keybinding - go to end of line and evaluate sexp
    ~SPC m e $~ 'spacemacs/cider-eval-sexp-end-of-line
    ~SPC m e l~ 'spacemacs/cider-eval-sexp-end-of-line
  - Added browse-spec keybindings
    ~SPC m h s~ 'cider-browse-spec
    ~SPC m h S~ 'cider-browse-spec-all
  - Added evaluation keybinding - pretty print // as comment
    ~SPC m e p ;~ 'cider-pprint-eval-defun-to-comment
    ~SPC m e p :~ 'cider-pprint-eval-last-sexp-to-comment
    ~SPC m e p f~ 'cider-pprint-eval-defun-at-point
    ~SPC m e p e~ 'cider-pprint-eval-last-sexp
    (thanks to John Stevenson)
  - Changed evaluation keybinding - cider-clojure-interaction-mode
    ~SPC m e p l~ 'cider-eval-print-last-sexp
  - Add refactor namespace key bindings
    ~ran~ 'clojure-insert-ns-form
    ~raN~ 'clojure-insert-ns-form-at-point
    ~rsn~ 'clojure-sort-ns
    (thanks to John Stevenson)
  - Add key binding for new function cider-eval-list-around-point
    added in CIDER 0.26
    ~SPC m e (~ 'cider-eval-list-at-point
    (thanks to John Stevenson)
  - Add key binding for existing cider-inspect functions
    ~SPC m v e~ 'cider-inspect-last-sexp
    ~SPC m v f~ 'cider-inspect-defun-at-point
    ~SPC m v i~ 'cider-inspect
    ~SPC m v l~ 'cider-inspect-last-result
    ~SPC m v v~ 'cider-inspect-expr
    (thanks to John Stevenson)
  - Add key bindings for existing cider namespace functions
    ~SPC m e n a~ 'cider-ns-reload-all
    ~SPC m e n n~ 'cider-eval-ns-form
    ~SPC m e n r~ 'cider-ns-refresh
    ~SPC m e n l~ 'cider-ns-reload
    (thanks to John Stevenson)
- Fixes:
  - Removed =cider.nrepl/cider-middleware= in lein quick start setting
  - Fixed =cider-inspector-prev-page= binding, also add ~p~ as another key
    binding (thanks to Brian Fay)
  - Fixed Clojure layer =cider-repl-mode= key bindings (thanks to Corey Ling)
  - Compatibility fix for CIDER 0.9.0 (thanks to nijohando)
  - Fixed function usage in clojure layer according to cider changes
    (thanks to André Stylianos Ramos)
  - Fixed regression for pinned =cider= (thanks to André Stylianos Ramos)
  - Fixed issue with =clojure-enable-fancify-symbols= causing "invalid face
    reference" error messages (thanks to Miciah Masters)
  - Updated obsolete =cider-refresh= alias to =cider-ns-refresh=
    (thanks to André Peric Tavares)
  - Removed =clojure-cheatsheet= as it is part of cider now
    (thanks to Eugene Yaremenko)
  - Updated doc for Cider manual quick start -=cider-connect=. Leiningen
    version 2.9 and Boot versions 2.8.2, =cider-nrepl= version 0.21.1
    (thanks to John Stevenson)
  - Call interactive =cider-test-*= functions interactively
    (thanks to Timo Freiberg)
  - Changed =run-all-tests= alias to =run-project-tests=
    (thanks to Timo Freiberg)
  - Fixed post-init of parinfer in the clojure layer (thanks to Martin Račák)
  - Fixed jumping backwards after =cider-find-var= (thanks to Dieter Komendera)
**** Coffeescript
- Improvements:
  - Added basic autocompletion (thanks to Codruț Constantin Gușoi)
- Key bindings:
  - Added a couple of key bindings (thanks to Kalle Lindqvist):
    - Added ~SPC m '~ for =coffee-repl=
    - Added ~SPC m c c~ for =coffee-compile-buffer=
    - Added ~SPC m c r~ for =coffee-compile-region=
    - Added ~SPC m s b~ for =coffee-send-buffer=
    - Added ~SPC m s i~ for =coffee-repl=
    - Added ~SPC m s l~ for =coffee-send-line=
    - Added ~SPC m s r~ for =coffee-send-region=
    - Added ~SPC m T c~ for =coffee-cos-mode=
**** Common Lisp
- Improvements:
  - Added eval-thing-at-point functions to Common Lisp Layer
    (thanks to Lukas Woell)
  - Make rainbow-identifiers not colorize special operators and macros, so they
    always visually stand out. (thanks to Andriy Kmit)
- New packages:
  - Added =slime-asdf= to =slime-contribs= to enabled some slime commands like
    =,load-system= (thanks to Daniel Schoepe)
- Key bindings:
  - ~SPC m e l~ to evaluate current line (thanks to Boris Avdeev)
- Fixes:
  - Fixed ~SPC m e~ key bindings to behave like in Emacs Lisp
    (thanks to Boris Avdeev)
  - Fixed initialization of =counsel-gtags= (thanks to Sylvain Benner)
**** Coq
- Key bindings:
  - ~SPC m T e~ Toggle electric terminator (thanks to Ignat Insarov)
**** Cscope
- Key bindings:
  - Fixed key binding ~g C~ (thanks to dubnde)
  - New ~SPC m g =~ to find assignments to a symbol (thanks to dubnde)
- Make pycscope binary configurable (thanks to Gonéri Le Bouder)
**** CSharp
- Improvements:
  - Enabled =flycheck= by default (thanks to Saulius Menkevičius)
  - No need to unset =omnisharp-auto-complete-want-documentation= anymore
   (thanks to Saulius Menkevičius)
  - Add support for lsp server (thanks to Saulius Menkevičius)
  - Added ~SPC m t~ which key prefix: =csharp/tests= (thanks to duianto)
  - Hide mode-line indicator: =omnisharp= (thanks to duianto)
- Key bindings:
  - New key binding =SPC m g e= for =omnisharp-solution-errors=
    (thanks to Saulius Menkevičius)
  - New key bindings (thanks to Alistair Bush):
    - ~SPC m t b~ for =omnisharp-unit-test-buffer=
    - ~SPC m u~ for =omnisharp-auto-complete-overrides=
    - ~SPC m i~ for =omnisharp-fix-usings=
  - Added unit test bindings (thanks to Saulius Menkevičius):
    - ~SPC m t l~ for =omnisharp-unit-test-last=
    - ~SPC m t t~ for =omnisharp-unit-test-at-point=
- Fixes:
  - Disabled functions not present in the latest =omnisharp= package
    (thanks to Saulius Menkevičius)
**** CSV
- Key bindings:
  - ~SPC m h~ to =csv-header-line= (thanks to Francesc Elies Henar)
  - All key bindings also implemented in tsv-mode (thanks to Aaron Zeng)
**** D
- Fixes:
  - Fixed =d-mode= flycheck imports on dub projects (thanks to Dietrich Daroch)
**** Dart
- Improvements:
  - Added =LSP= support (thanks to Mathieu Post and Takeshi Tsukamoto)
  - Added =Flutter= support (thanks to Mathieu Post)
- Fixes:
  - Added =dart-server= package (thanks to duianto)
  - Updated layer variables:
    - From: =dart-sdk-path= To: =dart-server-sdk-path=
    - From: =dart-enable-analysis-server=
      To:   =dart-server-enable-analysis-server=
    - From: =dart-format-on-save= To: =dart-server-format-on-save=
      (thanks to duianto)
**** Dash
- Improvements:
  - Use default docsets path in =helm-dash= on macos (thanks to ColorFuzzy)
  - Added config option =dash-autoload-common-docsets= to toggle init behavior
- Fixes:
  - Fixed startup error when using counsel-dash with custom path in
    =helm-dash-docset-newpath= (thanks to madand)
  - Update dash layer to reflect dash-docs merge (thanks to Bryan Gilbert)
**** Deft
- Key bindings:
  - ~SPC m c~ clear deft filter (thanks to Bahtiar Gadimov)
  - ~SPC m N~ create new file named (thanks to Bahtiar Gadimov)
  - ~SPC m o~ deft open file in other window (thanks to Bahtiar Gadimov)
  - ~SPC m q~ for quitting the deft window (thanks to tinysong)
  - ~SPC m r~ rename selected note (thanks to Bahtiar Gadimov)
  - When zetteldeft is enabled, ~SPC a n~ is moved to ~SPC a n n~
- Added zetteldeft support
**** Django
- Key bindings:
  - Added names to django mode prefixes (thanks to Boris Verhovsky)
**** Docker
- Kill buffer shall return to *docker-containers* (thanks to Francesc Elies)
- Key bindings:
  - Moved key bindings prefix from ~SPC D~ to ~SPC a D~ (thanks to Ag Ibragimov)
  - Added ~SPC m c B~ to build image without cache (thanks to Maximilian Wolff)
  Henar)
  - Added ~SPC a D C~ for =docker-compose= (thanks to Daniel Caixinha)
  - Added ~SPC a D n~ for =docker-networks= (thanks to Ramz)
  - Added ~SPC a D v~ for =docker-volumes= (thanks to Ramz)
  - Added ~SPC a D m~ for =docker-machines= (thanks to Ramz)
- Fixed: broken package declaration for dockerfile-mode
  (thanks to Maximilian Wolff)
- Added LSP support
- Dockerfile mode keybindings (thanks to Alfonso Montero):
  - Flatten ~cb~ and ~cB~ build commands into ~b~ and ~B~ to save keystrokes.
  - Add keybindings to some =docker= package commands for convenience.
**** Dotnet
- Key bindings:
  - Added key bindings for =dotnet= (thanks to Jordan Kaye):
    - ~SPC m d a p~ Add package to the current dotnet project
    - ~SPC m d a r~ Add reference to the current dotnet project
    - ~SPC m d b~   Build the current dotnet project
    - ~SPC m d c~   Clean the current dotnet project
    - ~SPC m d n~   Create a new dotnet project
    - ~SPC m d p~   Publish the current dotnet project
    - ~SPC m d r a~ Run the current dotnet project with arguments
    - ~SPC m d r r~ Restore the current dotnet project
    - ~SPC m d s a~ Add to the current dotnet solution
    - ~SPC m d s l~ List the current dotnet solution
    - ~SPC m d s n~ Create a new dotnet solution
    - ~SPC m d s r~ Remove from the current dotnet solution
    - ~SPC m d t~   Run tests for the current dotnet project
**** Elfeed
- Fixed selection bindings in visual state (thanks to Jeremy Symon)
- Fixed not saving on quit (thanks to Andrew Stevanus)
- Make elfeed-goodies optional (thanks to Benjamin Sigonneau)
**** Elixir
- Added missing Alchemist commands and key bindings (thanks to Swaroop C H)
  - Key bindings:
    - Added ~SPC m t b~ to run tests for current file
    - Added ~SPC m t N~ to jump to previous test
    - Added ~SPC m t s~ to test stale
    - Added ~SPC m t R~ to toggle test report display
    - Added ~SPC m g g~ and ~SPC m .~ to jump to definition
    - Added ~SPC m g b~ and ~SPC m ,~ to jump back
    - Added ~SPC m g n~ to jump to next symbol
    - Added ~SPC m g N~ to jump to previous symbol
    - Added ~SPC m g j~ to list symbol definitions
    - Added ~SPC m X i~ to find info at point
    - Added ~SPC m X r~ for releases at point
    - Added ~SPC m X R~ for releases
    - Added ~SPC m X I~ for hex info
    - Added ~SPC m X s~ for hex search
    - Added ~SPC m o l~ to macroexpand once current line
    - Added ~SPC m o L~ to macroexpand once print current line
    - Added ~SPC m o k~ to macroexpand current line
    - Added ~SPC m o K~ to macroexpand once current line
    - Added ~SPC m o i~ to macroexpand once region
    - Added ~SPC m o I~ to macroexpand once print region
    - Added ~SPC m o r~ to macroexpand region
    - Added ~SPC m o R~ to macroexpand print region
- Added elixir format keybind (thanks to Perry Fraser)
  - ~SPC m =~ to format current buffer
- Changed binding of =alchemist-project-find-test= from
 ~SPC m p t~ to ~SPC m t F~ (thanks to Lyuben Petrov)
- Mark alchemist jump handler as async (thanks to Lukasz Czaplinski)
- Added elixir-ls backend (thanks to mpanarin)
- Added breakpoint toggle to alchemist binds (thanks to mpanarin)
  - Added ~SPC m d b~ to toggle IEx.pry breakpoint
- lsp layer is a dependency when backend is set to ='lsp= (thanks to mpanarin)
- ~C-j~ indents line properly (thanks to mpanarin)
- Enabled =evil-matchit= (thanks to Miloš Mošić)
**** Elm
- Fixed flycheck initialization (thanks to Kevin W. van Rooijen)
- Added =elm-test-runner= (thanks to Juan Edi)
**** Emacs Lisp
- Fix: after edebug session, get out of evil-evilified (thanks to Ag Ibragimov)
- Key bindings:
  - Make ~SPC m h h~ and jump handlers work in =ielm= (thanks to Keith Pinson)
  - Added ~c~ to continue in edebug mode (thanks to hodge)
  - Added ~SPC m g b~ to jump back to previous point (thanks to Magnus Therning)
  - Added Edebug Eval List key bindings
    - ~SPC m g w~ for =edebug-where=
    - ~SPC m a~ for =edebug-delete-eval-item=
    - ~SPC m k~ for =edebug-delete-eval-item=
    - ~SPC m ,~ for =edebug-update-eval-list=
    - ~SPC m c~ for =edebug-update-eval-list=
    - ~SPC m e e~ for =edebug-eval-last-sexp=
    - ~SPC m e E~ for =edebug-eval-print-last-sexp=
- Identify Cask files as emacs lisp ones (thanks to Adrien Becchis)
- Added =overseer= ert test runner (thanks to Adrien Becchis)
  - Key bindings:
    - ~SPC m t a~ for =overseer-test=
    - ~SPC m t t~ for =overseer-test-run-test=
    - ~SPC m t b~ for =overseer-test-this-buffer=
    - ~SPC m t f~ for =overseer-test-file=
    - ~SPC m t g~ for =overseer-test-tags=
    - ~SPC m t p~ for =overseer-test-prompt=
    - ~SPC m t A~ for =overseer-test-debug=
    - ~SPC m t q~ for =overseer-test-quiet=
    - ~SPC m t v~ for =overseer-test-verbose=
    - ~SPC m t h~ for =overseer-help=
- Setup nameless package, replacing package prefix with ~:~
  (thanks to Adrien Becchis)
- Move =nameless-mode= toggle to ~SPC m T n~ (thanks to Sylvain Benner)
- Added dotspacemacs alias (=.S=) for nameless (thanks to Sylvain Benner)
- Disabled nameless by default
  (thanks to Codruț Constantin Gușoi, Sylvain Benner)
- Activate nameless only in GUI (thanks to Sylvain Benner)
- Added =flycheck-package= for package metadata linting (thanks to Uroš Perišić)
- Make rainbow-identifiers not colorize special operators and macros, so they
  always visually stand out. (thanks to Andriy Kmit)
- Added =emr= integration + key bindings (thanks to Ivan Yonchovski)
  - Key bindings:
    - ~SPC m r f e~ for  =emr-implement-function=
    - ~SPC m r f d~ for  =emr-find-unused-definitions=
    - ~SPC m r e f~ for  =emr-extract-function=
    - ~SPC m r e v~ for  =emr-extract-variable=
    - ~SPC m r e l~ for  =emr-extract-to-let=
    - ~SPC m r e c~ for  =emr-extract-constant=
    - ~SPC m r e a~ for  =emr-extract-autoload=
    - ~SPC m r i v~ for  =emr-inline-variable=
    - ~SPC m r i s~ for  =emr-inline-let-variable=
    - ~SPC m r i f~ for  =emr-inline-function=
    - ~SPC m r i a~ for  =emr-insert-autoload-directive=
    - ~SPC m r d l~ for  =emr-delete-let-binding-form=
    - ~SPC m r d d~ for  =emr-delete-unused-definition=
    - ~SPC m e w~   for   =emr-eval-and-replace=
- Added =elisp-def= integration (thanks to Thanh Vuong)
**** Emoji
- Added support for Emoji fonts on macOS and Linux (thanks to CodeFalling)
- Setup =emojify= cache directory (thanks to Boris Buliga)
- Hide mode-line indicator: =emoji= (thanks to duianto)
- Prevented =set-fontset-font= from being set in Emacs without a window system
  (thanks to NicholasTD07k)
- Enabled =company-emoji-insert-unicode= (thanks to Benjamin Levy)
**** ERC
- Key bindings:
  - ~SPC m b~ to switch between ERC buffers (thanks to Evan Klitzke)
- Conditionally enable ERC notifications via =erc-enable-notifications=
  (thanks to Evan Klitzke)
- Added spell checking and mIRC colors (thanks to Benjamin Levy)
- erc-view-log related changes (thanks to Mpho Jele)
  - Modified erc-log transient state to open in erc-view-log-mode
  - Added utility to open log buffer/file from erc channel
**** Erlang
- Added =lsp= support through erlang-ls backend (thanks to cfclavijo)
- Added =dap= support through els_dap backend (thanks to cfclavijo)
- =lsp= layer is a dependency when backend is set to ='lsp= (thanks to cfclavijo)
**** ESS
- Key bindings:
  - Change ~SPC m s t~ to ~SPC m s f~ to respect convention (thanks to Yi Liu)
  - Change ~SPC m s T~ to ~SPC m s F~ to respect convention (thanks to Yi Liu)
  - Added REPL bindings (thanks to Guido Kraemer)
    - ~SPC m ,~ to send region, current function, or paragraph and step
    - ~SPC m s s~ to switch between file and REPL buffer
    - ~SPC m h~ for predefined keymap =ess-doc-map=
    - ~SPC m r~ for predefined keymap =ess-extra-map=
    - ~SPC m w~ for predefined keymap =ess-r-package-dev-map=
    - ~SPC m d~ for predefined keymap =ess-dev-map=
  - Change some leader keys (thanks to Seong Yong-ju)
    - ~SPC m E~ for predefined keymap =ess-extra-map=
    - ~SPC m D~ for predefined keymap =ess-r-package-dev-map=
    - ~SPC m d~ for predefined keymap =ess-dev-map=
  - Removed noweb bindings since it no longer works (thanks to Seong Yong-ju)
- Fixed issue with read-only REPL buffer (thanks to Jack Kamm)
- Added ess layer variable =ess-disable-underscore-assign= (thanks to Jack Kamm)
- Remove =ess-R-object-popup= from ess layer (thanks to Naylyn Gaffney)
- Refactor keybindings for =ess-mode= and =ess-julia-mode=
  (thanks to Guido Kraemer and bmag)
- Added Julia repl to =spacemacs/ess-start-repl= (thanks to Guido Kraemer)
- Optimize Julia layer to provide better dev experience (thanks to Guido Kraemer)
- Reorganize key bindings (refer to =ESS= section in Breaking Changes above)
- Added =xref= integration (thanks to Guido Kraemer)
- Update ess-disable-underscore-assign for ESS 18.10 (thanks to Leonard Lausen)
- Update layer with the latest upstream changes (thanks to Guido Kraemer)
- Evilified states for ess help buffer (thanks to ft)
- Added LSP support for R (thanks to Seong Yong-ju)
**** Evil snipe
- Must always explicitly enable =evil-snipe-mode= even when
  =evil-snipe-override-mode= is enabled (thanks to Sylvain Benner)
**** Factor
- Misc fixes for factor version 0.98 (thanks to timor)
- Support running graphical Factor listener instances from Spacemacs
- Support reloading factor-mode/fuel-mode code when connecting to different
  Factor versions
**** FASD
- Add ~search from~ ivy action (thanks to Daniel Nicolai)
- fasd & find layout. Initiates fasd search and opens the item in a layout (thanks to Ag Ibragimov)
**** Finance
- Remove key-bindings pointing to removed commands (thanks to Alexander Baier)
- Added =evil-ledger= package (thanks to Alexander Miller)
  - new key bindings:
    ~g j~ go to the next transaction
    ~g k~ go to the previous transaction
  - =evil-ledger= adds the ~x~ transaction text object
- Prevent auto-complete from adding a space (thanks to Lareb Syed)
**** FSharp
- Added prefixes for key bindings (thanks to David Millar-Durrant)
**** Geolocation
- Added deferred theme changer activation function. (thanks to Thadeus Fleming)
- Fixed geolocation layer on non-macos systems (thanks to Boris Buliga)
- Show user error when location is not set in theme changer
  (thanks to Boris Buliga)
**** GitHub
- Layer:
  - marked as deprecated as functionality is all in =git= layer (thanks
    to practicalli-john)
- Packages:
  - Added new packages =forge= (thanks to Miciah Dashiel Butler Masters)
  - Do not install =forge= on Windows by default, see =README.org= of the layer
    (thanks to Sylvain Benner)
  - Remove package =github-browse-file= which has been replaced by
   =browse-at-remote= in =version-control= layer
  - Added package =grip=mode= (thanks to Daniel Nicolai)
- Key bindings:
  - Added ~g r~ evilified binding to gist-list-mode
    (thanks to Jean-Sebastien A. Beaudry)
  - Forge-topic buffer (thanks to Miciah Masters and yuhan0):
    - ~SPC m c~ create new post
    - ~SPC m e~ edit post
  - Forge-post buffer (thanks to Miciah Masters and yuhan0):
    - ~SPC m c~ or ~SPC m ,~ submit post
    - ~SPC m k~ or ~SPC m k~ cancel post
  - md/org buffer (thanks to Daniel Nicolai)
    - ~SPC g h p~ (toggle) grip-mode
- Replace =evilified-state-evilify= by =evilified-state-evilify-map=
  (thanks to Sylvain Benner)
- Disabled status, issues, and PRs by default (thanks to Miciah Masters)
- Removed mentions of the removed package =magithub= (thanks to Hong Xu)
  Obsolete:
  - Added package =magithub=, it is enabled by default in offline mode.
  - Remove package =magit-gh-pulls= as it was deprecated in favor of =magithub=
    and =forge= (thanks to Robby O'Connor)
  - Made magithub offline by default (thanks to Miciah Masters)
- Removed =git-clone= and  =git-search= packages for not using a secure means to
  store access tokens #1153777 (thanks to @practicalli-john)
**** Git
- Key bindings:
  - ~SPC g c~ to clone a repository (thanks to Steven Allen)
  - ~SPC g i~ to initialize a repository (thanks to Steven Allen)
  - ~SPC m g y~ to find symbols (thanks to Daniel Ralston)
  - ~SPC g f d~ for =magit-diff= (thanks to Ag Ibragimov and bmag)
  - Commit message buffer (thanks to yuhan0):
    - ~SPC m c~ or ~SPC m ,~ commit changes with the entered message
    - ~SPC m a~ or ~SPC m k~ discard message and abort the commit
    - ~g j~ or ~M-n~ cycle through history to the previous commit message
    - ~g k~ or ~M-p~ save current commit message and cycle to the next message
  - Log selection buffer (thanks to yuhan0):
    - ~SPC m c~ or ~SPC m ,~ select the commit at point and act on it
    - ~SPC m a~ or ~SPC m k~ abort selecting and don't act on any commit
  - Get git permalink for a region (thanks to Roman Gonzalez):
    - ~SPC g l p~ opens browser with region permalink URL
    - ~SPC g l P~ adds region permalink URL to clipboard
  - Moved =magit-find-file= to view a file at a specific branch or commit
    from ~SPC g f f~ to ~SPC g f F~ (thanks to duianto and Hong Xu)
  - Unbind ~C-f~ from =magit-gitflow-popup= (thanks to rayw000)
  - Implement performance hack for MacOS mentioned in Magit manual (thanks to
    Keith Pinson)
  - Magit Forge key bindings for editing a topic, i.e. issue, PR (thanks to
    @practicalli-john & @nickanderson)
- Fixes:
  - Install magit-svn by default and activate with git-enable-magit-svn-plugin
  - Added feature to toggle =evil-magit= based on editing style
    (thanks to Muneeb Shaikh)
  - Added =use-package= for deferred loading of evil-magit
    (thanks to Sylvain Benner)
  - Remove old evilification of magit buffers (thanks to Sylvain Benner)
  - Move evil-magit =use-package= hook declaration to pre-init
    (thanks to Sylvain Benner)
  - Change =magit-svn-popup= keybinding to =~= (thanks to hornuda)
  - Added gitignore-templates (thanks to Ruslan Kamashev)
  - Added =helm-git-grep= (thanks to Evan Klitzke)
  - Enabled colors in =magit-log= (thanks to Thomas de Beauchêne)
  - Added magit buffers to useless buffers (thanks to Thomas de Beauchêne)
  - Fixed magit blame function name (thanks to Bjarke Vad Andersen)
  - Show magit-log-select and diff in two windows (thanks to duianto)
  - Fixed magit conflicting with golden-ratio (thanks Eric Zhang)
  - Hide with-editor mode-line indicator: =WE= (thanks to duianto)
  - Fixed magit blame in org buffers (thanks to Compro Prasad)
  - Deleted git-link and git-timemachine integration that has been superseded
    by upstream changes (thanks to Miciah Dashiel Butler Masters)
  - Unfolded org headings to a target line when a .org file is opened from a
    Magit diff or blame buffer (thanks to duianto and Miciah Masters)
  - Allowed multichar major mode leader key for exiting magit commit edits
    (thanks to tuh8888)
  - Restore magit transient args between sessions (thanks to duianto)
- Improvements:
  - Added orgit-forge (thanks to Ag Ibragimov)
  - Add Magit Forge configuration documentation & basic git configuration
    (thanks to practicalli-john)
**** Gnus
- Key bindings:
  - Added ~g r~ for =gnus-group-get-new-news= (thanks to Matthew Leach)
  - Added ~O~ prefix in evil state for =gnus-group-group-map=
    (thanks to Matthew Leach)
  - Added *unplugged* and *slave* variants. These are for offline usage and
    having multiple gnus running, respectively.
    - ~SPC a g g~ gnus (normal). Not slave, plugged.
    - ~SPC a g o~ slave & unplugged.
    - ~SPC a g u~ unplugged (but not slave).
    - ~SPC a g s~ gnus slave (but plugged).
      (thanks to Spenser Truex)
  - Added message mode insert binding: ~SPC m i F~ for FLAME ON, following
    [[https://tools.ietf.org/html/rfc1855#page-4][RFC 1855]] (thanks to Spenser Truex)
- Improvements:
  - Added a =@gnus= perspective (~SPC l o g~) to the layouts transient state
    (thanks to Matthew Leach)
- Fixed:
  - Made the gnus variables user configurable (thanks to duianto)
**** Go
- Deprecated:
  - Dropped support for deprecated =gometalinter= (thanks to pancho horrillo)
- Layer variables:
  - Add =go-format-before-save= with a default value of nil
    (thanks to Jon Erik Del Rosario Suero)
  - Refactored two variables =go-use-gometalinter= and =go-use-golangci-lint= to
    one =go-linter= (thanks to Robert Zaremba)
- Improvements:
  - Added =LSP= support (thanks to Lupco Kotev)
  - Set =lsp-diagnostic-package= to =:none= when =Go= layer is using =LSP=
    (thanks to Tim Heckman)
  - Improved go test output buffer behavior (thanks to Denis Bernard)
  - Configurable extra arguments to =go run= (thanks to Enze Chi)
  - Configurable extra arguments to =go test= (thanks to Ian Clark)
  - Added toggle for running =gofmt= before save (thanks to Jon Erik Del Suero)
  - Added toggle control for verbose go test output (thanks to Enze Chi)
  - Added =go-gen-test= (thanks to Cosmin Cojocar and Sylvain Benner)
  - Added =go-impl= (thanks to Cosmin Cojocar)
  - Added =godoctor= (thanks to TinySong and Eivind Fonn)
  - Added =go-tag= (thanks to brantou)
  - Added =go-fill-struct= (thanks to Cosmin Cojocar)
  - Added =golangci-lint= support (thanks to Lupco Kotev)
  - Added =GOROOT= to list of variables copied from shell environment
    (thanks to Andy Lindeman)
  - Added =Testify= support (thanks to Mathieu Post)
  - Convert remote file name to local name, stripping trampy stuff
    (thanks to Josh Santos)
  - Configure =go-mode= to use the =gopkgs= tool to find available Go packages
    faster (thanks to Cosmin Cojocar)
  - Support editorconfig setting of =tab-width= to nil (thanks to lawrsp)
  - Added setup instructions for =gopls= (thanks to pancho horrillo)
  - Make flycheck disable checkers covered by golangci (thanks to zhuoyikang)
  - Updated build instructions for =golangci-lint= (thanks to pancho horrillo)
  - Added =dap-go= integration (ljupchokotev)
  - Added =go-run-command= variable (thanks to Jay Z)
  - Added =go-test-command= variable (thanks to Jay Z)
- Key bindings
  - =godoctor= key bindings (thanks to TinySong and Eivind Fonn):
    - ~SPC m r n~ to rename
    - ~SPC m r e~ to extract
    - ~SPC m r t~ to toggle
    - ~SPC m r d~ for godoc
  - =go-gen-test= key bindings (thanks to Cosmin Cojocar and Sylvain Benner):
    - ~SPC m t g g~ to generate tests for the function in the active region
    - ~SPC m t g f~ to generate tests for all exported functions
    - ~SPC m t g F~ to generate tests for all functions
  - Added ~SPC m r s~ to fill struct with default values
    (thanks to Cosmin Cojocar)
  - Added ~SPC m r i~ to generate method stubs for an interface
    (thanks to Cosmin Cojocar)
  - Added ~SPC m =~ to run =gofmt= manually (thanks to Jon Erik Del Suero)
- Fixes:
  - Fixed loading of the =GOPATH=, =GOROOT=, and =GO15VENDOREXPERIMENT=
    environment variables (thanks to Joshua Santos)
  - Fixed =go-run-test-current-function= for vanilla tests and gocheck suite
    tests (thanks to Mathieu Post)
  - Fixed search for current test function to run (thanks to joelpet)
  - Disabled =go-eldoc-setup= for LSP backend (thanks to Seong Yong-ju)
**** Graphviz
- Use graphviz package from melpa (thanks to Matthew Boston)
**** Groovy
- Update =indent-variable-alist= to support new groovy-mode
  (thanks to Sylvain Benner)
- Move groovy configuration to its own layer and improve it
  (thanks to Sylvain Benner)
- Added Gradle support (thanks to Johnson Denen)
- Improved maven and gradle support (thanks to Sylvain Benner)
- Key bindings:
  - Added ~SPC m r i~ to add import (thanks to Sylvain Benner)
**** Gtags
- Key bindings:
  - Move key binding ~SPC m g c~ to ~SPC m g C~ (regenerate tags)
- Don’t check if mode function is bound (thanks to Eivind Fonn)
- Implements diminish and toggle (thanks to Dominik Schrempf)
- Added =ivy= support to the gtags layers (thanks to Robbert van der Helm)
- Made gtags toggle major mode specific (thanks to Sylvain Benner)
- Fixed issue =counsel-gtags= command doesn't work in c-c++ layer
  (thanks to kekenow)
- Fixed a typo by spelling counsel correctly (thanks to kccai)
- Fixed GNU Global install instructions for macOS (thanks to Martin Račák)
**** Haskell
- Disabled electric indent for cabal-mode (thanks to Benno Fünfstück)
- Added dante support to haskell layer (thanks to Kyle McKean)
- Fixed: =company-dante= -> =dante-company= (thanks to Leon Isenberg)
- Rename =haskell-enable-hindent-style= to =haskell-enable-hindent= and make it
  a Boolean option in accordance with upstream changes (thanks to PierreR)
- Added function for proper import reformatting
- Key bindings:
  - ~SPC r i~ runs new =spacemacs/haskell-format-imports= function
  - ~SPC m g b~ returns from definition in =intero-mode=
    (thanks to Magnus Therning)
- Enable LSP mode using HIE.
- Fixed jump handlers for =dante= and =inferno=
  (thanks to cjay, CthulhuDen and Magnus Therning)
- Included =attrap= when =dante= is used (thanks to Pepe Iborra)
- Added keybinding ~C-c C-z~ for =haskell-interactive-switch= (thanks to ft)
- Added keybindings to the GHCI REPL:
  - ~C-j~ switch to next history item
  - ~C-k~ switch to previous history item
  - ~C-l~ clear the REPL
  (thanks to Joscha)
- Reverted the REPL stuck snippets from checking if the =haskell= package is
  used, to checking if the =haskell= layer is used (thanks to duianto)
**** Helm
- New packages:
  - =helm-ls-git= (thanks to duianto)
- Improvements:
  - Load helm before =read-file-name= and =completing-read=
    (thanks duianto and thanks Miciah for a more elegant solution)
  - Load helm before =completion-at-point= (thanks to duianto)
  - Filter out useless buffers from =helm-mini= on ~SPC b b~, all useless
    buffers can be listed using ~SPC b U~ (thanks to Thomas de Beauchêne)
  - Limited =ripgrep= results to 512 columns by default, and added
    =spacemacs-helm-rg-max-column-number= layer variable to configure the above
    limit (thanks to Aaron Jensen, Michael Hauser-Raspe, and Sylvain Benner)
  - Don't change =helm-bookmarks= keys too early when helm-mode is enabled
    (thanks to bmag)
  - Change the default actions for =helm-find-files=, =helm-buffers-list=, and
    other file- or buffer-related Helm interfaces to handle multiple marked
    candidates by distributing buffers over existing windows until the action
    has either assigned all buffers or run out of windows
    (thanks to Nir Friedman)
  - Added support for editing the =helm-find-files= buffer from the Helm
    transient state (thanks to Troy Hinckley)
  - Hide lighter (thanks to Sylvain Benner and duianto)
  - Lazy load =helm= based on key bindings (thanks to Sylvain Benner)
  - Added guard to check if =winum= is loaded (thanks to Dan Girshovich)
  - Updated =helm-xref= to set the correct =xref-show-xrefs-function= for
    Emacs 27 (thanks to Junxuan)
  - Hide =helm-ff-cache-mode= mode-line indicator (thanks to duianto)
  - Ignored =helm-full-frame= and =pop-up-windows= in =helm-swoop= to fix
    selection navigation (thanks to Boris Sergeyev)
- Key bindings:
  - Added Key bindings for directory search:
    - ~SPC s d for =spacemacs/helm-dir-smart-do-search=
    - ~SPC s D for =spacemacs/helm-dir-smart-do-search-region-or-symbol=
    - ~SPC s a d for =spacemacs/helm-dir-do-ag=
    - ~SPC s a D for =spacemacs/helm-dir-do-ag-region-or-symbol=
    - ~SPC s k d for =spacemacs/helm-dir-do-ack=
    - ~SPC s k D for =spacemacs/helm-dir-do-ack-region-or-symbol=
    - ~SPC s r d for =spacemacs/helm-dir-do-rg=
    - ~SPC s r D for =spacemacs/helm-dir-do-rg-region-or-symbol=
    - ~SPC s t d for =spacemacs/helm-dir-do-pt=
    - ~SPC s t D for =spacemacs/helm-dir-do-pt-region-or-symbol=
    (thanks to Tim Jäger and Eivind Fonn)
  - Added ~SPC b U~ to list all useless buffers (thanks to Thomas de Beauchêne)
  - Added ~SPC s C~ for =helm-swoop-clear-cache= (thanks to Yang Qian)
  - Removed ~SPC s w w~ key binding for =helm-wikipedia-suggest=, which was
    removed upstream.
  - ~SPC g f f~ for =helm-ls-git-ls= (thanks to duianto)
  - Add ~C-d~ to create a project perspective and open a project root dired
    buffer, from the ~SPC p l~ persp switch project prompt
    (thanks to Magnus Therning)
  - Add =C(-S)-tab= keybindings for buffer switching (thanks to Daniel Nicolai)
- Fixes:
  - Fixed signature of =spacemacs//display-helm-window= (thanks to Jack Kamm)
  - Fixed initialization by calling =helm-mode= when Helm is initialized=
    (thanks to bet4it).
  - Fixed actions in Helm transient state (thanks to Troy Hinckley)
  - Fixed conflict with new Magit transient key bindings
    (thanks to Sylvain Benner)
  - Fixed smex package integration (thanks to Troy Hinckley)
  - Fixed winum integration (thanks to Sylvain Benner)
  - Fixed "Invalid face reference" error in Helm transient state
    (thanks to duianto)
  - Fixed error from =spacemacs/helm-files-smart-do-search= on non-file buffers
    (thanks to Miciah Masters)
  - Fixed regression: void function =helm-current-directory= on =C-x C-f=
    (thanks to bmag)
  - Fixed opening files from buffers without winum
    (thanks to Codruț Constantin Gușoi)
  - Fixed =spacemacs//helm-open-buffers-in-windows= when opening more files than
    available windows (thanks to Juha Jeronen)
  - Fixed searching in a project with ~C-s~ from ~SPC p p~ (thanks to duianto)
  - Fixed ~C-c C-e~ =helm-find-files-edit= action (thanks to duianto)
  - Added =spacemacs/helm-dir-do-grep= to fix #13167 (thanks to Richard Kim)
  - Moved the =helm-org= definition from the =org= layer to =helm= so that
    =helm-spacemacs-faq= (~SPC h f~) works without the =org= layer
    (thanks to Nicholas Kirchner)
**** HTML
- Added =impatient-mode= under ~SPC m i~ (thanks to geo7)
- Added =counsel-css= as an =ivy= alternative to =helm-css-scss=
  (thanks to Robbert van der Helm)
- Fixed autoloading bug involving =spacemacs/helm-find-files=
  (thanks to Jack Kamm)
- XML files now open with web-mode by default (thanks to Jordan Gwyn)
- Added =helm-xref= (thanks to Fangrui Song and Sylvain Benner)
- Removed ~TAB~ binding for emacs editing style in =emmet-mode=
  (thanks to Kalle Lindqvist)
- Revert setting company min. prefix length to 0 for company-web backend
  (thanks to Dela Anthonio)
- Added missing prefixes for =web-mode= and =css-mode= (thanks to Uroš Perišić)
- Fixed ~TAB~ indenting in =web-mode= (thanks to Christopher Eames)
- Added =lsp= support for =css-mode=, =less-css-mode=, and =scss-mode=
  (thanks to Seong Yong-ju)
- Added support for =prettier= formatter in HTML buffers
  (thanks to Anton Alekseev)
- Added support for =.svelte= files (thanks to Javier Candeira)
- Added =lsp= support for =html= buffers (thanks to Thanh Vuong)
- Added a toggle state minified/full to the transient state (thanks to duianto)
- Moved cursor to beginning of line after =spacemacs/css-contract-statement=
  (thanks to Mpho Jele)
**** Hy
- Added support for pipenv (thanks to Cazim Hysi)
- Updated Hy layer to current Hy mode (thanks to Cazim Hysi)
- Added support for virtual envs (thanks to Danny Freeman)
- Key bindings:
  - Added ~SPC m v~ prefix for virtualenvs
  - Added ~SPC m v p~ prefix for pipenv
  - Added ~SPC m h~ prefix for =help=
  - Added ~SPC m e~ prefix to mirror the eval bindings of other Lisps
  - Changed ~SPC m s s~ (i.e. =start-or-switch-to-shell=) to ~SPC m '~
**** Idris
- Update author email for Idris layer (thanks to Timothy Jones)
- Enabled =idris-simple-indent= (thanks to Xuan Bi)
**** IPython Notebook
- Added support for auto-completion with =company= (thanks to tutysara)
- Added =ob-ipython= (thanks to Alejandro Catalina)
- DRY and tidiness update (thanks to dickmao)
- Key bindings:
  - ~SPC a i l~ to login (thanks to Ben Mabey)
  - ~SPC m s~ to split cell at point (thanks to Jaakko Luttinen)
  - ~<C-return>~ (execute cell) and ~<S-return>~ (execute cell and go to next)
    also in hybrid mode (thanks to Jaakko Luttinen)
  - Remove spurious key binding (thanks to Carlos Andrés Rocha)
  - Added ~SPC a y r~ =ein:run= (thanks to Zach Pearson)
  - Added ~SPC a y s~ =ein:stop= (thanks to Zach Pearson)
  - Added package dependencies for =ein= (thanks to ft)
  - Fixed keybindings per removal of =ein:notebook-multilang-mode=
  - DRY and tidiness update by primary EIN developer
  - Dynamically generate transient-state docstring.  Remove ob-ipython (Ibid.)
  - Avoid counterfeiting of ein:notebook-mode-map (Ibid.)
**** Ivy
- Added =recentf= alt actions to refresh and delete items (thanks to Rich Alesi)
- Added =projectile= alternate actions to invalidate cache (thanks to Rich Alesi)
- Key bindings:
  - Added Helm key binding counterparts:
    - ~SPC f e l~ =counsel-find-library=
    - ~SPC h i~   =counsel-info-lookup-symbol=
      (thanks to Andriy Kmit')
    - ~SPC h m~ =man=, fallback to =woman= on Widows (thanks to madand)
  - Added ~SPC h d F~ to list faces (thanks to Muneeb Shaikh)
  - Bind =find-file-other-window= to ~j~ (thanks to James Wang)
  - Added =counsel-mark-ring= to ~rm~ (thanks to bmag)
  - Added =counsel-git= to ~SPC g f f~ (thanks to Hong Xu)
  - Added counsel color and faces key bindings (thanks to duianto):
    - ~SPC C e~ =counsel-colors-emacs=
    - ~SPC C f~ =counsel-faces=
    - ~SPC C w~ =counsel-colors-web=
  - Restored bindings in =spacemacs/counsel-search= with =ag= or =rg=:
    - ~f3~ =spacemacs//counsel-save-in-buffer=
    - ~C-c C-e~ =spacemacs//counsel-edit=
    (thanks to madand)
  - Add ~d~ to create a project perspective and open a project root dired
    buffer, from the ~SPC p l~ persp switch project prompt
    (thanks to Magnus Therning and Muneeb Shaikh)
  - Rebind =SPC s S= from =spacemacs/swiper-region-or-symbol= to Ivy native
    =swiper-thing-at-point=
  - Rebind =SPC s S= from =spacemacs/swiper-all-region-or-symbol= to Ivy native
    =swiper-all-thing-at-point=
    (last two points thanks to Daniel Nicolai)
  - Bound =SPC s l= to =ivy-resume= (thanks to Wieland Hoffmann)
  - Rebind =C-k= to =C-M-k= in =ivy-reverse-i-search= (=C-r= at a prompt)
    (thanks to duianto)
  - Add =C-(S)-tab= keybindings for buffer switching (thanks to Daniel Nicolai)
- Removed definitions for =spacemacs/swiper-region-or-symbol= and
  =spacemacs/swiper-all-region-or-symbol= and updated keybindings, because Ivy has
  more advanced implementation via =swiper-thing-at-point= and
  =swiper-all-thing-at-point=
  - Add C-RET for ivy-alt-done (thanks to Daniel Nicolai)
- Limit =ripgrep= results to 150 columns (thanks to Aaron Jensen)
- Use new API to register additional transient state bindings
  (thanks to Andriy Kmit')
- Replaced custom hydra-menu by original and updated hydra-menu, introducing
  marking feature (thanks to Daniel Nicolai)
- Initiate the transient state with ~M-SPC~ while in a =ivy= buffer
  (thanks to Rich Alesi)
- Set =ivy-use-selectable-prompt= to =t= (thanks to Boris Buliga)
- Rename git dir variable to upstream changes (thanks to bmag)
- Added hook for =org-ctrl-c-ctrl-c=  (thanks to Sylvain Benner)
- Added =ivy-rich= display transformer for =ivy-switch-buffer=
  (thanks to Alan Ferguson)
- Fixed bug in spacemacs-help when a layer has no packages
  (thanks to Nikita Leshenko)
- Rotate =ivy= re builders rather than toggle (thanks to Tomasz Kołodziejski)
- Follow upstream ivy/counsel and remove use of variable =counsel--git-dir=
  (thanks to Chirantan Ekbote)
- Fixed creation of layouts with =ivy= (thanks to Muneeb Shaikh)
- Added =ivy-enable-advanced-buffer-information= variable to toggle =ivy-rich=
  being enabled (thanks to Alejandro Catalina)
- Move =counsel-projectile= to spacemacs-layouts (thanks to Muneeb Shaikh)
- Added =ivy-xref= (thanks to Fangrui Song and Sylvain Benner)
- Use evil normal mode as default for =ivy-occur-grep-mode=
  (thanks to Ting Zhou)
- Fixed error on =nil= input with counsel search (thanks to Miciah Masters)
- Fixed call to =counsel-more-chars= in =counsel-search= (thanks to bmag)
- Added search highlighting with =ivy--regex-plus= (thanks to ivasonn)
- Improved jumping in buffer (thanks to Kalle Lindqvist)
- Fixed ~SPC m s~ key bindings for wgrep (thanks to John Lee)
- Update =ivy-rich= config for upstream changes (thanks to bmag)
- Added ~C-r~ keybinding for counsel-minibuffer-history (thanks to James Wang)
- Fixed counsel search errors due to function rename (thanks to Aaron Jensen)
- Display results count properly in prompt (thanks to yuhan0)
- Fixed typos in spacemacs/search-dir* bindings (thanks to yuhan0)
- Added =ivy-ret-visits-directory= variable (thanks to bb2020)
- Fixed definitions of extra actions R and D for recentf (thanks to madand)
- Renamed =counsel-more-chars= to =ivy-more-chars= to match upstream
  (thanks to duianto)
- Set =counsel-find-file-at-point= to =t= to enable better auto completion
  of =counsel-find-file= (thanks to Hong Xu)
- Fixed broken =ivy-occur= (thanks to Carlos Ibáñez)
- Fixed =counsel-git-grep= with input ~SPC s g P~ (thanks to Carlos Ibáñez)
- Keep ~C-h~ binding in =counsel-find-file-map= only for hjkl navigation
  (thanks to Hong Xu)
- Optimize =spacemacs/counsel-search= for =ag= and =rg= (thanks to Hong Xu)
- Fixed void variable =counsel-find-file-map= (thanks to duianto)
- Fixed wrong initial directory in =spacemacs/counsel-search=
  (thanks to Carlos Ibáñez and Juuso Valkeejärvi)
- Fix visual selection expansion across the buffer on `SPC s S` and `SPC s B`
  (thanks to Andriy Kmit)
- Fixed =cl= package deprecated =letf*= (thanks to duianto)
- Fixed counsel find-file functions to use Spacemacs check for opening large
files (thanks to Daniel Nicolai)
- Add option to configure =all-the-icons-ivy-rich= (thanks to Daniel Nicolai)
**** Imenu-list
- Changed ~SPC b i~ to ~SPC b t~ for =imenu= tree view
  (thansk to Sylvain Benner)
- Fixed key bindings (thanks to bet4it):
  - ~r~ inside imenu-list buffer to refresh
  - ~SPC b t~ calls =imenu-list-smart-toggle= rather than
    =imenu-list-minor-mode=
**** Jabber
- Added missing optional argument for the =jabber-alert-echo= function to fix
  =wrong-number-of-arguments= error when jabber receives a new notification
  (thanks to Aleksei Fedotov)
**** Json
- Added variable =json-fmt-on-save= to run the selected formatter on save.
**** Jsonnet
- Fixed flycheck support in jsonnet files (thanks to Vikash Balasubramanian)
**** Java
- Key bindings:
  - ~SPC m e e~ is now to fix error around point. Use ~SPC e~ prefix to navigate
    between errors.
  - ~SPC m p r~ to run project (thanks to Willian Ver Valem Paiva)
  - ~SPC r n~ for =eclim-java-new= (thanks to Dela Anthonio)
  - New =lsp= backend keybindings
    - ~SPC m r c i~ convert to static import
    - ~SPC m r a t~ add throws exception
    - ~SPC m r a a~ assign all parameters to fields
    - ~SPC m r a f~ assign parameter to field
    - ~SPC m r g g~ to generate getters/setters
    - ~SPC m r g e~ to generate =equals= and =hashCode= methods
    - ~SPC m r g t~ to generate =toString= method
    - ~SPC m r g o~ to generate method overrides
    - ~SPC m c p~ create spring boot project
      (thanks to Ivan Yonchovski)
  - Fixed ~SPC m m t C-a~ it was bound to ~SPC m m t C - a~ (thanks to duianto)
  - New =lsp= backend keybindings
    - ~SPC m r a l~ assign statement to local
    - ~SPC m r a F~ assign statement to field
- Improvements:
  - Added support for multiple backends. Supported backends are: =meghanada=,
    =eclim=. The default backend is =meghanada=. (thanks to Ivan Yonchovski)
  - Added =ENSIME= jump handlers (thanks to Joao Azevedo)
  - Improved =maven= (thanks to Sylvain Benner)
  - Made =java= layer depend on =groovy= layer (thanks to Sylvain Benner)
  - Added =org-babel= support (thanks to Michael Rohleder)
  - Remove broken =ENSIME= key bindings (thanks to Bjarke Vad Andersen)
  - Added LSP Java backend (thanks to Ivan Yonchovski)
  - Added =.dap-breakpoints= and =.lsp-session-*= (java lsp tempfiles) to
    .gitignore (thanks to Uroš Perišić)
  - Added =transient= (package update temp folder) to
    .gitignore (thanks to Jarosław Górny)
  - Added /** */ smartparens pair (thanks to Ivan Yonchovski)
  - Added the prefix name "actionable" to ~SPC m a~ (thanks to duianto)
- Fixes:
  - Removed =gradle-mode= which is unsupported and was breaking other major modes
  - Replace usage of =ensime-print-type-at-point= by =ensime-type-at-point=
    (thanks to Joao Azevedo)
  - Added defalias for =ensime-type-at-point= for compatibility
    (thanks to Eivind Fonn)
  - Fixed syntax typo in configuration (thanks to EMayej)
  - Fixed yanking types (thanks to Bjarke Vad Andersen)
  - Fixed gtags related initialization (thanks to Guido Kraemer)
  - Fixed prefixes for =java-mode= (thanks to Seong Yong-ju)
  - Enabled =lsp-java= when the =java-backend= is =nil= and the =lsp= layer is
    enabled (thanks to Ivan Yonchovski)
  - Fixed =dap-java= shortcuts (thanks to Ivan Yonchovski)
  - Removed =lsp-java= configurations for missing properties or for defaults
    that already are set by =lsp-mode/lsp-java= (thanks to Ivan Yonchovski)
**** Javascript
- Improvements:
  - Leverage js-doc Yasnippet integration if available (thanks to Andriy Kmit')
  - Added LSP support, which can be used by enabling the =lsp= layer and setting
    the =javascript= layer's =javascript-backend= variable to =lsp=
    (thanks to Ting Zhou and Sylvain Benner)
  - Added ES6 module extension to =init-js2-mode= (thanks to Nathan Lloyd)
  - Added =org-babel= support (thanks to Michael Rohleder)
  - Added debug support via =dap= layer (Firefox and Google Chrome)
  - Added format on save option. (thanks to Trapez Breen)
  - Added =nodejs-repl= support (thanks to Uroš Perišić)
  - Added a =javascript-lsp-linter= variable to allow for disabling =lsp= as a
    linter for =javascript= and =react=, when =lsp= is set as the backend
    (thanks to Thanh Vuong)
  - Documented how to: Enable =lsp=. Install =flow= (thanks to William Blasko)
- Key bindings
  - Improved coffeescript support (thanks to Kalle Lindqvist):
    - ~SPC m '~ to create or go to REPL
    - ~SPC m c c~ to compile buffer
    - ~SPC m c r~ to compile region
    - ~SPC m s b~ to send buffer to REPL
    - ~SPC m s l~ to send line to REPL
    - ~SPC m s i~ to create or go to REPL
    - ~SPC m s r~ to send current region to the REPL and stay in buffer
    - ~SPC m T c~ to toggle compile on save
  - Move REPL live eval toggle to ~SPC m T l~ (thanks to Sylvain Benner)
  - Updated readme key from: ~SPC m s a~ to: ~SPC m T l~ (thanks to duianto)
  - Added =import-js= support with key bindings:
    - ~SPC m i i~ to mport the module for the variable under the cursor
    - ~SPC m i f~ to import any missing modules and remove any modules that ar
      not used
    - ~SPC m g i~ to go to the module of the variable under cursor
    (thanks to Seong Yong-ju)
  - Move ~SPC m i~ for =impatient-mode= to ~SPC m I~ as ~SPC m i~ is now taken
    by the =import-js= key-bindings (thanks to Seong Yong-ju)
- Fixes:
  - Set default value of =tern-command= to "tern"
    (thanks to Sylvain Benner and Juuso Valkeejärvi)
  - Check if =tern= exists before using it (thanks to Codruț Constantin Gușoi)
  - Fixed hook value to enable =evil-matchit= (thanks to Thanh Vuong)
  - Fixed hook value to enable =evil-matchit= (thanks to Thanh Vuong)
  - Disabled =js2-mode='s =next-error-function= when the =syntax-checking= layer
    is enabled, to let =flycheck= handle any errors (thanks to Thanh Vuong)
**** Julia
- Fixes:
  - Loaded =lsp-julia= from melpa (thanks to Guido Kraemer)
  - Fixed =julia-mode-local-vars-hook= (thanks to Guido Kraemer)
  - Limited =evil-surround-pairs-alist= redefinitions to julia mode
    (thanks to duianto)
  - Remove warning about LanguageServer.jl not working in 1.0
    (thanks to Daniel Molina)
  - Fixed inconsistencies in backend configuration (thanks to Matt Kramer)
**** Keyboard layout
- Added support for Colemak layout (thanks to Daniel Mijares, Lyall Cooper and
  Eivind Fonn)
- Added new programmer dvorak layout that matches vim like key placement
  (thanks to Max Gonzih)
- Added support for the Workman keyboard layout (thanks to warreq)
- Added neo keyboard layout (thanks to benozol)
- Added colemak-jkhl layout (thanks to fmdkdd)
- Disambiguate the colemak-hnei and colemak-neio layouts (thanks to fmdkdd)
- Improved support for workman keyboard layout (thanks to Benjamin Reynolds)
- Added =after-config= hooks for lazy-loaded packages (thanks to CharlesHD)
- Added undo-tree visualizer mapping (thanks to CharlesHD)
- Fixed key remapping after =cl= package deprecation (thanks to Damien Picard)
- Fixed =bepo= layout, commented out broken evil-window :common bindings
  (thanks to CharlesHD)
- Added evil-lisp-state mapping (thanks to Damien Picard)
- Added ediff mapping (thanks to iv-nn)
**** Kivy
- Added the =kivy= package (thanks to Nasser Alshammari and Ryota Kayanuma)
**** LaTeX
- New package =magic-latex-buffer= (thanks to benquebec)
- New layer variable =latex-enable-magic= to enable =magic= symbols in latex
  buffers, see README.org for more info (thanks to benquebec)
- Put magic-latex-buffer in TeX-update-style-hook instead of LaTeX-mode-hook
  (thanks to Matt Kramer)
- Enable auto indent when paste. Remove =latex-mode= from
  =spacemacs-yank-indent-modes= to disable it (thanks to bet4it)
- Added support for =company-reftex= (thanks to et2010)
- Added bindings to navigate between errors in tex mode:
  - ~SPC m n~ goto next error
  - ~SPC m N~ goto previous error
    (thanks to Olivier Verdier)
- Fixed README to say auto-fill on by default. (thanks to Max Willsey)
- Added ConTeXt mode to the key bindings (thanks to ft)
- Fixed ~SPC m ;~ binding (thanks to Tianshu Wang)
- Fix jump handlers setup and use dumb-jump as default (thanks to Matt Kramer)
- Added layer variable =latex-build-engine= to provide better i18n support (thanks
  to Lucius Hu)
- Added layer variable =latex-refresh-preview= to refresh the preview buffer when
  compiled PDF is changed (thanks to Lucius Hu)
- Automatically configure =pdf-tools= as pdf viewer for =TeX-view= command (by default) (Thanks to Daniel Nicolai)
- Add layer variable to open =pdf-tools= in split window (Thanks to Daniel Nicolai)
- New package =evil-tex= (thanks to Dan Kessler)
**** Lua
- Added support for auto-completion with =company= (thanks to halfcrazy)
- Added support for =LSP= (EmmyLua-LS-all, lua-language-server, lua-lsp) (thanks to Lin.Sun)
- Added =EmmyLua-LS-all.jar= to =.gitignore= (thanks to duianto)
- Removed require lsp-clients (thanks to duianto)
**** Language Server Protocol (LSP)
- Added core keybindings and prefix declarations for all LSP-based language
  layers, and helper functions to bind server-specific extensions
  (thanks to Cormac Cannon).
- Replace lsp-capabilities keybinding with lsp-describe-session
  (thanks to Bryan Tan)
- Added =lsp-treemacs=
  - ~SPC m t g e~ to show error list
- Fixed missing shortcuts for =lsp-mode=
  - ~SPC m F r~  to remove workspace folder
  - ~SPC m F a~  to add workspace folder
  - ~SPC m F r~  to switch workspace folder
  - ~SPC m b s~ to shutdown current workspace
  - ~SPC m T l~ to toggle lenses
  - ~SPC m = r~ to format region
- Added package =helm-lsp=
  - ~SPC m g s~ to find symbol in current project
  - ~SPC m g S~ to find symbol in all projects
  - ~SPC p E~ to show error list
- Disabled =helm-lsp= keybindings when =ivy= layer enabled (Cormac Cannon)
- Deleted =fix-lsp-company-prefix= since =company-lsp= is doing that handling.
- Fixed a delay when declaring prefixes for mode (thanks to Thanh Vuong)
- Required =helm= or =treemacs= to download =helm-lsp= or =lsp-treemacs=
  (thanks to Steven Allen)
- Required =yasnippet= (thanks to Ivan Yonchovski)
- Removed the now obsolete variable =lsp-prefer-flymake= (originally added by
  Juuso Valkeejärvi), the new variable =lsp-diagnostic-package= is handled
  upstream (thanks to duianto)
- Removed =company-lsp=. Now =lsp-mode= is responsible for configuring
  =company-backends= and it will use =company-capf=.
- Fixed upstream removal of =lsp-clients= (thanks to Colin Woodbury)
- Added documentation for =lsp-headerline-breadcrumb-mode=, =lsp-lens-mode=,
  =lsp-modeline-diagnostics-mode=, and =lsp-modeline-code-actions-mode=
  (thanks to Lucius Hu)
- Added =lsp-version= to ~SPC m b v~ (thanks to nanashi0x74)
**** Debug Adapter Protocol (DAP)
- Layer variables:
  - Added variable =dap-enable-mouse-support=
  - Added variable =dap-enable-ui-controls=
- Key bindings
  - ~SPC m d d e~ to edit debug template
  - Added global binding under ~SPC d~
- Improvements:
  - Evilfied =dap= debug windows
**** Markdown
- Fontify code blocks natively by default, for parity with the Org layer (thanks
  to Keith Pinson)
- Disable =mmm-mode= in Git commit buffers, in order to allow the use of Markdown
  mode when committing (thanks to Keith Pinson)
- New layer variable =markdown-mmm-auto-modes= which is a list of language names
  or lists of language and mode names that are supported in source blocks, you
  can add you own modes, see layer README.org for more info
  (thanks to Christian Brassat)
- Added support for Scala source blocks (thanks to Christian Brassat)
- Fixed save of org table (thanks to Codruț Constantin Gușoi)
- Fixed missing key bindings for =gfm-mode= (thanks to Codruț Constantin Gușoi)
- Open Madoko document using markdown mode (thanks to Han Wang)
- Key bindings:
  - ~SPC m T i~ to toggle inline images
  - ~SPC m T l~ to toggle url hiding
  - ~SPC m T t~ to toggle checkbox
  - ~SPC m T w~ to toggle wiki links
    (thanks to Swaroop C H (added keys), AmaiKinono (moved to upper case T))
  - ~SPC m T m~ for =markdown-toggle-markup-hiding=
    (thanks to Miciah Masters (added key), AmaiKinono (moved to upper case T))
- Update markdown insert link, function renamed (thanks to duianto)
- Made all keybindings available in gfm-mode (thanks to Codruț Constantin Gușoi)
- Remove org table lighter (thanks to Troy Hinckley)
- Fixed ~M-h~, ~M-j~, ~M-k~, ~M-l~ bindings (thanks to Kechao CAI)
- New key bindings (thanks to Sylvain Benner):
  - ~M-up~ for =markdown-move-up=
  - ~M-down~ for =markdown-move-down=
  - ~M-left~ for =markdown-move-left=
  - ~M-right~ for =markdown-move-right=
- Update key bindings to reflect changes in markdown-mode 2.3
  (thanks to Miciah Masters)
  - Rename =markdown-exdent-region= to =markdown-outdent-region=.
  - Command for ~SPC m i I~ folded into ~SPC m i i~.
  - ~SPC m i l~ and ~SPC m i L~ replaced by markdown-insert-link ~SPC m i l~.
  - Rename =markdown-jump= to =markdown-do=
- Hide MMM mode-line indicator (thanks to duianto)
- Use =orgtbl-mode= only when the =org= layer is used (thanks to Boris Buliga)
- Added key bindings (thanks to AmaiKinono):
  - Element insertion
    - ~SPC m x B~ insert gfm checkbox
    - ~SPC m x s~ make region striked through or insert strikethrough
  - Table manipulation
    - ~SPC m t p~ move row up
    - ~SPC m t n~ move row down
    - ~SPC m t f~ move column right
    - ~SPC m t b~ move column left
    - ~SPC m t r~ insert row
    - ~SPC m t R~ delete row
    - ~SPC m t c~ insert column
    - ~SPC m t C~ delete column
    - ~SPC m t s~ sort lines
    - ~SPC m t t~ transpose table
    - ~SPC m t d~ convert region to table
- Bound major mode leader key and ~M-RET~ to =markdown-insert-list-item= for
  terminal users (thanks to AmaiKinono)
- Made =*lsp-help*= buffer shown in a popup window using popwin
- Add support for mdx files via markdown-mode (thanks to robbyoconnor)
- Improve documentation about markdown preview options (thanks to Lin Sun)
**** Major modes
- Added SPARQL-mode (thanks to Dietrich Daroch)
- Added android logcat (thanks to jiejingzhang)
- Added pkgbuild (thanks to Sven Fischer)
- Added keybinding for pkgbuild-update-srcinfo (thanks to pancho horrillo)
- Added ebuild-mode (thanks to Kai Wohlfahrt)
- Added the vala programming language (thanks to Steven Allen)
- Added hoon (thanks to Hunter Haugen)
**** Mu4e
- Added custom Spacemacs layout for =mu4e= buffers (thanks to Benjamin Reynolds)
- Key bindings:
  - Thanks to Peter Nagy and Eivind Fonn
    - add ~SPC m ,~ and ~SPC m c~ to send message and exit
    - add ~SPC m a~ and ~SPC m k~ to kill message buffer
    - add ~SPC m s~ to save message as draft
    - add ~SPC m f~ to attach file
- Replace mu4e multiple accounts with contexts (thanks to Allen Li)
- Refactor to use =spacemacs/add-to-hooks= (thanks to Sylvain Benner)
- Added helm-mu4e integration and key bindings
  (thanks to Sébastien Bariteau and Sylvain Benner):
  - ~SPC a M~ to start mu4e
  - ~SPC m S~ or ~SPC m /~ to search emails (requires helm)
  - ~SPC m C~ to search contacts (requires helm)
- Better defaults, async and utility functions (thanks to Peter Hoeg)
  - Added binding ~C-x m~ to compose new message
- Made maildirs extension optional (thanks to JorisE)
- Create email with attachments from dired (thanks to Oleg Pykhalov)
- Refactor major-mode leader key bindings (thanks to Miciah Masters)
- Enabled scrolling in =mu4e= (thanks to Simon Altschuler)
- Kill mu4e layout on app exit (thanks to Ag Ibragimov)
- Restore ~gu~ binding for ~mu4e-view-go-to-url~ (thanks to Dominik Schrempf)
- Updated assigned purpose names
**** Multiple Cursors
- Disabled Spacemacs paste transient state when pasting to avoid pasting issue
  when there are more than one cursor (thanks to braham-snyder)
- Added magnars's multiple-cursors package as a new backend (thanks to bb2020)
  - ~SPC s m a~   =mc/mark-all-dwim=
  - ~SPC s m b~   =mc/mark-all-like-this=
  - ~SPC s m m~   =mc/mark-more-like-this-extended=
  - ~SPC s m r~   =mc/edit-lines=
  - ~SPC s m s l~ =mc/insert-letters=
  - ~SPC s m s m~ =mc/mark-sgml-tag-pair=
  - ~SPC s m s n~ =mc/insert-numbers=
  - ~SPC s m s r~ =set-rectangular-region-anchor=
  - ~SPC s m s s~ =mc/sort-regions=
  - ~SPC s m s t~ =mc/reverse-regions=
- Fixed initialization (thanks to Seong Yong-ju)
- Moved =evil-mc= key bindings to =evil-mc-key-map= (thanks to Seong Yong-ju)
- Documented =evil-mc= make cursors from selection key bindings:
  - ~grI~ =evil-mc-make-cursor-in-visual-selection-beg=
  - ~grA~ =evil-mc-make-cursor-in-visual-selection-end=
  (thanks to duianto)
- Disabled =evil-mc-mode= in =magit-mode= (thanks to duianto)
**** Neotree
- Made neotree an optional instead of a default layer
- Move neotree to its own layer in new +filetree folder
  (thanks to Sylvain Benner)
- Added screenshot in neotree layer (thanks to duianto)
- Allow a prefix argument to ~RET~ / ~l~ (=spacemacs/neotree-expand-or-open=)
  to specify which window to use to open a file (thanks to Ljupcho Kotev)
- Key bindings (thanks to bmag):
  - ~SPC f T~ reinstated for showing file tree with Neotree or Treemacs
  - ~SPC 0~ and ~M-0~ are consistent across Neotree and Treemacs
- Fixed ~RET~ binding functionality (thanks to Lupco Kotev)
- Use "open" instead of "xdg-open" on macos (thanks to Alexander-Miller)
- Remapped =winum-select-window-0-or-10= to =neotree-show= so that ~C-x w 0~,
  ~SPC 0~ and ~M-0~ call the same command (thanks to duianto and Miciah)
**** NixOS
- Enabled Flycheck (thanks to William Casarin)
- Defer loading (thanks to Benno Fünfstück)
- Disabled Electric-Indent mode, which interfered with the nix-mode indent
  function (thanks to Profpatsch)
- Associate nix-mode with .nix files (thanks to jpathy)
- Updated layer banner (thanks to kalium)
- Added experimental LSP support (thanks to LuisChDev)
**** Nim
- Added key binding ~SPC m h h~ to show symbol documentation
  (thanks to Valts Liepiņš)
- Make =spacemacs/nim-compile-run= work with current buffer file instead of
  defaulting to =main.nim= (thanks to Uroš Perišić)
- Replace =company-capf= with =company-nimsuggest= in
  =company-backends-nim-mode= to improve responsiveness (thanks to Uroš Perišić)
- Declare all prefix names (='(compile goto help)=) for =nim-mode=
  (thanks to Uroš Perišić)
**** Node
- Use =add-node-modules-path= to automatically find local executables
  (thanks to jupl)
- Disabled add-node-modules-path by default (thanks to Eivind Fonn)
**** Notmuch
- Added support for scrolling the message pane in notmuch-tree, originally bound to SPC/BKSPC (thanks to inwit).
- Fixed a bug in notmuch-tree which was preventing ~d~/~D~ bindings to work (thanks to Daniel Nicolai, alexey0308, inwit)
- Try harder to find GitHub patch URL (thanks to Miciah Masters)
- Open GitHub patches fullscreen
- Add next and previous message bindings to notmuch-tree mode
- Change the ~C-n~ and ~C-p~ message keys to their original ~N~ and ~P~ bindings
- Edit require from =org-notmuch= to =ol-notmuch= as per org-mode update 9.3.1
  (thanks to Loys Ollivier)
- Fix address completion in notmuch-message mode (thanks to Mattijs Korpershoek)
**** OCaml
- Allow initialization without requiring =opam= (thanks to Bernhard Schommer)
- Fixed misused functions, =merlin= is a package not a layer
  (thanks to jinyang and Rudi Grinberg)
- Fixed issue with OPAM share directory on Windows (thanks to Levi Roth)
- Enabled flycheck-ocaml (thanks to Dave Aitken)
- Fixed backspace delete (thanks to Hasan Alirajpurwala)
- Fixed flycheck-ocaml not initialized warning (thanks to Artur Juraszek)
- Added =dune= support via =dune-mode= (thanks to Lyman Gillispie)
- Fixed ocamlformat not properly initialized by following do (thanks to Nicolas Raymond)
- Allow new OPAM share commandline syntax (thanks to Cody McKenzie)
**** Org
- Add ~SPC m [~ for =org-agenda-file-to-front= and ~SPC m ]~ for =org-remove-file=
  (thanks to Keith Pinson).
- Add initial =org-transclusion= support behind =org-enable-transclusion-support=
  flag (thanks to Keith Pinson).
- When =org-appear= is set to be triggered manually and Spacemacs' editing mode is
  Vim or hybrid, register relevant =org-appear= commands in Evil hooks for Org
  buffers (thanks to Keith Pinson).
- Provide some sane default strategies for enforcing =TODO= dependencies via
  =org-todo-dependencies-strategy= (thanks to Keith Pinson).
- Load org-mode email integration (mu4e/notmuch) when org is loaded
  (thanks to Steven Allen)
- Packages:
  - Added package =org-journal= (thanks to Nick Anderson)
    - Added shortcuts for handling scheduled entries and find journal file
      (thanks to Daniel Nicolai)
  - Added package for =org-sticky-header-mode= (thanks to Langston Barret)
  - Added package =org-jira= (thanks to Kirill A. Korinsky)
  - Added package =org-rich-yank= (thanks to Keith Pinson)
  - Added package =org-roam= (thanks to Mariusz Klochowicz)
  - Added package =org-contacts= (thanks to Daniel Nicolai)
  - Added package =org-appear= (thanks to winsphinX)
  - Added package =org-wild-notifier= (thanks to Daniel Nicolai)
  - Added package =org-roam-ui= (thanks to winsphinX)
- Key bindings:
  - ~SPC m s y~ for =org-copy-subtree= (thanks to Keith Pinson)
  - ~SPC m T i~ to toggle inline images
  - Move clock related key bindings to ~SPC a o C~
  - Key bindings (thanks to darkfeline and Langston Barrett):
    - add ~SPC a o C I~ to clock in last
    - add ~SPC a o C c~ to cancel the last clock
    - add ~SPC a o C j~ to jump to current clock
    - add ~SPC a o r~ to rifle through files with new package =helm-org-rifle=
    - add ~SPC m C I~ to clock in last
    - add ~SPC m C R~ to insert a clock report
    - add ~SPC m C d~ to display clocks
    - add ~SPC m C g~ for org-clock-goto
    - add ~SPC m C j~ to jump to current clock
    - add ~SPC m p~ to change priority
    - add ~SPC m r~ for helm-org-rifle
  - Added ~SPC m #~ to update statistics cookies (thanks to Christian Höppner)
  - Key bindings (thanks to James Wang):
    - add ~SPC m T e~ to toggle pretty entities
    - add ~SPC m T l~ to toggle link display
  - Added org-agenda commands in org agenda transient state to un-schedule and
    un-deadline tasks (thanks to Jake Zerrer)
    - add ~d S~ to unschedule org-agenda-schedule
    - add ~d D~ to remove org-agenda-deadline
  - Added ~M-RET~ for =org-meta-return= under major mode leader key
    (thanks to Sylvain Benner)
  - Added ~SPC m T c~ for =org-toggle-checkbox= (thanks to Paweł Siudak)
  - Added org-babel commands (thanks to timor):
    - ~SPC m b p~ calls =org-babel-previous-src-block=
    - ~SPC m b n~ calls =org-babel-next-src-block=
    - ~SPC m b e~ calls =org-babel-execute-maybe=
    - ~SPC m b o~ calls =org-babel-open-src-block-result=
    - ~SPC m b v~ calls =org-babel-expand-src-block=
    - ~SPC m b u~ calls =org-babel-goto-src-block-head=
    - ~SPC m b g~ calls =org-babel-goto-named-src-block=
    - ~SPC m b r~ calls =org-babel-goto-named-result=
    - ~SPC m b b~ calls =org-babel-execute-buffer=
    - ~SPC m b s~ calls =org-babel-execute-subtree=
    - ~SPC m b d~ calls =org-babel-demarcate-block=
    - ~SPC m b t~ calls =org-babel-tangle=
    - ~SPC m b f~ calls =org-babel-tangle-file=
    - ~SPC m b c~ calls =org-babel-check-src-block=
    - ~SPC m b j~ calls =org-babel-insert-header-arg=
    - ~SPC m b l~ calls =org-babel-load-in-session=
    - ~SPC m b i~ calls =org-babel-lob-ingest=
    - ~SPC m b I~ calls =org-babel-view-src-block-info=
    - ~SPC m b z~ calls =org-babel-switch-to-session=
    - ~SPC m b Z~ calls =org-babel-switch-to-session-with-code=
    - ~SPC m b a~ calls =org-babel-sha1-hash=
    - ~SPC m b x~ calls =org-babel-do-key-sequence-in-edit-buffer=
    - ~SPC m b .~ enters transient state
  - Added key bindings for =org-feed= (thanks to Luke Alexander Stein):
    - ~SPC a o f i~ and ~SPC m f i~ to go to feed inbox
    - ~SPC a o f u~ and ~SPC m f u~ to update all feeds
  - Added key bindings for =org-clock= (thanks to Langston Barrett,
    William Casarin, Francesc Elies Henar, Daniel Molina):
    - ~SPC a o C c~ for =org-clock-cancel=
    - ~SPC a o C g~ for =org-clock-goto=
    - ~SPC a o C i~ for =org-clock-in=
    - ~SPC a o C I~ for =org-clock-in-last=
    - ~SPC a o C j~ for =org-clock-jump-to-current-clock=
    - ~SPC a o C o~ for =org-clock-out=
    - ~SPC a o C r~ for =org-resolve-clocks=
  - Updates org-layer key bindings for Org 9.2 release
    (thanks to Sam Pillsworth):
    - ~SPC m i b~ for =org-insert-structure-template=
    - ~SPC m i t~ for =org-set-tags-command=
  - Added key binding for org-insert-item (thanks to Emil Petersen)
    - ~SPC m i i~ for =org-insert-item=
  - Added ~SPC m s d~ for =org-cut-subtree= (thanks to clwgg)
  - Added key bindings for =org-jira= (thanks to Kirill A. Korinsky)
    - ~SPC a o J p g~ Get projects list
    - ~SPC a o J i b~ Open the current issue in a WWW browser
    - ~SPC a o J i g~ Get issues
    - ~SPC a o J i h~ Get only head of issues
    - ~SPC a o J i f~ Get only head of issues from filter
    - ~SPC a o J i u~ Update an issue at point
    - ~SPC a o J i w~ Progress an issue at point
    - ~SPC a o J i r~ Refresh an issue at point
    - ~SPC a o J i c~ Create an issue at point
    - ~SPC a o J i y~ Copy current issue key
    - ~SPC a o J s c~ Create a subtask
    - ~SPC a o J s g~ Get subtasks
    - ~SPC a o J c u~ Update the comment at point or add a new comment
    - ~SPC a o J t j~ Convert the TODO item at point to a Jira ticket
  - Added ~SPC m C p~ =org-pomodoro= in =org-journal-mode=
    (thanks to Mariusz Klochowicz)
  - Key binding changes for archiving (thanks to Ag Ibragimov):
    - Added ~SPC m s a~ to toggle archive tag for subtree
    - Added ~SPC m s A~ to archive subtree (previously ~SPC m s a~)
  - Change key binding for widening from Org menu from ~SPC m s N~ to ~SPC m s w~
    to match mnemonics of regular binding ~SPC n w~ (thanks to Keith Pinson)
  - Added ~SPC m i L~ as =org-cliplink= into =org= layer (thanks to bb2020)
  - Added ~SPC m e s~ =org-mime-org-subtree-htmlize= (thanks to Nick Anderson)
  - Documented more insertion bindings (thanks to Lorenzo Manacorda):
    - ~C-RET~   Insert heading at end of current subtree
    - ~C-S-RET~ Insert TODO heading at end of current subtree
  - Changed =helm-org-rifle= keybindings to ~SPC a o /~, falling back to its
    previous functionality if using ivy (thanks to Mariusz Klochowicz)
  - Added keybindings for =org-roam= under menu prefix ~SPC a o r~ and ~SPC m r~
    - ~SPC a o r l~   (~SPC m r l~)   Toggle org-roam links visibility
    - ~SPC a o r f~   (~SPC m r f~)   Find file in org-roam
    - ~SPC a o r i~   (~SPC m r i~)   Insert file into org-roam
    - ~SPC a o r I~   (~SPC m r I~)   Immediately insert file into org-roam
    - ~SPC a o r g~   (~SPC m r g~)   Visualize org-roam graph
    - ~SPC a o r b~   (~SPC m r b~)   Switch org-roam buffer
    - ~SPC a o r d y~ (~SPC m r d y~) Open yesterday's daily note
    - ~SPC a o r d t~ (~SPC m r d t~) Open today's daily note
    - ~SPC a o r d T~ (~SPC m r d T~) Open tomorrow's daily note
    (thanks to Mariusz Klochowicz)
    - ~SPC a o r d d~ (~SPC m r d d~) Open daily note via calendar view
    (thanks to Ben Swift)
    - ~SPC a o r a~ (~SPC m r a~) Add org-roam alias to file
      (thanks to KjartanOli)
  - Added additional prefix (~SPC m m j~) for org-jira bindings
    (thanks to Mariusz Klochowicz)
  - Added keybindings ~SPC a o C f~ and org/agenda local ~SPC m C f~ keybindings
    and changed =clocks= prefixes to =clocks/contacts=
  - Add =org-brain= buffer, ~SPC~ menu (vim or hybrid style) (thanks to duianto)
- Made =org= layer depend on =spacemacs-org= (thanks to Eivind Fonn)
- Remove =mu4e= and =notmuch= from =org= (thanks to Sylvain Benner)
- Use evil-org from MELPA (thanks to Eivind Fonn)
- Added =org-brain= (thanks to Matthías Páll Gissurarson and Eivind Fonn)
- Added detailed =org-brain= bindings
  (thanks to Langston Barret and Oguz Serbetci)
- Added layer variable for todo bindings (thanks to Eivind Fonn)
- Made =org-projectile= integration compatible with its new version
  (thanks to Ivan Malison)
- Remove nils from call to =org-projectile-project-todo-entry=
  (thanks to Ivan Malison)
- Fixed org-projectile capture-template keyword argument
  (thanks to Leonard Lausen)
- Adapt to changes in org-brain 0.4 (thanks to Boris Buliga)
- Load org-projectile lazily, after org-capture (thanks to Aaron Jensen)
- Use org-verbatim, not org-verbose (thanks to Swaroop C H)
- Fixed =org-projectile/goto-todos= (thanks to Aaron Jensen)
- Fixed =org-clock-resolve-clock= keybinding (thanks to Francesc Elies Henar)
- Enabled =org-src-tab-acts-natively= (thanks to Sylvain Benner)
- Fixed =org-default-notes-file= precedence (thanks to Troy Hinckley and bmag)
- Added =ox-hugo= (thanks to Kaushal Modi)
- Hide lighter for =evil-org= (thanks to Sylvain Benner)
- Use counsel-org-tag when =ivy= layer is used (thanks to darkfeline)
- Delete the duplicate definition of the =spacemacsdorg-emphasize= macro
  (thanks to Miciah Dashiel Butler Masters)
- Use =org-mime= provided by melpa (thanks to Amos Bird)
- Restore =evil-org-additional-bindings= in insert state
  (thanks to Maximilian Wolff)
- Fixed initialization order to prevent version conflicts
  (thanks to Sylvain Benner)
- Fixed adding =org-projectile= files to =org-agenda-files= (thanks to AmanYang)
- Fixed error void: =evil-surround-pairs-alist= (thanks to Sylvain Benner)
- Added warning against manually loading org (thanks to Maximilian Wolff)
- Added a toggle for bringing in org-trello (thanks to Magnus Therning)
- Added the org-mode keybindings to the org-journal major mode
  (thanks to Marty Buchaus)
- Replace ox-reveal with org-re-reveal (thanks to Magnus Therning)
- Added epub support (thanks to vishvanath45)
- Added support for CUSTOM_ID in latex exports (thanks to Compro-Prasad)
- Added =ox-jira= as org export backend (thanks to Sebastian Nagel)
- Added =helm-org= package (thanks to Simon Pintarelli)
- Fixed evil-normal-state ~ESC~ after exiting =org-present-mode=
  (thanks to duianto)
- Fixed =org-present=: exiting presentation always removes inline images
  (thanks to Keith Pinson)
- Replace =org-toggle-latex-fragment= with =org-latex-preview=
  (thanks to Tianshu Wang)
- Enabled =org-habit= module
  (thanks to Mariusz Klochowicz)
- Fixed evil paste in a =org-src-mode= table (thanks to duianto)
- Implemented automatic activation of evil insert state after
  =org-insert-drawer=, =org-insert-heading=, =org-insert-item= and
  =org-insert-structure-template= commands (thanks to Andriy Kmit')
- Added =ox-asciidoc= as org export backend (thanks to Christian "West" Westrom)
- Fix org-roam v2 compatibility (thanks to Alex Kapranoff and Caleb Rogers)
- Fix =space-doc.el= to use cl-return (thanks to practicalli-john)
**** Osx
- Key bindings:
  - Added key bindings to use ~command-1..9~ for selecting window
    (thanks to Liu Joey)
  - Added ~M-s-h~ to hide other windows (thanks to Bas Veeling)
- Fixed OSX mapping issue (thanks to Joey Liu)
- Added layer variables to customize modifier behaviors on macOS:
  - =osx-command-as= defaults to hyper
  - =osx-option-as= defaults to meta
  - =osx-control-as= defaults to control
  - =osx-function-as= defaults to none
  - =osx-right-command-as= defaults to left
  - =osx-right-option-as=  defaults to left
  - =osx-right-control-as= defaults to left
  (thanks to Christopher Eames, Aaron Culich, and fiveNinePlusR)
- Disabled =pbcopy= package because it introduced input latency for some actions
  when using =emacs -daemon= and a GUI client (thanks to Sylvain Benner)
- Replace pbcopy by osx-clipboard (thanks to Minh Nguyen-Hue)
- Fixed key binding issue when Emacs is launched in daemon mode.
- Added the default value =H-= (hyper) to =kbd-mac-command= if it's neither:
  =hyper=, =super= or =alt= (thanks to Binbin Ye)
- Added a layer variable =osx-swap-option-and-command= defaults to =nil=
  (thanks to Binbin Ye)
- Enabled GNU =gls= support in dired without requiring
  =exec-path-from-shell= (thanks to Aaron Zeng)
**** Pandoc
- Fixed =spacemacs/run-pandoc= not to reset =pandoc--local-settings=
  (thanks to martian-f)
- Added declaration for the ~SPC P~ prefix (thanks to Codruț Constantin Gușoi)
**** Pdf
- Fixed ~'~ =pdf-view-jump-to-register= (thanks to duianto)
- Fixed evilifying the pdf-outline-buffer-mode-map (thanks to Lin Sun)
- Key bindings:
  - Added to pdf-view mode and transient state
    - ~[~ history-backward (previous view)
    - ~]~ history-forward (next view)
    - ~?~ toggle transient sate documentation hint (shown by default)
- Add pdf-view-restore (thanks to Daniel Nicolai)
**** Perl5
- Fixed =spacemacs/perltidy-format-buffer= and
  =spacemacs/perltidy-format-function= to move the point and window to their
  original locations. (thanks to Jim Pudar)
**** PHP
- Key bindings:
  - Added =phpunit= test key bindings (thanks to duianto):
    - ~SPC m t t~ =phpunit-current-test=
    - ~SPC m t c~ =phpunit-current-class=
    - ~SPC m t p~ =phpunit-current-project=
  - Added =refactoring= and =debugging= key bindings (thanks to Tyoma Kostyuk)
- Improvements:
  - Enabled =evil-matchit-mode= (thanks to duianto)
  - Added debugger integration for LSP backends via =dap= layer (thanks to Alexander Konotop)
- Fixes:
  - Added company-php (thanks to jim and Eivind Fonn)
  - Fixed php-company autocompletion (thanks to Dela Anthonio)
  - Added LSP support, which can be used by enabling the =lsp= layer and setting
    the =php= layer's =php-backend= variable to =lsp=
    (thanks to Daniel Richtmann)
  - Fix packages missed in Melpa (thanks to zebradil)
**** PlantUML
- Added a missing prefix: =compile= (thanks to Seong Yong-ju)
- Added instructions for compiling the image locally by setting
  =plantuml-default-exec-mode= to =jar= (thanks to Daniel Caixinha)
- Updated link to Reference Guide (thanks to Matthew Boston)
**** Platinum
- Added the =.plum= extension to the platinum modes (thanks to Sylvain Benner)
- Remove automatic indentation on paste (thanks to Sylvain Benner)
**** Prodigy
- Compatibility fix for upstream change (thanks to Francesc Elies)
- Key bindings:
  - add ~c~ to clear the buffer (thanks to Francesc Elies)
  - bind ~q~ to quit-window in view mode (thanks to Saulius Menkevičius)
**** Prolog
- Fixed autoloading error (thanks to jpathy)
**** Protobuf
- Prompt user to install the =protobuf= layer if a =.proto= file is opened
  (thanks to duianto)
**** Purescript
- Enabled =purescript-decl-scan-mode= when loading =purescript-mode=
  (thanks to Bjarke Vad Andersen)
- Allow adding node_modules/.bin path to exec-path (thanks to Anupam Jain)
- Added support for purescript formatters (thanks to Anupam Jain)
- Improved purescript keybinding discoverability & ergonomics.
  (thanks to Jason Walker)
- Added =purescript-mode= to =spacemacs-indent-sensitive-modes=
  (thanks to Hideaki Kawai)
**** Python
- Key bindings:
  - Update invalid cython mode keybindings (thanks to Muneeb Shaikh)
  - New =anaconda-view-mode= keybindings (thanks to Muneeb Shaikh)
    - ~C-j~ for navigating to the next error
    - ~C-k~ for navigating to the previous error
    - ~RET~ to go forward
  - Added keybinding ~SPC m P~ for pip package management with =pippel=
  - Added key binding ~SPC m r f~ to fix missing import statements
  - Added ~SPC m t l~ key binding to re-run the last test command
- Various fixes in =pylookup.py= (thanks to ishestakov and Shitikanth Kashyap)
- Hide =yapf-mode= modeline lighter (thanks to Robert ven der Helm)
- Search for Pylint and Flake8 in the virtualenvs (thanks Alexey Kotlyarov)
- Highlight wdb breakpoints as well as pdb/ipdb/pudb (thanks to Alexey Kotlyarov)
- Made =python-execute-file= use =python-shell-interpreter=
  (thanks to Swaroop C H)
- Trim output from pyenv command (thanks to Eivind Fonn)
- Set VIRTUAL_ENV environment variable when switching to new pyenv
  (thanks to James Gough)
- Use Python executable from active virtual env to compile files
  (thanks to Swaroop C H)
- Fixed arguments to =python-setup-hy= (thanks to Eivind Fonn)
- Fixed ipython version check bug on windows (thanks to lostmarble)
- Fixed =pyenv-executable-find= in presence of =pyenv-which-ext=
  (thanks to Christoph Paulik)
- Fixed broken repl invocation through ~SPC a '~  (thanks to Hans Jang)
- Added =pippel= for python package management (thanks to et2010)
  (thanks to Sylvain Benner)
- Added defvar =python-save-before-test= (thanks to Benoit Coste)
  (thanks to Volodymyr Vitvitskyi)
- Use =python-mode= for SCons script files (thanks to shanemikel)
- Added LSP support, which can be enabled by setting the =python= layer's
  =python-backend= variable to =lsp=
  (thanks to Yuan Fu and Sylvain Benner).
- The LSP backend can use either the =pylsp= (default) server or the =mspyls=
  (Microsoft) implementation, which may be selected by setting the
  =python-lsp-server= layer variable to =mspyls=
  (thanks to Cormac Cannon).
  (thanks to Benoit Coste).
- Added support for breakpoints for the =trepan3k= python debugger
  (thanks to dangirsh)
- Added support for =pipenv= with proper keybindings (thanks to jackkamm)
- Fixed bytecomp warning: =reference to free variable 'smartparens-strict-mode'=
  (thanks to Nikita Leshenko and Sylvain Benner)
- Fixed =pyenv=, =pre-init= function and =hy-mode= prefixes
  (thanks to Brandon T. Willard)
- Conditionally remove binding to obsolete keymap (thanks to bmag)
- Improved setup of =lsp-python= and =anaconda-mode= (thanks to Ting Zhou)
- Fixed support of multiple pyenv versions via =spacemacs/pyenv-executable-find=
  (thanks to Guan Xipeng)
- Fixed initialization of =inferior-python-mode= variables
  (thanks to Miciah Masters)
- Fixed bug with out-of-bound index (thanks to EMayej)
- Fixed escaping of shell argument for =spacemacs/python-execute-file=
  (thanks to Riley Levy)
- New variable =python-spacemacs-indent-guess= for guessing correct indentation
  settings (thanks to Benno Fünfstück)
- Fixed pyenv for system Python (thanks to Alexander Eberspächer)
- Replace =anaconda-mode-go-back= with =xref-pop-marker-stack=
  (thanks to JimmyG)
- Highlight python3.7 builtin =breakpoint()= function
  (thanks to Boris Verhovsky)
- Fixed conflict between pipenv directory .venv and pyvenv file .venv
  (thanks to rgb-24bit)
- Support relative path in pyvenv file .venv (thanks to Nam Nguyen)
- Added diminish for importmagic (thanks to Loys Ollivier)
- Added debugger integration via =dap= layer
- Added documentation on installing importmagic and epc (thanks to Trapez Breen)
- Made python-send-shell-* functions faster (thanks to Trapez Breen)
- Added support for 'black' formatter (thanks to Mike Macpherson)
- Enabled =eldoc= for =anaconda-mode= (thanks to Vikash Balasubramanian)
- Various fixes for =lsp-python-ms= setup (thanks to Trapez Breen)
- Added lazy loading of =lsp-python-ms= (thanks to Ying Qu)
- Make pylookup makefile use correct shell (thanks to Koray Al)
- Fix lazy loading of =lsp-python-ms= (thanks to lsp-ableton)
- Fix =Ipython= path on windows (thanks to Daniel K)
- Make =inferior-python-mode= do not use tabs (thanks to tsoernes)
- Automatic use the =lsp= as =python-formater= when =lsp= is enabled
  (thanks sunlin7)
- Fixed directory selection for self compiled mspyls (thanks Jee Lee)
- Add python-test-last support for pytest runner
- Added --last-failed support for pytest (thanks to Jaakko Luttinen)
- Added =spacemacs/python-shell-send-statement= support (thanks to Lin Sun)
- Added =sphinx-doc= support (thanks to Stefan Ruschke)
- Fix ipython version parsing for dev branches (thanks to Corentin Risselin)
**** Racket
- Restore smart closing paren behavior in racket-mode (thanks to Don March)
- Updated racket logo (thanks to Vityou)
- Add racket-xp-mode to Racket layer (thanks to Shrutarshi Basu)
- Correctly switch to insert state in REPL
**** Ranger
- Key bindings:
  - Added ~j D~ to jump other window (thanks to Rich Alesi)
  - Added ~-~ to enter (thanks to Rich Alesi)
- Fixed conflict with =golden-ratio= (thanks to Thomas de Beauchêne)
- Load =helm= before =ranger= (thanks to duianto)
- Add instruction to use ranger by default (thanks to Daniel Nicolai)
- Added ='ranger= as an option to the variable: =ranger-enter-with-minus=
  (thanks to duianto)
**** Rcirc
- New variable =rcirc-enable-late-fix= to enable or disable the included
  =rcirc-late-fix= package (disabled by default).
- New variable =rcirc-enable-emojify= to enable or disable emojify-mode
  in rcirc buffers (disabled by default).
- New variable =rcirc-enable-styles= to enable or disable the =rcirc-styles=
  package for displaying and inserting color and text attribute codes (disabled
  by default).
- New variable =rcirc-enable-erc-image= to enable or disable the =erc-image=
  package in rcirc for showing linked images in chat (disabled by default).
- New variable =rcirc-enable-erc-tweet= to enable or disable the =erc-tweet=
  package in rcirc for showing linked tweets in chat (disabled by default).
- New variable =rcirc-enable-erc-yt= to enable or disable the =erc-yt= package
  in rcirc for showing previews for YouTube links (disabled by default).
- Fixed using multiple lines in =.authinfo= (thanks to Jelle Licht)
- Fixed logging where the channel name has =/= in it
  (thanks to Abdo Roig-Maranges)
- Delete rcirc-reconnect in favor of built-in cmd (thanks to Miciah Masters)
- Move config defaults to package :init so they can be overridden
  (thanks to Miciah Masters)
- Fixed compiler warnings in =rcirc-late-fix= (thanks to Miciah Masters)
- Added variable =rcirc-enable-late-fix= (thanks to Miciah Masters)
**** React
- Improvements:
  - Made % work on jsx tags (thanks to Thanh Vuong)
  - Use rjsx-mode for react framework (thanks to Ting Zhou)
  - Prompt user to install the =react= layer if a =.jsx= file is opened
    (thanks to Jon Hermansen)
  - Improved =magic-mode-alist= regular expression to detect =react= files
    (thanks to Jan Zdráhal)
  - Made auto-completion triggers more friendly (thanks to Cheng,Rong)
  - Configure =emmet-mode= to expand classes using =className= instead of =class=
    (thanks to Sylvain Benner)
  - Open =.jsx= files with =rjsx-mode= (thanks to Thomas de Beauchêne)
  - Made =react= layer respect =javascript= layers variable
    =javascript-fmt-on-save= (thanks to Tommy Groshong)
  - Added =eslint_d= support (thanks to Seong Yong-ju)
- Key bindings:
  - Added =import-js= support with key bindings:
    - ~SPC m i i~ to mport the module for the variable under the cursor
    - ~SPC m i f~ to import any missing modules and remove any modules that ar
      not used
    - ~SPC m g i~ to go to the module of the variable under cursor
    (thanks to Seong Yong-ju)
  - Added ~SPC m r l t~ for =js2r-log-this= (thanks to Mike Holm)
  - Set the =javascript= layers keymap as parent to the =react= layers keymap
    (thanks to duianto)
- Fixes:
  - Use JSX header without breaking React (thanks to Jam Risser)
  - Fixed React imports when using web beautify. (thanks to Ismael)
  - Made layer depends on node and tern layers (thanks to Sylvain Benner)
**** ReasonML
- Key bindings:
  - ~SPC m g g~ Jump to definition
  - ~SPC m g G~ Jump to definition (other window)
  - ~SPC m g b~ Jump back
  - ~SPC m h t~ Show type
  - ~SPC m h h~ Show docs
  - ~SPC m r d~ Merlin destruct
  - ~SPC m = =~ Refmt
  - ~SPC m t r~ Toggle auto-refmt on save
  - ~SPC m = m r~ Refmt: convert ml syntax to re syntax
  - ~SPC m = r m~ Refmt: convert re syntax to ml syntax
    (thanks to Fredrik Dyrkell and Dave Aitken)
**** Restclient
- Moved key binding for =helm-restclient= from ~SPC m j i~ to ~SPC m j~
  (thanks to Thanh Vuong)
**** Ruby
- Added support for =org-babel= (thanks to Muneeb Shaikh)
- Highlight debugger keywords (thanks to Alexander Berezovsky and Eivind Fonn)
- Adding ruby-refactor package (thanks to Daniel Luna)
  - Key bindings:
    - Added ~SPC m r e m~ for extract to method.
    - Added ~SPC m r e v~ to extract local variable.
    - Added ~SPC m r e c~ to extract constant.
    - Added ~SPC m r e l~ to extract to =let=.
- Added ~SPC m x h~ to toggle between old and new hash syntax in the active
  region (thanks to Paweł Siudak)
- Added gtags to =enh-ruby-mode= as well as =ruby-mode=
  (thanks to David Balatero)
- Added ~SPC m s b~ key binding to send buffer to the Ruby console
  (thanks to Alejandro Arrufat)
- Added ~SPC m s B~ and ~SPC m s L~ key bindings to send buffer or line,
  respectively, to the Ruby console and switch focus to the console
  (thanks to Paweł Siudak)
- Key bindings:
  - Added ~SPC m s l~ to send line to REPL (thanks to Paweł Siudak)
  - Added ~SPC m T~ toggle prefix (thanks to Codruț Constantin Gușoi)
    - ~SPC m T '~ to toggle string quotes
    - ~SPC m T {~ to toggle block style
- Added popwin config for bundler, projectile-rails, and rubocop
  (thanks to Paweł Siudak)
  - Added ~SPC m r R m~ for extract to method.
  - Added ~SPC m r R v~ to extract local variable.
  - Added ~SPC m r R c~ to extract constant.
  - Added ~SPC m r R l~ to extract to =let=.
  - Added ~SPC m s l~ to send line to REPL (thanks to Paweł Siudak)
- Added the =seeing-is-believing= package (thanks to Brandon Conway)
- Added prefixes for ruby major mode keybindings (thanks to Seong Yong-ju)
- Added =lsp= and =dap= support (thanks to Billy Kaplan)
- Fixed lazy loading of =ruby-test-mode= (thanks to Michael Franz Aigner)
- Removed stray =test.rb= file (thanks to Michael Hauser-Raspe)
- Added missing key bindings for =counsel-gtags= in =enh=ruby-mode=
  (thanks to Seong Yong-ju)
- Added =dap= support for =enh-ruby-mode= (thanks to Seong Yong-ju)
- Added missing prefix =seeing-is-believing= for ~SPC m @~
  (thanks to Seong Yong-ju)
- Added support for prettier formatting (thanks to sidraval)
  - Added ~SPC m = =~ to format buffer via prettier (thanks to sidraval)
**** Ruby on Rails
- Changed leader keys to be configured for the =projectile-rails-mode= minor
  mode instead of =ruby-mode= and =enh-ruby-mode= so that the key bindings will
  work in view file windows (thanks to Adam Sokolnicki)
- Added missing prefixes for =ruby-mode= and =enh-ruby-mode=
- Added key bindings: (thanks to Adam Sokolnicki)
  - ~SPC m f f b~ to find job
  - ~SPC m f f w~ to find webpack config
  - ~SPC m f c d~ to run rails destroy
- Added =rubocopfmt= with the key binding ~SPC m = r~
**** Rust
- Added missing =counsel-gtags= and =smartparens= package declarations
  (thanks to Kalle Lindqvist)
- Fixed loading of the =RUST_SRC_PATH= environment variable
  (thanks to Joshua Santos)
- Enabled eldoc for rust/racer (thanks to yangbo)
- Key bindings:
  - Added ~SPC m c D~ to open Cargo docs (thanks to Matthew J. Berger)
  - Added ~SPC m c l~ to run linter with cargo clippy (thanks to Michael Kohl)
  - Added ~SPC m c t~ to run the current test with Cargo, and fix documentation
    for ~SPC m c f~ to format project files (thanks to Luke Alexander Stein)
  - Added ~SPC m c v~ to run "cargo check" command (thanks to Victor Polevoy)
  - Added key bindings for =cargo-edit= plugin (thanks to Lucius Hu)
    - ~SPC m c a~ for =cargo add=
    - ~SPC m c r~ for =cargo rm=
    - ~SPC m c U~ for =cargo upgrade=
  - Added ~SPC m c A~ for =cargo audit= plugin (thanks to Lucius Hu)
  - Modified ~SPC m c X~ for =cargo run --bin= command, instead of
    =cargo run --example= (thanks to Lucius Hu)
  - Added ~SPC m c E~ for =cargo run --example= (thanks to Lucius Hu)
  - Added ~SPC m b R~ to reload Rust-Analyzer workspace
- Added rust lsp completion with company and bindings (thanks to Justin)
- Added debugger integration via =dap= layer
- Fixed rust dap integration (thanks to Tommi Komulainen)
- Make ~rustup~ call shell agnostic (thanks to Dietrich Daroch)
- Fixed ~rust-quick-run~ command (thanks to Grant Shangreaux)
- Removed compilation buffer string match on =rust-quick-run=
  (thanks to Grant Shangreaux)
- Added/Updated instructions on external dependencies, =cargo-edit=,
  =cargo-audit=, =rustfmt=, and =clippy= (thanks to Lucius Hu)
- Added support for Rusty Object Notation (RON) (thanks to Daniel Hutzley)
- Improved LSP Rust server switch functionality (thanks to Lucius Hu)
**** Sailfish-Developer
- Key bindings:
  - Added =sailfish-scratchbox= key bindings (thanks to Victor Polevoy):
    - ~SPC c s~   Show menu
    - ~SPC c s b~ Invoke mb2 build
    - ~SPC c s d~ Copy rpms to the phone
    - ~SPC c s i~ Install rpms into target
**** Scala
- Shortcut key for compiling integration tests in SBT (~It / compile~)
  (thanks to Keith Pinson)
- Shortcut key for compiling tests in SBT without running them (~Test / compile~)
  (thanks to Keith Pinson)
- Shortcut keys for common/standard SBT commands (~scalafmtAll~, ~compile~ and ~test~)
  (thanks to Keith Pinson)
- Remove long-deprecated Ensime support (thanks to Keith Pinson)
- Provide an easy way to configure SBT to use a small buffer at the bottom of
  the frame by setting =scala-sbt-window-position= to =bottom= (thanks to Keith
  Pinson)
- Move =ensime= to the =java= layer (Tor Hedin Bronner)
- Key bindings:
  - Evilify =ensime= search in insert/normal mode (thanks to Diego Alvarez)
- Remove duplicated code (thanks to Tetsuro Takemoto)
- Added ENSIME jump handlers (thanks to Joao Azevedo)
- Added scala-lsp and metals as an additional backend for scala
  (thanks to Rodolfo Hansen)
- Disabled =sbt-supershell= in =sbt-mode= (thanks to Rodolfo Hansen)
- Enable new DAP and lsp-treemacs integration via metals
  (thanks to Rodolfo Hansen)
- Turned off ability to convert to Unicode arrows deprecated in Scala (and remove
  =scala-use-unicode-arrows= variable) (thanks to Keith Pinson)
- Added =lsp-metals= and remove broken =lsp-treemacs= initialization (Bjarke Vad Andersen)
**** Scheme
- Added missing =parinfer= package declaration (thanks to Kalle Lindqvist)
- Update install docs for Chicken 5 changes (thanks to Grant Shangreaux)
**** Semantic
- Made it possible to exclude stickyfunc (thanks to Sylvain Benner)
- Changed the default throttle for =semanticdb-find= routines. Don't search
  system databases to speed up semantic (thanks to bet4it)
- Disabled =semantic-idle-summary-mode= when =gtags= or =lsp= layer is enabled
  (thanks to bet4it)
- Moved the toggle key bindings to the semantic layer (thanks to duianto)
**** Shell
- Key bindings:
  - Added =vterm= bindings:
    - ~M-n~     =vterm-send-down= (next command)
    - ~M-p~     =vterm-send-up=   (previous command)
    - ~M-y~     =vterm-yank-pop=  (previous paste)
    - ~M-/~     =vterm-send-tab=  (hippie expand)
    Evil insert state:
    - ~C-y~     =vterm-yank=      (paste)
    Evil normal state:
    - ~p~       =vterm-yank=      (paste)
    - ~u~       =vterm-undo=
    (thanks to Ag Ibragimov)
- Make =pop-shell= default mode more configurable (thanks to Tyoma Kostyuk)
- Make =vterm= respect =shell-default-term-shell= (thanks to Tyoma Kostyuk)
- Added support for =vterm= (thanks to deb0ch)
- Improved the integration of =centered-cursor-mode= (thanks to deb0ch)
- Fixed xterm colors filtering bug in =eshell= when eshell buffers are updated
  and are not focused (thanks to Steven Allen)
- Fixed =eshell= clear behavior (thanks to Aidan Nyquist):
  - Made eshell ~clear RET~ similar to ~C-l~
  - Prevent ~C-l~ clearing cycle
  - Prevent ~clear RET~ inserting a page of white-space
  - Prevent duplicate insert lines from ~clear RET~
- Make =eshell auto jump= more intelligent (thanks to Kalle Lindqvist)
- Require company in =eshell-switch-company-frontend=
  (thanks to Benjamin Reynolds)
- Fixed docs for "Fish shell and ansi-term" and explicitly enable
  `truncate-lines`. (thanks to Joe Hillenbrand)
- Fixed ~C-j~ and ~C-k~ in =eshell= while in insert state
  (thanks to Paweł Siudak)
- Restore =auto-completion-idle-delay= value for =company-idle-delay=
  (thanks to Miciah Dashiel Butler Masters)
- Added =auto-completion-minimum-prefix-length= layer variable
  (thanks to Maximilian Wolff)
- Added =shell-default-width= layer variable (thanks to David Balatero)
- Function =resize-shell-to-desired-width= check for shell buffer before
  changing size (thanks to thanhvg)
- Added =shell-default-width= layer variable (thanks to David Balatero and
  Miciah Masters)
- Override read-only when capturing clear in shell (thanks to Alexander Wingård)
- Wrap 'shell' command to start in current buffer (thanks to Valts Liepiņš)
- Fixed shell popup broken on macOS (thanks to Daniel Rivas Perez)
- Fixed broken leader key binding for inferior shell (thanks to Valts Liepiņš)
- Added =term-mode= bindings (Thanks to Emil Petersen):
  - ~SPC m C~ switch multi-term to char mode
  - ~SPC m l~ switch multi-term to line mode
  - ~SPC m N~ go to previous multi-term
- Moved =eshell-z-freq-dir-hash-table-file-name= into cache dir
  (thanks to bb2020)
- Enabled ~TAB~ completion in =eshell= with =Helm= (thanks to bb2020)
- Added =eshell= =Ivy= completion bindings (thanks to bb2020):
  - ~M-l~ =spacemacs/ivy-eshell-history=
  - ~TAB~ =spacemacs/pcomplete-std-complete=
- Enabled mouse based pasting into term shells (thanks to Sheng Yang)
- Set =term-char-mode-point-at-process-mark= to =nil= to allow evil normal-mode
  movement in term shells on emacs 26.1
- Stopped the cursor from jumping to =point-max= when entering insert state from
  a multi line (thanks to Steven Allen)
- Prevented =shell-pop-out= from restoring a dead buffer or window
  (thanks to CeleritasCelery, fauxsoup)
- Made =pop-shell= layout local (thanks to CeleritasCelery, fauxsoup)
- Checked that the following are bound in =spacemacs-base=:
  - variable: =layouts-enable-local-variables=
  - function: =spacemacs/make-variable-layout-local=
  (thanks to JAremko and duianto)
- Better keybindings for ~ESC~ and ~RET~ in vterm =evil-normal-state= (thanks to kenkangxgwe)
- Added support for multi-vterm as default terminal option
**** Shell Scripts
- Added new company-shell environment variable backend
  (thanks to Alexander-Miller)
- Added bashate style checker (thanks to Victor Cuadrado Juan)
- Added insert commands from sh-script package to major mode menu
  (thanks to Maximilian Wolff)
- Added org-mode support (thanks to Josh Santos)
- Added LSP support, which can be used by enabling the =lsp= layer and setting
  the =shell-scripts= layer's =shell-scripts-backend= variable to =lsp=
**** Slack
- Key bindings:
  - ~SPC a C g~ or ~SPC m g~ to join a group (private channel)
    (thanks to Benjamin Reynolds)
  - ~SPC a C r~ or ~SPC m r~ to join a channel, group or direct message
    (thanks to Benjamin Reynolds)
  - ~SPC m )~ to add reaction (thanks to Swaroop C H)
  - ~SPC m (~ to remove reaction (thanks to Swaroop C H)
  - ~SPC m t~ to open message thread (thanks to Swaroop C H)
  - ~SPC m T~ to open all threads in workspace (thanks to wang-d)
  - ~SPC m u~ to open all unreads in workspace (thanks to wang-d)
- New layer variable =slack-spacemacs-layout-name= to customize the name of
  the custom layer for Slack buffers (thanks to Benjamin Reynolds)
- New layer variable =slack-spacemacs-layout-binding= to customize the key used
  to open the Slack custom layout (thanks to Benjamin Reynolds)
- Fixed documentation issues with slack and emoji layers
  (thanks to Benjamin Reynolds)
- Fixed =helm= menu display (thanks to Leslie Shawn Russell)
- Fixed function name bug in react layer fmt-on-save (thanks to Tommy Groshong)
**** Smex
- Fixed ~SPC m :~ for current major mode commands (thanks to tinysong)
**** Solidity
- Key bindings:
  - Added ~SPC m g~ Estimate gas at point
    (thanks to Brooklyn Zelenka and Seong Yong-ju)
**** Source control
- Install orgit only when org package is used (thanks to Boris Buliga)
- Defer git-gutter loading (thanks to Aaron Jensen)
- Remove redundant arg from git-gutter timer (thanks to bmag)
- Added Git Blame Transient State (thanks to duianto)
- Switch default version diff tool to git-gutter (thanks to Lin Sun)
**** Spacemacs-defaults
- Updated spacemacs/save-as function, see github #8974 and #14754 (thanks to
  Daniel Nicolai and Lebensterben)
**** Spotify
- Replaced helm-spotify package with helm-spotify-plus
  (thanks to Leonard Lausen)
- Added counsel-spotify for =ivy= users
  (thanks to Yuki Yoshioka, Deepu Mohan Puthrote)
**** SQL
- Support for keywords auto capitalization (thanks to Kepi)
- Change blacklist to only accept list (thanks to Eivind Fonn)
- Added dumb autocomplete (thanks to Codruț Constantin Gușoi)
- Added leader key prefixes (thanks to Jeremie Pelletier)
- Rebuild =spacemacs-sql-startable= after running =sql-add-product=
  (thanks to Andrew Christianson)
- Fixed sql-indent and defer it (thanks to Sylvain Benner)
- Added alex-hhh's sql-indent in place of mepla sql-indent
  (thanks to Andrew Christianson)
- Added layer variable =sql-auto-indent= to toggle the use of =sql-indent=
  package (thanks to David Chen)
- Added a code formatter for sql-mode (thanks to Seong Yong-ju)
- Added connection between =org-mode= and =SQL layer= (thanks to Magnus Therning)
- Added default jump handlers for SQL layer (thanks to Alex Palaistras)
- Added send line functions/key bindings (thanks to benbotwin):
  - ~SPC m s l~ Send the current line to the SQLi buffer and move to the next
    line =insert state=
  - ~SPC m s L~ Send the current line to the SQLi buffer and move to the next
    line and switch to it in =insert state=
- Added key binding (thanks to Michael Hauser-Raspe):
  ~SPC m b c~ connect to a SQLi buffer from your saved buffer list
- Added ~SPC m g~ prefix: =goto= (thanks to duianto)
- Added regional ~sqlfmt~ invocation, error handling, and formatting bindings
  (thanks to 0x6362)
**** Spell-checking
- Added spell checking transient state (thanks to Francesc Elies Henar)
- Update to flyspell-correct v0.5 (thanks to Boris Buliga)
- Update spell checking ts to flyspell-correct v0.5 (thanks to Bruno Tavares)
- Added key bindings (thanks to Kalle Lindqvist):
  - ~SPC S a b~ Add word to dict (buffer)
  - ~SPC S a g~ Add word to dict (global)
  - ~SPC S a s~ Add word to dict (session)
  Transient State:
  - ~SPC S . B~ Add word to dict (buffer)
  - ~SPC S . G~ Add word to dict (global)
  - ~SPC S . S~ Add word to dict (session)
- Added key bindings (thanks to John Stevenson):
  - ~SPC S s~ Correct word at point
  - Transient State: ~SPC S . s~ Correct word at point
- Added key binding:
  - ~SPC S r~ flyspell-region
  - Transient State: ~SPC S . r~ flyspell-region
**** Syntax-checking
- Key bindings:
  - ~SPC e e~ is now for triggering a syntax check, the old action
    (explain error around point) has been moved to ~SPC e x~.
  - Added ~SPC e y~ to copy error at cursor position into kill ring
    (thanks to Francsec Elies Henar)
- Rename function =add-flycheck-hook= to =enable-flycheck=
- Use correct error list faces when defining error levels with custom bitmaps
  (thanks to Alexander Miller)
- Fixed =goto-flycheck-error-list= (thanks to Thanh Vuong)
- Added lsp support for sqls
  - Added layer variable =sql-lsp-sqls-workspace-config-path= to setting workspace configuration
- Added layer variable =syntax-checking-auto-hide-tooltips= (thanks to Martin Sosic)
**** Swift
- Update Swift REPL key bindings (thanks to Elliot Bulmer)
**** Systemd
- Added support for syntax checking with =flycheck= (thanks to Steven Allen)
- Added support for lazy installation (thanks to Wieland Hoffmann)
- Added support for =journalctl-mode= (thanks to Benedikt Broich)
**** Terraform
- Added opt-in layer variable =terraform-fmt-on-save= to format buffers on save
  with =terraform fmt= (thanks to Harry Hull)
- Added support for =terraform-company= (thanks to Sylvain Benner)
- Added LSP support for terraform-lsp
**** Templates
- Fixed issue with templates layer ignoring =templates-private-directory=
  (thanks to Seong Yong-ju)
**** Themes
- Added support for more doom themes (thanks to Dela Anthonio, Igor Kupczyński,
  DonHugo69 and Alex)
- Added support for gruvbox theme variants (thanks to Dean Todevski)
- Remove zonokai-theme theme as it is unavailable (thanks to nickclasener)
- Updates to the spacemacs theme (thanks to Nasser Alshammari)
- Fixed the =base16-solarflare= mapping (thanks to Sebastian Nagel)
- Added support for kaolin themes (thanks to William Roe)
- Added support for eziam themes (thanks to Benno Fünfstück)
- Enabled italics in spacemacs theme (thanks to Sylvain Benner)
- Added support for =doom-dark+= theme (thanks to Ivan Yonchovski)
- Added support for =almost-mono-themes= (thanks to Kirill Chernyshov)
**** Visual
     - use the same window for =dap= log window and for compilation buffer.
***** Colors
- Multiple improvements (thanks to SteveJobzniak):
  - Added ability to set default rainbow-identifiers values
  - Improved resetting of rainbow-identifiers transient-state
  - Extended built-in theme list, and added better defaults
  - Major fix to actually render per-theme settings on switch
  - Faster method of redrawing buffer for transient state
  - Tuned defaults to work w. majority of light & dark themes
  - Better way of adding/refreshing themes
**** Themes Megapack
- Added =rebecca-theme= (thanks to Victor Borja)
- Added =white-sand-theme= (thanks to Swaroop C H)
- Added =exotica= theme (thanks to Bharat Joshi)
- Remove themes that were deleted from Melpa (thanks to Henrique Jung)
- Added =eziam-theme= and =kaolin-themes= (thanks to Sylvain Benner)
- Added =doom-themes= (thanks to Codruț Constantin Gușoi)
- Added =chocolate-theme= (thanks to Henrique Jung)
- Updated =doom-themes= list to reflect upstream
  (thanks to Dominic Pearson, Muneeb Shaikh)
- Added highly accessible =modus-themes= (thanks to Muneeb Shaikh)
- Added =doom-gruvbox-light= theme (thanks to John Stevenson)
- Removed obsolete =darkburn-theme= (thanks to Muneeb Shaikh)
**** Tmux
- Prevent =tmux-command= at GUI mode (thanks to Isaac Zeng)
- Fixed regression in tmux by setting keybindings using =use-package=
  (thanks to Aaron Jensen)
**** Transmission
- Key bindings (thanks to Arif Er):
  - ~H/L~ is to move torrent to the top/bottom of the queue.
  - ~J/K~ is to move torrent down/up the queue.
  - ~SPC m D~ is to remove and delete torrent at point.
  - ~SPC m m~ is to mark torrent(s) at point or in region.
  - ~SPC m S~ is to sort the torrents according to the column at point.
  - ~SPC m s l~ is to set label(s) for marked torrent(s).
  - ~SPC m t t~ is to toggle =transmission-turtle-mode=.
  - ~SPC m s D~ is to set days for =transmission-turtle-mode= to be active.
  - ~SPC m s S~ is to set speed limits for =transmission-turtle-mode=.
  - ~SPC m s T~ is to set time range for =transmission-turtle-mode to be active.
**** Treemacs
- =Treemacs= replaces =NeoTree= as the default sidebar
- Added missing ~SPC p t~ to =readme.org= (thanks to oo6)
- Remapped =winum-select-window-0-or-10= to =treemacs-select-window= so that
  ~C-x w 0~, ~SPC 0~ and ~M-0~ call the same command (thanks to duianto, Miciah)
- Loaded =treemacs-projectile= key binding ~C-c C-p p~ with Treemacs
  (thanks to duianto)
- Handle ~SPC p t~ when =projectile-project-root= is nil (thanks to Trapez
  Breen)
- Made sure treemacs' minor modes will be disabled when they are configured
  to be off.
- Add =tag= as an accepted value for option =treemacs-use-follow-mode=.
- Deprecated =treemacs-use-collapsed-directories=. Flattening directories should
  be controlled by directly setting =treemacs-collapse-dirs=.
- Fixed "width (un)locked" message appearing when treemacs is loaded.
- Add =persp-mode= integration (thanks to Seong Yong-ju)
- Fixed default sort order (thanks to Michael Peyton Jones)
- Deleted default values to track upstream behavior
  (thanks to Michael Peyton Jones)
- Removed obsolete options (thanks to Michael Peyton Jones)
- Finished =treemacs-persp= integration and made it opt-in. Using the layer
  variable: =treemacs-use-scope-type= with the possible values:
  ='Frames= (default) or ='Perspectives= (thanks to Alexander Miller)
- Added integration with =treemacs-icons-dired= package.
- Loaded =treemacs-icons-dired-mode= earlier (thanks to duianto)
**** Typescript
- Key bindings:
  - ~SPC m E e~ is for =tide-fix= which was originally added as ~SPC m r f~
    (thanks to Simon Altschuler)
  - ~SPC m E d~ to add =tslint-disable-next-line= at point
    (thanks to Daniel Perez Alvarez)
  - ~SPC m g g~ for =tide-jump-to-definition= (thanks to Roy Choo)
  - ~SPC m g t~ remapped to =spacemacs/typescript-jump-to-type-def= from
    =typescript/jump-to-type-def= (thanks to Roy Choo)
  - ~SPC m r i~ to organize imports (thanks to Stéphane Bisinger)
  - ~SPC m r f~ to rename file (thanks to Stéphane Bisinger)
- Call tsfmt with extension of current buffer for TSX formatting
  (thanks to Victor Andrée)
- Declare =tide-jump-to-definition= as async (thanks to Sylvain Benner)
- Added tide keybindings to tsx web mode (thanks to George Miller)
- Rewrite hooks for web-mode (thanks to Sylvain Benner)
- Created a derived mode for TSX files (thanks to Aaron Jensen)
- Fixed eldoc (thanks to Aaron Jensen)
- Isolate eldoc configuration (thanks to Sylvain Benner)
- /rename/ reworded to /refactor/ in =which-key= popup
  (thanks to Simon Altschuler)
- Added LSP support, which can be used by enabling the =lsp= layer and setting
  the =typescript= layer's =typescript-backend= variable to =lsp=
  (thanks to Ting Zhou and Sylvain Benner)
- Changed =company-minimum-prefix-length= from 0 to 2 to avoid spurious
  autocompletion (thanks to Andrea Moretti)
- Enabled snippets using yasnippet (thanks to Andrea Moretti)
- Enabled =smartparens-mode= (thanks to Andrea Moretti)
- Added =prettier= to error msg of =spacemacs/typescript-format=
  (thanks to Matt Kramer)
- Fixed jump handling with multiple backends (thanks to Aaron Jensen)
- Fixed =typescript/jump-to-type-def= for npm modules (thanks to Jam Risser)
- Added the same setup to tsx files as to ts files (thanks to Trapez Breen)
- Configured =emmet-mode= for =typescript-tsx-mode=
- Added a =typescript-linter= variable. Possible values: =eslint= and =tslint=
- Added a =typescript-lsp-linter= variable to allow for disabling =lsp= as a
  linter, when =lsp= is set as the backend (thanks to Thanh Vuong)
- Fix =tide= with =tsx= files (thanks to Aaron Jensen)
- Added =eslint_d= support (thanks to Seong Yong-ju)
- Added =tslint= support for =lsp= backend (thanks to Tommi Komulainen)
**** Vagrant
- Key bindings:
  - move key bindings prefix to ~SPC a V~ (thanks to Thomas de Beauchêne)
  - Move =vagrant-tramp-term= to ~SPC a V t~ (thanks to rakyi)
**** Version-control
- Key bindings:
  - Un-evilify =diff-mode= (thanks to Steven Allen)
  - Evilified the following modes (thanks to dvzubarev):
    - =log-view-mode=
    - =vc-dir-mode=
    - =vc-svn-log-view-mode=
    - =vc-git-log-view-mode=
    - =vc-hg-log-view-mode=
    - =vc-annotate-mode=
  - Added a new version-control prefix under ~SPC g v~ with the following
    bindings: (thanks to dvzubarev)
    - ~SPC g v =~ to open a hunk under the point in the diff buffer
    - ~SPC g v D~ to compare the entire working tree with head
    - ~SPC g v e~ to show diff against current head using ediff
    - ~SPC g v g~ to visually annotate the current file
    - ~SPC g v d~ to open the VC Directory buffer
    - ~SPC g v +~ to update the working copy
    - ~SPC g v i~ to register (add) into a version control system
    - ~SPC g v u~ to revert working copy to their repository contents
    - ~SPC g v l~ to list the change log
    - ~SPC g v L~ to list the change log for the current VC controlled tree
    - ~SPC g v v~ to do the next logical VC operation (=vc-next-action=)
    - ~SPC g v I~ to ignore file (=vc-ignore=)
    - ~SPC g v r~ to resolve conflicts in file
  - Define key bindings with leader key for vim editing style in =diff-mode=
    (thanks to miyabinomuratic)
  - Added smerge transient state diff key bindings (thanks to Wang):
    ~SPC g r <~ diff base/mine
    ~SPC g r =~ diff mine/other
    ~SPC g r >~ diff base/other
  - Added smerge transient state key bindings (thanks to duianto):
    ~SPC g r e >~ ediff
    ~SPC g r K >~ kill current
  - Added current and total conflicts to smerge transient state's hint
    (thanks to Miciah Dashiel Butler Masters)
  - Loaded ~SPC g v~ key bindings on Spacemacs startup (thanks to duianto)
- New packages:
  - =browse-at-remote= which replaces =github-browse-file=
  (thanks Eugene Yaremenko)
- Avoid loading all the diff packages (thanks to Sylvain Benner)
- Avoided installing unused diff packages (thanks to Andriy Kmit)
- Fixed error on =diff-hl-margin-mode= function being nil during startup
  (thanks to Voleking)
- Fixed =git-gutter+= refresh when a buffer is staged or unstaged in Magit
- Evilify the svn/git/hg mode-maps after their mode files be loaded
  (thanks to Lin Sun)

**** Vue
- Added a toggle state minified/full to the transient state (thanks to duianto)
**** Xclipboard
- Added Requirements documentation (thanks to Chris Glass)
- Added =cliphist= with the following bindings: (thanks to Hong Xu)
  - ~SPC x P~ paste item from history (cliphist must be enabled)
  - ~SPC x R~ rectangle paste item from history (cliphist must be enabled)
  - ~SPC x s~ select item from history (cliphist must be enabled)
- Added custom command config variable (thanks to lipengcheng)
**** Yaml
- Improvements:
  - Updated docs to include the =yaml-yamllint= flycheck checker
    (thanks to Nam Nguyen)
  - Add support for lsp server (thanks to Seong Yong-ju)
**** Ycmd
- Search for =compile_commands.json= in build sub-directory
  (thanks to Amos Bird and Eivind Fonn)
- Python3 compatibility fix for =global_conf.py= (thanks to Abdo Roig-Maranges)
- Added manual completion function (thanks to Nir Friedman)
- Remove warning for unset var; always fires (thanks to Nir Friedman)
- Added manual semantic completion function for company (thanks to Nir Friedman)
- Fixed searching for compilation DB in subdirectories
  (thanks to Alexander Dalshov)
**** Zig
- Added syntax highlighting (thanks to Michael Hauser-Raspe)
- Added support for lsp server (thanks to rbino)
*** Various improvements
- Lots of improvement with CI and documentation exporting
  (thanks to Eugene Yaremenko)
- New LAYERS.org format (thanks to Anton Latukha && Eugene Yaremenko)
- Various code and style improvements (thanks to bmag, Boris Buliga, duianto,
  Enze Chi, Eivind Fonn, Eugene Yaremenko, Fabien Dubosson, Kalle Lindqvist,
  Sylvain Benner, thanhvg, timor, yuhan0)
- Multiple unit test improvements (thanks to Codruț Constantin Gușoi, et2010 and
  Sylvain Benner)
- Various documentation improvements (thanks Aaron Jensen, Aaron Peckham, Aaron
  Renner, Adam Frey, Adam Kruszewski, ahanwadi, Aleksandr Argunov, Alexander
  Dalshov, Alexander Eberspächer, Alexander Iljin, Alexander Kjeldaas,
  Alexandros Kotzias, Andrew Grangaard, Andrew Vit, Andriy Senyshyn, Anton
  Chevychalov, Anton Latukha, Antonio Miranda, Anurag Sharma, Apromixately,
  Archenoth, Arjan Singh, Ather Sharif, Artur Juraszek, Benjamin Reynolds,
  Bernhard Schommer, Billy Wade, Brian Wignall, bmag, Boris Buliga, Boris Wong,
  Carl Lange, Cazim Hysi, Chase Adams, Christian Bäuerlein, Cibin Mathew,
  CL123123, Codruț Constantin Gușoi, Compro-Prasad, cormacc, Daniel Hodson,
  Daniel Le, Daniel Molina, Darkhan, David Florness, David Parrish, David Vo,
  davidpham87, Deepu Mohan Puthrote, Dela Anthonio, Diego Alvarez, Diego
  Berrocal, Dietrich Daroch, Dinesh Bhosale, Dominik Schrempf, Doug Beardsley,
  dubnde, duianto, eldios, EMayej, Eugene Yaremenko, Evan Klitzke, Evan
  Niessen-Derry, firemiles, Florian Bruhin, Fuqiao Xue, Gabriel Arrillaga,
  Garrett Johnson, Grant Shangreaux, Guido Kraemer, Henrique Jung, Henry Hirsch,
  Henry Marshall, hornuda, Hong Xu, Ilia Kurenkov, Ivan Fedorov, Ivan
  Kryvoruchko, J. Patrick Lanigan, Jaremy Creechley, Jason Axelson, Jesse Cooke,
  Jethro Shuwen Sun, JI Xiang, Jim Deville, Jody Frankowski, Joe Hillenbrand,
  John Eismeier, John Wood, Jon Tippens, Jonas Strømsodd, Jonathan Arnett,
  Jonathan Chen, Jonathan Gillett, Jonta, Josh Greenwood, Joshua Santos, Justin
  Stone, Kainalu Hagiwara, Kalle Lindqvist, Kechao Cai, Keith Simmons, Keith
  Wygant, Kenji Miyazaki ,Kevin Ji, Kristoffer Haugsbakk, lawrsp, Leo Joseph
  Buchignani III, liuchong, Lucius Hu, Luke Winship, Luke Worth, Marco Ieni,
  Marco Zucconelli, mark30247, Markus Bertheau, Martin Sosic, Max Beutelspacher,
  Max Deineko, Max Nordlund, Maximilian Wolff, Miciah Dashiel Butler Masters,
  mjkramer, Mikhail Yakutovich, Miloš Mošić, milserk, Muneeb Shaikh,
  nanashi0x74, Nasser Alshammari, Niko Felger, Nikolai Myllymäki, nikolaiam,
  Nicolas Forgerit, Oguz Serbetci, Olivier Verdier, Pancho Horrillo, Paul Milla,
  Paulo Schneider, Pawan Dubey, Paweł Siudak, Phil Pirozhkov, Philippe
  Bourdages, Piotr Grzesik, Rafi Khan, Rand01ph, rakyi, Raymond Wanyoike,
  Reverend Homer, Robby O'Connor, Robert Roland, Rhommel Lamas, Sam Pablo Kuper,
  Saulius Menkevičius, sduthil, Serghei Iakovlev, Sergio Ugalde, Shane Kilkelly,
  Sid Kapur, Som Poddar, Somelauw, Soobin Rho, sorawee, SteveJobzniak, Sunghyun
  Hwang, Sunlin7, Swaroop C H, Sylvain Benner, Szunti, Thijs Vermeir, Tianyi
  Wang, Tim Ruffing, Tim Stewart, timor, TinySong, Titov Andrey, Thomas de
  Beauchêne, Tomasz Cichocinski, Trey Merkley, tzhao11, Vincent Taing, Ullas
  Holla, Vlad Bokov, Vladimir Kochnev, weihua-lu, wenpin, Wieland Hoffmann,
  Witoslaw Koczewski, Xiang Ji, Yi Liu, Zach Latta, Zane Sterling, zer09, Zhige
  Xin)
**** Documentation and website
  - DOCUMENTATION.org:
    - Fixed the example for how to change the separator style
      (thanks to Trey Merkley)
  - README.md:
    - Fixed macOS documentation to install fonts (thanks to Sergio Morales)
    - Updated Windows section, suggest official Emacs (thanks to ghost-420)
    - Fixed dead link for creating a Spacemacs.desktop file with the Spacemacs icon (thanks to cpaulik)
  - private/local/README.md
    - Improved instructions on how to use private/local directory for packages
      (thanks to Daniel Nicolai)
  - layers/+lang/python/README.org
    - Corrected typo in python language server install command (thanks to Zach
      Pearson)
  - layers/+lang/php/README.org
    - Updated dap debugging manual to cover xdebug options which were changed
      in xdebug v3. Added a caveat regarding host address usage while debugging
      inside of docker container (thanks to Alexander Konotop)
*** Release notes summarized
  Thanks to: Abhishek(Compro) Prasad, Deepak Khidia, Enze Chi, Grant Shangreaux,
  Igor Almeida, Jiahao Jiang, Miciah Dashiel Butler Masters, Songpeng Zu, Ward
  Harris
