tildify.el: introduce a `tildify-pattern' variable
* textmodes/tildify.el (tildify-pattern): New variable for defining tildifying pattern. Being a buffer-local variable it is much easier to handle than `tildify-pattern-alist' that has been used so far. It also works better with derived modes. (tildify-pattern-alist): Mark as obsolete.
This commit is contained in:
parent
b810409007
commit
d5ec102b7a
3 changed files with 45 additions and 27 deletions
4
etc/NEWS
4
etc/NEWS
|
@ -301,8 +301,8 @@ use PDF instead of DVI.
|
||||||
By default, 32 spaces and four TABs are considered to be too much but
|
By default, 32 spaces and four TABs are considered to be too much but
|
||||||
`whitespace-big-indent-regexp' can be configured to change that.
|
`whitespace-big-indent-regexp' can be configured to change that.
|
||||||
|
|
||||||
** tildify: `tildify-space-string' variable has been added making
|
** tildify: `tildify-space-string' and `tildify-pattern' variables added making
|
||||||
`tildify-string-alist' obsolete.
|
`tildify-string-alist' and `tildify-pattern-alist' obsolete.
|
||||||
|
|
||||||
** Obsolete packages
|
** Obsolete packages
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
2014-11-17 Michal Nazarewicz <mina86@mina86.com>
|
2014-11-17 Michal Nazarewicz <mina86@mina86.com>
|
||||||
|
|
||||||
* textmodes/tildify.el (tildify-space-string): New variable for
|
* textmodes/tildify.el (tildify-pattern, tildify-space-string):
|
||||||
specifying representation of a hard space -- a no-break space by
|
New variables for specifying tildify pattern and representation of
|
||||||
default. Being a buffer-local variable it is much easier to
|
a hard space -- a no-break space by default -- respectively.
|
||||||
handle than `tildify-string-alist' that has been used so far. It
|
Being buffer-local they are much easier to handle than
|
||||||
also works better with derived modes.
|
`tildify-string-alist' and `tildify-pattern-alist' respectively
|
||||||
(tildify-string-alist): Mark as obsolete.
|
that have been used so far. They also works better with derived
|
||||||
|
modes.
|
||||||
|
(tildify-pattern, tildify-string-alist): Mark as obsolete.
|
||||||
|
|
||||||
* textmodes/tex-mode.el (tex-common-initialization): Set
|
* textmodes/tex-mode.el (tex-common-initialization): Set
|
||||||
`tildify-space-string' variable in all variants of TeX mode since
|
`tildify-space-string' variable in all variants of TeX mode since
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
;; Author: Milan Zamazal <pdm@zamazal.org>
|
;; Author: Milan Zamazal <pdm@zamazal.org>
|
||||||
;; Michal Nazarewicz <mina86@mina86.com>
|
;; Michal Nazarewicz <mina86@mina86.com>
|
||||||
;; Version: 4.5.5
|
;; Version: 4.5.6
|
||||||
;; Keywords: text, TeX, SGML, wp
|
;; Keywords: text, TeX, SGML, wp
|
||||||
|
|
||||||
;; This file is part of GNU Emacs.
|
;; This file is part of GNU Emacs.
|
||||||
|
@ -56,8 +56,21 @@
|
||||||
:version "21.1"
|
:version "21.1"
|
||||||
:group 'wp)
|
:group 'wp)
|
||||||
|
|
||||||
(defcustom tildify-pattern-alist
|
(defcustom tildify-pattern
|
||||||
'((t "\\([,:;(][ \t]*[a]\\|\\<[AIKOSUVZikosuvz]\\)\\([ \t]+\\|[ \t]*\n[ \t]*\\)\\(\\w\\|[([{\\]\\|<[a-zA-Z]\\)" 2))
|
"\\(?:[,:;(][ \t]*[a]\\|\\<[AIKOSUVZikosuvz]\\)\\([ \t]+\\|[ \t]*\n[ \t]*\\)\\(?:\\w\\|[([{\\]\\|<[a-zA-Z]\\)"
|
||||||
|
"A pattern specifying where to insert hard spaces.
|
||||||
|
|
||||||
|
`tildify-buffer' function will replace first capturing group of the regexp with
|
||||||
|
a hard space (as defined by `tildify-space-string' variable). (Hint: \\(…\\)
|
||||||
|
non-capturing groups can be used for grouping prior to the part of the regexp
|
||||||
|
matching the white space). The pattern is matched case-sensitive regardless of
|
||||||
|
the value of `case-fold-search' setting."
|
||||||
|
:version "25.1"
|
||||||
|
:group 'tildify
|
||||||
|
:type 'string
|
||||||
|
:safe t)
|
||||||
|
|
||||||
|
(defcustom tildify-pattern-alist ()
|
||||||
"Alist specifying where to insert hard spaces.
|
"Alist specifying where to insert hard spaces.
|
||||||
|
|
||||||
Each alist item is of the form (MAJOR-MODE REGEXP NUMBER) or
|
Each alist item is of the form (MAJOR-MODE REGEXP NUMBER) or
|
||||||
|
@ -85,6 +98,7 @@ mode, the item for the mode SYMBOL is looked up in the alist instead."
|
||||||
regexp
|
regexp
|
||||||
(integer :tag "Group "))
|
(integer :tag "Group "))
|
||||||
(symbol :tag "Like other")))))
|
(symbol :tag "Like other")))))
|
||||||
|
(make-obsolete-variable 'tildify-pattern-alist 'tildify-pattern "25.1")
|
||||||
|
|
||||||
(defcustom tildify-space-string "\u00A0"
|
(defcustom tildify-space-string "\u00A0"
|
||||||
"Representation of a hard (a.k.a. no-break) space in current major mode.
|
"Representation of a hard (a.k.a. no-break) space in current major mode.
|
||||||
|
@ -115,8 +129,7 @@ MAJOR-MODE defines major mode, for which the item applies. It can be either:
|
||||||
alist item
|
alist item
|
||||||
|
|
||||||
STRING defines the hard space, which is inserted at places defined by
|
STRING defines the hard space, which is inserted at places defined by
|
||||||
`tildify-pattern-alist'. For example it can be \"~\" for TeX or \" \"
|
`tildify-pattern'. For example it can be \"~\" for TeX or \" \" for SGML.
|
||||||
for SGML.
|
|
||||||
|
|
||||||
The form (MAJOR-MODE . SYMBOL) defines alias item for MAJOR-MODE. For this
|
The form (MAJOR-MODE . SYMBOL) defines alias item for MAJOR-MODE. For this
|
||||||
mode, the item for the mode SYMBOL is looked up in the alist instead."
|
mode, the item for the mode SYMBOL is looked up in the alist instead."
|
||||||
|
@ -204,7 +217,7 @@ END-REGEX defines end of the corresponding text part and can be either:
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun tildify-region (beg end &optional dont-ask)
|
(defun tildify-region (beg end &optional dont-ask)
|
||||||
"Add hard spaces in the region between BEG and END.
|
"Add hard spaces in the region between BEG and END.
|
||||||
See variables `tildify-pattern-alist', `tildify-space-string', and
|
See variables `tildify-pattern', `tildify-space-string', and
|
||||||
`tildify-ignored-environments-alist' for information about configuration
|
`tildify-ignored-environments-alist' for information about configuration
|
||||||
parameters.
|
parameters.
|
||||||
This function performs no refilling of the changed text.
|
This function performs no refilling of the changed text.
|
||||||
|
@ -225,7 +238,7 @@ won't be prompted for confirmation of each substitution."
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun tildify-buffer (&optional dont-ask)
|
(defun tildify-buffer (&optional dont-ask)
|
||||||
"Add hard spaces in the current buffer.
|
"Add hard spaces in the current buffer.
|
||||||
See variables `tildify-pattern-alist', `tildify-space-string', and
|
See variables `tildify-pattern', `tildify-space-string', and
|
||||||
`tildify-ignored-environments-alist' for information about configuration
|
`tildify-ignored-environments-alist' for information about configuration
|
||||||
parameters.
|
parameters.
|
||||||
This function performs no refilling of the changed text.
|
This function performs no refilling of the changed text.
|
||||||
|
@ -311,18 +324,21 @@ replacements done and response is one of symbols: t (all right), nil
|
||||||
(quit), force (replace without further questions)."
|
(quit), force (replace without further questions)."
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char beg)
|
(goto-char beg)
|
||||||
(let* ((alist (tildify--pick-alist-entry tildify-pattern-alist))
|
(let ((regexp tildify-pattern)
|
||||||
(regexp (car alist))
|
(match-number 1)
|
||||||
(match-number (cadr alist))
|
(tilde (or (tildify--pick-alist-entry tildify-string-alist)
|
||||||
(tilde (or (tildify--pick-alist-entry tildify-string-alist)
|
tildify-space-string))
|
||||||
tildify-space-string))
|
(end-marker (copy-marker end))
|
||||||
(end-marker (copy-marker end))
|
answer
|
||||||
answer
|
bad-answer
|
||||||
bad-answer
|
replace
|
||||||
replace
|
quit
|
||||||
quit
|
(message-log-max nil)
|
||||||
(message-log-max nil)
|
(count 0))
|
||||||
(count 0))
|
;; For the time being, tildify-pattern-alist overwrites tildify-pattern
|
||||||
|
(let ((alist (tildify--pick-alist-entry tildify-pattern-alist)))
|
||||||
|
(when alist
|
||||||
|
(setq regexp (car alist) match-number (cadr alist))))
|
||||||
(while (and (not quit)
|
(while (and (not quit)
|
||||||
(re-search-forward regexp (marker-position end-marker) t))
|
(re-search-forward regexp (marker-position end-marker) t))
|
||||||
(when (or (not ask)
|
(when (or (not ask)
|
||||||
|
|
Loading…
Add table
Reference in a new issue