Subject: bug#8704: closed (Re: bug#8704: 23.2; nxml-mode function nxml-electric-slash not indenting when completing)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 20 May 2011 13:16:02 +0000

Your bug report

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

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
8704: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8704
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#8704: 23.2; nxml-mode function nxml-electric-slash not indenting when completing
From: Stefan Monnier <[email-masked]>
To: James Ahlborn <[email-masked]>
Cc: [email-masked]
Date: Fri, 20 May 2011 10:15:45 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 24.1

> 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).

Indeed, this looks like an odd choice (if anything, I'd have expected
the reindent to be disabled when nxml-slash-auto-complete-flag is
disabled rather than when it's enabled).  So I've applied the change you
suggest to the trunk.  Thank you,

        Stefan

=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog	2011-05-20 00:51:46 +0000
+++ lisp/ChangeLog	2011-05-20 13:12:51 +0000
@@ -1,3 +1,8 @@
+2011-05-20  Stefan Monnier  <[email-masked]>
+
+	* nxml/nxml-mode.el (nxml-electric-slash): Reindent when completion is
+	enabled.  Suggested by James Ahlborn <[email-masked]> (bug#8704).
+
 2011-05-20  Nix  <[email-masked]>
 
 	* files.el (basic-save-buffer-2):

=== modified file 'lisp/nxml/nxml-mode.el'
--- lisp/nxml/nxml-mode.el	2011-01-26 08:36:39 +0000
+++ lisp/nxml/nxml-mode.el	2011-05-20 13:10:18 +0000
@@ -1263,9 +1263,9 @@
 		(nxml-scan-error nil))
 	    (when (and (eq (nxml-token-before) (point))
 		       (eq xmltok-type 'partial-empty-element))
-	      (insert ">")))
+	      (insert ">"))))
 	(when (and end-tag-p at-indentation)
-	  (nxml-indent-line))))))
+        (nxml-indent-line)))))
 
 (defun nxml-balanced-close-start-tag-block ()
   "Close the start-tag before point with `>' and insert a balancing end-tag.

Subject: 23.2; nxml-mode function nxml-electric-slash not indenting when completing
From: James Ahlborn <[email-masked]>
To: [email-masked]
Date: Thu, 19 May 2011 16:43:49 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

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)