...and update its references.
43 KiB
Changelog
- Todo
- Unreleased (master)
- 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)
- Todo
- Unreleased (master)
- 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)
Todo
-
Potential plugins:
app/present
focus, for presenting code- lsp-mode, client for MS Language Server Protocol, keep an eye on this
lang/javascript
indium (IDE), keep an eye on thislang/javascript
add-node-modules-path (adds node_modules toexec-path
)lang/javascript
flycheck-flow (Flow support for JS)lang/org
orgit (org links to magit buffers)lang/org
org-ref (bibtex/citation helper)lang/org
org-easy-img-insertlang/latex
latex-extra (utility commands)lang/latex
latex-preview-panelang/julia
julia-shell (unsure if better than inferior-julia in julia-mode)lang/python
pyimport or importmagic- emacs-imagex, for manipulating images at point (zooming?)
tools/term
shx, an extension for the shell in Emacsapp/crm
emacsql, a sqlite backend; possibly useful for CRM storage.core
helpful, a better help buffer; replacement fordescribe-function
?
-
Planned modules:
app/crm
– Customer Relations Management, in Emacs, using org-mode.app/write
– Make Emacs into a focused plaintext word processor (using markdown, org and rst) for writing papers and stories.-
app/regex
– PCRE IDE, with live buffer matching, search/replace support, and an export-to-code feature for various languages.Perl backend- Search and replace support
- Highlight replaced segments
-
Export-to-code feature for:
- python (use
re
orregex
) - php (
preg_(match(_all)?|replace)
) - ruby (
%r[.+]
) - javascript (node) (
/.+/.test(...)
) - C (
regex.h
+regcomp
) - C++ (
regex reg(regexp, ...)
)
- python (use
- Syntax highlighter for
+regex-mode
(plus make it a major mode) - Optimize: communicate with perl process (with
make-process
instead ofcall-process
)
org/org-publish
– publishing org files to HTML (thanks to matthewgraybosch)org/org-attach
– my own, simpler attachment system with drag-drop image attachment support and centralized storage.app/torrents
– Emacs as a torrent client (powered by transmission.el)
core-ui
Replace or fixwinner-mode
unreliability (will close windows trying to revive killed buffers). Perhaps makedoom/kill-this-buffer
only disassociate buffer from persp-mode or bury buffer if persp-mode is inactive.-
org
- Better shackle + org-agenda integration
- Fix janky visual line motions (
evil-next-visual-line
, etc) - Fix janky cursor positioning when jumping between org-table cells from insert mode.
- Certain characters/keys–when typed in a table–cause the cell to shrink (likely cause: custom self-insert-char behavior – like smartparens pairs & custom SPC/BKSPC binds)
feature/jump
Automatic etags generation (for dwim go-to-definition and, perhaps, code-completion for some languages; lua maybe?).lang/php
Automatic and async tags generation using phpctags.lang/lua
True, dynamic code-completion? Looks like this PR in lua-mode may have the answer. Does it makecompany-lua
redundant?tools/upload
Add+upload/open-remote-file
command to open current file on the remote (with TRAMP).- Add
bin/org-alert
script – a cron script that scans TODOs in org files and dispatches system alerts. feature/workspaces
Add a bookmarks feature, but for wconfs, that can revive file buffers. Also needs an interface.-
ui/doom-modeline
- Fix hardcoded spacing in between segments.
- Fix
0/0
leftover panel in modeline (caused by lingering anzu state).
- Update
bin/org-capture
to read from stdin in the absence of arguments. core-popups
Add support for moving popup windows to the+evil/window-move-*
commands #171
Unreleased (master)
-
doom
- Added new module:
lang/ledger
, for editing ledger files. - Added new module:
ui/vi-tilde-fringe
; indicates beyond EOB, using tildes in the fringe (inspired by vim). This used to be in core-ui. - Added new module:
feature/services
; used to betools/prodigy
. Adds a way of managing external processes and services. - Added new module:
tools/make
, for running project Makefile commands from Emacs. - Added new module:
tools/imenu
, adds a sidebar for imenu (imenu-list
), and a way of jumping to imenu entries across all open buffers (imenu-anywhere
). - Moved
feature/hydra
intocore-keybinds
. Addeddef-hydra!
alias macro. - Renamed
feature/debug
tofeature/debugger
. - Fixed
make update
to 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. - Changed the signature of
doom-resize-window
to accept two more arguments,WINDOW
andFORCE-P
:doom-resize-window WINDOW NEW-SIZE &optional HORIZONTAL FORCE-P
. IfFORCE-P
is non-nil, this function will resize a window regardless ofwindow-size-fixed
. doom-popup-buffer
anddoom-popup-file
no longer take a second variadic argument. Their signature is nowdoom-popup-buffer buffer plist &optional extend-p
anddoom-popup-file file plist &optional extend-p
, whereEXTEND-P
will causePLIST
to extend from the base rule for that buffer.
- Added new module:
-
feature
hydra
Display a separator along the bottom of hydra windows for extra contrast.
-
ui
doom-dashboard
Elements are now centered using window-local margins, which fixes discrepancies when multiple dashboards are visible in different sized windows and/or frames (see #192).hl-todo
Added face-based detection for commented regions, so hl-todo can work in modes with no/poor syntax-table support.
-
tools
- Fixed neotree shrinking when vertical splits were closed.
- Neotree popup rule now takes
neo-window-width
andneo-window-position
into account.
-
lang
ruby
Added rake support. See therake
command.web
Only install company-web if:completion company
is enabled.
-
org
- If a table is under point when
+org/toggle-fold
is invoked, the table is realigned. org-capture
Fix a vestigial reference to a long-since-renamed function:doom/project-root
.- Fixed the incorrect version of org being loaded (site, instead of ELPA) by pushing it up further in the
load-path
.
- 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-enlist
anddoom-unquote
. - Switch to
doom-fallback-buffer
after usingdoom/kill-all-buffers
(or:killall!
). make doctor
now 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
:L
flag frommap!
and replaced it with a:local
property. - Added new function:
doom|disable-vi-tilde-fringe
for 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-templates
Added a file template for:- *.org files
- Module README.org files.
-
jump
- Added documentation for
:jump
setting, describing the three properties it supports (:definition
,:references
and:documentation
). -
Rewrote
+jump/online
to:- 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/online
to prompt for the provider anyway.
- Added documentation for
workspaces
Fix 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-buffer
and+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-dashboard
Fixed "Load last session" button on dashboard.
- rainbow-mode is no longer activated on
-
tools
-
lang
cc
The advise functionc-lineup-arglist
was missing, and has now been reimplemented.haskell
With module flags implemented, Intero support is now available to lang/haskell and is now the default. Dante support is still available with the+dante
flag.java
Now 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-item
throwingsave-excursion: Wrong type argument: listp, 1
error 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/ivy
for ivy integration, with edit/copy field/open url actions.helm-pass
for 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-dir
anddoom-cache-dir
. - New hooks:
doom-init-hook
anddoom-post-init-hook
, which are run onemacs-startup-hook
. This is meant to simplify post-Emacs initialization hooks (after-init-hook
,emacs-startup-hook
andwindow-setup-hook
) into two unambiguous ones. - Fix
private/<user-login-name>/init.el
not 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 todoom-get-packages
to 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 --daemon
withemacsclient
. - 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-whitespace
anddoom|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-mode
withspace-mark
would replace all space characters indiscriminately, even in line numbers. - Add hooks
doom-pre-reload-theme-hook
anddoom-post-reload-theme-hook
todoom/reload-theme
command.
-
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-dir
is now ignored and anything else indoom-local-dir
won't be. - New interactive command:
doom/scratch-buffer
(replaces+doom:scratch-buffer
in:ui doom
).
- Change what files recentf will ignore: everything in
-
core-packages
- Generalize
doom-package-*-p
functions 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-path
is 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-backend
setting (replaced with:jump
). -
Add
:jump MAJOR-MODE &rest PLIST
setting, 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:definition
and: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-p
not detecting a perspective struct. - Fix
+workspace-buffer-list
not preserving buffer order (by recency).
- New function:
-
-
completion
-
completion/company
- Add
company-dabbrev
andcompany-ispell
to 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-buffer
incore-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
gg
andG
keybinds 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.el
is 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 doctor
to 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-name
of 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-mode
and 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
SPC
and localleaderSPC m
, inspired by spacemacs. - Enable which-key pops up for all keys.
- New property for
-
core-popups
- Properly persist
popup
window parameter between sessions. - Improve magit+shackle integration; ensures that links will be followed within the popup they were opened.
- Add
doom-popup-no-fringe
option (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-package
caused by unreachable, new dependencies. - Make
doom-update-package
atomic in case of failure. - Make
doom-refresh-packages
async. - 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-packages
asynchronous, producing a substantial speed-up when updating packages from Quelpa sources.
- New special file:
-
feature
-
feature/evil
- Add
+evil:mc
command evil-mc. - Add
+evil/mc-make-cursor-here
, with visual-block support for evil-mc. d
(operator) now invokeswgrep-mark-deletion
in 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-hook
hooks 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
recenter
after 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-get
returning a non-nil "null perspective" on some occasions where NAME doesn't exist. This is becausepersp-get-by-name
returns the value ofpersp-not-persp
to 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-list
now returns a list of perspective structs, rather than a list of strings.+workspace-list-names
was introduced for the latter.
-
-
completion
-
completion/company
- Change
:company-backends
to 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-mode
in emacs.d files.
-
lang/org
- Replace org-bullets source with more up-to-date fork.
-
lang/scala
- Fix
void-variable imenu-auto-rescan
error caused byensime--setup-imenu
trying to use imenu variables before loading imenu.
- Fix
-
-
private/hlissner
- Add
gzz
binding (+evil/mc-make-cursor-here
) - Add
:mc
ex command (+evil:mc
) - Add
:lookup
ex command (+jump:online
). - Add
:gblame
ex command (magit-blame
). - Add
:grevert
ex 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/recompile
to aggresively recompilecore/core.el
to fix load-path inconsistencies when you've byte-compiled your config and run a package management command. -
core-lib
- Add
:append
support 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-format
was 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/region
failing only on first invocation because+eval-runners
wasn'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-browse
and+vcs/git-browse-issues
.
-
feature/workspaces
- Add BANG modifier to
:cleanup
to 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
ag
for 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-mode
andrjsx-mode
- Improve electric indent support for
-
lang/org
- Fix org-checkbox-statistics not respecting underlying faces
- Disable
show-paren-mode
in 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-link
andorg-insert-link
prompts. - 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-capture
shell 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-mode
for 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-region
and+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-mode
buffer. - Fix trash mark causing duplicates upstream.
- Make refiling more compatible with archiving in gmail.
-
-
private/hlissner
- Add keybinds for evil-mc: based around
gz
(likegzz
to toggle cursor freeze, andgzc
to create a cursor "here"). - Add keybinds for evil-multiedit: based around
M-d
andM-D
. - Replace
:find
with:ag
,:agc[wd]
,:rg
and:rgc[wd]
. - Fix
:x
ex command (open scratch buffer)
- Add keybinds for evil-mc: based around
2.0.1 (Apr 8, 2017)
-
New modules
-
core
- Fix
doom-kill-process-buffers
not killing process buffers. - Fix
hippie-expand
in ex mode/the minibuffer. - Remove unnecessary
provide
's in core autoloaded libraries. - Fix
doom-buffers-in-mode
not 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 bootstrap
anddef-bootstrap!
. - Use
doom-local-dir
for TRAMP's temp files. - New variable:
doom-real-buffer-functions
– for customizing howdoom-real-buffer-p
determines what a "real" buffer is. - Add
def-memoize!
for defining memoized functions anddoom-memoize
for 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-path
caching is. Apersistent-soft
and byte-compilation cache is excessive. The latter is good (and flexible) enough.
- Reducing how aggressive
-
core-popups
- Set default
:align
and:select
shackle properties (of8
andbelow
).
- Set default
-
core-editor
- Advise
delete-trailing-whitespace
to 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.json
as a project-root file (seeprojectile-project-root-files
). - Fix
:files
property 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-move
ifsave-place-mode
is 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-magit
and 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-session
not 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-size
error caused on MacOS, having to do with akill-buffer-query-function
hook being attached way too soon in the startup process.
- Fix a
-
-
lang
-
lang/cc
- Fix empty
buffer-file-name
inmagic-mode-alist
rule 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-indent
in rjsx-mode - Remove electric
<
in rjsx-mode - Enable emmet-mode in rjsx-mode
- Fix
- Fix empty
buffer-file-name
inmagic-mode-alist
rule 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-rescan
is run automatically.
- Improve integration between auctex, evil and
-
lang/org
- Add
+notes
submodule, 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-mode
and+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-checkbox
for org-mode 9.0 - Fix shackle popup integration with org-export dispatch window.
- Add
-
lang/ruby
- Add
{Pod,Puppet,Berks}file
detection 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-mode
detection by searching for angular 1 and 2 dependencies in package.json. - Add
+web-react-mode
and detect it by searching for reactjs dependencies in package.json.
-
-
app
-
app/rss
- Hide modeline in
elfeed-search-mode
buffer.
- 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-mode
directly 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:todo
for 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-block
command; it will expand/contract curly-braced blocks.
- Add
-
private/hlissner
- Add
:todo
ex command (+ivy:todo
)
- Add