unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Two spaces after end of sentences.
@ 2024-09-18  0:55 Heime
  2024-09-18  2:20 ` Heime
  0 siblings, 1 reply; 3+ messages in thread
From: Heime @ 2024-09-18  0:55 UTC (permalink / raw)
  To: Heime via Users list for the GNU Emacs text editor

I want to have two spaces after end of sentences.  But only if the next 
letter in a capital.  But when I tried this implementation, spaces were
introduces even when the next letter was miniscule. 


(defun montej ()
  "Ensure that there are two spaces after every period in the
current paragraph."

  (interactive)

  (save-excursion

    ;; Determine the start and end of the current paragraph
    (let ( (start (save-excursion (backward-paragraph) (point)))
           (end   (save-excursion (forward-paragraph)  (point))) )

      ;; Move to the start of the paragraph
      (goto-char start)

      ;; Find period followed by fewer than two spaces
      (while (re-search-forward
               "\\([.!?]\\) \\{0,1\\}\\([A-Z]\\)" end t)
        ;; Replace with a period followed by two spaces
        (replace-match "\\1  \\2")))))





^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Two spaces after end of sentences.
  2024-09-18  0:55 Two spaces after end of sentences Heime
@ 2024-09-18  2:20 ` Heime
  2024-09-18 12:20   ` Thorsten Bonow
  0 siblings, 1 reply; 3+ messages in thread
From: Heime @ 2024-09-18  2:20 UTC (permalink / raw)
  To: Heime; +Cc: Heime via Users list for the GNU Emacs text editor






Sent with Proton Mail secure email.

On Wednesday, September 18th, 2024 at 12:55 PM, Heime <heimeborgia@protonmail.com> wrote:

> I want to have two spaces after end of sentences. But only if the next
> letter in a capital. But when I tried this implementation, spaces were
> introduces even when the next letter was miniscule.
> 
> 
> (defun montej ()
> "Ensure that there are two spaces after every period in the
> current paragraph."
> 
> (interactive)
> 
> (save-excursion
> 
> ;; Determine the start and end of the current paragraph
> (let ( (start (save-excursion (backward-paragraph) (point)))
> (end (save-excursion (forward-paragraph) (point))) )
> 
> ;; Move to the start of the paragraph
> (goto-char start)
> 
> ;; Find period followed by fewer than two spaces
> (while (re-search-forward
> "\\([.!?]\\) \\{0,1\\}\\([A-Z]\\)" end t)
> ;; Replace with a period followed by two spaces
> (replace-match "\\1 \\2")))))

Am also highlighting when there is just a single space.  But cannot
remove the original overlay when I insert an additional  space and
run the command again.

(defun montej-senfyr ()
  "Highlight in red any instance where there is less than two spaces
after a period between sentences in the current paragraph."

  (interactive)

  (save-excursion

    ;; Determine the start and end of the current paragraph
    (let ( (start   (save-excursion (backward-paragraph) (point)))
           (end     (save-excursion (forward-paragraph)  (point)))
           (face    '(:background "red")))

      ;; Move to the start of the paragraph
      (goto-char start)

      ;; Remove previous overlays if any
      (remove-overlays start end 'category 'highlight-single-space)

      ;; Locate periods followed by less than two spaces and a capital letter
      (while (re-search-forward "\\([.!?]\\) \\{0,1\\}\\([A-Z]\\)" end t)
        (let ((period-end (match-end 1))
              (next-space-start (match-beginning 2)))

          ;; Highlight less than two spaces after period
          (when (and (> next-space-start period-end)
                     (< (- next-space-start period-end) 2))
           (let ( (highlight-start (1+ period-end))
                  (highlight-end   (1- next-space-start)) )

             (make-overlay highlight-start highlight-end)
             (overlay-put (make-overlay highlight-start highlight-end)
                            'category 'highlight-single-space)
             (overlay-put (make-overlay highlight-start highlight-end)
                            'face face))))))))





^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Two spaces after end of sentences.
  2024-09-18  2:20 ` Heime
@ 2024-09-18 12:20   ` Thorsten Bonow
  0 siblings, 0 replies; 3+ messages in thread
From: Thorsten Bonow @ 2024-09-18 12:20 UTC (permalink / raw)
  To: help-gnu-emacs

>>>>> Heime  <heimeborgia@protonmail.com> writes:

> Sent with Proton Mail secure email.

> On Wednesday, September 18th, 2024 at 12:55 PM, Heime
> <heimeborgia@protonmail.com> wrote:

>> I want to have two spaces after end of sentences. But only if the
>> next letter in a capital. But when I tried this implementation,
>> spaces were introduces even when the next letter was miniscule.
>> 
>> 
>> (defun montej () "Ensure that there are two spaces after every period
>> in the current paragraph."
>> 
>> (interactive)
>> 
>> (save-excursion
>> 
>> ;; Determine the start and end of the current paragraph (let ( (start
>> (save-excursion (backward-paragraph) (point))) (end (save-excursion
>> (forward-paragraph) (point))) )
>> 
>> ;; Move to the start of the paragraph (goto-char start)
>> 
>> ;; Find period followed by fewer than two spaces (while
>> (re-search-forward "\\([.!?]\\) \\{0,1\\}\\([A-Z]\\)" end t) ;;
>> Replace with a period followed by two spaces (replace-match "\\1
>> \\2")))))

> Am also highlighting when there is just a single space.  But cannot
> remove the original overlay when I insert an additional space and run
> the command again.

> (defun montej-senfyr () "Highlight in red any instance where there is
> less than two spaces after a period between sentences in the current
> paragraph."

> (interactive)

> (save-excursion

> ;; Determine the start and end of the current paragraph (let ( (start
> (save-excursion (backward-paragraph) (point))) (end (save-excursion
> (forward-paragraph) (point))) (face '(:background "red")))

> ;; Move to the start of the paragraph (goto-char start)

> ;; Remove previous overlays if any (remove-overlays start end
> 'category 'highlight-single-space)

> ;; Locate periods followed by less than two spaces and a capital
> letter (while (re-search-forward "\\([.!?]\\) \\{0,1\\}\\([A-Z]\\)"
> end t) (let ((period-end (match-end 1)) (next-space-start
> (match-beginning 2)))

> ;; Highlight less than two spaces after period (when (and (>
> next-space-start period-end) (< (- next-space-start period-end) 2))
> (let ( (highlight-start (1+ period-end)) (highlight-end (1-
> next-space-start)) )

> (make-overlay highlight-start highlight-end) (overlay-put
> (make-overlay highlight-start highlight-end) 'category
> 'highlight-single-space) (overlay-put (make-overlay highlight-start
> highlight-end) 'face face))))))))

Hi,

maybe you should have a look at `repunctuate-sentences' (paragraphs.el)
and write your own `repunctuate-sentences-filter' to achieve what you want.

Toto

-- 
Sent from my GNU Emacs running on GNU/Linux




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-09-18 12:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-18  0:55 Two spaces after end of sentences Heime
2024-09-18  2:20 ` Heime
2024-09-18 12:20   ` Thorsten Bonow

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).