<commit_before>#+TITLE: Changelog

- [[#todo][Todo]]
- [[#unreleased-master][Unreleased (master)]]
- [[#204-jul-14-2017][2.0.4 (Jul 14, 2017)]]
- [[#203-jun-11-2017][2.0.3 (Jun 11, 2017)]]
- [[#202-may-13-2017][2.0.2 (May 13, 2017)]]
- [[#201-apr-8-2017][2.0.1 (Apr 8, 2017)]]
- [[#200-jan-17-2017][2.0.0 (Jan 17, 2017)]]

* Todo
+ *Potential plugins:*
  + =completion/ivy= [[https://github.com/yevgnen/ivy-rich][ivy-rich]], possible replacement for ~+ivy/switch-buffer~
  + =app/present= [[https://github.com/larstvei/Focus][focus]], for presenting code
  + [[https://github.com/emacs-lsp/lsp-mode][lsp-mode]], client for MS Language Server Protocol, keep an eye on this
  + =lang/javascript= [[https://github.com/NicolasPetton/Indium][indium]] (IDE), keep an eye on this
  + =lang/javascript= [[https://github.com/codesuki/add-node-modules-path][add-node-modules-path]] (adds node_modules to ~exec-path~)
  + =lang/javascript= [[https://github.com/lbolla/emacs-flycheck-flow][flycheck-flow]] (Flow support for JS)
  + =lang/org= [[https://github.com/Malabarba/latex-extra][orgit]] (org links to magit buffers)
  + =lang/org= [[https://github.com/jkitchin/org-ref][org-ref]] (bibtex/citation helper)
  + =lang/org= [[https://github.com/tashrifsanil/org-easy-img-insert][org-easy-img-insert]]
  + =lang/latex= [[https://github.com/Malabarba/latex-extra][latex-extra]] (utility commands)
  + =lang/latex= [[**https://github.com/jsinglet/latex-preview-pane][latex-preview-pane]]
  + =lang/julia= [[ https://github.com/dennisog/julia-shell-mode][julia-shell]] (unsure if better than inferior-julia in julia-mode)
  + =lang/python= [[https://github.com/Wilfred/pyimport][pyimport]] or [[https://github.com/anachronic/importmagic.el][importmagic]]
  + [[https://github.com/mhayashi1120/Emacs-imagex][emacs-imagex]], for manipulating images at point (zooming?)
  + =tools/term= [[https://github.com/riscy/shx-for-emacs][shx]], an extension for the shell in Emacs
  + =app/crm= [[https://github.com/skeeto/emacsql][emacsql]], a sqlite backend; which would be useful for CRM storage.
  + =core= [[https://github.com/Wilfred/helpful][helpful]], a better help buffer; possible replacement for ~describe-function~.
+ *Planned modules:*
  + =app/finance= -- ledger + org-mode.
  + =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~ or ~regex~)
      + php (~preg_(match(_all)?|replace)~)
      + ruby (~%r[.+]~)
      + javascript (node) (~/.+/.test(...)~)
      + C (~regex.h~ + ~regcomp~)
      + C++ (~regex reg(regexp, ...)~)
    + Syntax highlighter for ~+regex-mode~ (plus make it a major mode)
    + Optimize: communicate with perl process (with ~make-process~ instead of ~call-process~)
  + =lang/alda= -- Language support for [[https://github.com/alda-lang/alda][Alda]], the music programming language, using [[https://github.com/jgkamat/alda-mode][alda-mode]].
  + =org/org-publish= -- publishing org files to HTML (thanks to [[https://github.com/matthewgraybosch][matthewgraybosch]])
  + =org/org-attach= -- my own, simpler attachment system with drag-drop image attachment support and centralized storage.
+ *Bug fixes:*
  + =core-ui= Replace or fix ~winner-mode~ unreliability (will close windows trying to revive killed buffers). Perhaps make ~doom/kill-this-buffer~ only disassociate buffer from persp-mode or bury buffer if persp-mode is inactive.
  + =ui/doom-modeline= Fix ~0/0~ leftover panel in modeline (caused by lingering anzu state).
+ =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 [[https://github.com/xcwen/phpctags][phpctags]].
+ =lang/lua= True, dynamic code-completion? Looks like [[https://github.com/immerrr/lua-mode/pull/119][this PR in lua-mode]] may have the answer. Does it make ~company-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.
+ Update =bin/org-capture= to read from stdin in the absence of arguments.
+ Add README.org's with working babel blocks to modules.
+ Rewrite and expand documentation to include more information about setting up, customizing, and troubleshooting DOOM Emacs, including best practices.
+ =core-popups= Add support for moving popup windows to the ~+evil/window-move-*~ commands #171

* Unreleased (master)
+ =doom=
  + Added new module: ~lang/ocaml~, offering OCaml support (thanks to ptival)
  + 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)
  + Switch to ~doom-fallback-buffer~ after using ~doom/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 the ~featurep!~ 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 [[https://github.com/hlissner/.emacs.d/commit/0b7b8800a2478588bde408c92fcdfa0e43a5baf0][0b7b880]].
  + Fix projectile-find-file not respecting ~default-directory~ (caused by changes upstream).
+ =lang=
  + =C/C++= The advise function ~c-lineup-arglist~ was missing, and has now be 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.
+ =org=
  + Fix vanilla C-j/C-k bindings overshadowing custom window navigation bindings.
  + rainbow-mode is no longer activated on ~prog-mode-hook~.

* 2.0.4 (Jul 14, 2017)
+ *Module changes:*
  + Added =tools/password-store= -- Emacs as a password manager, using [[https://www.passwordstore.org/][pass]] as a backend (contributed by [[https://github.com/bandresen][brandresen]]).
  + Added =app/irc= -- Emacs as an IRC client, using circe (contributed by [[https://github.com/bandresen][brandresen]]).
    + ~+pass/ivy~ for ivy integration, with edit/copy field/open url actions.
    + ~helm-pass~ for helm integration.
  + Added =lang/hy= -- support for [[http://hylang.org][hylang]], a combination of Lisp and Python (thanks to [[https://github.com/bandresen][bandresen]]).
  + Added =lang/ocaml= -- support for [[https://ocaml.org/][OCAML]] (thanks to [[https://github.com/Ptival][Ptival]])
  + Added =lang/plantuml= -- drawing diagrams in plain text
  + Added =lang/perl= -- Perl6 support for Emacs
  + Added =ui/tabbar= -- add tabs to Doom via [[https://github.com/dholm/tabbar][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 with =org/org-present=)<commit_msg>Update changelog<commit_after>#+TITLE: Changelog

- [[#todo][Todo]]
- [[#unreleased-master][Unreleased (master)]]
- [[#204-jul-14-2017][2.0.4 (Jul 14, 2017)]]
- [[#203-jun-11-2017][2.0.3 (Jun 11, 2017)]]
- [[#202-may-13-2017][2.0.2 (May 13, 2017)]]
- [[#201-apr-8-2017][2.0.1 (Apr 8, 2017)]]
- [[#200-jan-17-2017][2.0.0 (Jan 17, 2017)]]

* Todo
+ *Potential plugins:*
  + =completion/ivy= [[https://github.com/yevgnen/ivy-rich][ivy-rich]], possible replacement for ~+ivy/switch-buffer~
  + =app/present= [[https://github.com/larstvei/Focus][focus]], for presenting code
  + [[https://github.com/emacs-lsp/lsp-mode][lsp-mode]], client for MS Language Server Protocol, keep an eye on this
  + =lang/javascript= [[https://github.com/NicolasPetton/Indium][indium]] (IDE), keep an eye on this
  + =lang/javascript= [[https://github.com/codesuki/add-node-modules-path][add-node-modules-path]] (adds node_modules to ~exec-path~)
  + =lang/javascript= [[https://github.com/lbolla/emacs-flycheck-flow][flycheck-flow]] (Flow support for JS)
  + =lang/org= [[https://github.com/Malabarba/latex-extra][orgit]] (org links to magit buffers)
  + =lang/org= [[https://github.com/jkitchin/org-ref][org-ref]] (bibtex/citation helper)
  + =lang/org= [[https://github.com/tashrifsanil/org-easy-img-insert][org-easy-img-insert]]
  + =lang/latex= [[https://github.com/Malabarba/latex-extra][latex-extra]] (utility commands)
  + =lang/latex= [[**https://github.com/jsinglet/latex-preview-pane][latex-preview-pane]]
  + =lang/julia= [[ https://github.com/dennisog/julia-shell-mode][julia-shell]] (unsure if better than inferior-julia in julia-mode)
  + =lang/python= [[https://github.com/Wilfred/pyimport][pyimport]] or [[https://github.com/anachronic/importmagic.el][importmagic]]
  + [[https://github.com/mhayashi1120/Emacs-imagex][emacs-imagex]], for manipulating images at point (zooming?)
  + =tools/term= [[https://github.com/riscy/shx-for-emacs][shx]], an extension for the shell in Emacs
  + =app/crm= [[https://github.com/skeeto/emacsql][emacsql]], a sqlite backend; which would be useful for CRM storage.
  + =core= [[https://github.com/Wilfred/helpful][helpful]], a better help buffer; possible replacement for ~describe-function~.
+ *Planned modules:*
  + =app/finance= -- ledger + org-mode.
  + =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~ or ~regex~)
      + php (~preg_(match(_all)?|replace)~)
      + ruby (~%r[.+]~)
      + javascript (node) (~/.+/.test(...)~)
      + C (~regex.h~ + ~regcomp~)
      + C++ (~regex reg(regexp, ...)~)
    + Syntax highlighter for ~+regex-mode~ (plus make it a major mode)
    + Optimize: communicate with perl process (with ~make-process~ instead of ~call-process~)
  + =lang/alda= -- Language support for [[https://github.com/alda-lang/alda][Alda]], the music programming language, using [[https://github.com/jgkamat/alda-mode][alda-mode]].
  + =org/org-publish= -- publishing org files to HTML (thanks to [[https://github.com/matthewgraybosch][matthewgraybosch]])
  + =org/org-attach= -- my own, simpler attachment system with drag-drop image attachment support and centralized storage.
+ =core-ui= Replace or fix ~winner-mode~ unreliability (will close windows trying to revive killed buffers). Perhaps make ~doom/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 [[https://github.com/xcwen/phpctags][phpctags]].
+ =lang/lua= True, dynamic code-completion? Looks like [[https://github.com/immerrr/lua-mode/pull/119][this PR in lua-mode]] may have the answer. Does it make ~company-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/ocaml~, offering OCaml support (thanks to [[https://github.com/Ptival][ptival]])
  + Added new module: ~tools/rgb~, with tools for dealing with colors (thanks to [[https://github.com/bandresen][bandresen]])
  + Added new module: ~tools/prodigy~, with tools for managing external services (thanks to [[https://github.com/bandresen][bandresen]])
  + Added new module: ~feature/hydra~, offers an extra and customizable layer of modal keybinds (thanks to [[https://github.com/bandresen][bandresen]])
  + Added two new core-lib helpers for macros: ~doom-enlist~ and ~doom-unquote~.
  + Switch to ~doom-fallback-buffer~ after using ~doom/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 the ~featurep!~ 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 [[https://github.com/hlissner/.emacs.d/commit/0b7b8800a2478588bde408c92fcdfa0e43a5baf0][0b7b880]].
  + Fix projectile-find-file not respecting ~default-directory~ (caused by changes upstream).
  + Rewrote, revised and expanded module documentation, and created a [[https://github.com/hlissner/.emacs.d/wiki][wiki]] with more information.
  + Removed the =:L= flag from =map!= 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+.
+ =modules=
+ =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.
+ =completion=
  + Added all-the-icons support to ~ivy-switch-buffer~ and ~+ivy/switch-workspace-buffer~. Enable this with ~(setq +ivy-buffer-icons t)~.
+ =ui=
  + rainbow-mode is no longer activated on ~prog-mode-hook~.
  + =doom-modeline=
    + Modeline now uses shrink-path.el to shrink the buffer name in the case of a small frame (thanks to [[https://github.com/bandresen][bandresen]]). [[https://github.com/hlissner/.emacs.d/pull/176][See #176]]
    + Fixed mode-line going blank in terminal Emacs (thanks to [[https://github.com/bandresen][bandresen]]).
  + =doom-dashboard= Fixed "Load last session" button on dashboard.
+ =tools=
  + =eshell= General improvements made to further integrate eshell with Doom (thanks to [[https://github.com/bandresen][bandresen]]). [[https://github.com/hlissner/.emacs.d/pull/160][See #160]]
  + =pass= ~+pass-get-field~ now no-ops if used in a non-interactive session (e.g. during testing or byte compilation).
  + =neotree= Add =r= and =d= bindings for renaming and deleting files, respectively.
+ =lang=
  + =C/C++= The advise function ~c-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~ throwing =save-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 [[https://www.passwordstore.org/][pass]] as a backend (contributed by [[https://github.com/bandresen][brandresen]]).
  + Added =app/irc= -- Emacs as an IRC client, using circe (contributed by [[https://github.com/bandresen][brandresen]]).
    + ~+pass/ivy~ for ivy integration, with edit/copy field/open url actions.
    + ~helm-pass~ for helm integration.
  + Added =lang/hy= -- support for [[http://hylang.org][hylang]], a combination of Lisp and Python (thanks to [[https://github.com/bandresen][bandresen]]).
  + Added =lang/ocaml= -- support for [[https://ocaml.org/][OCAML]] (thanks to [[https://github.com/Ptival][Ptival]])
  + Added =lang/plantuml= -- drawing diagrams in plain text
  + Added =lang/perl= -- Perl6 support for Emacs
  + Added =ui/tabbar= -- add tabs to Doom via [[https://github.com/dholm/tabbar][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 with =org/org-present=)
{'fraction_non_alphanumeric': 0.14374408081658424, 'fraction_numerical': 0.01541618436283279, 'mean_word_length': 4.190333151283451, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 3, 'https://': 72, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6906868', 'n_tokens_mistral': 6518, 'n_tokens_neox': 6007, 'n_words': 1955}