spacemacs/CHANGELOG.next

373 lines
18 KiB
Org Mode

-*- 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
- =hybrid-mode= implementation has been reworked and simplified, if you
use =hybrid-mode= please check the [[https://github.com/syl20bnr/spacemacs/wiki/Hybrid-Editing-Style-Changes][wiki page]] to migrate your configuration.
- =extensions= are deprecated as announced in previous releases, if you still
have =extensions= directories you must rename them to =local= and move
the contents of the =extensions.el= files to the =packages.el= files adding
the keyword =:location local= to them in the package list. Refer to other
layers for examples (for instance the =python= layer)
- =<package>-excluded-packages= variables are now deprecated as announced is
previous releases, you must now use the keyword =:excluded t= of the package
list, see the =vim-empty-lines= layer for example.
- Key binding ~SPC :~ acting as M-x as been replaced by ~SPC SPC~.
If you want to revert to the old ~SPC :~ key binding set the new
variable =dotspacemacs-emacs-command-key= to ":".
- Key binding ~SPC f e h~ is now ~SPC h SPC~
- Delete things key bindings are now more consistent using the ~d~ key, we
had to move ~SPC w c~ and ~SPC w C~ to ~SPC w d~ and ~SPC w D~.
- ~SPC j~ prefix has been modified to include =jump= commands:
- =avy= commands are now behind the prefix ~SPC j~ for =jump=:
- ~SPC j j~ to jump to a character in the buffer (works as an evil motion)
- ~SPC j l~ to jump to a line with avy (works as an evil motion)
- ~SPC j w~ to jump to a word in the current buffer (works as an evil motion)
- the following key bindings have been moved:
- ~SPC j j~ to split a line has been moved to ~SPC j n~
- ~SPC j h~ and ~SPC j l~ have been moved to ~SPC j 0~ and ~SPC j $~
respectively.
- ~SPC J~ to split a string or sexp has been moved to ~SPC j s~
- All helm related key bindings under ~SPC h~ that are not about help have
moved to different key bindings:
- ~SPC h b~ for =helm-filetered-bookmarks~is now ~SPC f b~
- ~SPC h l~ for =helm-resume= is now ~SPC r l~
- ~SPC h L~ for =helm-locate-library= is now ~SPC f e l~
- Spacemacs layouts scope has been changed, now ~SPC b b~ lists the buffers of
the current layout, use ~SPC B b~ to list all the opened buffers.
- =org-indent= is now turned off by default
- Micro states are now called transient states
- Spacemacs layouts and workspaces transient states now exit when a layout or
workspace is selected, use ~C-0~ ... ~C-9~ to switch to a layout and keep
the transient state open.
*** Hot new features
- Add lazy installation of layers based on =auto-mode-alist=.
- Support for Ivy, add the =spacemacs-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
state (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)
*** New Layers
- asm in =+lang= (thanks to thudo)
- csv in =+lang= (thanks to jb55)
- pdf-tools in =+tools= (thanks to Andre0991)
- plantuml in =+lang= (thanks to robbyoconnor)
- spacemacs-ivy in =completion= (thanks to justbur)
- spacemacs-helm in =completion= (moved from spacemacs-base) (thanks to justbur)
- systemd in =+config-files= (thanks to StreakyCobra)
*** Dotfile changes
- 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 =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)
- 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 jump to a bookmark
- ~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 undo a jump (go back to previous location)
- ~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 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)
- ~ESC~ now quits =help= buffers (thanks to olivierverdier)
- 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 ~SPC s e~ for emacs style users, the binding now call =iedit= instead of =evil-iedit-state= (thanks to AlejandroCatalina)
- Fix usage of deprecated function =avy--with-avy-keys= (thanks to NJBS)
- Various =google-translate= fixes (thanks to TheBB)
- Simplify =hybrid-mode= implementation (thanks to justbur)
- 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
- 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)
**** Extra languages
- Add =thrift= package (thanks to secwang)
- Add =faust-mode= package (thanks to magnetophon)
**** 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)
**** Go
- Improve indentation (thanks to bogdanteleaga)
- Show function signatures (thanks to carlosgaldino)
**** 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)
**** Javascript
- New layer variable =javascript-disable-tern-port-files=, when non nil
tern port files are not created. Default value is nil. (thanks to mijoharas)
- 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)
**** 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
- 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)
**** Python
- Add =live-py-mode= package (thanks to cpaulik)
- 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)
**** Restclient
- 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)
- 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)
**** Scala
- New layer variable =scala-use-unicode-arrows= to replace ASCII arrows
with unicode ones (thanks to moonranger)
**** 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)
- 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)
**** Syntax-checking
- New key binding ~SPC e L~ to open the errors buffer and switch to it.
- Improve =flycheck= loading process (thanks to TheBB)
**** 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
- Split =packages.el= files into =packages.el=, =packages-config.el= and =packages-funcs.el= files
- 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 =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=)
- Improve =spacemacs|diminish= function (thanks to TheBB)
*** Other fixes and improvements
- Typos and documentation improvements (thanks to adrsta, andreas-h,
balajisivaraman, cpaulik, johankj, TheBB, StreakyCobra, xfq)
*** Core team members
- Sylvain Benner (syl20bnr)
- Eivind Fonn (TheBB)
- Fabien Dubosson (StreakyCobra)
- Justin Burkett (justbur)