Subject: 23.2; nxml-mode function nxml-electric-slash not indenting when completing

From: James Ahlborn <[email-masked]>
Date: Thu, 19 May 2011 16:43:49 -0400

in older versions of emacs/nxml-mode the nxml-electric-slash function
would both complete the close tag and auto-indent the close tag.  in the
latest emacs version, it seems to do one or the other.  i *think* this
is an oversight, and the old functionality can be easily fixed by moving
the final (when ...) block outside of the (if
nxml-slash-auto-complete-flag ...) block (so that the indenting is done
regardless of whether or not completion is enabled).

In GNU Emacs 23.2.1 (x86_64-pc-linux-gnu, GTK+ Version 2.20.1)
 of 2010-09-01 on pluot, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.10706000
configured using `configure  '--build=x86_64-linux-gnu'
'--host=x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib'
'--libexecdir=/usr/lib' '--localstatedir=/var/lib'
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes'
'--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.2/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.2/leim'
'--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars'
'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu'
'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: C
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: en_US.UTF-8
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: nil
  default enable-multibyte-characters: t

Major mode: JDE

Minor modes in effect:
  nxml-which-path-mode: t
  flymake-mode: t
  semantic-mru-bookmark-mode: t
  semantic-idle-summary-mode: t
  semantic-idle-scheduler-mode: t
  senator-minor-mode: t
  jde-plugin-minor-mode: t
  jde-jdb-minor-mode: t
  desktop-save-mode: t
  display-time-mode: t
  shell-dirtrack-mode: t
  which-dir-mode: t
  recentf-mode: t
  icomplete-mode: t
  global-hl-line-mode: t
  linum-mode: t
  autopair-mode: t
  autopair-global-mode: t
  auto-image-file-mode: t
  delete-selection-mode: t
  show-paren-mode: t
  auto-insert-mode: t
  which-function-mode: t
  operator-show-mode: t
  page-break-mode: t
  tooltip-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-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t
  hs-minor-mode: t

Recent input:
<backspace> <backspace> <backspace> t h e SPC a r <backspace>
<backspace> t a r g e t SPC l o o p SPC k e y SPC <backspace>
s SPC s e t <down> <down> <down> <left> <left> s o
u <tab> C-x C-s <up> <up> <up> <up> C-c b <home> C-s
n o d e <C-left> <C-left> C-SPC <C-right> <C-right>
M-w C-x o C-a <up> <C-right> <C-backspace> C-x C-s
<down> <down> <down> <down> <down> <down> <M-up> <M-down>
C-x C-s <up> <up> <up> <up> <f7> <return> <help-echo>
<help-echo> <up> <f7> <C-backspace> <C-backspace> <C-backspace>
<C-backspace> <C-backspace> <C-backspace> <backspace>
<return> C-x o C-c C-k C-x o C-x b e n <return> <home>
C-s p r i n t l n C-a C-SPC <down> M-; C-s C-s <up>
C-x C-s <f7> <return> <down-mouse-4> <mouse-4> <double-down-mouse-4>
<double-mouse-4> <down-mouse-4> <mouse-4> <down-mouse-4>
<mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4>
<triple-mouse-4> <down-mouse-5> <mouse-5> <double-down-mouse-5>
<double-mouse-5> <triple-down-mouse-5> <triple-mouse-5>
<triple-down-mouse-5> <triple-mouse-5> C-c r ! C-x
b f i l <return> <C-f6> n a n n n a n n n n q y C-x
C-s <f7> <return> <help-echo> M-x f i n d - f u n c
<tab> <return> i m e n u - d e f <tab> c r <tab> C-g
C-x o M-. T r a n s f o r m E n <tab> T <tab> <return>
<help-echo> <down-mouse-5> <mouse-5> <double-down-mouse-5>
<double-mouse-5> <triple-down-mouse-5> <triple-mouse-5>
<triple-down-mouse-5> <triple-mouse-5> <triple-down-mouse-5>
<triple-mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5>
<double-mouse-5> <triple-down-mouse-5> <triple-mouse-5>
<triple-down-mouse-5> <triple-mouse-5> <triple-down-mouse-5>
<triple-mouse-5> <triple-down-mouse-5> <triple-mouse-5>
<triple-down-mouse-5> <triple-mouse-5> <triple-down-mouse-5>
<triple-mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5>
<double-mouse-5> <triple-down-mouse-5> <triple-mouse-5>
<down-mouse-5> <mouse-5> M-x f i n d - l o <tab> <return>
j t a - e m <tab> <return> C-s n x m l <down> C-a C-SPC
<down> <down> <down> M-w <down-mouse-5> <mouse-5> <down-mouse-1>
<mouse-1> M-x r e p o r t - e <tab> <return>

Recent messages:
Loading /home/jahlborn/src/tmp/container/jde-prj.el (source)...done
Loading /home/jahlborn/src/tmp/container/transform/jde-prj.el
(source)...done [4 times]
Quit [2 times]
Loading /home/jahlborn/src/tmp/container/jde-prj.el (source)...done
Loading /home/jahlborn/src/tmp/container/transform/jde-prj.el
(source)...done [2 times]
Making tags completion table for
/home/jahlborn/src/tmp/container/TAGS...done
Loading /home/jahlborn/src/tmp/container/jde-prj.el (source)...done
Loading /home/jahlborn/src/tmp/container/transform/jde-prj.el
(source)...done [2 times]
Mark saved where search started
Mark set

Load-path shadows:
/home/jahlborn/lib/emacs-23/psvn hides /usr/share/emacs/site-lisp/psvn
/usr/share/emacs/23.2/site-lisp/debian-startup hides
/usr/share/emacs/site-lisp/debian-startup
/home/jahlborn/lib/emacs-23/cedet/common/ezimage hides
/usr/share/emacs/23.2/lisp/ezimage
/home/jahlborn/lib/emacs-23/cedet/speedbar/sb-image hides
/usr/share/emacs/23.2/lisp/sb-image
/home/jahlborn/lib/emacs-23/cedet/speedbar/speedbar hides
/usr/share/emacs/23.2/lisp/speedbar
/home/jahlborn/lib/emacs-23/cedet/speedbar/dframe hides
/usr/share/emacs/23.2/lisp/dframe
/usr/share/emacs23/site-lisp/dictionaries-common/flyspell hides
/usr/share/emacs/23.2/lisp/textmodes/flyspell
/usr/share/emacs23/site-lisp/dictionaries-common/ispell hides
/usr/share/emacs/23.2/lisp/textmodes/ispell
/home/jahlborn/lib/emacs-23/flymake hides
/usr/share/emacs/23.2/lisp/progmodes/flymake
/home/jahlborn/lib/emacs-23/cedet/eieio/eieio hides
/usr/share/emacs/23.2/lisp/emacs-lisp/eieio
/home/jahlborn/lib/emacs-23/cedet/eieio/eieio-speedbar hides
/usr/share/emacs/23.2/lisp/emacs-lisp/eieio-speedbar
/home/jahlborn/lib/emacs-23/cedet/eieio/eieio-comp hides
/usr/share/emacs/23.2/lisp/emacs-lisp/eieio-comp
/home/jahlborn/lib/emacs-23/cedet/eieio/eieio-datadebug hides
/usr/share/emacs/23.2/lisp/emacs-lisp/eieio-datadebug
/home/jahlborn/lib/emacs-23/cedet/eieio/chart hides
/usr/share/emacs/23.2/lisp/emacs-lisp/chart
/home/jahlborn/lib/emacs-23/cedet/eieio/eieio-opt hides
/usr/share/emacs/23.2/lisp/emacs-lisp/eieio-opt
/home/jahlborn/lib/emacs-23/cedet/eieio/eieio-custom hides
/usr/share/emacs/23.2/lisp/emacs-lisp/eieio-custom
/home/jahlborn/lib/emacs-23/cedet/eieio/eieio-base hides
/usr/share/emacs/23.2/lisp/emacs-lisp/eieio-base

Features:
(shadow sort mail-extr message sendmail ecomplete rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045
qp ietf-drums mailabbrev nnheader gmm-utils mailheader canlock sha1
hex-util hashcash mail-utils emacsbug semantic-el semantic-bovine
bovine-debug semantic-debug vc ediff-vers ini-mode newcomment cperl-mode
ede-linux ede-emacs ede-cpp-root semantic-dep semantic-analyze-complete
semantic-tag-ls semantic-tag-file multi-isearch edmacro kmacro
semantic-tag-write nxml-uchnm 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-which-path nxml-mode nxml-outln nxml-rap
nxml-util nxml-glyph nxml-enc xmltok semanticdb-typecache
semanticdb-find semanticdb-ref semantic-edit pom-parser
jde-javadoc-helper java-mode-indent-annotations wisent-java
wisent-java-wy semantic-wisent wisent jde-loader jta-jde-util find-lisp
jde-eclipse-compiler-server flymake jde-hippie semantic-decorate-mode
semantic-decorate pulse semantic-mru-bookmark semanticdb-ebrowse ebrowse
ebuff-menu electric view semanticdb-file cedet-files semanticdb-mode jde
jde-annotations jde-open-source jde-bsh jde-parse-expr jde-class
jde-parse-class jde-import semantic-find jde-java-font-lock
jde-which-method jde-java-grammar jde-wiz jde-complete semantic-idle
eldoc senator warnings jde-plugins executable jde-gen tempo jde-run
jde-jdb jde-bug jde-dbs jde-dbo regress jde-db jde-parse sregex
jde-imenu semantic-imenu semantic-java semantic-doc avl-tree semantic-sb
jde-compile cus-edit cus-start cus-load cc-mode cc-menus cc-cmds
cc-styles cc-align jde-help jde-widgets beanshell lmenu jde-custom
jde-project-file jde-util arc-mode archive-mode efc jde-autoload
jta-jde-gen-config cedet cedet-contrib-load contrib-loaddefs cogre-load
cogre-loaddefs speedbar-load speedbar-loaddefs ede-load ede-loaddefs
ede-speedbar ede-files ede ede-base ede-auto eieio-speedbar
semantic-ia-sb semantic-analyze semantic-scope semantic-analyze-fcn
semantic-sort semanticdb-el semanticdb semantic-ctxt semantic-format
semantic-util-modes semantic-util semantic semantic-lex semantic-tag
working fame speedbar sb-image ezimage dframe eieio-custom ede-source
eieio-base srecode-load srecode srecode-loaddefs semantic-load
semantic-fw semantic-loaddefs mode-local find-func derived eieio-load
eieio-loaddefs cedet-load cedet-compat cedet-loaddefs eieio inversion
vc-dispatcher vc-svn jta-tags etags-select gtags etags disp-table
jta-emacs server jta-keybindings hippie-exp dabbrev desktop-menu desktop
xcscope time fold-dwim hideshow doxygen tramp-sudo tramp-imap assoc
tramp-gw tramp-gvfs zeroconf url-parse url-vars mm-util mail-prsvr dbus
xml tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds tramp
auth-source gnus-util netrc time-date shell password-cache format-spec
tramp-compat trampver ange-ftp diminish keep-buffers java-helper
cc-fonts cc-engine cc-vars cc-defs javadoc-helper cc-helper which-dir
buffer-create-util anchored-transpose recentf tree-widget icomplete
ido-util ido iswitchb hl-line linum autopair filladapt image-file
uniquify moccur-edit color-moccur toggle-case eol-conversion find-file
jgrep find-dired dired-sort-menu dired regexp-opt find-recursive
shell-toggle vkill ediff-merg ediff-diff ediff-wind ediff-help
ediff-util ediff-mult ediff-init ediff ffap jta-emacs-20 delsel paren
c-comment-edit autorevert noutline outline easy-mmode autoinsert vti-doc
jta-util which-func imenu telnet time-stamp browse-url byte-opt bytecomp
byte-compile advice help-fns advice-preload thingatpt jta-color-theme
color-theme easymenu wid-edit cl cl-19 compile comint ring tooltip
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd font-setting
tool-bar dnd fontset image fringe lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mldrag 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 loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind system-font-setting
font-render-setting gtk x-toolkit x multi-tty emacs)