Don't delete leading and trailing space from CJK word (bug#25685)
* lisp/textmodes/fill.el (fill-delete-newlines): Don't delete leading and trailing space from CJK word. (fill-separate-heterogeneous-words-with-space): New user option that controls it (bug#25685).
This commit is contained in:
parent
4e23578127
commit
61ea36bb37
1 changed files with 14 additions and 2 deletions
|
@ -49,6 +49,15 @@ A value of nil means that any change in indentation starts a new paragraph."
|
|||
:group 'fill)
|
||||
(put 'colon-double-space 'safe-local-variable 'booleanp)
|
||||
|
||||
(defcustom fill-separate-heterogeneous-words-with-space nil
|
||||
"Non-nil means that use a space to separate words of different kind.
|
||||
This will be done with a word in the end of a line and a word in the
|
||||
beginning of the next line when concatenating them for filling those
|
||||
lines. Whether to use a space is up to how the words are categorized."
|
||||
:type 'boolean
|
||||
:group 'fill
|
||||
:version "26.1")
|
||||
|
||||
(defvar fill-paragraph-function nil
|
||||
"Mode-specific function to fill a paragraph, or nil if there is none.
|
||||
If the function returns nil, then `fill-paragraph' does its normal work.
|
||||
|
@ -494,8 +503,11 @@ Point is moved to just past the fill prefix on the first line."
|
|||
(replace-match (get-text-property (match-beginning 0) 'fill-space))
|
||||
(let ((prev (char-before (match-beginning 0)))
|
||||
(next (following-char)))
|
||||
(if (and (or (aref (char-category-set next) ?|)
|
||||
(aref (char-category-set prev) ?|))
|
||||
(if (and (if fill-separate-heterogeneous-words-with-space
|
||||
(and (aref (char-category-set next) ?|)
|
||||
(aref (char-category-set prev) ?|))
|
||||
(or (aref (char-category-set next) ?|)
|
||||
(aref (char-category-set prev) ?|)))
|
||||
(or (aref fill-nospace-between-words-table next)
|
||||
(aref fill-nospace-between-words-table prev)))
|
||||
(delete-char -1))))))
|
||||
|
|
Loading…
Add table
Reference in a new issue