By default, 32 spaces and four TABs are considered to be too much but
`whitespace-big-indent-regexp' can be configured to change that.
+** tildify: `tildify-space-string' variable has been added making
+`tildify-string-alist' obsolete.
+
** Obsolete packages
---
+2014-11-17 Michal Nazarewicz <mina86@mina86.com>
+
+ * textmodes/tildify.el (tildify-space-string): New variable for
+ specifying representation of a hard space -- a no-break space by
+ default. Being a buffer-local variable it is much easier to
+ handle than `tildify-string-alist' that has been used so far. It
+ also works better with derived modes.
+ (tildify-string-alist): Mark as obsolete.
+
+ * textmodes/tex-mode.el (tex-common-initialization): Set
+ `tildify-space-string' variable in all variants of TeX mode since
+ `tildify-string-alist' is now empty by default.
+
+ * nxml/nxml-mode.el (nxml-mode): Ditto in `nxml-mode'. If
+ encoding supports it use no-break space instead of character
+ entity; this changes previous default which used a numeric
+ reference.
+
+ * textmodes/sgml-mode.el (sgml-mode): ditto in `sgml-mode'. If
+ encoding does not support no-break space, use numeric reference;
+ this changes previous default which used named entity (? ?)
+ in HTML mode.
+
2014-11-17 Ulf Jasper <ulf.jasper@web.de>
Fix bug#5433.
(when rng-validate-mode
(rng-validate-while-idle (current-buffer)))))
+(defvar tildify-space-string)
+
;;;###autoload
(define-derived-mode nxml-mode text-mode "nXML"
;; We use C-c C-i instead of \\[nxml-balanced-close-start-tag-inline]
Many aspects this mode can be customized using
\\[customize-group] nxml RET."
;; (kill-all-local-variables)
+ ;; If encoding does not allow non-break space character, use reference.
+ ;; FIXME: This duplicates code from sgml-mode, perhaps derive from it?
+ ;; FIXME: Perhaps use if possible (e.g. XHTML)?
+ (setq-local tildify-space-string
+ (if (equal (decode-coding-string
+ (encode-coding-string " " buffer-file-coding-system)
+ buffer-file-coding-system) " ")
+ " " " "))
(set (make-local-variable 'mode-line-process) '((nxml-degraded "/degraded")))
;; We'll determine the fill prefix ourselves
(make-local-variable 'adaptive-fill-mode)
(skip-chars-backward "/?!")
(eq (char-before) ?<))))
+(defvar tildify-space-string)
+
;;;###autoload
(define-derived-mode sgml-mode text-mode '(sgml-xml-mode "XML" "SGML")
"Major mode for editing SGML documents.
\\{sgml-mode-map}"
(make-local-variable 'sgml-saved-validate-command)
(make-local-variable 'facemenu-end-add-face)
+ ;; If encoding does not allow non-break space character, use reference.
+ ;; FIXME: Perhaps use if possible (e.g. when we know its HTML)?
+ (setq-local tildify-space-string
+ (if (equal (decode-coding-string
+ (encode-coding-string " " buffer-file-coding-system)
+ buffer-file-coding-system) " ")
+ " " " "))
;;(make-local-variable 'facemenu-remove-face-function)
;; A start or end tag by itself on a line separates a paragraph.
;; This is desirable because SGML discards a newline that appears
(setq tex-command slitex-run-command)
(setq tex-start-of-header "\\\\documentstyle{slides}\\|\\\\documentclass{slides}"))
+(defvar tildify-space-string)
+
(defun tex-common-initialization ()
;; Regexp isearch should accept newline and formfeed as whitespace.
(setq-local search-whitespace-regexp "[ \t\r\n\f]+")
+ ;; Use tilde as hard-space character in tildify package.
+ (setq-local tildify-space-string "~")
;; A line containing just $$ is treated as a paragraph separator.
(setq-local paragraph-start "[ \t]*$\\|[\f\\\\%]\\|[ \t]*\\$\\$")
;; A line starting with $$ starts a paragraph,
;; Author: Milan Zamazal <pdm@zamazal.org>
;; Michal Nazarewicz <mina86@mina86.com>
-;; Version: 4.5.4
+;; Version: 4.5.5
;; Keywords: text, TeX, SGML, wp
;; This file is part of GNU Emacs.
(integer :tag "Group "))
(symbol :tag "Like other")))))
-(defcustom tildify-string-alist
- '((latex-mode . "~")
- (tex-mode . latex-mode)
- (plain-tex-mode . latex-mode)
- (sgml-mode . " ")
- (html-mode . sgml-mode)
- (xml-mode . " ") ; XML does not define use numeric reference
- (nxml-mode . xml-mode)
- (t . " "))
+(defcustom tildify-space-string "\u00A0"
+ "Representation of a hard (a.k.a. no-break) space in current major mode.
+
+Used by `tildify-buffer' in places where space is required but line
+cannot be broken. For example \"~\" for TeX or \" \" for SGML,
+HTML and XML modes. A no-break space Unicode character (\"\\u00A0\")
+might be used for other modes if compatible encoding is used.
+
+If nil, current major mode has no way to represent a hard space."
+ :version "25.1"
+ :group 'tildify
+ :type '(choice (const :tag "Space character (no hard-space representation)"
+ " ")
+ (const :tag "No-break space (U+00A0)" "\u00A0")
+ (string :tag "Custom string"))
+ :safe t)
+
+(defcustom tildify-string-alist ()
"Alist specifying what is a hard space in the current major mode.
Each alist item is of the form (MAJOR-MODE . STRING) or
(choice (const :tag "No-break space (U+00A0)" "\u00A0")
(string :tag "String ")
(symbol :tag "Like other")))))
+(make-obsolete-variable 'tildify-string-alist
+ 'tildify-space-string "25.1")
(defcustom tildify-ignored-environments-alist
`((latex-mode
;;;###autoload
(defun tildify-region (beg end &optional dont-ask)
"Add hard spaces in the region between BEG and END.
-See variables `tildify-pattern-alist', `tildify-string-alist', and
+See variables `tildify-pattern-alist', `tildify-space-string', and
`tildify-ignored-environments-alist' for information about configuration
parameters.
This function performs no refilling of the changed text.
;;;###autoload
(defun tildify-buffer (&optional dont-ask)
"Add hard spaces in the current buffer.
-See variables `tildify-pattern-alist', `tildify-string-alist', and
+See variables `tildify-pattern-alist', `tildify-space-string', and
`tildify-ignored-environments-alist' for information about configuration
parameters.
This function performs no refilling of the changed text.
(let* ((alist (tildify--pick-alist-entry tildify-pattern-alist))
(regexp (car alist))
(match-number (cadr alist))
- (tilde (tildify--pick-alist-entry tildify-string-alist))
+ (tilde (or (tildify--pick-alist-entry tildify-string-alist)
+ tildify-space-string))
(end-marker (copy-marker end))
answer
bad-answer
+2014-11-17 Michal Nazarewicz <mina86@mina86.com>
+
+ * automated/tildify-tests.el (tildify-test-html, tildify-test-xml):
+ HTML and XML now use no-break space as hard space. Update tests.
+
2014-11-17 Glenn Morris <rgm@gnu.org>
* automated/occur-tests.el (occur-test-case, occur-test-create):
(ert-deftest tildify-test-html ()
"Tests tildification in an HTML document"
(let* ((sentence (tildify-test--example-sentence " "))
- (with-nbsp (tildify-test--example-sentence " ")))
+ (with-nbsp (tildify-test--example-sentence " ")))
(tildify-test--test '(html-mode sgml-mode)
(tildify-test--example-html sentence sentence)
(tildify-test--example-html sentence with-nbsp))))
(ert-deftest tildify-test-xml ()
"Tests tildification in an XML document"
(let* ((sentence (tildify-test--example-sentence " "))
- (with-nbsp (tildify-test--example-sentence " ")))
+ (with-nbsp (tildify-test--example-sentence " ")))
(tildify-test--test '(nxml-mode)
(tildify-test--example-html sentence sentence t)
(tildify-test--example-html sentence with-nbsp t))))