-*- mode: org -*- This file containes the change log for the next major version of Spacemacs. * Release 0.106.x ** 0.106.0 (no date) *** IMPORTANT: Breaking changes - =extensions= are deprecated as announced in previous releases, if you still have =extensions= directories you must rename them to =local= and move the contents of the =extensions.el= files to the =packages.el= files adding the keyword =:location local= to them in the package list. Refer to other layers for examples (for instance the =python= layer) - =-excluded-packages= variables are now deprecated as announced is previous releases, you must now use the keyword =:excluded t= of the package list, see the =vim-empty-lines= layer for example. - Key binding ~SPC :~ acting as M-x as been replaced by ~SPC SPC~. If you want to revert to the old ~SPC :~ key binding set the new variable =dotspacemacs-emacs-command-key= to ":". - Key binding ~SPC f e h~ is now ~SPC h SPC~ - Delete things key bindings are now more consistent using the ~d~ key, we had to move ~SPC w c~ and ~SPC w C~ to ~SPC w d~ and ~SPC w D~. - ~SPC j~ prefix has been modified to include =jump= commands: - =avy= commands are now behind the prefix ~SPC j~ for =jump=: - ~SPC j j~ to jump to a character in the buffer (works as an evil motion) - ~SPC j l~ to jump to a line with avy (works as an evil motion) - ~SPC j w~ to jump to a word in the current buffer (works as an evil motion) - the following key bindings have been moved: - ~SPC j j~ to split a line has been moved to ~SPC j n~ - ~SPC j h~ and ~SPC j l~ have been moved to ~SPC j 0~ and ~SPC j $~ respectively. - ~SPC J~ to split a string or sexp has been moved to ~SPC j s~ - All helm related key bindings under ~SPC h~ that are not about help have moved to different key bindings: - ~SPC h b~ for =helm-filetered-bookmarks~is now ~SPC f b~ - ~SPC h l~ for =helm-resume= is now ~SPC r l~ - ~SPC h L~ for =helm-locate-library= is now ~SPC f e l~ - Spacemacs layouts scope has been changed, now ~SPC b b~ lists the buffers of the current layout, use ~SPC B b~ to list all the opened buffers. - =org-indent= is now turned off by default - Micro states are now called transient states - Spacemacs layouts and workspaces transient states now exit when a layout or workspace is selected, use ~C-0~ ... ~C-9~ to switch to a layout and keep the transient state open. *** Hot new features - Add lazy installation of layers based on =auto-mode-alist=. - Support for Ivy, add the =ivy= layer to your dotfile and restart to replace =Helm= by =Ivy= (thanks to justbur and contributors) - New micro states powered by =Hydra=. Micro states are now called transient states (thanks to justbur) - Global access to all available REPLs with ~SPC a '~ and `SPC m '~ (thanks to AlejandroCatalina and TheBB) - New debugging tools, press ~SPC q d~ to restart Emacs in debug mode setting =--debug-init=, press ~SPC q D~ to restart Emacs with Spacemacs disabled and with a list of selected packages to load. (thanks to StreakyCobra) - Improved =emacs= and =hybrid= editing styles which should fix inconsistencies *** New Layers - asm in =+lang= (thanks to thudo) - bibtex in =+lang= (thanks to JP-Ellis) - csv in =+lang= (thanks to jb55) - imenu-list in =+tools= (thanks to bmag) - pdf-tools in =+tools= (thanks to Andre0991) - plantuml in =+lang= (thanks to robbyoconnor) - rebox in =+tools= (thanks to choppsv1) - ivy in =completion= (thanks to justbur) - helm in =completion= (moved from spacemacs-base) (thanks to justbur) - systemd in =+config-files= (thanks to StreakyCobra) *** Dotfile changes - The editing style value can now be a list. Like layers the keyword =:variables= allows to define some variables to modify the editing style. The following variables are available for the hybrid style: - =hybrid-mode-enable-evilified-state=, if non nil then buffer are evilified, - =hybrid-mode-enable-hjkl-bindings=, if non nil navigation on ~hjkl~ keys is enabled (for instance in =helm= buffers), - =hybrid-mode-default-state=, the default state when opening a new buffer, by default it is =normal=. - The variable =dotspacemacs-command-key= has been renamed to =dotspacemacs-emacs-command-key= (the old name is still valid though). - New variable =dotspacemacs-emacs-command-key= which is the key to press after the leader key to execute =M-x=. - New variable =dotspacemacs-ex-substitute-global=, if non-nil then the behavior of the =g= flag in =:subsitute= ex-command is inverted. Default value is nil (thanks to fbergroth) - New variable =dotspacemacs-smart-closing-parenthesis=. If non-nil pressing the closing parenthesis ~)~ key in insert mode passes over any automatically added closing parenthesis, bracket, quote, etc... This can be temporary disabled by pressing ~C-q~ before ~)~ (thanks to StreakyCobra) - New values for =dotspacemacs-startup-lists=: =agenda= and =todos= (thanks to tonyday567) *** Distribution layer changes - Add =evil-ediff= package (thanks to justbur) - Add =evil-visual-mark-mode= package (thanks to nixmaniack) - Add =link-hint= package: - ~SPC x o~ to use avy to select a link in the frame and open it - ~SPC x O~ to use avy to select multiple links in the frame and open them (thanks to StreakyCobra) - Add =uuidgen= package: - ~SPC i U 1~ to insert UUIDv1 (use universal argument to insert with CID format) - ~SPC i U 4~ to insert UUIDv4 (use universal argument to insert with CID format) - ~SPC i U U~ to insert UUIDv4 (use universal argument to insert with CID format) - Remove =evil-jumper= package, it is now integrated in =evil= (thanks to justbur) - Move =unimpaired= layer to =spacemacs= layer - ~C-i~ in GUI now execute =evil-jump-forward= (thanks to justbur) - New key bindings to restart Emacs and restore Spacemacs layouts: - ~SPC q r~ to restart Emacs and restore layouts - ~SPC q R~ to restart Emacs without restoring layouts (thanks to StreakyCobra) - New key binding ~SPC b N~ and evil ex-command =:enew= to open a new empty buffer (thanks to balajisivaraman) - New key binding ~SPC f h~ to open a binary file with ~hexl~ (thanks to TheBB) - New key binding ~SPC p F~ to find file around point in the project context (thanks to thudo) - Change key binding ~SPC p T~ to =projectile-test-project= (thanks to joehillen) - New key binding ~SPC p %~ to replace in project using a regular expression (thanks to d12frosted) - New Spacemacs layouts key bindings: - ~SPC b a~ to add a buffer to the current layout - ~SPC b r~ to remove a buffer from the current layout - ~SPC B b~ to list all the buffers in all layouts (thanks to CestDiego) - Command prefix ~SPC j~ is now also for =jumping=, introduced key bindings are: - ~SPC j 0~ to go to the beginning of line (and set a mark at the previous location in the line) - ~SPC j $~ to go to the end of line (and set a mark at the previous location in the line) - ~SPC j b~ to undo a jump (go back to previous location) - ~SPC j d~ to jump to a listing of the current directory - ~SPC j D~ to jump to a listing of the current directory (other window) - ~SPC j f~ to jump to the definition of the function around point - ~SPC j i~ to jump to a definition in buffer (imenu) - ~SPC j j~ to jump to a character in the buffer (works as an evil motion) - ~SPC j J~ to jump to a suite of two characters in the buffer (works as an evil motion) - ~SPC j I~ to jump to a definition in any buffer (imenu) - ~SPC j k~ to jump to next line and indent it using auto-indent rules - ~SPC j l~ to jump to a line with avy (works as an evil motion) - ~SPC j n~ to split the current line at point, insert a new line and auto-indent - ~SPC j s~ to split a quoted string or s-expression in place - ~SPC j S~ to split a quoted string or s-expression, insert a new line and auto-indent - ~SPC j u~ to jump to a URL in the current buffer - ~SPC j v~ to jump to the definition/declaration of the variable around point - ~SPC j w~ to jump to a word in the current buffer (works as an evil motion) (thanks to justbur) - New key bindings under ~SPC h~: - ~SPC h .~ to search for dotfile variables - ~SPC h f~ to search for FAQ - ~SPC h l~ to search for layers - ~SPC h p~ to search for packages - ~SPC h r~ to search for documentation files - ~SPC h t~ to search for toggles (thanks to justbur) - New text justification key bindings: - ~SPC x j c~ to set the justification to center - ~SPC x j f~ to set the justification to full - ~SPC x j l~ to set the justification to left - ~SPC x j n~ to set the justification to none - ~SPC x j r~ to set the justification to right (thanks to StreakyCobra) - New key binding ~SPC w f~ to toggle =follow= mode (thanks to JAremko) - New key binding ~SPC w R~ to rotate windows backward (thanks to Dominionized) - New key binding ~SPC x a \~ to align backslashes (thanks to nocash) - New key binding ~SPC h d d~ for =helm-apropos= (thanks to StreakyCobra) - New key bindings ~[ f~ and ~] f~ to go to the next or previous file in current directory (thanks to fbergroth) - New key binding ~gr~ in =helm-ag= buffers to update saved results (thanks to darkfeline) - New key binding ~SPC f b~ for =bookmark-jump= (thanks to darkfeline) - ~ESC~ now quits =help= buffers (thanks to olivierverdier) - ~=~ can now be used to increase transparency in the transparency transient state (thanks to sooheon) - Add ~p~ for previous match to =auto-highlight-symbol= transient state (thanks to microamp) - Add numerical prefix argument support for ~G~ in =doc-view= to go to a page (thansk to TheBB) - Add =smartparens= to =comint-mode= (thanks to CestDiego) - Remove ~ESC~ re binding in visual state (thanks to sooheon) - Fix =rainbow-delimiter-mode= in various modes (thanks to StreakyCobra) - Fix =neotree= window number assigment (thanks to bmag) - Fix =neotree= losing track of its window when changing workspaces or layouts (thanks to bmag) - Fix ~SPC s e~ for emacs style users, the binding now call =iedit= instead of =evil-iedit-state= (thanks to AlejandroCatalina) - Fix ~SPC s c~ to work with =evil-search-module= (thanks to StreakyCobra) - Fix move up and down selected text in Vim style. - Fix =dotspacemacs-remap-Y-to-y$= which had no effect (thanks to TheBB) - Fix usage of deprecated function =avy--with-avy-keys= (thanks to NJBS) - Move =org= base configuration from the =org= layer to the =spacemacs= distribution (thanks to d12frosted) - Various =google-translate= fixes (thanks to TheBB) - Prevent =auto-highlight-symbol= from setting up its own default map (thanks to bling) - Delay =vi-tilde-fringe= loading after display init, fixes missing tildes when using Emacs daemon (thanks to StreakyCobra) - Start to partition =spacemacs= layers into sub-layers (thanks to justbur) *** Layer changes **** Ansible - Add =jinja2-mode= package - Add support for =host_vars= and =group_vars= files (thanks to nixmaniack) - Change key binding ~SPC m a ?~ to ~SPC m h a~ **** Auto-completion - New layer variable =auto-completion-complete-with-key-sequence-delay= to set the delay in second between the keys of sequence used to select the auto-completion candidate (thanks to MadAnd) - Enable ~C-p~ (hippie-expand) only in vim style (thanks to nixmaniack) - Remap =evil-complete-previous= to =hippie-expand= (thanks to justbur) **** Bépo - Treat emacs-state the same as insert-state (thanks to StreakyCobra) - Add support for =org-agenda= (thanks to StreakyCobra) - Fix =elfeed= remapping (thanks to StreakyCobra) - Fix =evil-magit= remapping (thanks to StreakyCobra) - Fix =flycheck-error-list= remapping (thanks to StreakyCobra) **** Clojure - Add =clojure-snippets= package (thanks to AlejandroCatalina) - New key binding ~SPC m s o~ for switching between REPL connections (thanks to mahinshaw) - New key binding ~SPC m h a~ for cider apropos (thanks to birdspider) - Remove indentation rules (thanks to ernestas) **** Common-Lisp - Add =common-lisp-snippets= package (thanks to thudo) - Add support for =auto-highlight-symbol= (thanks to AlejandroCatalina) **** CSharp - New key bindings - ~SPC m g c~ to go to member in current file - ~SPC m g I~ to find implementations using ido - ~SPC m g U~ to find usages of symbol under cursor using ido - ~SPC m r M~ to rename symbol under cursor interactively (thanks to retran) **** Elixir - Remove =ruby-end-mode= and use =smartparens= instead (thanks to mmainz) **** Elfeed - New key binding ~o~ to open links with =ace-jump= (thanks to nixmaniack) **** ERC - New layer variable =erc-server-list= (thanks to jhenahan) - Enable lazy loading. **** Extra languages - Add =thrift= package (thanks to secwang) - Add =faust-mode= package (thanks to magnetophon) - Make =matlab-mode= run =prog-mode-hook= (thanks to TheBB) **** Games - Add package =typit=. **** Geolocation - Rewrite of the layer, see its =README.org= for more info (thanks to usharf and declanqian) **** Git - New key binding ~SPC g A~ for =magit-cherry-pick-popup= (thanks to robbyoconnor) - New key binding ~SPC g r~ for =magit-rebase-popup= (thanks to C089) - New key binding ~SPC g x~ for =magit-reset-popup= (thanks to magthe) **** Github - Add support for =git-link= in =git-timemachine=, this allow to copy the SHA-1 or selected lines links for the current commit (thanks to dcluna) **** Go - New layer variable =go-tab-width= (thanks to microamp) - Improve indentation (thanks to bogdanteleaga) - Show function signatures (thanks to carlosgaldino) **** Gtags - Remove =helm-gtags= lighter from mode line (thanks to NJBS) **** Haskell - New =helm-hoogle= package under ~SPC m h f~ (thanks to jb55) - Add all =haskell-mode= key bindings to =literate-haskell-mode= (thanks to jb55) **** Helm - Rename action =Add layer= to =Install layer= in =helm-spacemacs-help= (thanks to CestDiego) - Fix =helm-source-header= face not updating when changing themes (thanks to ghoot) - Enable fuzzy matching in all Helm sources (thanks to bling) **** Html - Use built-in =web-mode= pairing (disable =smartparens=) (thanks to TheBB) - Enable =emmet-mode= in sass and scss modes (thanks to utkarshkukreti) **** Idris - New key binding ~SPC m l~ for extracting lemma (thanks to bixuanzju) - New key binding ~SPC m c~ for =idris-case-dwim= (thanks to bixuanzju) - Register Idris REPL for ~SPC a '~ (thanks to bixuanzju) - Add basic auto-completion (thanks to bixuanzju) - Add prefix command names (thanks to bixuanzju) **** Jabber - Add support for evilified key bindings (thanks to mssun) **** Javascript - Add REPL via =skewer-mode= and =livid-mode= (thanks to dcluna) **** LaTeX - New key bindings for fill and uncomment: - ~SPC m %~ to comment or uncomment a paragraph - ~SPC m ;~ to comment or uncomment a region - ~SPC m f e~ to fill LaTeX environment - ~SPC m f p~ to fill LaTeX paragraph - ~SPC m f r~ to fill LaTeX region - ~SPC m f s~ to fill LaTeX section (thanks to kccai) - New key binding ~SPC m a~ for =TeX-command-run-all= (thanks to kccai) **** Markdown - New key binding ~SPC m c P~ to live preview in Emacs' built-in browser (thanks to lunaryorn) **** mu4e - Add =mu4e-maildirs-extension= package (thanks to choppsv1) - Add =mu4-alert= package (thanks to zakkak) - New key bindings: - ~J~ to go to next unread thread marking other mail read on the way - ~C-j~ to go to next header - ~C-k~ to go to previoys header (thanks to myrjola) - Enable =org-mu4e= (thanks to choppsv1) - Use =helm--completing-read-default= (thanks to jeizsm) - Improve set account by "to" field (thanks to sorpaas) **** Org - Add support for =org-babel= - New key bindings for =org-agenda=: - ~RET~ for =org-agenda-goto= - ~M-RET~ for =org-agenda-show-and-scroll-up= - ~SPC m a~ for =org-agenda= - ~SPC m d~ for =org-agenda-deadline= - ~SPC m s~ for =org-agenda-schedule= - ~SPC m f~ for =org-agenda-set-effort= - ~SPC m P~ for =org-agenda-set-property= - ~SPC m :~ for =org-agenda-set-tags= - ~SPC m I~ for =org-agenda-clock-in= - ~SPC m O~ for =org-agenda-clock-out= - ~SPC m q~ for =org-agenda-clock-cancel= - ~SPC m q~ for =org-agenda-refile= - New key for bindings for =org-calendar=: - ~M-l~ One day forward - ~M-h~ One day backward - ~M-j~ One week forward - ~M-k~ One week backward - ~M-L~ One month forward - ~M-H~ One month backward - ~M-J~ One year forward - ~M-K~ One year backward - =org-indent= is now turned off by default because of the numerous glitches (thanks to TheBB) - Set =org-imenu-depth= to 8 (thanks to justbur) - Follow the confirm and abort conventions (thanks to myrjola) **** OSX - Support pasting text with ~s-v~ in terminals (thanks to lyallcooper) **** Puppet - Use =ruby-mode= for Puppetfile support (thanks to nwolfe) **** Purescript - Add package =flycheck-purescript= (thanks to diogob) **** Python - Add =live-py-mode= package (thanks to cpaulik) - Add support for =org-babel= - New key bindings to manage virtual environments: - ~SPC m V a~ to activate a virtual environment in any directory - ~SPC m V d~ to deactivate the active virtual environment - ~SPC m V w~ to work on virtual environment in ~WORKON_HOME~ (thanks to cpaulik) - New key binding ~SPC m g b~ for =anaconda-mode-go-back= (thanks to jluttine) - Fix =pylookup= key binding ~SPC m h H~ (thanks to darkfeline) - Make =pylookup= use std =completing-read= function (thanks to darkfeline) - Enable lazy loading of =py-yapf=. **** Restclient - Add =ob-http= package. - New key binding ~SPC m y~ to copy the query around point as a =curl= command (thanks to d1egoaz) **** Ruby - Add =rake= package with key bindings: - ~SPC m k k~ to runs rake - ~SPC m k r~ to re-runs the last rake task - ~SPC m k R~ to regenerates the rake cache - ~SPC m k f~ to finds definition of a rake task (thansk to asok) - New =rspec= key binding ~SPC m t ~~ for =rspec-toggle-spec-and-target-find-example= (thanks to asok) - New =rspec= key binding ~SPC m t TAB~ for =rspec-toggle-spec-and-target= (thanks to asok) - New key binding ~SPC b o~ to run bundle open (thanks to asok) - Add =popwin= configuration to =*rake-compilation*= (thanks to nixmaniack) - Fix =chruby= configuration to find out the ruby version to use (thanks to asok) **** Rust - Remove layer variable =rust-enable-racer=, now =racer= is always used (thanks to fbergroth) - Remove package =company-racer= since =racer= works with default =company= backends (thanks to fbergroth) - Remove obsolete package =rustfmt= which has been integrated into =rust-mode= (thanks to fbergroth) - Remove =racer= lighter in the mode line (thanks to NJBS) - New layer variable =rust-enable-rustfmt-on-save= (thanks to isphinx) - New package =rustfmt= with new key binding ~SPC m =~ to format the buffer (thanks to isphinx) - New key binding ~SPC m c f~ to format all project files with =rustfmt= (thanks to dmit) - Add support for =Cargo.lock= and =.cargo/config= files for =toml-mode= (thanks to Stebalien) **** Scala - New layer variable =scala-use-unicode-arrows= to replace ASCII arrows with unicode ones (thanks to moonranger) - Enable lazy loading of =sbt-mode=. **** Shell - New =eshell-z= package (thanks to CestDiego) - New key binding ~SPC p '~ for =projectile-shell-pop= (thanks to StreakyCobra) - ~C-d~ is now bound to =eshell-delchar-or-maybe-eof= which checks if there is a char after the point. If so, it performs the normal delete-char, otherwise if quit eshell (thanks to microamp) - Add support for the universal prefix argument to open a shell/term buffer in the current window instead of a new window (i.e. ~SPC u SPC '~) - Fix first =eshell= with no color (thanks to TheBB) - Enable =shell= language for =org-babel=. - Disable =global-hl-line-mode= in =shell-like= buffers (thanks to TheBB) **** Shell-scripts - Add =company-shell= package (thanks to joehillen) - Enable =flycheck= in =sh-mode= (thanks to fbergroth) - New key binding ~SPC m \~ for =sh-backslash-region= to add a backslash at end of lines (thanks to fbergroth) **** Spotify - Enable lazy loading **** Syntax-checking - New key binding ~SPC e L~ to open the errors buffer and switch to it. - Improve =flycheck= loading process (thanks to TheBB) - Enable lazy loading of =flycheck=. **** Typescript - Rewrite of the layer, see its =README.org= for more info (thanks to JAremko) - Add typescript format (thanks to JAremko) **** Vim-unimpaired - Keep the point at the same location when calling =evil-unimpaired/insert-space-above= and =evil-unimpaired/insert-space-below= (thanks to jschaf) - New key bindings ~] q~ and ~[ q~ for =spacemacs/next-error= and =spacemacs/previous-error= (thanks to bling) *** Core Changes - Move bootstrap packages from =core-spacemacs.el= to a new layer called =spacemacs-bootstrap=. - New minor mode =space-doc-mode= to improve org files readability (thanks to JAremko) - New functions =configuration-layer/remove-layer= and =configuration-layer/remove-layers=. - New function =spacemacs/describe-package= giving useful information on a package in the Spacemacs layers context - New package keyword =:toggle= which can be a symbol or a list. A package is considered to be used if the toggle evaluates to non nil. By default =:toggle= is =t=. - New value =bootstrap= for package =:step= keyword, it is used for bootstrap packages. - New value =site= for package =:location= keyword, a site package is a package installed on the host by a third party (ie. =mu4e= which is installed by =mu=) - New documentation formatting tool =doc-fmt= (thanks to JAremko) - Display more information about the number of loaded packages in the home buffer: - =e= elpa - =r= recipe - =l= local - =b= built-in - Improve =spacemacs|diminish= function (thanks to TheBB) *** Other fixes and improvements - Fix all documentation links on GitHub (thanks to JAremko) - Typos and documentation improvements (thanks to adrsta, andreas-h, balajisivaraman, cpaulik, johankj, microamp, pablooliveira, robert-m-johnson, TheBB, StreakyCobra, voidlily, xiaohanyu, xfq, zifeo) - Other contributions (thanks to hujianxin, nixmaniack) *** Core team members - Sylvain Benner (syl20bnr) - Eivind Fonn (TheBB) - Fabien Dubosson (StreakyCobra) - Justin Burkett (justbur)