emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: paragraphs.el: do forward-sentence and friends not work?


From: David Reitter
Subject: Re: paragraphs.el: do forward-sentence and friends not work?
Date: Fri, 13 Jun 2008 15:14:31 +0100

On 14 Feb 2008, at 14:43, Stefan Monnier wrote:

Using two spaces after end of sentence enables Emacs to distinguish
between periods that end sentences and periods for abbreviations.
That is why it should be the default.

We can improve this to make it work without depending on the double-
space.

But the period-single-space vs period-double-space distinction allows us
to get it right 100% in many more languages than just English.


Stefan "Who switched to non-French spacing even when writing French"


Following up on this discussion: one could arrive at the solution below, which does NOT change the default of `sentence-end-double- space' (it is t), but introduces a customization variable that allows users to configure the behavior for recognition only.

By default it is nil, which allows Emacs to recognize sentence ends even if the period is followed by only one space, as is common in many languages. Would this have ill effects? Does `fill-nobreak-p' (in fill.el) need to respect this variable as well?




*** lisp/textmodes/paragraphs.el        17 Apr 2008 10:52:44 +0100      1.87.2.4
--- lisp/textmodes/paragraphs.el        13 Jun 2008 15:04:21 +0100      
***************
*** 130,135 ****
--- 130,148 ----
    :group 'fill)
;;;###autoload(put 'sentence-end-double-space 'safe-local-variable 'booleanp)

+ (defcustom sentence-end-double-space-for-recognition nil
+   "Non-nil means a single space does not end a sentence.
+ This is relevant for the recognition of sentence ends.  See also
+ `sentence-end-without-period' and `colon-double-space'.  If non-nil,
+ the value of `sentence-end-double-space' is used.
+
+ This value is used by the function `sentence-end' to construct the
+ regexp describing the end of a sentence, when the value of the variable
+ `sentence-end' is nil.  See Info node `(elisp)Standard Regexps'."
+   :type 'boolean
+   :group 'fill)
+ ;;;###autoload(put 'sentence-end-double-space-for-recognition 'safe- local-variable 'booleanp)
+
  (defcustom sentence-end-without-period nil
    "Non-nil means a sentence will end without a period.
  For example, a sentence in Thai text ends with double space but
***************
*** 188,194 ****
        (concat (if sentence-end-without-period "\\w  \\|")
              "\\("
              sentence-end-base
!               (if sentence-end-double-space
                    "\\($\\| $\\|\t\\|  \\)" "\\($\\|[\t ]\\)")
                "\\|[" sentence-end-without-space "]+"
              "\\)"
--- 201,208 ----
        (concat (if sentence-end-without-period "\\w  \\|")
              "\\("
              sentence-end-base
!               (if (and sentence-end-double-space
!                      sentence-end-double-space-for-recognition)
                    "\\($\\| $\\|\t\\|  \\)" "\\($\\|[\t ]\\)")
                "\\|[" sentence-end-without-space "]+"
              "\\)"

Attachment: smime.p7s
Description: S/MIME cryptographic signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]