From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.devel Subject: `buffer-sentences' Date: Sun, 14 Jul 2024 20:13:04 +0200 Message-ID: <87frsbetan.fsf@dataswamp.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10232"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:Z5Dq1wq3V2alPF1EyA5uP+opnRQ= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Jul 14 20:30:36 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sT3zW-0002KU-V5 for ged-emacs-devel@m.gmane-mx.org; Sun, 14 Jul 2024 20:30:34 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sT3z4-000256-Hy; Sun, 14 Jul 2024 14:30:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sT3kY-0007bB-KG for emacs-devel@gnu.org; Sun, 14 Jul 2024 14:15:06 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sT3kW-0003ea-91 for emacs-devel@gnu.org; Sun, 14 Jul 2024 14:15:06 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1sT3kU-00015p-5B for emacs-devel@gnu.org; Sun, 14 Jul 2024 20:15:02 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sun, 14 Jul 2024 14:29:59 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:321653 Archived-At: I've been writing some Elisp, some of it turned up all-Emacs. Maybe it already exists in Emacs or ELPA, if so I'd be happy to use that instead. Are there any options? If not, this is something that can be put somewhere. I'd like to discuss what improvements can be made? Here, one can also think of a general buffer parsing function, where you could submit what unit you would like it to be split up into. (require 'cl-lib) (require 'thingatpt) (defun buffer-sentences (&optional beg end no-sort) (or beg (setq beg (point-min))) (or end (setq end (point-max))) (save-mark-and-excursion (goto-char beg) (cl-loop with buf-strs with next-str while (< (point) end) do (setq next-str (sentence-at-point t)) (when next-str (push next-str buf-strs) ) (forward-sentence) finally return (if no-sort buf-strs (sort buf-strs)) ))) -- underground experts united https://dataswamp.org/~incal