42 KiB
Changelog
- Unreleased (develop)
- 2.0.6 (Oct 05, 2017)
- 2.0.5 (Sep 03, 2017)
- 2.0.4 (Jul 14, 2017)
- 2.0.3 (Jun 11, 2017)
- 2.0.2 (May 13, 2017)
- 2.0.1 (Apr 8, 2017)
- 2.0.0 (Jan 17, 2017)
- Unreleased (develop)
- 2.0.6 (Oct 05, 2017)
- 2.0.5 (Sep 03, 2017)
- 2.0.4 (Jul 14, 2017)
- 2.0.3 (Jun 11, 2017)
- 2.0.2 (May 13, 2017)
- 2.0.1 (Apr 8, 2017)
- 2.0.0 (Jan 17, 2017)
Unreleased (develop)
2.0.6 (Oct 05, 2017)
-
Module changes:
- Add
lang/ledger - Add
ui/vi-tilde-fringe– used to be incore-ui; indicates beyond-EOB, using tildes in the fringe (inspired by vim). - Add
feature/services– used to betools/prodigy. Adds a way of managing external processes and services. - Add
tools/make– for running project Makefile commands from Emacs. - Add
tools/imenu– adds a sidebar for imenu (imenu-list), and a way of jumping to imenu entries across all open buffers (imenu-anywhere). - Move
feature/hydraintocore-keybinds. - Rename
feature/debugtofeature/debugger(and disabled it by default; it is currently unstable and needs some work). - Remove
org/org-notebook. It was unused and too small to warrant its own module. Useful tidbits were merged intoorg/org.
- Add
-
general-
Makefile- Fix
make updateto work even if Doom is installed somewhere other than\~/.emacs.d(see #190). - Removed colons from makefile task target names (like
compile:core); replaced them with dashses, e.g.compile-core. Colons broke compatibility with certain versions of make.
- Fix
-
autoload- New library:
menu.el– allows context-sensitive and customizable fuzzy-searchable menus; this was written to replace long lists of major-mode-local key bindings, like refactoring and code building commands. This replacesfeature/eval's build task system. editor.elFix old scratch buffer commands and renamed them:doom/open-scratch-bufferanddoom/open-project-scratch-buffer. The former opens a temporary, transient scratch buffer, the latter opens a permanent one tied to the current project, kept indoom-scratch-files-dir.window.elChangeddoom-resize-windowto accept two more arguments,WINDOWandFORCE-P:doom-resize-window WINDOW NEW-SIZE &optional HORIZONTAL FORCE-P. IfFORCE-Pis non-nil, this function will resize a window regardless ofwindow-size-fixed.
- New library:
core-keybindsAdd newdef-hydra!alias macro fordefhydra(for consistency, and in case we want to wrap it later).-
core-projectsRedesigndef-project-mode!for efficiency, and:- The
:init FORMproperty is now:on-load FORM. - Three new properties:
:on-enter FORM,:on-exit FORMand:add-hooks LIST.
- The
-
core-popups-
Added two new popup properties:
:staticIf non-nil, treat this popup like a permanent window, making it impervious to automatic closing and being tracked in popup history. This is excellent for semi-permanent popups, like sidebars (think Neotree or imenu-list).:autofitIf non-nil, this popup will resize to fit its buffer contents. This only works with popups where the buffer content is immediately available, and not for, say, buffers tied to async processes.
doom-popup-bufferanddoom-popup-fileno longer take a variadic argument. Their signature is nowdoom-popup-buffer buffer plist &optional extend-panddoom-popup-file file plist &optional extend-p, whereEXTEND-Pwill causePLISTto extend from the base rule for that buffer.- Rename
doom-popup-proptodoom-popup-property. - Add support for moving popup windows. See the
doom/popup-move-*commands. There are used by+evil/window-move-*, which provides universal support for moving windows. - Add command:
doom/popup-raise, for promoting a popup into a regular window. - Add helper macro:
save-popup! BODY– hides the popups before running BODY. - Fix
doom/popup-toggleandsave-popups!killing popups with an:autokillproperty.
-
-
-
featurehydraDisplay a separator on the bottom of hydra windows for contrast.evalBuild-task management has been removed fromfeature/evalin favor ofdef-menu!.
-
ui-
doom-dashboard- Fix horizontal centering discrepancies caused by multiple visible dashboards in windows/frames with different sizes (see #192). Still doesn't address vertical centering.
- Fix dashboard's default-directory not changing to the last open project when switched to.
doom-modelineAdd a new style to+doom-modeline-buffer-file-name-style:relative-from-project, which displays on the buffer's path relative to (and including) the project.hl-todoAdd face-based detection for commented regions, so hl-todo can work in modes with no/poor syntax-table support.
-
-
tools-
neotree- Fix neotree shrinking by 1 when vertical splits were closed.
- Fix Neotree popup rule not taking
neo-window-widthandneo-window-positioninto account.
termRenamed commands for consistency (to+term/open,+term/open-popupand+term/open-popup-in-project).eshellRenamed commands for consistency (to+eshell/open,+eshell/open-popupand+eshell/open-workspace).
-
-
langrubyAdd rake support. See therakecommand.webOnly install company-web if:completion companyis enabled.-
javascript- Add eslint_d and eslint_d-fix detection and support.
./node_modules/.binis now added toexec-pathin NPM project buffers.
haskellThere is no longer a 'default' implementation for Haskell. The+interoand/or+dantemodule flags must be specified in init.el.javaMeghanada is no longer the 'default' implementation for Java. The+meghanadaand/or+eclimmodule flags must be specified in init.el.
-
org- If a table is under point when
+org/toggle-foldis invoked, the table is realigned. - Fix the incorrect version of org being loaded (site, instead of ELPA) by
pushing it up further in the
load-path. - Fix
+org/insert-itemnot jumping over sublists to append a new list item.
- If a table is under point when
2.0.5 (Sep 03, 2017)
-
doom- Added new module:
tools/rgb, with tools for dealing with colors (thanks to bandresen) - Added new module:
tools/prodigy, with tools for managing external services (thanks to bandresen) - Added new module:
feature/hydra, offers an extra and customizable layer of modal keybinds (thanks to bandresen) - Added two new core-lib helpers for macros:
doom-enlistanddoom-unquote. - Switch to
doom-fallback-bufferafter usingdoom/kill-all-buffers(or:killall!). make doctornow does font detection and will complain when fonts are missing.- When switching to a new project, a new workspace is spawned and a fuzzy find-file prompt is opened. However, a buffer from the previous workspace would linger on screen and the scratch buffer would CD to HOME, rather than the project root. This is fixed now.
- Added module flags to the
doom!macro in init.el, and modified thefeaturep!macro so that it can be used to detect these flags from within modules. It is up to modules how to interpret them. More information in 0b7b880. - Fix projectile-find-file not respecting
default-directory(caused by changes upstream). - Rewrote, revised and expanded module documentation, and created a wiki with more information.
- Removed the
:Lflag frommap!and replaced it with a:localproperty. - Added new function:
doom|disable-vi-tilde-fringefor turning off vi-tilde-fringe in select buffers. - Added support for relative line numbers (see
doom-line-numbers-style), using nlinum-relative on Emacs <26, and display-line-numbers on Emacs 26+.
- Added new module:
-
feature-
file-templatesAdded a file template for:- *.org files
- Module README.org files.
-
jump- Added documentation for
:jumpsetting, describing the three properties it supports (:definition,:referencesand:documentation). -
Rewrote
+jump/onlineto:- Use the current selection, if active, or prompt for a query otherwise (with the thing at point as the initial input).
- Prompts for the provider (search engine) on first use, and reuses the last provider on consecutive uses. If the universal argument is supplied, force
+jump/onlineto prompt for the provider anyway.
- Added documentation for
workspacesFix interactive renaming of workspaces, as well as the ability to save and load workspaces from files (see #200).
-
-
completion- Added all-the-icons support to
ivy-switch-bufferand+ivy/switch-workspace-buffer. Enable this with(setq +ivy-buffer-icons t).
- Added all-the-icons support to
-
ui- rainbow-mode is no longer activated on
prog-mode-hook. -
doom-modeline doom-dashboardFixed "Load last session" button on dashboard.
- rainbow-mode is no longer activated on
-
tools -
langccThe advise functionc-lineup-arglistwas missing, and has now been reimplemented.haskellWith module flags implemented, Intero support is now available to lang/haskell and is now the default. Dante support is still available with the+danteflag.javaNow auto-installs meghanda-server on first use, and fixed code-completion in java buffers.
-
org- Fixed vanilla C-j/C-k bindings overshadowing custom window navigation bindings.
- Added C-[hjkl] keybindings in insert mode for org table navigation.
- Fixed
+org/insert-itemthrowingsave-excursion: Wrong type argument: listp, 1error when used from BOL on the first sub-item in a list.
2.0.4 (Jul 14, 2017)
-
Module changes:
- Added
tools/password-store– Emacs as a password manager, using pass as a backend (contributed by brandresen). -
Added
app/irc– Emacs as an IRC client, using circe (contributed by brandresen).+pass/ivyfor ivy integration, with edit/copy field/open url actions.helm-passfor helm integration.
- Added
lang/hy– support for hylang, a combination of Lisp and Python (thanks to bandresen). - Added
lang/ocaml– support for OCAML (thanks to Ptival) - Added
lang/plantuml– drawing diagrams in plain text - Added
lang/perl– Perl6 support for Emacs - Added
ui/tabbar– add tabs to Doom via tabbar (I don't recommend using it) - Removed
lang/org - Added
org– a new module category for org and org extensions -
Removed
app/present(replaced mostly withorg/org-present)org/org-babel– executable code snippets in org-mode, with support for a variety of languages.org/org-capture– a better org-capture, in or outside of Emacs.org/org-export– a centralized export system with more export backends.org/org-notebook– org-mode as a general notebook.org/org-present– org-mode for presentations.
- Added
tools/impatient-mode– show off live buffers via HTTP.
- Added
-
core- New variable:
doom-host-dir, as a base path fordoom-etc-diranddoom-cache-dir. - New hooks:
doom-init-hookanddoom-post-init-hook, which are run onemacs-startup-hook. This is meant to simplify post-Emacs initialization hooks (after-init-hook,emacs-startup-hookandwindow-setup-hook) into two unambiguous ones. - Fix
private/<user-login-name>/init.elnot being auto-loaded when the user's private module is absent in the root init.el file. - Improve error handling across the board. Emacs should now report more helpful errors. Catastrophic errors will be less likely to inhibit later modules from being loaded.
- Unit-tests have been moved to their respective modules (and
core/test/). - Fix
def-setting!to act more likedefmacro; don't aggressively evaluate its arguments on expansion. - New function:
doom-set-buffer-real BUFFER FLAG– makes Doom consider BUFFER real, no matter what. - Add INSTALLED-ONLY-P argument to
doom-get-packagesto filter packages that aren't installed. -
core-ui- Add quit confirmation when trying to close a frame that contains real buffers.
- Fix quit confirmations for clients connected to
emacs --daemonwithemacsclient. - Brought back nlinum-hl, which offers some line number fixes for web-mode and markdown-mode.
- Don't report the buffer modified when injecting (or deleting) trailing whitespace in
doom|inject-trailing-whitespaceanddoom|init-highlight-indentation. - all-the-icons now fails gracefully in the terminal.
- New hook:
doom-init-ui-hook, run whenever the UI needs to be reloaded (and once at startup). Theme and font loading is also attached to this hook. - New variables for font and theme loading:
doom-theme,doom-font,doom-variable-pitch-font, anddoom-unicode-font. - New variables for customizing line numbers:
doom-line-number-lpad,doom-line-number-rpad, anddoom-line-number-pad-char. These were added to facilitate custom whitespace characters in line numbers, e.g. /u2002 (a unicode character that looks like a space). Doing so fixes an issue wherewhitespace-modewithspace-markwould replace all space characters indiscriminately, even in line numbers. - Add hooks
doom-pre-reload-theme-hookanddoom-post-reload-theme-hooktodoom/reload-themecommand.
-
core-popups- Fix an issue where more specific popup rules were being overriden by more general rules.
- New command:
doom/other-popup– cycles between open popup windows and the original buffer that you originated from. Discussed in #141.
-
core-editor- Change what files recentf will ignore: everything in
doom-host-diris now ignored and anything else indoom-local-dirwon't be. - New interactive command:
doom/scratch-buffer(replaces+doom:scratch-bufferin:ui doom).
- Change what files recentf will ignore: everything in
-
core-packages- Generalize
doom-package-*-pfunctions into(doom-package-prop NAME PROPERTY). - Fix quelpa temporary files (in
quelpa-build-dir) not being removed when a quelpa package was uninstalled. - New hook:
doom-reload-hook(sort of). This has been around for a while, but now it is defined and documented. It runs whendoom/reload-load-pathis called (which gets called remotely if you run package management while an Emacs session is active). load!can now accept a string as its first argument (the path).
- Generalize
- New variable:
-
feature-
feature/evil- Remove
goto-last-change, which conflicts withgoto-chg, which is a dependency of evil (that does the exact same thing, but is what evil uses).
- Remove
-
feature/jump- Remove
:xref-backendsetting (replaced with:jump). -
Add
:jump MAJOR-MODE &rest PLISTsetting, which recognizes four properties (that accept functions/commands)::definition: jumps to the definition of the symbol under point.:references: lists all references of the symbol at point and lets you jump to them.:documentation: shows documentation for the symbol at point.:xref-backend: a function that serves as an xref backend; this replaces:definitionand:references.
- Remove
-
feature/workspaces- New function:
+workspace-contains-buffer-p &optional BUFFER PERSP– return non-nil if BUFFER (defaults to current buffer) is in PERSP (defaults to current perspective). - Fix
+workspace-pnot detecting a perspective struct. - Fix
+workspace-buffer-listnot preserving buffer order (by recency).
- New function:
-
-
completion-
completion/company- Add
company-dabbrevandcompany-ispellto the default Company backends. This ensures you have some completion available in buffers previously without any. This is especially useful for text-mode buffers. Discussed in #134.
- Add
-
-
ui-
ui/doom- Vastly improve daemon and terminal support for doom-themes by reloading the theme when a new client is attached, or new terminal/daemon frame is created. This prevents incorrect colors from bleeding across face class barriers.
- Removed evil command
+doom:scratch-buffer(replaced withdoom/scratch-bufferincore-ui). - Decoupled font and theme loading from this module. This has now been delegated to
core-ui. These variables no longer exist:+doom-theme,+doom-font,+doom-variable-pitch-font,+doom-unicode-font. Discussed in #117.
-
ui/doom-dashboard- Fix dashboard not opening in emacsclient/daemon frames.
- Add
ggandGkeybinds in dashboard for moving to the first and last button (respectively).
-
ui/doom-modeline- Reorganize order of modeline segments, placing the vc branch last. This minimizes the non-uniform spacing caused by all-the-icon icons.
- Fix blank mode-line caused by a nil buffer-file-name (used in vcs segment). For example, in org indirect buffers.
-
-
tools-
tools/neotree- Fix neotree refusing to open when it was already open in another frame. This is especially frustrating when neotree is open in a (likely buried) terminal emacsclient session, and you're trying to open neotree in another.
-
-
lang-
lang/cc- Add code completion to glsl-mode (powered by company-glsl).
-
lang/markdown- Source blocks are now fontified natively, with the fontification of their native major-modes (see
markdown-fontify-code-blocks-natively).
- Source blocks are now fontified natively, with the fontification of their native major-modes (see
-
lang/sh- Fix fontification of command substitutions in double-quoted strings to help distinguish them from the rest of string literals.
-
lang/web- Fix HTML entity encoding/decoding functions.
-
-
org-
org/org- Fix M-RET in plain lists not preserving indent level for new items.
- Fix cursor jumping away when toggling folds or realigning org tables (pressing TAB).
- Minimized keybindings into the bare necessities; most custom bindings have been moved to my private module.
-
org/org-capture- Start org-capture-mode in insert-mode (if evil is loaded).
-
2.0.3 (Jun 11, 2017)
-
New modules
ui/unicode– fixes unicode font-rendering for a variety of languages, using unicode-fonts.ui/evil-goggles– visual feedback for edit operations in evil-mode, using evil-goggles.ui/nav-flash(extracted fromui/doom) – flashes current line when moving cursor considerable distrances, using nav-flash.tools/neotree(extracted fromfeature/evil) – a file explorer sidebar, using neotree.
-
core- New special file:
private/<user-login-name>/init.elis now loaded before modules (after core). :private <user-login-name>is now automatically loaded bydoom!.- New help command:
doom/describe-module– for DOOM modules. - New help command:
doom/describe-setting– for possibleset!targets. - Add
make doctorto diagnose common issues with your setup & environment. - Removed
def-bootstrap&doom-bootstrap. It was a clumsy system. I'll replace it with README.org files in each module, with working, tangle-able source blocks. -
core-os- Don't use GTK tooltips on Linux (ugly!).
-
core-ui- New plugin: vi-tilde-fringe – subtle, vim-ish empty-line indicator.
- New variable:
doom-ui-mode-names(alist) – for changingmode-nameof major-modes. - Fix left-over hl-line overlays when hl-line-mode is uncleanly killed (e.g. when the major-mode is changed).
- Fix disappearing line numbers in nlinum (thanks to gilbertw1).
- Move theme/font bootstrap to core-ui.
- New hook:
doom-init-ui-hook - New global minor-mode
doom-big-font-modeand variabledoom-big-font.
-
core-keybinds- New property for
map!::textobj– for binding to evil text objects keymaps. - Fix
:after&:map*properties inmap!macro (wasn't working at all). - Change keybinding scheme; the leader key is now
SPCand localleaderSPC m, inspired by spacemacs. - Enable which-key pops up for all keys.
- New property for
-
core-popups- Properly persist
popupwindow parameter between sessions. - Improve magit+shackle integration; ensures that links will be followed within the popup they were opened.
- Add
doom-popup-no-fringeoption (default = t). When non-nil, fringes will be disabled in popup windows (indoom-popup-mode).
- Properly persist
-
core-packages- Fix failure to detect out-of-date QUELPA packages.
- Fix
custom-file(and custom settings) not being loaded. - Fix crash in
doom-update-packagecaused by unreachable, new dependencies. - Make
doom-update-packageatomic in case of failure. - Make
doom-refresh-packagesasync. - Improve the security of package management (via ELPA) by a) forcing Emacs to verify TLS connections and b) use HTTPS sources for MELPA and ELPA.
- Make
doom-get-outdated-packagesasynchronous, producing a substantial speed-up when updating packages from Quelpa sources.
- New special file:
-
feature-
feature/evil- Add
+evil:mccommand evil-mc. - Add
+evil/mc-make-cursor-here, with visual-block support for evil-mc. d(operator) now invokeswgrep-mark-deletionin wgrep buffers.- New code folding system that combines hideshow (built-in; for indent/marker-based folds) and evil-vimish-fold (for arbitrary folds).
- Fix evil-matchit in visual mode.
- Fix evil-multiedit M-d bindings.
- Fix stringp error caused by unintialized state in hideshow.
- Fix evil normal-mode keybindings in help-mode popups.
- Change how
+evil-esc-hookhooks are handled: they now short-circuit on the first hook to return non-nil. - Remove
+evil/matchit(thin wrapper aroundevilmi-jump-items). - Remove neotree plugin (moved to
tools/neotree).
- Add
-
feature/jump- Call
recenterafter using dumb-jump.
- Call
-
feature/workspaces- No longer saves session on quit if session was blank.
- Fix persp-mode switching to main workspace if auto-resume is on.
- Fix
+workspace-getreturning a non-nil "null perspective" on some occasions where NAME doesn't exist. This is becausepersp-get-by-namereturns the value ofpersp-not-perspto signify null instead of actual nil. - Decouple workspace buffer-list functions from doom buffer library. Now, the workspaces module will explicitly advise
doom-buffer-list. +workspace-listnow returns a list of perspective structs, rather than a list of strings.+workspace-list-nameswas introduced for the latter.
-
-
completion-
completion/company- Change
:company-backendsto accept a variadic list of backends to prepend tocompany-backends. Its signature is now(set! :company-backends MODES &rest BACKENDS)(#125).
- Change
-
completion/ivy- Flexible column width for
+ivy/tasks.
- Flexible column width for
-
-
ui-
ui/doom- New plugin: solaire-mode – replaces
doom-buffer-mode; brightens source windows and dims transient, temporary, or popup windows. -
BREAKING CHANGE: Decoupled theme and font loading from ui/doom. This has been moved to core-ui. The following variables have been renamed:
+doom-theme=>doom-theme+doom-font=>doom-font+doom-variable-pitch-font=>doom-variable-pitch-font+doom-unicode-font=>doom-unicode-font
- New plugin: solaire-mode – replaces
-
ui/doom-modeline- Reduce excess whitespace on right of flycheck segment.
- Buffer-path and file-name segments now use different faces.
- The vcs segment now uses a slightly darker color (in clean branches).
- Fix blank mode-line when buffer-file-name is nil (#130)
-
ui/nav-flash- Fix over-aggressive nav-flash'ing on evil-multiedit or in eshell/term buffers.
-
-
tools-
tools/gist- Changed new gists to be private by default.
-
-
lang-
lang/haskell- New plugin: company-ghc – code-completion support for haskell (requires
ghc-mod).
- New plugin: company-ghc – code-completion support for haskell (requires
-
lang/php- New plugin: company-php – code-completion support for php (requires a TAGs file created with phpctags).
-
lang/emacs-lisp- Omit defuns inside macros from the imenu index.
- Don't enable
flycheck-modein emacs.d files.
-
lang/org- Replace org-bullets source with more up-to-date fork.
-
lang/scala- Fix
void-variable imenu-auto-rescanerror caused byensime--setup-imenutrying to use imenu variables before loading imenu.
- Fix
-
-
private/hlissner- Add
gzzbinding (+evil/mc-make-cursor-here) - Add
:mcex command (+evil:mc) - Add
:lookupex command (+jump:online). - Add
:gblameex command (magit-blame). - Add
:grevertex command (git-gutter:revert-hook).
- Add
2.0.2 (May 13, 2017)
-
New modules
tools/gist– allows you to manage and create gists, using gist.el.tools/term– quickly spawn a terminal (in a popup or buffer) using multi-termapp/twitter– Emacs as a twitter client, using twittering-mode
-
core- Stop "buffer is read-only" messages while in minibuffer, when I accidentally try to edit the prompt. It's correct behavior, but it consumes the minibuffers, hiding what I'm typing.
- Fix Emacs daemon compatibility with DOOM, which assumed a frame will always be visible on startup, causing errors when Emacs is launched as a daemon.
- Code-style change: use sharp-quote for functions. This makes the byte-compiler output missing-function warnings when they can't be found, which is helpful.
- Stop projectile & git-gutter checks when in a TRAMP buffer; it causes tremendous slowdowns, to the point of being unusable.
- Add
message!&format!macros for printing colored output either a) in a popup buffer when in an interactive session or b) with ansi codes when in an noninteractive session. - Changed
doom/recompileto aggresively recompilecore/core.elto fix load-path inconsistencies when you've byte-compiled your config and run a package management command. -
core-lib- Add
:appendsupport toadd-transient-hook!macro.
- Add
-
core-popups- Fix over-eager ESC binding killing all popups indiscriminantly
-
core-ui- Remove references to
ace-maximize-window(obsolete) - Fix whitespace adjustment in
highlight-indentation-current-column-mode
- Remove references to
-
core-packages- Package management now produces colored and detailed feedback.
-
ui-
ui/doom- Git-gutter fringe bitmaps no longer appear truncated.
- Fix lack of syntax highlighting in scratch buffer
- Use comment face as default color for
+doom-folded-face
-
ui/doom-modeline- Fix modeline disappearing due to loss of state.
doom--modeline-formatwas being killed when switching major modes.
- Fix modeline disappearing due to loss of state.
-
-
feature-
feature/eval- Fix
:repl&+eval/repl-send-region. - Fix
+eval/regionfailing only on first invocation because+eval-runnerswasn't populated until quickrun is loaded. - Add TAB auto-completion in comint-mode and REPL buffers
- Fix
-
feature/evil -
feature/version-control- New plugin: git-timemachine – stepping through a file's git history.
- New plugin: git-link – generates and opens links to "this file"'s remote repo with your default browser.
- Add
:gbrowse: find this file on github/gitlab/bitbucket in your browser. - Add
:gissues: open this project's issues page in your browser. - Fix
+vcs/git-browseand+vcs/git-browse-issues.
-
feature/workspaces- Add BANG modifier to
:cleanupto span all workspaces. - Since persp-mode handles its "nil" perspective differently from others, pretend that it doesn't exist and spawn a new "main" perspective.
- Add BANG modifier to
-
-
completion-
completion/ivy- Add
+ivy-do-action!factory macro. Use it for in-ivy keybindings. - Add ripgrep file search support. Ripgrep doesn't support multiline searches, but is faster. Use
agfor multiline (or more PCRE-compliant) searches. - Reverse ivy's built-in behavior of reversing escaping of parentheses when using the_silver_searcher or ripgrep. If you want literal parentheses, escape them explicitly.
- Removed
def-counsel-action! - When a selection is used for
:ag, the selected text is now regexp-escaped.
- Add
-
-
tools-
tools/tmux- Fix and refactor library (general update).
-
-
lang-
lang/cc- Integrate counsel-ivy into irony-mode
-
lang/javascript- Improve electric indent support for
js2-modeandrjsx-mode
- Improve electric indent support for
-
lang/org- Fix org-checkbox-statistics not respecting underlying faces
- Disable
show-paren-modein org-mode due to conflicts with org-indent which cause indentation flickering. - Bind
M-z(undo),C-u(delete-line) andC-w(delete-word) inorg-store-linkandorg-insert-linkprompts. - Apply org-headline-done face to checked-checkbox lines, to match how DONE headlines look. Also applies this to items whose subitems are all complete.
- Changed default fold behavior when loading an org-file to unfold first level folds.
- Add
bin/org-captureshell script for invoking the org-capture frame from outside Emacs. - Add babel support for: rust, restclient, sql, google translate, haskell and go.
- Add
+org-pretty-modefor toggling "pretty" fontification. Prettified entities or hidden regions can make editing difficult.
-
lang/python- Add ipython detection and REPL support
- Simplify matchit key (%) in python. The default is to prioritize if-else and other blocks over brackets. I found this frustrating.
-
lang/web- Fix
+web-encode-entities,+web-decode-entities,+web/encode-entities-regionand+web/decode-entities-region.
- Fix
-
-
app-
app/email- Replace mbsync with offlineimap.
- Add support for marking multiple emails when in visual-mode (evil) in a
mu4e-headers-modebuffer. - Fix trash mark causing duplicates upstream.
- Make refiling more compatible with archiving in gmail.
-
-
private/hlissner- Add keybinds for evil-mc: based around
gz(likegzzto toggle cursor freeze, andgzcto create a cursor "here"). - Add keybinds for evil-multiedit: based around
M-dandM-D. - Replace
:findwith:ag,:agc[wd],:rgand:rgc[wd]. - Fix
:xex command (open scratch buffer)
- Add keybinds for evil-mc: based around
2.0.1 (Apr 8, 2017)
-
New modules
-
core- Fix
doom-kill-process-buffersnot killing process buffers. - Fix
hippie-expandin ex mode/the minibuffer. - Remove unnecessary
provide's in core autoloaded libraries. - Fix
doom-buffers-in-modenot detecting buffers in major-modes derived from the target mode. - Fix out-of-bounds error in
doom/backward-delete-whitespace-to-column. - Remove
doom/append-semicolon; use evil append mode instead. - Add module bootstrapping mechanism (for installing external dependencies); see
doom-bootstrap,make bootstrapanddef-bootstrap!. - Use
doom-local-dirfor TRAMP's temp files. - New variable:
doom-real-buffer-functions– for customizing howdoom-real-buffer-pdetermines what a "real" buffer is. - Add
def-memoize!for defining memoized functions anddoom-memoizefor memoizing existing ones. -
core-lib- Fix
remove-hook!macro not expanding correctly. - New macro:
add-transient-hook!; attach a hook to a hook or function that will remove itself once it runs.
- Fix
-
core-packages- Add
doom/recompile, for re-byte-compiling DOOM. - Add
doom/compile-lite/make compile-lite, which will only byte-compile DOOM's core files, which is a lighter alternative todoom/compile. - Fix duplicates packages appearing in package-management retrieval library.
- Add
-
core-os- Reducing how aggressive
exec-pathcaching is. Apersistent-softand byte-compilation cache is excessive. The latter is good (and flexible) enough.
- Reducing how aggressive
-
core-popups- Set default
:alignand:selectshackle properties (of8andbelow).
- Set default
-
core-editor- Advise
delete-trailing-whitespaceto not affect current line. If evil is loaded, then it may affect the current line if we're not in insert mode.
- Advise
-
core-projects- Recognize
package.jsonas a project-root file (seeprojectile-project-root-files). - Fix
:filesproperty indef-project-mode!not detecting project files.
- Recognize
-
core-ui- Replace highlight-indent-guides-mode with highlight-indentation-mode; the former won't display indent guides on blank lines, even with my whitespace injection hook.
- Fix
-
feature-
feature/eval- Fix build tasks system; now tested and works.
- Complete rewrite of the module.
-
feature/evil- Fix error in
+evil:file-moveifsave-place-modeis disabled.
- Fix error in
-
feature/snippets- Don't hijack TAB in other modes.
- Enable
yas-triggers-in-field, which adds support for nested snippets. - Fix snippet aliases (
%alias).
-
feature/version-control- Remove
evil-magitand evil-ified bindings for magit in general. Instead, just use emacs mode. If evil is needed, toggle it withC-z.
- Remove
-
feature/workspaces- Fix
+workspace/kill-sessionnot actually killing the session. - Revert forcing persp-mode to stay quiet when it saves the session to file. It just isn't important enough.
- Create a new perspective when switching projects (integrates projectile with persp-mode).
- Create a new perspective for new frames.
- Fix
-
-
ui-
ui/doom -
ui/doom-modeline- Complete rewrite of the module for code readability and performance.
-
ui/doom-dashboard- Fix a
max-specpdl-sizeerror caused on MacOS, having to do with akill-buffer-query-functionhook being attached way too soon in the startup process.
- Fix a
-
-
lang-
lang/cc- Fix empty
buffer-file-nameinmagic-mode-alistrule for obj-c. - Fix irony-mode initialization in cc modes.
- Fix empty
-
lang/emacs-lisp- Add xref support for elisp.
-
lang/go- Add code-completion support with gocode and company-go.
- Add code navigation support with go-guru (built-in to go-mode).
- Add REPL support with gore and gorepl-mode.
-
lang/haskell- New plugin: dante – offers xref and flycheck integration, as well as code-navigation tools, like finding definitions, references, type info, etc.
- Fix errors on haskell-mode (caused by missing dependencies).
-
lang/javascript- New plugin: skewer-mode – provides live JS/CSS/HTML evaluation in a browser.
- New plugin: web-beautify – js reformatting.
- New plugin: xref-js2 – xref integration for javascript.
-
New plugin: rjsx-mode – adds jsx support.
- Fix
doom/newline-and-indentin rjsx-mode - Remove electric
<in rjsx-mode - Enable emmet-mode in rjsx-mode
- Fix
- Fix empty
buffer-file-nameinmagic-mode-alistrule forrjsx-mode. - Force tern use projectile for project path detection and resolution.
- Add gulpfile.js detection (
+javascript-gulp-mode).
-
lang/latex- Improve integration between auctex, evil and
reftex-toc-mode: j/k motion keys have been bound in reftex-toc-mode, the modeline is hidden, andreftex-toc-rescanis run automatically.
- Improve integration between auctex, evil and
-
lang/org- Add
+notessubmodule, which makes it easy to access org-mode based notes for the current major-mode or the current project. See+org/browse-notes-for-major-modeand+org/browse-notes-for-project. - Ensure newer org-mode 9.0+ (downloaded from ELPA) is loaded instead of the older, built-in version of org-mode (8.3).
- Update
+org/dwim-at-point,+org/insert-item&+org/toggle-checkboxfor org-mode 9.0 - Fix shackle popup integration with org-export dispatch window.
- Add
-
lang/ruby- Add
{Pod,Puppet,Berks}filedetection forruby-mode.
- Add
-
lang/web- New plugin: web-beautify – html/css reformatting
- Remove
+web-bower-mode. I don't use it anymore; I prefer npm as my sole package manager. - Improve
+web-angularjs-modedetection by searching for angular 1 and 2 dependencies in package.json. - Add
+web-react-modeand detect it by searching for reactjs dependencies in package.json.
-
-
app-
app/rss- Hide modeline in
elfeed-search-modebuffer.
- Hide modeline in
-
app/present- New plugin: ox-reveal – export a presentation to html, js & css from org-mode using reveal.js.
- New plugin: org-tree-slides – use
org-modedirectly for presentations. - Add
+present/big-mode; which will toggle large fonts, controlled by+present-big-font. - New plugin: impatient-mode – show off current buffer(s) over HTTP.
-
app/email- Add support for writing emails in org-mode, which renders to HTML on send.
- Add support for sending email through SMTP on a secure port.
- Add basic mu4e support.
-
-
private/hlissner- Fix TAB hijacking in magit.
2.0.0 (Jan 17, 2017)
-
New modules
tools/upload– map local files to remotes, allowing you to upload/download files between them.feature/jump– offers a system for navigating codebases that "just works", powered by xref (new experimental Emacs reference API) & dumb-jump.feature/workspaces– offers grouped buffers/windows and persistent sessions. Recently replaced workgroups2 with the much-faster persp-mode.
-
core- Add .travis.yml and unit-tests.
- Remove mplist library – it was unused and poorly written.
-
core-popups- Replaced popwin with shackle; which is significantly lighter and more stable.
-
feature/spellcheck- Add selection popup for correcting spelling mistakes highlighted by flyspell.
-
completion/ivy- Add
+ivy:todofor jumping to TODO/FIXME tags in your project.
- Add
-
lang/org- Make TAB do-what-I-mean (
+org/dwim-at-point), which will either: follow a link, realign/recalculate tables, toggle checkboxes, toggle TODO/DONE tags, cycle archived subtrees, toggle latex preview fragments, execute babel blocks, or refresh inline images – depending on where the cursor is.
- Make TAB do-what-I-mean (
-
lang/web- Add
+css/toggle-inline-or-blockcommand; it will expand/contract curly-braced blocks.
- Add
-
private/hlissner- Add
:todoex command (+ivy:todo)
- Add