Subject: bug#32392: 26.1; wdired and derived dired modes

From: James Nguyen <[email-masked]>
Date: Tue, 07 Aug 2018 19:12:36 -0700

Right now, in dired.el -> dired-toggle-read-only, dired supports calling
to wdired-mode if the current mode is derived from 'dired-mode.

(defun dired-toggle-read-only ()
  "Edit Dired buffer with Wdired, or make it read-only.
If the current buffer can be edited with Wdired, (i.e. the major
mode is `dired-mode'), call `wdired-change-to-wdired-mode'.
Otherwise, toggle `read-only-mode'."
  (interactive)
  (if (derived-mode-p 'dired-mode)
      (wdired-change-to-wdired-mode)
    (read-only-mode 'toggle)))

Digging into the function wdired-change-to-wdired-mode, that function
throws an error if the current major mode is not 'dired-mode.

(unless (eq major-mode 'dired-mode)
  (error "Not a Dired buffer"))

I think we can change the check to be:

(unless (derived-mode-p 'dired-mode)
  (error "Not a Dired buffer"))

Doing that, opens the issue of wdired.el hard-resetting the mode back to
dired in wdired-change-to-dired-mode. I think we can persist the current
major mode in a buffer local and set back to that upon calling
wdired-change-to-dired-mode.

I can work on this small change and provide a patch if this sounds good.

In GNU Emacs 26.1 (build 1, x86_64-apple-darwin14.5.0, NS appkit-1348.17 Version 10.10.5 (Build 14F2511))
 of 2018-05-30 built on builder10-10.porkrind.org
Windowing system distributor 'Apple', version 10.3.1504
Recent messages:
Configuring package prodigy...done
Configuring package highlight-symbol...done
imapnotify-gmail has been started.
imapnotify-fastmail has been started.
Loading server...done
Configuring package dired-subtree...done
Configuring package dired-sidebar...done
Configuring package ibuffer...done
Configuring package projectile...done (0.124s)
Configuring package counsel...done

Configured using:
 'configure --with-ns '--enable-locallisppath=/Library/Application
 Support/Emacs/${version}/site-lisp:/Library/Application
 Support/Emacs/site-lisp' --with-modules'

Configured features:
NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  projectile-mode: t
  highlight-symbol-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  super-save-mode: t
  flycheck-posframe-mode: t
  flycheck-mode: t
  shackle-mode: t
  recentf-mode: t
  notmuch-modeline-mode: t
  diff-auto-refine-mode: t
  company-quickhelp-mode: t
  company-quickhelp-local-mode: t
  rainbow-delimiters-mode: t
  lispyville-mode: t
  eval-sexp-fu-flash-mode: t
  display-line-numbers-mode: t
  auto-revert-mode: t
  company-posframe-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-company-mode: t
  company-mode: t
  evil-mc-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  show-paren-mode: t
  lispy-mode: t
  ivy-mode: t
  smartparens-global-mode: t
  smartparens-strict-mode: t
  smartparens-mode: t
  winner-mode: t
  general-override-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  hs-minor-mode: t

Load-path shadows:
/Users/james/.emacs.d/elpa/26/color-theme-solarized-20171024.1525/solarized-theme hides /Users/james/.emacs.d/elpa/26/solarized-theme-20180621.2107/solarized-theme
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox hides /Applications/26.app/Contents/Resources/lisp/org/ox
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-texinfo hides /Applications/26.app/Contents/Resources/lisp/org/ox-texinfo
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-publish hides /Applications/26.app/Contents/Resources/lisp/org/ox-publish
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-org hides /Applications/26.app/Contents/Resources/lisp/org/ox-org
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-odt hides /Applications/26.app/Contents/Resources/lisp/org/ox-odt
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-md hides /Applications/26.app/Contents/Resources/lisp/org/ox-md
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-man hides /Applications/26.app/Contents/Resources/lisp/org/ox-man
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-latex hides /Applications/26.app/Contents/Resources/lisp/org/ox-latex
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-icalendar hides /Applications/26.app/Contents/Resources/lisp/org/ox-icalendar
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-html hides /Applications/26.app/Contents/Resources/lisp/org/ox-html
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-beamer hides /Applications/26.app/Contents/Resources/lisp/org/ox-beamer
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ox-ascii hides /Applications/26.app/Contents/Resources/lisp/org/ox-ascii
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org hides /Applications/26.app/Contents/Resources/lisp/org/org
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-w3m hides /Applications/26.app/Contents/Resources/lisp/org/org-w3m
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-version hides /Applications/26.app/Contents/Resources/lisp/org/org-version
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-timer hides /Applications/26.app/Contents/Resources/lisp/org/org-timer
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-table hides /Applications/26.app/Contents/Resources/lisp/org/org-table
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-src hides /Applications/26.app/Contents/Resources/lisp/org/org-src
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-rmail hides /Applications/26.app/Contents/Resources/lisp/org/org-rmail
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-protocol hides /Applications/26.app/Contents/Resources/lisp/org/org-protocol
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-plot hides /Applications/26.app/Contents/Resources/lisp/org/org-plot
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-pcomplete hides /Applications/26.app/Contents/Resources/lisp/org/org-pcomplete
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-mouse hides /Applications/26.app/Contents/Resources/lisp/org/org-mouse
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-mobile hides /Applications/26.app/Contents/Resources/lisp/org/org-mobile
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-mhe hides /Applications/26.app/Contents/Resources/lisp/org/org-mhe
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-macs hides /Applications/26.app/Contents/Resources/lisp/org/org-macs
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-macro hides /Applications/26.app/Contents/Resources/lisp/org/org-macro
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-loaddefs hides /Applications/26.app/Contents/Resources/lisp/org/org-loaddefs
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-list hides /Applications/26.app/Contents/Resources/lisp/org/org-list
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-lint hides /Applications/26.app/Contents/Resources/lisp/org/org-lint
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-irc hides /Applications/26.app/Contents/Resources/lisp/org/org-irc
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-install hides /Applications/26.app/Contents/Resources/lisp/org/org-install
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-inlinetask hides /Applications/26.app/Contents/Resources/lisp/org/org-inlinetask
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-info hides /Applications/26.app/Contents/Resources/lisp/org/org-info
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-indent hides /Applications/26.app/Contents/Resources/lisp/org/org-indent
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-id hides /Applications/26.app/Contents/Resources/lisp/org/org-id
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-habit hides /Applications/26.app/Contents/Resources/lisp/org/org-habit
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-gnus hides /Applications/26.app/Contents/Resources/lisp/org/org-gnus
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-footnote hides /Applications/26.app/Contents/Resources/lisp/org/org-footnote
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-feed hides /Applications/26.app/Contents/Resources/lisp/org/org-feed
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-faces hides /Applications/26.app/Contents/Resources/lisp/org/org-faces
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-eww hides /Applications/26.app/Contents/Resources/lisp/org/org-eww
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-eshell hides /Applications/26.app/Contents/Resources/lisp/org/org-eshell
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-entities hides /Applications/26.app/Contents/Resources/lisp/org/org-entities
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-element hides /Applications/26.app/Contents/Resources/lisp/org/org-element
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-duration hides /Applications/26.app/Contents/Resources/lisp/org/org-duration
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-docview hides /Applications/26.app/Contents/Resources/lisp/org/org-docview
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-datetree hides /Applications/26.app/Contents/Resources/lisp/org/org-datetree
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-ctags hides /Applications/26.app/Contents/Resources/lisp/org/org-ctags
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-crypt hides /Applications/26.app/Contents/Resources/lisp/org/org-crypt
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-compat hides /Applications/26.app/Contents/Resources/lisp/org/org-compat
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-colview hides /Applications/26.app/Contents/Resources/lisp/org/org-colview
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-clock hides /Applications/26.app/Contents/Resources/lisp/org/org-clock
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-capture hides /Applications/26.app/Contents/Resources/lisp/org/org-capture
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-bibtex hides /Applications/26.app/Contents/Resources/lisp/org/org-bibtex
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-bbdb hides /Applications/26.app/Contents/Resources/lisp/org/org-bbdb
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-attach hides /Applications/26.app/Contents/Resources/lisp/org/org-attach
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-archive hides /Applications/26.app/Contents/Resources/lisp/org/org-archive
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/org-agenda hides /Applications/26.app/Contents/Resources/lisp/org/org-agenda
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob hides /Applications/26.app/Contents/Resources/lisp/org/ob
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-vala hides /Applications/26.app/Contents/Resources/lisp/org/ob-vala
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-tangle hides /Applications/26.app/Contents/Resources/lisp/org/ob-tangle
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-table hides /Applications/26.app/Contents/Resources/lisp/org/ob-table
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-stan hides /Applications/26.app/Contents/Resources/lisp/org/ob-stan
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-sqlite hides /Applications/26.app/Contents/Resources/lisp/org/ob-sqlite
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-sql hides /Applications/26.app/Contents/Resources/lisp/org/ob-sql
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-shen hides /Applications/26.app/Contents/Resources/lisp/org/ob-shen
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-shell hides /Applications/26.app/Contents/Resources/lisp/org/ob-shell
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-sed hides /Applications/26.app/Contents/Resources/lisp/org/ob-sed
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-screen hides /Applications/26.app/Contents/Resources/lisp/org/ob-screen
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-scheme hides /Applications/26.app/Contents/Resources/lisp/org/ob-scheme
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-sass hides /Applications/26.app/Contents/Resources/lisp/org/ob-sass
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-ruby hides /Applications/26.app/Contents/Resources/lisp/org/ob-ruby
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-ref hides /Applications/26.app/Contents/Resources/lisp/org/ob-ref
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-R hides /Applications/26.app/Contents/Resources/lisp/org/ob-R
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-python hides /Applications/26.app/Contents/Resources/lisp/org/ob-python
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-processing hides /Applications/26.app/Contents/Resources/lisp/org/ob-processing
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-plantuml hides /Applications/26.app/Contents/Resources/lisp/org/ob-plantuml
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-picolisp hides /Applications/26.app/Contents/Resources/lisp/org/ob-picolisp
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-perl hides /Applications/26.app/Contents/Resources/lisp/org/ob-perl
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-org hides /Applications/26.app/Contents/Resources/lisp/org/ob-org
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-octave hides /Applications/26.app/Contents/Resources/lisp/org/ob-octave
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-ocaml hides /Applications/26.app/Contents/Resources/lisp/org/ob-ocaml
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-mscgen hides /Applications/26.app/Contents/Resources/lisp/org/ob-mscgen
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-maxima hides /Applications/26.app/Contents/Resources/lisp/org/ob-maxima
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-matlab hides /Applications/26.app/Contents/Resources/lisp/org/ob-matlab
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-makefile hides /Applications/26.app/Contents/Resources/lisp/org/ob-makefile
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-lua hides /Applications/26.app/Contents/Resources/lisp/org/ob-lua
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-lob hides /Applications/26.app/Contents/Resources/lisp/org/ob-lob
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-lisp hides /Applications/26.app/Contents/Resources/lisp/org/ob-lisp
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-lilypond hides /Applications/26.app/Contents/Resources/lisp/org/ob-lilypond
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-ledger hides /Applications/26.app/Contents/Resources/lisp/org/ob-ledger
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-latex hides /Applications/26.app/Contents/Resources/lisp/org/ob-latex
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-keys hides /Applications/26.app/Contents/Resources/lisp/org/ob-keys
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-js hides /Applications/26.app/Contents/Resources/lisp/org/ob-js
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-java hides /Applications/26.app/Contents/Resources/lisp/org/ob-java
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-J hides /Applications/26.app/Contents/Resources/lisp/org/ob-J
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-io hides /Applications/26.app/Contents/Resources/lisp/org/ob-io
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-hledger hides /Applications/26.app/Contents/Resources/lisp/org/ob-hledger
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-haskell hides /Applications/26.app/Contents/Resources/lisp/org/ob-haskell
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-groovy hides /Applications/26.app/Contents/Resources/lisp/org/ob-groovy
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-gnuplot hides /Applications/26.app/Contents/Resources/lisp/org/ob-gnuplot
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-fortran hides /Applications/26.app/Contents/Resources/lisp/org/ob-fortran
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-forth hides /Applications/26.app/Contents/Resources/lisp/org/ob-forth
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-exp hides /Applications/26.app/Contents/Resources/lisp/org/ob-exp
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-eval hides /Applications/26.app/Contents/Resources/lisp/org/ob-eval
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-emacs-lisp hides /Applications/26.app/Contents/Resources/lisp/org/ob-emacs-lisp
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-ebnf hides /Applications/26.app/Contents/Resources/lisp/org/ob-ebnf
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-dot hides /Applications/26.app/Contents/Resources/lisp/org/ob-dot
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-ditaa hides /Applications/26.app/Contents/Resources/lisp/org/ob-ditaa
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-css hides /Applications/26.app/Contents/Resources/lisp/org/ob-css
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-core hides /Applications/26.app/Contents/Resources/lisp/org/ob-core
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-coq hides /Applications/26.app/Contents/Resources/lisp/org/ob-coq
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-comint hides /Applications/26.app/Contents/Resources/lisp/org/ob-comint
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-clojure hides /Applications/26.app/Contents/Resources/lisp/org/ob-clojure
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-calc hides /Applications/26.app/Contents/Resources/lisp/org/ob-calc
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-C hides /Applications/26.app/Contents/Resources/lisp/org/ob-C
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-awk hides /Applications/26.app/Contents/Resources/lisp/org/ob-awk
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-asymptote hides /Applications/26.app/Contents/Resources/lisp/org/ob-asymptote
/Users/james/.emacs.d/elpa/26/org-plus-contrib-20180730/ob-abc hides /Applications/26.app/Contents/Resources/lisp/org/ob-abc

Features:
(shadow sort mail-extr emacsbug sendmail smex ido counsel dired-collapse
matcha-projectile projectile evil-collection-grep grep
evil-collection-compile compile ibuf-ext evil-collection-ibuffer ibuffer
ibuffer-loaddefs dired-sidebar face-remap dired-subtree
dired-hacks-utils server highlight-symbol evil-collection-prodigy
prodigy ws-butler super-save evil-collection-flycheck flycheck-posframe
flycheck json map shackle trace notmuch-jump recentf tree-widget
notmuch-modeline ezimage evil-collection-notmuch matcha-notmuch notmuch
hl-line notmuch-message notmuch-hello notmuch-tree notmuch-show
notmuch-print notmuch-crypto notmuch-mua notmuch-draft
notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser
notmuch-wash coolj notmuch-query goto-addr icalendar diary-lib
diary-loaddefs notmuch-tag crm notmuch-lib notmuch-compat message rmc
puny evil-collection-dired ls-lisp matcha-dired dired dired-loaddefs
format-spec rfc822 mml mailabbrev gmm-utils mailheader mm-view mml-smime
mml-sec evil-collection-epa epa epg gnus-util rmail rmail-loaddefs
mail-utils smime dig mm-decode mm-bodies mm-encode mailcap mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr jn-mail vc-git
evil-collection-diff-mode diff-mode company-quickhelp pos-tip
rainbow-delimiters lispyville evil-collection-eval-sexp-fu eval-sexp-fu
highlight font-lock+ display-line-numbers autorevert filenotify
help-at-pt jn-org jn-elisp jn-autocomplete company-posframe posframe
elixir-yasnippets yasnippet elec-pair company-oddmuse company-keywords
company-etags company-gtags company-files company-capf company-cmake
company-semantic company-eclim company-template company-dabbrev-code
company-dabbrev company-yasnippet company-bbdb company-tng
evil-collection-company company jn-evil matcha-evil-mc evil-mc
evil-mc-command-execute evil-mc-command-record evil-mc-cursor-make
evil-mc-region evil-mc-cursor-state evil-mc-undo evil-mc-vars
evil-mc-known-commands evil-mc-common evil-surround evil-collection-xref
evil-collection-simple evil-collection-popup evil-collection-paren
evil-collection-package-menu evil-collection-outline
evil-collection-occur evil-collection-macrostep evil-collection-ivy
evil-collection-info evil-collection-image image-mode
evil-collection-help evil-collection-elisp-mode evil-collection-eldoc
evil-collection-edebug evil-collection-custom cus-edit cus-start
cus-load wid-edit evil-collection-comint evil-collection-calendar
evil-collection-buff-menu evil-collection-avy evil-collection-lispy
evil-collection evil-collection-integration evil evil-maps evil-commands
reveal flyspell ispell evil-jumps evil-command-window evil-types
evil-search evil-ex shell pcomplete comint ansi-color evil-macros
evil-repeat evil-states evil-core evil-common windmove rect
evil-digraphs evil-vars undo-tree diff jn-project jn-editing whitespace
paren so-long derived hideshow smart-jump-lispy lispy swiper ivy flx
colir ivy-overlay ffap delsel lispy-inline avy noutline outline edebug
help-fns radix-tree lispy-tags mode-local find-func smartparens-config
smartparens-text smartparens thingatpt jn-misc jn-git advice jn-platform
exec-path-from-shell jn-defaults winner jn-theme solarized-light-theme
solarized color theme-changer solar cal-dst cal-menu calendar
cal-loaddefs jn-dependencies matcha-elisp matcha-macrostep macrostep pp
matcha pcase matcha-base hydra lv general smart-jump-lisp-mode
smart-jump-elisp-mode smart-jump dumb-jump popup f dash s etags xref
project ring async diminish jn-private cl-extra help-mode jn-functions
subr-x use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key easy-mmode
use-package-core early-init finder-inf edmacro kmacro rx cl info
slime-autoloads package easymenu epg-config url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv
cl-loaddefs cl-lib time-date tooltip eldoc electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel term/ns-win ns-win ucs-normalize
mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote kqueue cocoa ns multi-tty make-network-process emacs)

Memory information:
((conses 16 847497 687665)
 (symbols 48 52281 538)
 (miscs 40 313 1165)
 (strings 32 267862 91521)
 (string-bytes 1 10739863)
 (vectors 16 80198)
 (vector-slots 8 1388406 473562)
 (floats 8 780 1673)
 (intervals 56 1541 745)
 (buffers 992 24))