Package: emacs;
Reported by: James Ahlborn <jahlborn <at> gmail.com>
Date: Thu, 19 May 2011 20:46:03 UTC
Severity: normal
Found in version 23.2
Fixed in version 24.1
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Stefan Monnier <monnier <at> iro.umontreal.ca> Cc: tracker <at> debbugs.gnu.org Subject: bug#8704: closed (23.2; nxml-mode function nxml-electric-slash not indenting when completing) Date: Fri, 20 May 2011 13:16:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Fri, 20 May 2011 10:15:45 -0300 with message-id <jwv4o4pwm5a.fsf-monnier+emacs <at> gnu.org> and subject line Re: bug#8704: 23.2; nxml-mode function nxml-electric-slash not indenting when completing has caused the GNU bug report #8704, regarding 23.2; nxml-mode function nxml-electric-slash not indenting when completing to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 8704: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8704 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: James Ahlborn <jahlborn <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 23.2; nxml-mode function nxml-electric-slash not indenting when completing Date: Thu, 19 May 2011 16:43:49 -0400[Message part 3 (text/plain, inline)]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)[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> iro.umontreal.ca> To: James Ahlborn <jahlborn <at> gmail.com> Cc: 8704-done <at> debbugs.gnu.org Subject: Re: bug#8704: 23.2; nxml-mode function nxml-electric-slash not indenting when completing Date: Fri, 20 May 2011 10:15:45 -0300Version: 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 <monnier <at> iro.umontreal.ca> + + * nxml/nxml-mode.el (nxml-electric-slash): Reindent when completion is + enabled. Suggested by James Ahlborn <jahlborn <at> gmail.com> (bug#8704). + 2011-05-20 Nix <nix <at> esperi.org.uk> * 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.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.