bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#19595: 25.0.50; python-mode no longer indents docstrings


From: immerrr again
Subject: bug#19595: 25.0.50; python-mode no longer indents docstrings
Date: Wed, 14 Jan 2015 16:06:07 +0400

I migrated from Emacs 24 to bleeding edge few days ago (New Year -- new
Emacs) and it seems that I've run into a "regression" when editing
Python code.

python-mode has always indented docstrings, but according to the commit
message log there has been some progress in leaving strings alone when
doing indentation.  At the moment of writing, the master branch top
commit only indents open-quotes leaving the rest of the docstring as-is.

To reproduce that in "emacs -Q" session:
- open a buffer in python-mode
- insert the following text into it
- and try indenting the docstring either with TAB or indent-region.

def foobar():
'''
hello, world.
'''

It seems perfectly reasonable to leave leading whitespace in user
strings, I did that myself in lua-mode.  But as it was once pointed out
to me [1], there are legitimate situations when one does not care about
string indentation and in such cases it seems easier on the eye to align
string contents.

One of such cases is Python docstrings.  According to PEP 257 [2],
absolute indentation of docstrings is insignificant and only relative
indentation of the second and the following lines is preserved.  In my
some three years of editing other people's code I cannot come up with a
name of a project where docstrings would not be indented.

1. https://github.com/immerrr/lua-mode/issues/6
2. https://www.python.org/dev/peps/pep-0257/#id18

I've fixed this for myself with the following patch:

 lisp/ChangeLog                 |    6 ++++++
 lisp/progmodes/python.el       |   14 ++++----------
 test/automated/python-tests.el |   16 ++++++++++++++--
 3 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 4b413fb..ab75061 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2015-01-13  immerrr  <immerrr@gmail.com>
+
+    * progmodes/python.el (python-indent-context)
+    (python-indent-calculate-indentation, python-indent-region):
+    Indent docstring lines to their respective open-quote.
+
 2015-01-01  Eli Zaretskii  <eliz@gnu.org>

     * tool-bar.el (tool-bar-local-item)
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 1e8623d..edb53ca 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -787,7 +787,7 @@ START is the buffer position where the sexp starts."
              'after-comment)))
         ;; Inside string
         ((setq start (python-syntax-context 'string ppss))
-         'inside-string)
+         (if (python-docstring-at-p start) 'inside-docstring 'inside-string))
         ;; Inside a paren
         ((setq start (python-syntax-context 'paren ppss))
          'inside-paren)
@@ -882,6 +882,9 @@ such as in strings."
           ;; indentation.  XXX: perhaps it would be a good idea to
           ;; invoke standard text indentation here
           (`inside-string 'noindent)
+          (`inside-docstring
+           (goto-char context-start)
+           (current-indentation))
           ;; After backslash we have several possibilities.
           (`after-backslash
            (cond
@@ -1129,15 +1132,6 @@ Called from a program, START and END specify
the region to indent."
                                  ;; Unless this line is a comment too.
                                  (not line-is-comment-p))
                             (python-info-current-line-empty-p)))))
-                   ;; Don't mess with strings, unless it's the
-                   ;; enclosing set of quotes.
-                   (or (not (python-syntax-context 'string))
-                       (eq
-                        (syntax-after
-                         (+ (1- (point))
-                            (current-indentation)
-                            (python-syntax-count-quotes (char-after) (point))))
-                        (string-to-syntax "|")))
                    ;; Skip if current line is a block start, a
                    ;; dedenter or block ender.
                    (save-excursion
diff --git a/test/automated/python-tests.el b/test/automated/python-tests.el
index e989ccb..eda4228 100644
--- a/test/automated/python-tests.el
+++ b/test/automated/python-tests.el
@@ -860,14 +860,26 @@ def f():
 '''
 this is
 a multiline
+docstring
+'''
+x = \\
+'''
+this is an arbitrarily
+    indented multiline
 string
 '''
 ")
         (expected "
 def f():
     '''
-this is
-a multiline
+    this is
+    a multiline
+    docstring
+    '''
+    x = \\
+        '''
+this is an arbitrarily
+    indented multiline
 string
 '''
 "))
-- 
1.7.9.5








In GNU Emacs 25.0.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.4.2)
 of 2015-01-14 on mmrdell
Repository revision: 24bff4727418b21869d7c140d0b8b22bd5c0d422
Windowing system distributor `The X.Org Foundation', version 11.0.11103000
System Description:    Ubuntu 12.04.5 LTS

Configured using:
 `configure --prefix=/home/immerrr/.local'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB

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

Major mode: Info

Minor modes in effect:
  recentf-mode: t
  ido-vertical-mode: t
  ido-ubiquitous-mode: t
  guide-key-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-page-break-lines-mode: t
  projectile-global-mode: t
  projectile-mode: t
  global-flycheck-mode: t
  global-auto-complete-mode: t
  global-linum-mode: t
  linum-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  show-paren-mode: t
  auto-compile-on-save-mode: t
  tooltip-mode: t
  global-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t

Recent messages:
[yas] Loading compiled snippets from
/home/immerrr/.emacs.d/el-get/yasnippet/snippets/prog-mode
Loading /home/immerrr/.emacs.d/el-get/yasnippet/snippets/prog-mode/.yas-setup.el
(source)...done
E303 too many blank lines (3)
Mark set
Saving file /home/immerrr/test.py...
Wrote /home/immerrr/test.py
Composing main Info directory...done
/ is undefined
Found `report an Emacs bug, how to' in Concept Index.  (Only match)
scroll-down-command: Beginning of buffer [2 times]
scroll-up-command: End of buffer

Load-path shadows:
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-loaddefs hides
/home/immerrr/.emacs.d/el-get/org-mode/contrib/lisp/org-loaddefs
/home/immerrr/.emacs.d/el-get/ido-mode-el/ido hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/ido
/home/immerrr/.emacs.d/el-get/cperl-mode/cperl-mode hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/progmodes/cperl-mode
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-gnuplot hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-gnuplot
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-lisp hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-lisp
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-ctags hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-ctags
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-ruby hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-ruby
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-emacs-lisp hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-emacs-lisp
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-ocaml hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-ocaml
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-lilypond hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-lilypond
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-macs hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-macs
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-python hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-python
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-mouse hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-mouse
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-html hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-html
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-crypt hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-crypt
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-awk hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-awk
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-haskell hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-haskell
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-dot hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-dot
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-attach hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-attach
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-texinfo hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-texinfo
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-eshell hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-eshell
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-timer hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-timer
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-w3m hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-w3m
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-feed hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-feed
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-archive hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-archive
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-agenda hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-agenda
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-css hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-css
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-pcomplete hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-pcomplete
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-shen hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-shen
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-mhe hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-mhe
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-asymptote hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-asymptote
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-calc hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-calc
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-core hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-core
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-gnus hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-gnus
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-clock hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-clock
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-rmail hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-rmail
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-lob hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-lob
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-ditaa hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-ditaa
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-latex hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-latex
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-indent hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-indent
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-screen hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-screen
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-md hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-md
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-compat hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-compat
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-eval hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-eval
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-inlinetask hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-inlinetask
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-bibtex hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-bibtex
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-keys hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-keys
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-perl hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-perl
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-publish hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-publish
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-exp hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-exp
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-org hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-org
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-maxima hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-maxima
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-fortran hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-fortran
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-ref hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-ref
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-octave hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-octave
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-capture hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-capture
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-mscgen hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-mscgen
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-js hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-js
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-tangle hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-tangle
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-ascii hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-ascii
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-sql hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-sql
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-id hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-id
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-man hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-man
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-colview hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-colview
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-bbdb hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-bbdb
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-picolisp hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-picolisp
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-plot hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-plot
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-version hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-version
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-src hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-src
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-comint hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-comint
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-mobile hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-mobile
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-ledger hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-ledger
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-scheme hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-scheme
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-R hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-R
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-scala hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-scala
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-io hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-io
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-loaddefs hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-loaddefs
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-icalendar hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-icalendar
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-faces hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-faces
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-macro hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-macro
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-table hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-table
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-odt hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-odt
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-element hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-element
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-sass hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-sass
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-docview hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-docview
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-C hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-C
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-protocol hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-protocol
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-clojure hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-clojure
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-matlab hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-matlab
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-irc hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-irc
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-datetree hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-datetree
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-makefile hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-makefile
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-latex hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-latex
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-entities hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-entities
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-org hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-org
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-sqlite hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-sqlite
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-install hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-install
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-java hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-java
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-table hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-table
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-list hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-list
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ob-plantuml hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ob-plantuml
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-info hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-info
/home/immerrr/.emacs.d/el-get/org-mode/lisp/ox-beamer hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/ox-beamer
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-habit hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-habit
/home/immerrr/.emacs.d/el-get/org-mode/lisp/org-footnote hides
/home/immerrr/.local/share/emacs/25.0.50/lisp/org/org-footnote

Features:
(shadow sort mail-extr emacsbug message format-spec rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils browse-url
info network-stream nsm auth-source gnus-util mm-util mail-prsvr
password-cache starttls tls jedi-direx direx eieio eieio-core jedi
python-environment epc ctable concurrent deferred cap-words superword
subword hideshow disp-table whitespace flymake async-autoloads
highlight-autoloads iedit-autoloads noflet-autoloads recentf tree-widget
dired-x ert ewoc debug mmr-site-local mmr-smartrep highlight-symbol
smartrep mmr-python-settings mmr-cc-settings cc-styles cc-align
cc-engine cc-vars cc-defs mmr-el-get ido-vertical-mode ido-ubiquitous
warnings cython-mode python json region-bindings-mode guide-key
face-remap popwin undo-tree diff diminish ein ein-loaddefs smex ido
filladapt goto-chg page-break-lines wgrep redshank-loader projectile
ibuf-ext ibuffer pkg-info epl grep s ucs-normalize thingatpt flycheck
derived find-func rx subr-x pcase jka-compr sh-script smie executable
compile comint ansi-color ring auto-complete-config auto-complete popup
solarized-dark-theme solarized dash color-theme wid-edit linum-ex
mmr-org-settings edmacro kmacro org-loaddefs yasnippet .loaddefs el-get
el-get-autoloads el-get-list-packages el-get-dependencies el-get-build
el-get-status pp el-get-methods el-get-fossil el-get-svn el-get-pacman
el-get-github-zip el-get-github-tar el-get-http-zip el-get-http-tar
el-get-hg el-get-go el-get-git-svn el-get-fink el-get-emacswiki
el-get-http el-get-notify help-mode easymenu el-get-emacsmirror
el-get-github el-get-git el-get-elpa package epg-config el-get-darcs
el-get-cvs el-get-bzr el-get-brew el-get-builtin el-get-apt-get
el-get-recipes el-get-byte-compile el-get-custom el-get-core autoload
lisp-mnt cl dired saveplace paren avoid cus-start cus-load mmr-minimal
mmr-ediff windmove auto-compile byte-opt easy-mmode packed cl-macs gv
bytecomp byte-compile cl-extra cconv cl-loaddefs cl-lib bar-cursor
advice help-fns time-date tooltip eldoc electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer 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 make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 694600 18285)
 (symbols 48 40763 24)
 (miscs 40 453 435)
 (strings 32 104476 19834)
 (string-bytes 1 2809954)
 (vectors 16 55789)
 (vector-slots 8 1245262 25730)
 (floats 8 529 716)
 (intervals 56 31121 438)
 (buffers 976 17)
 (heap 1024 72727 2418))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]