bug#34337: 26.1; java-mode indenting is confused by multiline annotations

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

bug#34337: 26.1; java-mode indenting is confused by multiline annotations

Steinar Bang

java-mode indents multiline class level annotations wrongly, and indents
the class following the annotation wrongly (see below for an example).

I have tried to adjust the java-mode settings to fix the indentation,
but haven't had any success.

JDEE installed from melpa indents the multiline class level annotations
correctly, so it may be an idea to look at what JDEE does.

I have many multi-line class level annotations for OSGi Declarative
Services (aka "DS") components implementing servlets and filters
plugging into the OSGi web whiteboard.

The DS annotations and the class following them, are formatted strangely
when I run my ide-fix method to fix up the bad formatting done by the
IDEs:
(defun ide-fix ()
  "Remove trailing spaces and fix indentation"
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (replace-regexp "[ \t]+$" "")
    (goto-char (point-min))
    (replace-string "\t" " ")
    (indent-region (point-min) (point-max))))


Eg. this:
@Component(
        property= {
            HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN+"=/*",
            HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT + "=(" + HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME +"=authservice)",
            HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME+"=authservice",
            HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_INIT_PARAM_PREFIX+ServerProperties.PROVIDER_PACKAGES+"=no.priv.bang.authservice.web.security.resources"},
        service=Servlet.class,
        immediate=true
    )
public class AuthserviceServlet extends ServletContainer {
    private static final long serialVersionUID = 6064420153498760622L;
    private LogService logservice;  // NOSONAR Value set by DS injection
    ...
}

Is turned into this by java-mode, while JDEE leaves the above formatting
in place:
@Component(
    property= {
        HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN+"=/*",
        HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT + "=(" + HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME +"=authservice)",
        HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME+"=authservice",
        HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_INIT_PARAM_PREFIX+ServerProperties.PROVIDER_PACKAGES+"=no.priv.bang.authservice.web.security.resources"},
    service=Servlet.class,
    immediate=true
           )
           public class AuthserviceServlet extends ServletContainer {
               private static final long serialVersionUID = 6064420153498760622L;
               private LogService logservice;  // NOSONAR Value set by DS injection
               ...
           }




In GNU Emacs 26.1 (build 1, x86_64-w64-mingw32)
 of 2018-05-30 built on CIRROCUMULUS
Repository revision: 07f8f9bc5a51f5aa94eb099f3e15fbe0c20ea1ea
Windowing system distributor 'Microsoft Corp.', version 10.0.16299
Recent messages:
Mark saved where search started
Mark set
Mark saved where search started
Quit
Mark set
Replaced 0 occurrences
Mark set
Replaced 0 occurrences
Indenting region... done
Undo!

Configured using:
 'configure --without-dbus --host=x86_64-w64-mingw32
 --without-compress-install 'CFLAGS=-O2 -static -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS THREADS LCMS2

Important settings:
  value of $LANG: NOR
  locale-coding-system: cp1252

Major mode: Java//l

Minor modes in effect:
  global-magit-file-mode: t
  magit-file-mode: t
  magit-auto-revert-mode: t
  auto-revert-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  diff-auto-refine-mode: t
  editorconfig-mode: t
  display-time-mode: t
  shell-dirtrack-mode: t
  cl-old-struct-compat-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-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
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

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

Features:
(shadow bbdb-message bbdb bbdb-site timezone mail-extr emacsbug sendmail
mm-archive network-stream starttls url-cache json-mode json-reformat
json-snatcher sql view sort bug-reference vc vc-dispatcher org-w3m
org-rmail org-mhe org-irc org-habit org-agenda org-info org-gnus
org-docview doc-view image-mode org-bibtex bibtex org-bbdb org-element
avl-tree generator org-install org org-macro org-footnote org-pcomplete
org-list org-faces org-entities noutline outline org-version ob-sparql
sparql-mode ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table
ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs find-func cal-menu calendar cal-loaddefs cus-edit cus-start
cus-load magit-obsolete magit-blame magit-stash magit-bisect
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-collab ghub
url-http url-gw nsm url-auth url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap let-alist
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log which-func magit-diff smerge-mode magit-core
magit-autorevert autorevert filenotify magit-process magit-margin
magit-mode git-commit magit-git magit-section magit-utils crm subr-x
magit-popup log-edit pcvs-util add-log with-editor cl-extra help-mode
async-bytecomp async server dash time-stamp vc-git diff-mode rng-xsd
xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse
nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode
nxml-outln nxml-rap nxml-util nxml-enc xmltok editorconfig-core
editorconfig-core-handle editorconfig-fnmatch misearch multi-isearch
compile elec-pair desktop frameset cl nnir gnus-sum gnus-group gnus-undo
gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls utf7 netrc
gnus-spec gnus-int gnus-range message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus-win gnus
wid-edit nnoo nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils nxml-psgml-compatibility
easy-mmode crappy-jsp-mode js json map imenu thingatpt cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
sgml-mode dom editorconfig filladapt time jka-compr tramp tramp-compat
tramp-loaddefs trampver ucs-normalize shell pcomplete comint ansi-color
ring parse-time format-spec advice finder-inf rx info 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 mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32
ls-lisp disp-table term/w32-win w32-win w32-vars 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 w32notify w32 lcms2
multi-tty make-network-process emacs)

Memory information:
((conses 16 1959488 107298)
 (symbols 56 50021 2)
 (miscs 48 1713 2360)
 (strings 32 239993 67248)
 (string-bytes 1 6625127)
 (vectors 16 95825)
 (vector-slots 8 2221963 139958)
 (floats 8 316 628)
 (intervals 56 218258 3366)
 (buffers 992 84))