Received: (at 78561) by debbugs.gnu.org; 19 Jun 2025 06:41:44 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 19 02:41:44 2025 Received: from localhost ([127.0.0.1]:59960 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uS8xz-00087C-Hf for submit <at> debbugs.gnu.org; Thu, 19 Jun 2025 02:41:44 -0400 Received: from mout01.posteo.de ([185.67.36.65]:51349) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <yantar92@HIDDEN>) id 1uS8xu-00085U-I0 for 78561 <at> debbugs.gnu.org; Thu, 19 Jun 2025 02:41:41 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 1E621240027 for <78561 <at> debbugs.gnu.org>; Thu, 19 Jun 2025 08:41:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=1984.ea087b; t=1750315292; bh=9mROnos26zQcVqeaziaamGkvN1fb5EHZKMlwSdaRHKM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type: From; b=kietr6LDWDuIhqPL0ypVVFmEoYMeYvDe/7Q1AX34CYt3CrNaLtRRXEytw1ANmE4DP nXYasioTF8fataK3YpViomn1Png6ZzsREAnwXTrjESHSvnmvQmJVTswQWQea2sqtmr 1nQW8vP1HQCmy6X4EpmKhp10fICcFeiaEyHnVMXt/8DmpILUeI1Xd8Eqv8kjIJQVMb xSfUhRXlW1TqUGz8V7bz4qelbh1YXQBCkzFvvGS46CDlOIHBeK7TDC6dXtlzac2d2k RHsvCW0qj3O/Qcr3KHK/QIH/FB2rcMgWY4Fqylqkcola3nltbUfs8VRDzbaS0EHnTA wgzFD+FBMDsd+9oyp26fMFoVssXWB7rz8M5qKfHtDQnFWShKk4fQFnkMS7zYuBDISb HyQ3LR0lC3frNCepP+cUmZilG+q5dcuqKdLcW+e5qSEv4JmHbzdjHrCRvDxTTcexfW O3RgS3TnmpuIaArtoYZgp583j+U6ZBq3xDF1qphg+kBFvEyt4nd Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4bN9xR07nnz6tvx; Thu, 19 Jun 2025 08:41:30 +0200 (CEST) From: Ihor Radchenko <yantar92@HIDDEN> To: Juri Linkov <juri@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <8734by3mwo.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <87jz5dz8dh.fsf@HIDDEN> <87ldpt7zij.fsf@HIDDEN> <87zfe8x9hk.fsf@HIDDEN> <87ecvj63v2.fsf@HIDDEN> <jwvfrfz8js5.fsf-monnier+emacs@HIDDEN> <8734by3mwo.fsf@HIDDEN> Date: Thu, 19 Jun 2025 06:40:10 +0000 Message-ID: <87cyb0grp1.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: eliz@HIDDEN, Stefan Monnier <monnier@HIDDEN>, 78561 <at> debbugs.gnu.org, Roi Martin <jroi.martin@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Juri Linkov <juri@HIDDEN> writes: >>> ;; Revert 'M-q' hijacked by org-mode: >>> (define-key org-mode-map (vector 'remap 'fill-paragraph) nil) >> >> Maybe it deserves a bug report? Looking at the code, I can't see a good >> reason for this hijacking. Maybe it's just a left over from old code. > > Cc-ing Ihor for the definite answer, but I suppose 'org-fill-paragraph' > still exists because it needs the argument 'region', whereas 'fill-paragraph' > calls 'fill-paragraph-function' only with 'justify', not 'region'. Yes. More specifically, when region is active, `fill-paragraph' completely ignores `fill-paragraph-function' and directly calls `fill-region' -> `fill-region-as-paragraph'. This behavior cannot be customized by major modes, so Org has to override the whole `fill-paragraph' to perform syntax-aware filling. -- Ihor Radchenko // yantar92, Org mode maintainer, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 17 Jun 2025 10:53:47 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 17 06:53:47 2025 Received: from localhost ([127.0.0.1]:54787 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uRTwo-0008P2-Nn for submit <at> debbugs.gnu.org; Tue, 17 Jun 2025 06:53:46 -0400 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:43305) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uRTwl-0008OH-Oq for 78561 <at> debbugs.gnu.org; Tue, 17 Jun 2025 06:53:44 -0400 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-3a4f72cba73so4523922f8f.1 for <78561 <at> debbugs.gnu.org>; Tue, 17 Jun 2025 03:53:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750157617; x=1750762417; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=2fPchD+kqWnD6NmEiPFFXLE+h+hDzsgNEK035b3E8rU=; b=jn7kqz9WBerPY5M4BIb+x42s42HSeYiAeGnFKaYqs6D9aVfQsIa/jmPPeKv/z4fMQ1 sZOZZ05nioVIjvqOMIAhvAI/7uDJiPVRvyD+7SksjDRZmQHT7xjlZ7djQFG/25VrZ3dr r3godOBxRiwmr88kX4JyG3kEywc3wFgfVtaiC6wTHZJEq5YmN4P0V4tY+Wu+PlOUNHo8 VbI/fSO4KkMpJAEAHsXX4OTA2phDjgwQaLfiG1QslEvXDguIY7gnRS9YORsRbsgqCrWg fIHIZt5gp5eRCgTlNmjhbNGygkTh6sHvkOjC0GKKee5idgbeyl98Ea98i/hfxcbCneNe ButQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750157617; x=1750762417; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2fPchD+kqWnD6NmEiPFFXLE+h+hDzsgNEK035b3E8rU=; b=HfXfRsTTno3d83YugR/90kY6t3arwUx4zupDgS4toW4Il4EARgBudMvLo5/PodgFoa Bu4bMhBg6EIhFnNF0VIbuoyejahZDP1pbQb1oD9hX4PtBz0vRodqcKzpwOyrzorKR9jG WU+usUF+LKZtNOICbMlap4nm4lbD5XXcKl7MqwMBz3hGPlZgICxt3WpoRsRroyu3LfOV IBrSR3EtvqrJDVzwoI/t7dEPwjYjEWyqMtw9ULk9b5uVrjn3Zx3e/LSNprFimU46TowA Ch6BB49fODM7Q8n2lh4W1t5Ws9RAAwotYddNxkDJHTOPHkg7Qg+Xw7AoWpjZi9VZFap+ bDdQ== X-Forwarded-Encrypted: i=1; AJvYcCU50ny0IS7uKWonrRQwAe0CuTD7zswdL0QstNIwcHxs3qTUTXBAGM+mLo9umjMo7VuHlkTKAw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyTHV79Mr1YyZAq+UyXMmnZ0Z3QmsR5el3gcPBInjEslPCjk2Zm ZltOhdcKiHl6N++A0QzEcuR0eArfxaxGL0JVDd6e4enVUAXw/Ffg26nf X-Gm-Gg: ASbGncvjNrND9+Y5IwFS6t9a1ePv/mQe9ISne5bHfKfZYWkqz+3W/42lS6FtV2IxlAX 6vJUpW+/Xe4yLbXiGunN5BUS9bGMKwdmK4TtFqMb5aTUJpw51+Tew3Q20F/5uOmW7ut8S+CP2gx fTQGAmNvlDf0JrsshZDMRLfRceZPd/xHxOKx6nEa02R0isOmer0ep+S/zaDyaxJps9cqcynJLak 6HpbUPpIFAC0oGVhLtgmAgvUCAsxO/xbAPZP8xIIxf5oTO4FGSdV415+WjT9Zait6336w15nty2 VMYCXH2MNVnRFkjLWLqpOucdSWQNHzCTtFWKVBj0zW2GdrJvkLaDa9U56EJYEN/S8xnqJhk= X-Google-Smtp-Source: AGHT+IECYhKGIEn9XK2fi0houvIC8/3FiZt9KFIv3bguDpBOfSFWVJrqHM1UzOgp1aKfvByywXhVKQ== X-Received: by 2002:a05:6000:2701:b0:3a5:7991:fd3 with SMTP id ffacd0b85a97d-3a5799112c3mr5285214f8f.11.1750157617245; Tue, 17 Jun 2025 03:53:37 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a568a5405asm13915254f8f.13.2025.06.17.03.53.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Jun 2025 03:53:36 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Juri Linkov <juri@HIDDEN>, Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87qzziyi9r.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <87jz5dz8dh.fsf@HIDDEN> <87ldpt7zij.fsf@HIDDEN> <87zfe8x9hk.fsf@HIDDEN> <87ecvj63v2.fsf@HIDDEN> <jwvfrfz8js5.fsf-monnier+emacs@HIDDEN> <8734by3mwo.fsf@HIDDEN> <87qzziyi9r.fsf@HIDDEN> Date: Tue, 17 Jun 2025 12:53:36 +0200 Message-ID: <87ldpqy6z3.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: Ihor Radchenko <yantar92@HIDDEN>, eliz@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Roi Martin <jroi.martin@HIDDEN> writes: > Stefan, I'll send a new patch to support this. I'll also modify > `fill-paragraph-semlf' to respect the `fill-paragraph-function' protocol > (i.e. return t). I've created Bug#78816. Roi
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 17 Jun 2025 06:49:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 17 02:49:49 2025 Received: from localhost ([127.0.0.1]:52195 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uRQ8i-00038x-EZ for submit <at> debbugs.gnu.org; Tue, 17 Jun 2025 02:49:48 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:50437) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uRQ8f-00038D-5u for 78561 <at> debbugs.gnu.org; Tue, 17 Jun 2025 02:49:46 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-4532ff4331cso14230115e9.1 for <78561 <at> debbugs.gnu.org>; Mon, 16 Jun 2025 23:49:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750142978; x=1750747778; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=HpYXGjCCWejnKUlQRfMlYRT8r2WJT3eY5yPXwLCO7Cg=; b=RdqEoupXI0CLv6paASwmyZUAUlGwoCMiLTu156mf5LbK/PVrqunXjTiUwpBkMr6a8q 79xEBjuaorMtdTsKMJbNIKQoeWKwwmI3TqHH0tl/ZItEBnw3e8cz5fCOYd3fmsYMN/Zl RlyVHzJX/737RUtOUAp7W47cfXkQBcLtXZ4IqV8ceQJQEWQYLuV3dEl3Q7c0QP64XV5j MerhSuYpSEXYKEfNLFa7PklY5EHuHioICnz8SyqoIAkkT2gcX5r5odNdrRcvEZoPrkgg kCwuJ9CslW56PIz/d01Ztb1aFikq+o0a4GDu1DZOWnIxsX65bqpKCmBs5oZqDVZsdpoa kyHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750142978; x=1750747778; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HpYXGjCCWejnKUlQRfMlYRT8r2WJT3eY5yPXwLCO7Cg=; b=nvS0DUzkjpouCWNfO/v1PTqw8OoUjc+RccCDNFvy9KSHmIkp1N4PLQkBGws+2lhUHH XmJi2OvRI+pboOuzwH3ZEDqOVJc7HtEKHJYW2OXm0t1bvyoo/olC1cSIjPonDtaToM/f 1Ox2t30JNgp9HayQDdwf2yQBgTDWdKbu8BVIWv4JR45oIYed10myoersQ5hhQQEu03IT HXEcXzbqSrE8ZD4f+z7+JMEHPuzJAFqnrE4Wj/6Djc3YnCahxbrNG+rXVvAwIUa65P+b DkvMCweg6rfwhegyIzeE8MpWzyHJTjsWJJ82JE1arLMcAuZSyYMZ/+6C0yGKQghfl1Kd 7xmA== X-Forwarded-Encrypted: i=1; AJvYcCXp0HZv2BdxbGH/NsOaFArBpkOLiP3JOE2K3055qo2gX6Xwx9wDrqX6kZSn+64kD5Na3trBKg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyXkDGH0aQeKE/75p5oagweL1uTjnyPFCdCSjuM7s8AhLO7uywV sfzMmLm6JuJdp909DbDHykETqA+Nl6hBc+MwxJgsf7iZ7/DGQi0Ny8I/ X-Gm-Gg: ASbGncu24zVfSfGCFGncGLkN4Xapl8gvFDui5WyzgpgeE8L2IuSYP5F4Zyg3CdCijDt SxH2qJGX2b8rpYZ2G3HsSwFEwRepDniqcY4NFJZxZfDLvpSboxcsrvo9vvSG5731qzyVUBZqK2p Oud3may7dIA1beHr5g4HxgUq8xfNR2nTKcIrGnwUdJPBiCth0CPY9d4lkX03yG+mDP7T8CmHdxx i/XueTdPMDpH5mv6gEuSrIgWVyHVqChDr0tnIWpkwyCHWpkN7ZgihF3HZPUcRfZFyIpr1tnkcm2 3nT2a0jhmPm0bkSEjyPEhrUlOd9U9/bRkAdinbv0Fb3aoQ2qtkRdHoiAsfZE X-Google-Smtp-Source: AGHT+IEXo+kRlh67A+5FP+Hgi8DYg1AlRqkRNyayhWg1DGmAwtYZSqbOsqR9eEJaXlVIh1OxZNVBrg== X-Received: by 2002:a05:600c:5025:b0:43c:fd27:a216 with SMTP id 5b1f17b1804b1-4533caed7ccmr105229135e9.23.1750142978275; Mon, 16 Jun 2025 23:49:38 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e256b95sm168736035e9.30.2025.06.16.23.49.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Jun 2025 23:49:37 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Juri Linkov <juri@HIDDEN>, Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <8734by3mwo.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <87jz5dz8dh.fsf@HIDDEN> <87ldpt7zij.fsf@HIDDEN> <87zfe8x9hk.fsf@HIDDEN> <87ecvj63v2.fsf@HIDDEN> <jwvfrfz8js5.fsf-monnier+emacs@HIDDEN> <8734by3mwo.fsf@HIDDEN> Date: Tue, 17 Jun 2025 08:49:36 +0200 Message-ID: <87qzziyi9r.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: Ihor Radchenko <yantar92@HIDDEN>, eliz@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Juri Linkov <juri@HIDDEN> writes: >> I expect it would make more sense to introduce >> a `fill-region-as-paragraph-function`, so `fill-region` will DTRT after >> you set that var to `fill-region-as-paragraph-semlf`. Instead of having >> to reinvent/duplicate the code of `fill-region` in a new >> `fill-region-semlf`. > > AFAIS, they have a significant difference: `fill-region-as-paragraph` > merges all selected paragraphs into one paragraph, but `fill-region` > formats each paragraph separately, keeping separators (empty lines) > between them. If I'm not wrong, `fill-region' calls `fill-region-as-paragraph' internally, (defun fill-region (from to &optional justify nosqueeze to-eop) ;; ... (setq fill-pfx (fill-region-as-paragraph (point) end justify nosqueeze)) ;; ... fill-pfx)) And `fill-paragraph' calls `fill-region' if Transient Mark mode is enabled and the mark is active. So, the idea is to define a new variable `fill-region-as-paragraph-function' so `fill-region' uses this variable instead of calling `fill-region-as-paragraph' directly. Stefan, I'll send a new patch to support this. I'll also modify `fill-paragraph-semlf' to respect the `fill-paragraph-function' protocol (i.e. return t). Roi
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 17 Jun 2025 06:39:06 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 17 02:39:05 2025 Received: from localhost ([127.0.0.1]:52089 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uRPyL-00023W-6n for submit <at> debbugs.gnu.org; Tue, 17 Jun 2025 02:39:05 -0400 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:44721) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1uRPyG-000229-Hs for 78561 <at> debbugs.gnu.org; Tue, 17 Jun 2025 02:39:02 -0400 Received: by mail.gandi.net (Postfix) with ESMTPSA id 970BD41D02; Tue, 17 Jun 2025 06:38:52 +0000 (UTC) From: Juri Linkov <juri@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <jwvfrfz8js5.fsf-monnier+emacs@HIDDEN> Organization: LINKOV.NET References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <87jz5dz8dh.fsf@HIDDEN> <87ldpt7zij.fsf@HIDDEN> <87zfe8x9hk.fsf@HIDDEN> <87ecvj63v2.fsf@HIDDEN> <jwvfrfz8js5.fsf-monnier+emacs@HIDDEN> Date: Tue, 17 Jun 2025 09:25:11 +0300 Message-ID: <8734by3mwo.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddugddvkeejiecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghofhffkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecuggftrfgrthhtvghrnhepffegteefveelhfeljeefueehieduiedtfffhuddtkeeffffghfevheetgeeukeehnecukfhppeeluddruddvledruddttddrjeejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledurdduvdelrddutddtrdejjedphhgvlhhopehmrghilhdrghgrnhguihdrnhgvthdpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnsggprhgtphhtthhopeehpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhrtghpthhtohepjeekheeiudesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhopehjrhhoihdrmhgrrhhtihhnsehgmhgrihhlrdgtohhmpdhrtghpthhtohephigrnhhtrghrledvsehpohhsthgvohdrnhgvthdprhgtphhtthhopehmohhnnhhivghrsehirhhordhumhhonhhtrhgvrghlrdgtrg X-GND-Sasl: juri@HIDDEN X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 78561 Cc: Ihor Radchenko <yantar92@HIDDEN>, eliz@HIDDEN, Roi Martin <jroi.martin@HIDDEN>, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) >> ;; Revert 'M-q' hijacked by org-mode: >> (define-key org-mode-map (vector 'remap 'fill-paragraph) nil) > > Maybe it deserves a bug report? Looking at the code, I can't see a good > reason for this hijacking. Maybe it's just a left over from old code. Cc-ing Ihor for the definite answer, but I suppose 'org-fill-paragraph' still exists because it needs the argument 'region', whereas 'fill-paragraph' calls 'fill-paragraph-function' only with 'justify', not 'region'. >>> `fill-region-as-paragraph-semlf' is analogous to >>> `fill-region-as-paragraph', so it removes any paragraph breaks in the >>> region and extra newlines at the end, and fills lines within the region. >> >> Then maybe we need another function `fill-region-semlf'. > > I expect it would make more sense to introduce > a `fill-region-as-paragraph-function`, so `fill-region` will DTRT after > you set that var to `fill-region-as-paragraph-semlf`. Instead of having > to reinvent/duplicate the code of `fill-region` in a new > `fill-region-semlf`. AFAIS, they have a significant difference: `fill-region-as-paragraph` merges all selected paragraphs into one paragraph, but `fill-region` formats each paragraph separately, keeping separators (empty lines) between them.
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 16 Jun 2025 21:29:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 16 17:29:17 2025 Received: from localhost ([127.0.0.1]:49184 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uRHOG-00049O-16 for submit <at> debbugs.gnu.org; Mon, 16 Jun 2025 17:29:17 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:8141) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1uRHOC-00047n-J9 for 78561 <at> debbugs.gnu.org; Mon, 16 Jun 2025 17:29:13 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 5F0B444158F; Mon, 16 Jun 2025 17:29:06 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1750109341; bh=/+eOZv67bpnEOMLRycoK/shqfY08zzTgvm7iZxNLmcc=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=c9fmV34eYeAlPpiq68tPF4ZUO2WJ+xlpnP6h6njPehqCmqzmR7v/M4QNONbhASPAb p4OcbNNOLub4WraGTefKhPuKjGML4kToac8XvCxfXUjd66ZAosm+nCYVm8EIHJD7h4 PoIAqyifgI6Kd1CYMfj5J5+S+WF+Tmp5oT5ONg8+9B/cqNU5jG/adJDmEonLD0gDBN xt2kDUNAaY1U7J+p1tzI3YQSp/G24DpQDysd7ds+Sv0BNd0FZmzFW86aG21MAaDzDT C6mprV+Xm50XN1rFNX3ZiyFjpRMeZSgJryiDoBfjsjzoEkZ8DelKHwemwzAuweQdUq /5gaatYnhkjEA== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 2AE904416C4; Mon, 16 Jun 2025 17:29:01 -0400 (EDT) Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 18343120331; Mon, 16 Jun 2025 17:29:01 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Juri Linkov <juri@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87ecvj63v2.fsf@HIDDEN> Message-ID: <jwvfrfz8js5.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <87jz5dz8dh.fsf@HIDDEN> <87ldpt7zij.fsf@HIDDEN> <87zfe8x9hk.fsf@HIDDEN> <87ecvj63v2.fsf@HIDDEN> Date: Mon, 16 Jun 2025 17:29:00 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.163 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: eliz@HIDDEN, Roi Martin <jroi.martin@HIDDEN>, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > ;; Revert 'M-q' hijacked by org-mode: > (define-key org-mode-map (vector 'remap 'fill-paragraph) nil) Maybe it deserves a bug report? Looking at the code, I can't see a good reason for this hijacking. Maybe it's just a left over from old code. >> `fill-region-as-paragraph-semlf' is analogous to >> `fill-region-as-paragraph', so it removes any paragraph breaks in the >> region and extra newlines at the end, and fills lines within the region. > > Then maybe we need another function `fill-region-semlf'. I expect it would make more sense to introduce a `fill-region-as-paragraph-function`, so `fill-region` will DTRT after you set that var to `fill-region-as-paragraph-semlf`. Instead of having to reinvent/duplicate the code of `fill-region` in a new `fill-region-semlf`. Stefan
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 16 Jun 2025 16:40:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 16 12:40:18 2025 Received: from localhost ([127.0.0.1]:48570 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uRCsb-0005om-A7 for submit <at> debbugs.gnu.org; Mon, 16 Jun 2025 12:40:18 -0400 Received: from relay9-d.mail.gandi.net ([2001:4b98:dc4:8::229]:52997) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1uRCsW-0005lq-NO for 78561 <at> debbugs.gnu.org; Mon, 16 Jun 2025 12:40:14 -0400 Received: by mail.gandi.net (Postfix) with ESMTPSA id 2749D44292; Mon, 16 Jun 2025 16:40:02 +0000 (UTC) From: Juri Linkov <juri@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87zfe8x9hk.fsf@HIDDEN> Organization: LINKOV.NET References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <87jz5dz8dh.fsf@HIDDEN> <87ldpt7zij.fsf@HIDDEN> <87zfe8x9hk.fsf@HIDDEN> Date: Mon, 16 Jun 2025 19:36:01 +0300 Message-ID: <87ecvj63v2.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddugddvjedtkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghofhffkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecuggftrfgrthhtvghrnhepleeiveeutdehfedtgedutdeileehkeegheevgeehtdfgueeuiedvvdfhveekvefgnecuffhomhgrihhnpehgnhhurdhorhhgnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledurdduvdelrddutdefrddvjedphhgvlhhopehmrghilhdrghgrnhguihdrnhgvthdpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnsggprhgtphhtthhopeegpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhrtghpthhtohepmhhonhhnihgvrhesihhrohdruhhmohhnthhrvggrlhdrtggrpdhrtghpthhtohepjeekheeiudesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhopehjrhhoihdrmhgrrhhtihhnsehgmhgrihhlrdgtohhm X-GND-Sasl: juri@HIDDEN X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 78561 Cc: eliz@HIDDEN, monnier@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) >> I tried to add to .dir-locals.el: >> >> ((org-mode . ((fill-paragraph-function . fill-paragraph-semlf)))) >> >> and it works nicely. > > That's interesting. If I create an org-mode buffer and set > `fill-paragraph-function' with: > > (setq-local fill-paragraph-function #'fill-paragraph-semlf) > > Invoking `org-fill-paragraph' (bound to 'M-q') does not fill the > paragraph using semantic linefeeds. However, `fill-paragraph' does. > > I'll have to dig more into it. Sorry, I added the following line to my config long ago, and forgot about it: ;; Revert 'M-q' hijacked by org-mode: (define-key org-mode-map (vector 'remap 'fill-paragraph) nil) >> With one exception that it fails on the active region. >> >> But we could add a new variable, e.g. 'fill-region-function' >> that will be possible to customize to 'fill-region-as-paragraph-semlf'. > > Check these sub-threads, > > https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-05/msg01088.html > https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-06/msg00920.html > > Maybe it is time to move the discussion to emacs-devel? Probably better to create a new feature request on bug-gnu-emacs. >> Although it's strange that 'fill-region-as-paragraph-semlf' >> doesn't keep empty lines between paragraphs like 'fill-region' does. > > `fill-region-as-paragraph-semlf' is analogous to > `fill-region-as-paragraph', so it removes any paragraph breaks in the > region and extra newlines at the end, and fills lines within the region. Then maybe we need another function `fill-region-semlf'. I see that you already mentioned it earlier. Another variant is to add a new argument `region' to `fill-paragraph-semlf'. But the problem is that `fill-paragraph' doesn't forward its argument `region' to `fill-paragraph-function', i.e. there is (funcall function justify) instead of (funcall function justify region)
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 16 Jun 2025 13:16:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 16 09:16:42 2025 Received: from localhost ([127.0.0.1]:44354 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uR9hY-0002aI-LH for submit <at> debbugs.gnu.org; Mon, 16 Jun 2025 09:16:42 -0400 Received: from lists.gnu.org ([2001:470:142::17]:34436) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1uR9hT-0002TN-3e for submit <at> debbugs.gnu.org; Mon, 16 Jun 2025 09:16:37 -0400 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 <geb-bug-gnu-emacs@HIDDEN>) id 1uR9hG-0007WZ-5r for bug-gnu-emacs@HIDDEN; Mon, 16 Jun 2025 09:16:24 -0400 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 <geb-bug-gnu-emacs@HIDDEN>) id 1uR9hD-0004iY-VE for bug-gnu-emacs@HIDDEN; Mon, 16 Jun 2025 09:16:21 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1uR9hB-00099U-H7 for bug-gnu-emacs@HIDDEN; Mon, 16 Jun 2025 15:16:17 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@HIDDEN From: Rudolf Schlatte <rudi@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling Date: Mon, 16 Jun 2025 15:16:12 +0200 Message-ID: <m2ldprsu77.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <867c1dqwwi.fsf@HIDDEN> <87h60hz7u6.fsf@HIDDEN> <861prlqrom.fsf@HIDDEN> <87bjqpz5u1.fsf@HIDDEN> <86zfe9paj8.fsf@HIDDEN> <871prkyovd.fsf@HIDDEN> <86y0tsnelw.fsf@HIDDEN> <87wm9cx7zw.fsf@HIDDEN> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:IiJ3YRJdSKdfBBv03y3SgpyEqfA= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@HIDDEN; helo=ciao.gmane.io X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.056, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.9 (/) Roi Martin <jroi.martin@HIDDEN> writes: > Eli Zaretskii <eliz@HIDDEN> writes: > >> As for other modes, what modes could usefully make use of this kind of >> region-filling? Org mode might be the only one, but in that case it's >> something for Org developers to chime in; I added Ihor to the >> discussion. > > I would include all those languages that are not sensitive to newlines > when exported to a different format. For instance, Org, Texinfo, LaTeX > or Markdown. Note that in Markdown, two space characters (#x20) at the end of a line denote a line break, so such lines should not be filled. (I did not check whether the code already considers this; apologies for the superfluous message if it does.)
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 16 Jun 2025 11:04:47 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 16 07:04:46 2025 Received: from localhost ([127.0.0.1]:43216 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uR7du-0001GP-Aa for submit <at> debbugs.gnu.org; Mon, 16 Jun 2025 07:04:46 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:52635) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uR7dr-0001Fq-QB for 78561 <at> debbugs.gnu.org; Mon, 16 Jun 2025 07:04:44 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-450cf214200so37463925e9.1 for <78561 <at> debbugs.gnu.org>; Mon, 16 Jun 2025 04:04:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750071877; x=1750676677; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=6qT5qS/yWOu2HGFhfmax6p9ivQocLxQfHZdVseRtP84=; b=hbhHx0vfDkbgHUmFQsxiafOEoE/Y9jgkpa3Rn4/5pOhS0cGmrrs+kIex1+SibugDV0 Vubz9C6/pdH1VcKivjmudZSE3i1IaXj2ivxN1CxHm49vDbf7QZi9ggxelU0cgWJs91Gw 63YsNG1/QAaZRs4876FPQoYB3GQrIP1YlYQs3uxNxHBaRiLqxTirmwxPgA13VGiYCRB8 B9BW3hyugisM+SFybMFPoLyiZQrJHHb5CIzuz7WIo8CT0gAjDYi2jk1+36uyZpvomML7 tUXB4hY+LDx/F1xhBanWatjrYjmBWSDwiCOqFRMqSj8wfH/Bk1wm2zB3xjx4UTcXStN1 Yorw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750071877; x=1750676677; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=6qT5qS/yWOu2HGFhfmax6p9ivQocLxQfHZdVseRtP84=; b=uIoD8Eec6dbYmZ3onHyvFNgibrGvYOwFyoN+/C7y+ELmtGTn1kQGftcBW0CjasxmZV 0s2HvCt1p9tOZRQACLMuqYH0VG+gqjYRixLuBnmWwXKaQNB53mPr5wMdJILH1SHFaQg3 PwauZEIUaVxGP8LtOIonZwffWW+VuXtVEXvqvAx1V8uXqbujfjNgMYM93JZiEvLVi6mC fLVBEVhkZB65dYHZhUrvOJoRra20RKIE7UjHEEhYwgIaz1Dq1RB3TrFNdmOGdUBhmn+1 wOcXbaDAo8b0pgJnsJVii2rKwCxg1X0s4t6h2fkgOoBmKhiFZX0pxcCISL4eHypRTIl0 C++A== X-Forwarded-Encrypted: i=1; AJvYcCXRinZGY13G9hFbIIpGBnVgF7Y38K7XphgCj+M3OcXRq+bJTrGgqwY9z8mtrUAC5bnr3HQERQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxjnYVHJauc+jfs7U7Xpcg6y0Rn1UC8XiUiy40/QjE8z8o1z1Zj u6HnlrddeItV9PseknFhczHjkAG1jtkJy5cFiVzkyrZo75h7sSCslS/S X-Gm-Gg: ASbGnctJMXMImeMAeUeiJ5e8mDIhoobDqoYfP6gINoeoXOZz8GCXjF2+6Oy1u1QYR43 xXrf0b3z3IH9iVnhFnv/afl7Pp92X/g4RvObohtGEWq8vlC2d1y7OzwqbUfxn9D5IV7lONMHjZF luP7C08wrqknJO5dDpWuqi0wNFCcQNBwdIMA5URu4Ea/MXWzOQqEjwSWNflnMGn8w6uin42IMXZ SmK7CE1G+rrmn6NijgPtFAP36o92OXElBFIgXbreueJRCRqc109ToV17JtvMZ3BoCqsvfDk6rO9 7ItFvSN1Myeb4Nu4ynGh7oHwEeKG5bsnyzsMw3IBDFkbX1uZyCOE5ELWZsQS X-Google-Smtp-Source: AGHT+IHPJjZ4OURI7Hm7YYxVd5VSIxn6iYSMWCMpf6OCcceku1X961ntV0EuFype7PJ+wvucwVvM2A== X-Received: by 2002:a05:600c:3e19:b0:439:9424:1b70 with SMTP id 5b1f17b1804b1-4533cadf928mr81740405e9.30.1750071876827; Mon, 16 Jun 2025 04:04:36 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532dea1c27sm140708895e9.15.2025.06.16.04.04.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Jun 2025 04:04:36 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN>, Ihor Radchenko <yantar92@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <86y0tsnelw.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <867c1dqwwi.fsf@HIDDEN> <87h60hz7u6.fsf@HIDDEN> <861prlqrom.fsf@HIDDEN> <87bjqpz5u1.fsf@HIDDEN> <86zfe9paj8.fsf@HIDDEN> <871prkyovd.fsf@HIDDEN> <86y0tsnelw.fsf@HIDDEN> Date: Mon, 16 Jun 2025 13:04:35 +0200 Message-ID: <87wm9cx7zw.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: monnier@HIDDEN, 78561 <at> debbugs.gnu.org, juri@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: > As for other modes, what modes could usefully make use of this kind of > region-filling? Org mode might be the only one, but in that case it's > something for Org developers to chime in; I added Ihor to the > discussion. I would include all those languages that are not sensitive to newlines when exported to a different format. For instance, Org, Texinfo, LaTeX or Markdown. Of course, there might be people that find this kind of formatting useful when writing text in text-mode or outline-mode. >> I guess the safest call for now is to provide `fill-paragraph-semlf' and >> `fill-region-as-paragraph-semlf' as commands that users or major modes >> can call directly. > > That's what we currently do, right? Yes. But, if we decide to keep it like that, we need to remove the reference to `fill-paragraph-function' from the doc string of `fill-paragraph-semlf'. Once we take a decission, I'll send a new patch. Roi
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 16 Jun 2025 10:52:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 16 06:52:08 2025 Received: from localhost ([127.0.0.1]:43124 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uR7Rg-0000Br-Ax for submit <at> debbugs.gnu.org; Mon, 16 Jun 2025 06:52:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38462) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uR7Rd-0000B3-T8 for 78561 <at> debbugs.gnu.org; Mon, 16 Jun 2025 06:52:06 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1uR7RV-0001Az-Mh; Mon, 16 Jun 2025 06:51:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=6fHqXmzanZQqJfvyO2q7oKvePYBE34py9gfb9KE+UI8=; b=kg/TSH+7eU9kgXQ90j9T Noo8UioZ9Sb3kFWkcpI9S6gR7eerjKMMBnNe2sHROc9+nwsLyM8x5vyfQCpvpeCgYGcG+2xHTAeQv fZDYgUhAvqK7JJvb/bwF/vOAzN+pJdMWpOQa4TdKVEU36vMUimx5xijlnDfV2TxU0duFL4KqFS6hA WuL8qcK/TvVEbWV4M77g9n6L57t9KO4oKQ2rSanjIewUsBrsy/+Ll2PdFWct+pEGmpT+kbMwco5w1 9amo32RTXdJFTS1/io2/RZgZ0wjiZoLyqPdK65TQ4NfqTw12iZTToU9epvca3EGrkRVEbkXTbJEQH p3qA9FNBOH+PLw==; Date: Mon, 16 Jun 2025 13:51:55 +0300 Message-Id: <86y0tsnelw.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN>, Ihor Radchenko <yantar92@HIDDEN> In-Reply-To: <871prkyovd.fsf@HIDDEN> (message from Roi Martin on Mon, 16 Jun 2025 12:14:46 +0200) Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <867c1dqwwi.fsf@HIDDEN> <87h60hz7u6.fsf@HIDDEN> <861prlqrom.fsf@HIDDEN> <87bjqpz5u1.fsf@HIDDEN> <86zfe9paj8.fsf@HIDDEN> <871prkyovd.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: monnier@HIDDEN, 78561 <at> debbugs.gnu.org, juri@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Roi Martin <jroi.martin@HIDDEN> > Cc: juri@HIDDEN, 78561 <at> debbugs.gnu.org > Date: Mon, 16 Jun 2025 12:14:46 +0200 > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> Then, what's better? Should we remove the following paragraph from the > >> doc string of `fill-paragraph-semlf'? > >> > >> You can use this function as the value of ‘fill-paragraph-function’, so > >> ‘fill-paragraph’ and other filling commands will use it. > >> > >> Or should we return t in `fill-paragraph-semlf'? > > > > I don't know. Is returning fill-prefix useful in some important cases? > > That's hard to say until we decide how to "wire" the semantic-linefeed > functions with the generic functions already provided by fill.el. For > instance, coming back to some of the comments done by Stefan, > > - How do we fill the paragraphs within the active region? Should we add > a new `fill-region-function' variable and provide a > `fill-region-semlf' function? Should we have a way to tell fill.el to > use a custom `fill-region-as-paragraph' function? > - How do we change how major modes fill a paragraph or a region? For > instance, in the case of org-mode, how do we combine org-mode's > fill-paragraph logic with semantic linefeeds? Should the major mode > be in charge of providing this feature leveraging the existing > semantic-linefeed functions? Should the user change a set of hooks? > What if the major mode already sets this hooks? The active region case should be supported, IMO. As for other modes, what modes could usefully make use of this kind of region-filling? Org mode might be the only one, but in that case it's something for Org developers to chime in; I added Ihor to the discussion. > Besides that, `fill-paragraph-semlf' calls `fill-forward-paragraph' > internally, so it already takes into account what the major mode defines > as paragraph. And, `fill-region-as-paragraph-semlf' calls > `fill-region-as-paragraph' internally, so if we add a hook to customize > this function, it would take that into account. Right. > I guess the safest call for now is to provide `fill-paragraph-semlf' and > `fill-region-as-paragraph-semlf' as commands that users or major modes > can call directly. That's what we currently do, right? > What do you think? Sorry, but I'm still wrapping my head around all the > nuances of the filling code and how major modes make use of it. I'd love to hear Stefan and Ihor to chime in and express their views.
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 16 Jun 2025 10:32:56 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 16 06:32:56 2025 Received: from localhost ([127.0.0.1]:42953 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uR796-0006tw-2T for submit <at> debbugs.gnu.org; Mon, 16 Jun 2025 06:32:56 -0400 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]:43407) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uR78h-0006rs-QT for 78561 <at> debbugs.gnu.org; Mon, 16 Jun 2025 06:32:32 -0400 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-453426170b6so8479655e9.1 for <78561 <at> debbugs.gnu.org>; Mon, 16 Jun 2025 03:32:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750069945; x=1750674745; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=nMwwNJc6O2V48rZF8eYWainbH86GGScoMC2wLmcNJyI=; b=JZ5t8MNsavrkviRMzNzjrhpfTIrgCnkI5q2/EQsoXKjx1TGmhZ2vHOpucZEAtWVWi8 S9pxSt4vbv1DynXj8KqCbwnFG9dHiRcqtpeAYwkMHfeogX8gGeUlxmHEpqHR9aKxe3DE 5dgDBZ6QJwI38/RTXIEVZTkwyiBFli49kT7cgoV6vA+AYwrcC0fY0X5IcU50KlkL0Qkz qhQdi7FhA5PbSm3xpCWWnP4swCPFzCPkAJxS6l1KrvU/5Cz5Kzq6ydI5MwFLs+tO3d5r qmcctw29jn1gcMdp3gdtHiHQq8d05DOEUxlpGwAaHUGmobCGKyksi6aHRe4XxtylClj/ /2aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750069945; x=1750674745; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nMwwNJc6O2V48rZF8eYWainbH86GGScoMC2wLmcNJyI=; b=h54/3KLrxZJzQQtI+EMkt3Vbg7dnHl+EfodGj1xvOA2vDicZvkiMOS4DmkdX7ObmC/ fHRO0bRwcFhjb8X2T+OEYWKPXxSUeZ0l2FcxUR+Kry0SejsV6W6METHOzuO7uNm14WlH YV8dothbSsAKMcuI7JLbxpWN7/GRxKbQ7kZXmaad5P0PHPvWsFSr5BppjtTzsAUQusw7 cB11RWohxTj8HYOje8qCVlCXI/+/Qc1yNCUBBWa9WqFvA5f1LzTQmo28PBtHS7yp7/qn 44iZHvQr5xcPvlpkojjbam3eFi35RrhD83VR9DCzn4czr7rZ6Ftm3PrKhlD4Ba6sRRiX j3DA== X-Gm-Message-State: AOJu0Yx7ri6k2ZVqNoF31aP+aQSoUVfL1dwXqkKwk2xFU6OGT8uKep8m IYA4YpiTDo7Y8gkggin2xz2KSx3BqPkyyYxFbOPLvFwpt/s15RpHm2QU X-Gm-Gg: ASbGncse0ycuX9KaEMD7VQNjhJI048RCWx0J3c+zoMeftjHrFp9wXHtRbwSyPkdDjzb DvcsLSnyfNzn60i494lEEKwtBYVsFuM8UCmkMA3e7EXeS++l9u03k8aieGJcF1PEpGVLddXVI15 01bHqFNhDQBiLJ0ktYUVg2bQ/m62zwfuHXiSGFwzPFk3tEJ+MrBOxvHo+OI7yPasfItlWjv4J/D zJutF4KjAHpivK3rn3sfZ0ijKy2xrYEkXIKU3CNAK1hXFijPR6MD3Po4S3ko0MANn/TxD6asCRj Fie2yNNC7Wn6eoeuJnS3sI/N8b0oL4HVlMNDINZWPR77GJxwdjT0b92rhcnP X-Google-Smtp-Source: AGHT+IF/27kn0usMuD54ysYQ5C0RHJhCXMTNZ3hOnmCQ0nkL0UxQrTMAWKB0WY72Y9vVnAICjtJQRA== X-Received: by 2002:a05:6000:402a:b0:3a4:ebfc:8c7 with SMTP id ffacd0b85a97d-3a572394bcfmr6532006f8f.8.1750069944925; Mon, 16 Jun 2025 03:32:24 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a568a5407csm10820340f8f.12.2025.06.16.03.32.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Jun 2025 03:32:24 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Juri Linkov <juri@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87ldpt7zij.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <87jz5dz8dh.fsf@HIDDEN> <87ldpt7zij.fsf@HIDDEN> Date: Mon, 16 Jun 2025 12:32:23 +0200 Message-ID: <87zfe8x9hk.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: eliz@HIDDEN, monnier@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Juri Linkov <juri@HIDDEN> writes: > I tried to add to .dir-locals.el: > > ((org-mode . ((fill-paragraph-function . fill-paragraph-semlf)))) > > and it works nicely. That's interesting. If I create an org-mode buffer and set `fill-paragraph-function' with: (setq-local fill-paragraph-function #'fill-paragraph-semlf) Invoking `org-fill-paragraph' (bound to 'M-q') does not fill the paragraph using semantic linefeeds. However, `fill-paragraph' does. I'll have to dig more into it. > With one exception that it fails on the active region. > > But we could add a new variable, e.g. 'fill-region-function' > that will be possible to customize to 'fill-region-as-paragraph-semlf'. Check these sub-threads, https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-05/msg01088.html https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-06/msg00920.html Maybe it is time to move the discussion to emacs-devel? > Although it's strange that 'fill-region-as-paragraph-semlf' > doesn't keep empty lines between paragraphs like 'fill-region' does. `fill-region-as-paragraph-semlf' is analogous to `fill-region-as-paragraph', so it removes any paragraph breaks in the region and extra newlines at the end, and fills lines within the region. Roi
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 16 Jun 2025 10:15:03 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 16 06:15:03 2025 Received: from localhost ([127.0.0.1]:42722 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uR6rm-0005ET-7b for submit <at> debbugs.gnu.org; Mon, 16 Jun 2025 06:15:02 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:59674) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uR6rh-0005DU-RE for 78561 <at> debbugs.gnu.org; Mon, 16 Jun 2025 06:14:59 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-3a51481a598so2509952f8f.3 for <78561 <at> debbugs.gnu.org>; Mon, 16 Jun 2025 03:14:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750068891; x=1750673691; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=DKFi8LzLYajhTz1CsfykHevMCiYQOmOEdF7BWgsmS5E=; b=bPnpxBGmW7nl9KCUtJBwlYC3lKr6rucMSJ/I8jGTKWLg5c5JEkxeZmSkZtYWEVyAj/ +HYRT/BIzvh47d/9JdSKe/sbCvLQtjEjXsIw6FaVkVXu5xoiV3rpC2XnlTzw8cjfOhEY Ood7qyLjscWpc9kQ36DB1qkvxBpZ/m0PIUOaDVspTdTqRz5lTSy/XXg10OdvXUaDs1k/ TfZiXGiFX/3tFeraE99VDtkM/NuVNp0gLDURWXbDwXB/2aujKhveOS9UXQJ+ulj4i/26 FGEa2CMOPwFAvawqrD/lvVCV/+bGlyTSCFz9dzkrGJdAey7p3WLVgOYXRZsFn85ZUYZS KfJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750068891; x=1750673691; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DKFi8LzLYajhTz1CsfykHevMCiYQOmOEdF7BWgsmS5E=; b=g6ypYdyM6JxxA5GXGTcbHV/4RvwGXnMcLuKUP5FFIrMrmE1hnlfEQA7K9Mx7HR8yae uP+y1yNpf2XuSxa0XeN8JDRf5NNVHts2dV3Ra/RMQiMSEBOpcWleKbw3Ey9eCl5aUAYr o/ckyS1XvkNAGrv5hdtSQp1euTldS1glnPsqqnMBYJvIJArG3V2r8hPtP9F9/OapHvN6 5eRP8CwuzWE0x/Cq7Pw+bHs4K4K+OzZZfgjL8PYc6Ykefu8euSI8KSsHDh3OtplLn9RH IURErLsbH2hOv9fRYawa1JAGcawXgh+zm4k8il1lqEPG6qPGj0H51SwAwHuOlv2jfSHZ 6f4g== X-Forwarded-Encrypted: i=1; AJvYcCUfT104G/AlAHcQgm6LQWoNYyBcjyxJR4l952iAZLikl4vJ5/gayt/oK1Oe1Vsf+DYba3GKcg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwlgYwcmgQooYFYpDzOG8atKgBSH0twtclUw7dX7vreKxRLADtg b8pggj+OjSZubv7rB+4XmySUcLcFaqo5kGdg7Nhjixz1IhTg6+17dnH0 X-Gm-Gg: ASbGncvKM1Pn7li2xWkBNNl7fnxqAMO7LqsphCCANb3Ixq38SchA0iF/iZ9DyCHmGgx m5P98DhS/sN8mayMdtwKSUP6+lDjFymq5eJsdvqmA+kBb4zer7hLsJXD9balMiMuHV2Mc+2jrUa tkfqgY4F3DZINbQHnLceDNsmUY3LZxtyRKLeIyN3ZMAQ1IAiBHvSK/65TxrCqZ2FI9MVPbgd+wk QAEiD+YOniaitiq3byG7dO0ZfGr0z5Cp6Z8WM1zEeILR/4YV+oknkLLLkp2Mm1Mz6Kn4pIgNk/l 6D5B9RsVGCZGxoYiBNEAB6/oN8YTT5oHCxyZREWuH218li4xCh6ATbmsMe/8 X-Google-Smtp-Source: AGHT+IEj9qud7ko6Au7gJhVQ7s5qY/M87WnqCTJ8b4L+/E01eElt8KYQw+NLT0xlJ2WFQhKHVWnqpw== X-Received: by 2002:a05:6000:2c13:b0:3a4:dd16:a26d with SMTP id ffacd0b85a97d-3a5723a56e7mr7780089f8f.38.1750068891368; Mon, 16 Jun 2025 03:14:51 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a568a5407csm10777267f8f.12.2025.06.16.03.14.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Jun 2025 03:14:50 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <86zfe9paj8.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <867c1dqwwi.fsf@HIDDEN> <87h60hz7u6.fsf@HIDDEN> <861prlqrom.fsf@HIDDEN> <87bjqpz5u1.fsf@HIDDEN> <86zfe9paj8.fsf@HIDDEN> Date: Mon, 16 Jun 2025 12:14:46 +0200 Message-ID: <871prkyovd.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: 78561 <at> debbugs.gnu.org, juri@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> Then, what's better? Should we remove the following paragraph from the >> doc string of `fill-paragraph-semlf'? >> >> You can use this function as the value of ‘fill-paragraph-function’, so >> ‘fill-paragraph’ and other filling commands will use it. >> >> Or should we return t in `fill-paragraph-semlf'? > > I don't know. Is returning fill-prefix useful in some important cases? That's hard to say until we decide how to "wire" the semantic-linefeed functions with the generic functions already provided by fill.el. For instance, coming back to some of the comments done by Stefan, - How do we fill the paragraphs within the active region? Should we add a new `fill-region-function' variable and provide a `fill-region-semlf' function? Should we have a way to tell fill.el to use a custom `fill-region-as-paragraph' function? - How do we change how major modes fill a paragraph or a region? For instance, in the case of org-mode, how do we combine org-mode's fill-paragraph logic with semantic linefeeds? Should the major mode be in charge of providing this feature leveraging the existing semantic-linefeed functions? Should the user change a set of hooks? What if the major mode already sets this hooks? Besides that, `fill-paragraph-semlf' calls `fill-forward-paragraph' internally, so it already takes into account what the major mode defines as paragraph. And, `fill-region-as-paragraph-semlf' calls `fill-region-as-paragraph' internally, so if we add a hook to customize this function, it would take that into account. I guess the safest call for now is to provide `fill-paragraph-semlf' and `fill-region-as-paragraph-semlf' as commands that users or major modes can call directly. What these functions return should make sense in isolation and, once we know how we want to wire everything together, we can adapt them to the defined protocols providing wrappers or using lambdas. For instance, (defun fill-paragraph-function-semlf (&optional justify) "Fill paragraph at or after point using semantic linefeeds. This is a suitable value for `fill-paragraph-function'. For more details about semantic linefeeds, see `fill-paragraph-semlf'." (fill-paragraph-semlf justify) t) That `fill-paragraph-semlf' returns the `fill-prefix' used to fill the paragraph seems sound if we expect this function to be used by other filling functions and matches the behavior of `fill-region-as-paragraph' and `fill-paragraph' (when `fill-paragraph-function' is nil). What do you think? Sorry, but I'm still wrapping my head around all the nuances of the filling code and how major modes make use of it. Roi
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 15 Jun 2025 16:29:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 15 12:29:07 2025 Received: from localhost ([127.0.0.1]:59257 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQqEF-0001gB-3O for submit <at> debbugs.gnu.org; Sun, 15 Jun 2025 12:29:07 -0400 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:35615) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1uQqEC-0001fP-C0 for 78561 <at> debbugs.gnu.org; Sun, 15 Jun 2025 12:29:04 -0400 Received: by mail.gandi.net (Postfix) with ESMTPSA id 3521B439FA; Sun, 15 Jun 2025 16:28:55 +0000 (UTC) From: Juri Linkov <juri@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87jz5dz8dh.fsf@HIDDEN> Organization: LINKOV.NET References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <87jz5dz8dh.fsf@HIDDEN> Date: Sun, 15 Jun 2025 19:28:44 +0300 Message-ID: <87ldpt7zij.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddugddvgedukecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghofhffkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecuggftrfgrthhtvghrnhepffegteefveelhfeljeefueehieduiedtfffhuddtkeeffffghfevheetgeeukeehnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledurdduvdelrddutdefrddvjedphhgvlhhopehmrghilhdrghgrnhguihdrnhgvthdpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnsggprhgtphhtthhopeegpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhrtghpthhtohepmhhonhhnihgvrhesihhrohdruhhmohhnthhrvggrlhdrtggrpdhrtghpthhtohepjeekheeiudesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhopehjrhhoihdrmhgrrhhtihhnsehgmhgrihhlrdgtohhm X-GND-Sasl: juri@HIDDEN X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 78561 Cc: eliz@HIDDEN, monnier@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > One option is setting a key binding, like this: > > (keymap-global-set "C-c q" #'fill-paragraph-semlf) > > Then you can invoke the command placing the cursor within a paragraph > and using 'C-c q' (or 'M-x fill-paragraph-semlf'). Unfortunately, additional keybindings is too much baggage to bear: more keys to remember and type, etc. >> (setq-local fill-paragraph-function 'fill-paragraph-semlf) > > This works. However, the behavior of the usual key binding 'M-q' > depends on the major-mode that is enabled. For instance, `org-mode' > binds 'M-q' to `org-fill-paragraph' and won't invoke > 'fill-paragraph-semlf. But placing the cursor within a paragraph a > invoking `fill-paragraph' works. On the flip side, other modes > (e.g. `outline-mode' or `texinfo-mode') don't do that and you can use > 'M-q' to invoke `fill-paragraph' and, thus, `fill-paragraph-semlf' > normally. I tried to add to .dir-locals.el: ((org-mode . ((fill-paragraph-function . fill-paragraph-semlf)))) and it works nicely. With one exception that it fails on the active region. But we could add a new variable, e.g. 'fill-region-function' that will be possible to customize to 'fill-region-as-paragraph-semlf'. Although it's strange that 'fill-region-as-paragraph-semlf' doesn't keep empty lines between paragraphs like 'fill-region' does.
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 15 Jun 2025 10:24:56 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 15 06:24:56 2025 Received: from localhost ([127.0.0.1]:55189 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQkXn-0007be-KN for submit <at> debbugs.gnu.org; Sun, 15 Jun 2025 06:24:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59156) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uQkXk-0007b2-RY for 78561 <at> debbugs.gnu.org; Sun, 15 Jun 2025 06:24:53 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1uQkXe-00082C-9j; Sun, 15 Jun 2025 06:24:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=0OkESPzTzkKg/379qhpX7CQEUrNgLn87fGFWlf4MaP0=; b=PrdAE7cVT+tgX9M9NfmR RIwGEx45mB2KMX2dZ1Ndh8AY5box+qOxsH3jXzmcJnaBL/B3LNxZZdZDhYu2iK+/hFWnJMK1zpSur tfNzBuGQwmSeVgY0Y6aOA19OCuVx4O8Cy24lpMHB0mwKOqZqCRWIShivhLgeQkAZqPBd/kRQbf9hB WABkwywSyw/Vlpju9b/4MqOMAXVMzzEPyot1qPgCu1vKUWXLDzTGRg3twayyXzMDA1k/IPbQAasDT +LugLFOHsC5ZKSN0ug7E/Ba13vWEs12nETCdVrErpblBKzGXMn8u3w7osZvt5czZrDxskKcBTzmST LGP90LqLQLpBEA==; Date: Sun, 15 Jun 2025 13:24:43 +0300 Message-Id: <86zfe9paj8.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> In-Reply-To: <87bjqpz5u1.fsf@HIDDEN> (message from Roi Martin on Sun, 15 Jun 2025 11:56:06 +0200) Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <867c1dqwwi.fsf@HIDDEN> <87h60hz7u6.fsf@HIDDEN> <861prlqrom.fsf@HIDDEN> <87bjqpz5u1.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: 78561 <at> debbugs.gnu.org, juri@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Roi Martin <jroi.martin@HIDDEN> > Cc: juri@HIDDEN, 78561 <at> debbugs.gnu.org > Date: Sun, 15 Jun 2025 11:56:06 +0200 > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> From: Roi Martin <jroi.martin@HIDDEN> > >> Cc: 78561 <at> debbugs.gnu.org > >> Date: Sun, 15 Jun 2025 11:12:49 +0200 > >> > >> Eli Zaretskii <eliz@HIDDEN> writes: > >> > >> > Neither, AFAIU? Those two are commands, not fill-paragraph functions. > >> > They don't implement the protocol defined for fill-paragraph > >> > functions. > >> > >> It should be possible to use `fill-paragraph-semlf' as > >> `fill-paragraph-function'. > >> > >> It takes a JUSTIFY argument, which is required by: > >> > >> (funcall function justify) > >> > >> in the specific case in `fill-paragraph' ("2. Try > >> fill-paragraph-function."). > >> > >> ;; 2. Try fill-paragraph-function. > >> (and (not (eq fill-paragraph-function t)) > >> (or fill-paragraph-function > >> (and (minibufferp (current-buffer)) > >> (= 1 (point-min)))) > >> (let ((function (or fill-paragraph-function > >> ;; In the minibuffer, don't count > >> ;; the width of the prompt. > >> 'fill-minibuffer-function)) > >> ;; If fill-paragraph-function is set, it probably > >> ;; takes care of comments and stuff. If not, it > >> ;; will have to set fill-paragraph-handle-comment > >> ;; back to t explicitly or return nil. > >> (fill-paragraph-handle-comment nil) > >> (fill-paragraph-function t)) > >> (funcall function justify))) > >> > >> It also returns a non-nil value to avoid executing the following cases > >> in `fill-paragraph'. > >> > >> Is there anything missing? > > > > The doc string of fill-paragraph-function says: > > > > If the function returns nil, then ‘fill-paragraph’ does its normal work. > > A value of t means explicitly "do nothing special". > > > > By contrast, the doc string of fill-paragraph-semlf says: > > > > Return the `fill-prefix' used for filling. > > > > Maybe the doc string is inaccurate, but if it's accurate, then its > > return value is not what's expected from fill-paragraph-function. Or > > what did I miss? > > No, you are right. > > I decided to return `fill-prefix' in `fill-paragraph-semlf' because it > seemed to have the same effect as returning t, based on the code I > attached previously. Also, returning `fill-paragraph' seemed more > useful. But, you are right, the contract mentions nil and t explicitly. > > Then, what's better? Should we remove the following paragraph from the > doc string of `fill-paragraph-semlf'? > > You can use this function as the value of ‘fill-paragraph-function’, so > ‘fill-paragraph’ and other filling commands will use it. > > Or should we return t in `fill-paragraph-semlf'? I don't know. Is returning fill-prefix useful in some important cases? > Also, what does "do nothing special" mean exactly? It means the fill-paragraph-function did all there is to do.
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 15 Jun 2025 09:56:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 15 05:56:17 2025 Received: from localhost ([127.0.0.1]:54863 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQk64-0004sO-PE for submit <at> debbugs.gnu.org; Sun, 15 Jun 2025 05:56:17 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:54332) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uQk62-0004rg-6V for 78561 <at> debbugs.gnu.org; Sun, 15 Jun 2025 05:56:14 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-43edecbfb46so25149725e9.0 for <78561 <at> debbugs.gnu.org>; Sun, 15 Jun 2025 02:56:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749981368; x=1750586168; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=tkgHbEmAX79JHmQxcTMcdaG4T7sxpsxA07L4Vu09ZE0=; b=JZ/m559IVLiriCHJY1ZRagAwURZEzuXD3baxtBmpPrBijSuBy9NfBMTzKH7lJQxlYJ nSNgi5ekQFw8fe/P7QOxol8III4XcY9jUikZ6kPVLHqt3tdnCrN07ou9YnKPUminjBlv 3NuksSdV24OYBmbAWFXWYQMmmBAHtRUFCCYJNQNarKH0DpXGnDw00wxh+xt5Y5LrNQ1C pouuOCpkPha96MpZvrDnsZZvk+PHgX5NLtl/3+VdZmGrn+MioivAHTlB/FyvlDcgMyws uUj70BS4TMxb8rMwpMYTwRlNdKHNIkH8lNle5O0BiXg415EQBmitVqnr5+yIfNQmgYyf JinQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749981368; x=1750586168; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tkgHbEmAX79JHmQxcTMcdaG4T7sxpsxA07L4Vu09ZE0=; b=g0vQxBznhh3r3pcc4C6wK97SfQLqrlH0o8UvUcKD9t8hWuQN5WxOiwAHcM0S6D2uOD FCfeadfzklkOStUZVSo2CsWObxFnFDFvTKD1wXkJJeyIGjpdTQPrJH2cff8Mv3sOseAI +mYxbmBaMqKQPrQM4N6Zb2oNp626lARqy8I2drbjoPDbs1cX1U8ZES11y04FlW3FSZvf Bxr4Yat4Lwg6uNsSMhrxAqu85fVp+XgIXdXovDLlqiSsEYBh6+XxozirmuJkneRuZceF iM8Y61W5v0m48hdu2y6DTmgx4krSbeKcT3k25wfa3mPbG8dyfRlZZGtHPg7sfDi9sZG1 HVvg== X-Forwarded-Encrypted: i=1; AJvYcCVhaFa6ynrBA/sSr3ZqqVhsmfJNC7m+ueZ7LgCbUjaXsbaGaymLBeUMMTUvhFvAzMuMeNSDgQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyU4qcFSDmBh+Mqy5tz9wut6dQDV1LbFVd7201d4pqUF20WabVF vJzcLpetbHZBFztEc1cZQAuVLnLBgZsZbXDmX3VRv7pPjUTeQNITY/jN X-Gm-Gg: ASbGncuERIVzuhoSCFUS5+qb/uRdrJXxg4VxE2So/3hF8fEA2kFEkIYEOm+gPpduPUE gxyRxCarRJPZxSDf5pmWTtlT4PAS0INavMIK+jK7C0aVbhdjPFaoWLFsma3YYlgT73GzXY5hXbB Baa7TVFLKYj/HbmVk70fGc0Ayu/1zJ2WbXmfZSlfS7kCSHiVV/vlSP5GgXkgyyWf3W0b9CtUdhU 4iqFuZhcoMKb0Y3x2g6qTRWnQYnlOoTpkRrhfXcZcNQkKWl3R4x9/V3ilpFECgt2wlNmbfE0DFn o6Xx7Cfff0HtQj+LHXR6MGGaSSAXsUc34jFmDsExeXfA01WZ+i6E/yS4eD2l X-Google-Smtp-Source: AGHT+IFa24OhHDnMJ+z06gPqDpgJsq1cQkkYbYcuOAET/16qu6S3HlKyv+iP9aWJJ/XMTb+MdeZUfg== X-Received: by 2002:a05:600c:1d2a:b0:450:cd50:3c64 with SMTP id 5b1f17b1804b1-453430e4092mr29600255e9.31.1749981367982; Sun, 15 Jun 2025 02:56:07 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a568a68b0esm7224136f8f.29.2025.06.15.02.56.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Jun 2025 02:56:07 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <861prlqrom.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <867c1dqwwi.fsf@HIDDEN> <87h60hz7u6.fsf@HIDDEN> <861prlqrom.fsf@HIDDEN> Date: Sun, 15 Jun 2025 11:56:06 +0200 Message-ID: <87bjqpz5u1.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: 78561 <at> debbugs.gnu.org, juri@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Roi Martin <jroi.martin@HIDDEN> >> Cc: 78561 <at> debbugs.gnu.org >> Date: Sun, 15 Jun 2025 11:12:49 +0200 >> >> Eli Zaretskii <eliz@HIDDEN> writes: >> >> > Neither, AFAIU? Those two are commands, not fill-paragraph functions. >> > They don't implement the protocol defined for fill-paragraph >> > functions. >> >> It should be possible to use `fill-paragraph-semlf' as >> `fill-paragraph-function'. >> >> It takes a JUSTIFY argument, which is required by: >> >> (funcall function justify) >> >> in the specific case in `fill-paragraph' ("2. Try >> fill-paragraph-function."). >> >> ;; 2. Try fill-paragraph-function. >> (and (not (eq fill-paragraph-function t)) >> (or fill-paragraph-function >> (and (minibufferp (current-buffer)) >> (= 1 (point-min)))) >> (let ((function (or fill-paragraph-function >> ;; In the minibuffer, don't count >> ;; the width of the prompt. >> 'fill-minibuffer-function)) >> ;; If fill-paragraph-function is set, it probably >> ;; takes care of comments and stuff. If not, it >> ;; will have to set fill-paragraph-handle-comment >> ;; back to t explicitly or return nil. >> (fill-paragraph-handle-comment nil) >> (fill-paragraph-function t)) >> (funcall function justify))) >> >> It also returns a non-nil value to avoid executing the following cases >> in `fill-paragraph'. >> >> Is there anything missing? > > The doc string of fill-paragraph-function says: > > If the function returns nil, then ‘fill-paragraph’ does its normal work. > A value of t means explicitly "do nothing special". > > By contrast, the doc string of fill-paragraph-semlf says: > > Return the `fill-prefix' used for filling. > > Maybe the doc string is inaccurate, but if it's accurate, then its > return value is not what's expected from fill-paragraph-function. Or > what did I miss? No, you are right. I decided to return `fill-prefix' in `fill-paragraph-semlf' because it seemed to have the same effect as returning t, based on the code I attached previously. Also, returning `fill-paragraph' seemed more useful. But, you are right, the contract mentions nil and t explicitly. Then, what's better? Should we remove the following paragraph from the doc string of `fill-paragraph-semlf'? You can use this function as the value of ‘fill-paragraph-function’, so ‘fill-paragraph’ and other filling commands will use it. Or should we return t in `fill-paragraph-semlf'? Also, what does "do nothing special" mean exactly? Roi
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 15 Jun 2025 09:29:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 15 05:29:23 2025 Received: from localhost ([127.0.0.1]:54503 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQjg2-0002Qu-NL for submit <at> debbugs.gnu.org; Sun, 15 Jun 2025 05:29:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33100) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uQjg0-0002QL-JZ for 78561 <at> debbugs.gnu.org; Sun, 15 Jun 2025 05:29:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1uQjfh-0002IK-4k; Sun, 15 Jun 2025 05:29:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=RvZ7oxPAq3XuU8sxzMlxdHX4TASyGtBqFnEhFj/8ZQ0=; b=shxDZ6h/P++Ey/Ef1YDN Ai2njTEApO+PF/5XTs7XBLyyq9VGzbNQJwBa0YMHJALGeXvgaYTMpxPWX83XvgfYkmqVZcT4FQprA tjp79HL0ueGW6tRyiBFD5XN2zqkFHfVefz2xj8LwXgpzgRN5aX56Yg6t6iVUtbSfO7w/+VsdDZNGg FbpLddWBTbxS4tiJV7YuS7jlh38kS7RTrjZK+0v3PFY9fKtSkSXEbQfNVvAcUM1SDkQAm5vsR9DhN VW7ALwJGyG4GSuFD18flT222lMYKX5Fpvvzz1p/T7ittb0RX8hlS29N+raQ5aeiFg+34aas0w6Cxr ahuVd73dpZCkXw==; Date: Sun, 15 Jun 2025 12:28:57 +0300 Message-Id: <861prlqrom.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> In-Reply-To: <87h60hz7u6.fsf@HIDDEN> (message from Roi Martin on Sun, 15 Jun 2025 11:12:49 +0200) Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <867c1dqwwi.fsf@HIDDEN> <87h60hz7u6.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: 78561 <at> debbugs.gnu.org, juri@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Roi Martin <jroi.martin@HIDDEN> > Cc: 78561 <at> debbugs.gnu.org > Date: Sun, 15 Jun 2025 11:12:49 +0200 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > Neither, AFAIU? Those two are commands, not fill-paragraph functions. > > They don't implement the protocol defined for fill-paragraph > > functions. > > It should be possible to use `fill-paragraph-semlf' as > `fill-paragraph-function'. > > It takes a JUSTIFY argument, which is required by: > > (funcall function justify) > > in the specific case in `fill-paragraph' ("2. Try > fill-paragraph-function."). > > ;; 2. Try fill-paragraph-function. > (and (not (eq fill-paragraph-function t)) > (or fill-paragraph-function > (and (minibufferp (current-buffer)) > (= 1 (point-min)))) > (let ((function (or fill-paragraph-function > ;; In the minibuffer, don't count > ;; the width of the prompt. > 'fill-minibuffer-function)) > ;; If fill-paragraph-function is set, it probably > ;; takes care of comments and stuff. If not, it > ;; will have to set fill-paragraph-handle-comment > ;; back to t explicitly or return nil. > (fill-paragraph-handle-comment nil) > (fill-paragraph-function t)) > (funcall function justify))) > > It also returns a non-nil value to avoid executing the following cases > in `fill-paragraph'. > > Is there anything missing? The doc string of fill-paragraph-function says: If the function returns nil, then ‘fill-paragraph’ does its normal work. A value of t means explicitly "do nothing special". By contrast, the doc string of fill-paragraph-semlf says: Return the `fill-prefix' used for filling. Maybe the doc string is inaccurate, but if it's accurate, then its return value is not what's expected from fill-paragraph-function. Or what did I miss?
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 15 Jun 2025 09:13:03 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 15 05:13:03 2025 Received: from localhost ([127.0.0.1]:54365 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQjQE-000114-Is for submit <at> debbugs.gnu.org; Sun, 15 Jun 2025 05:13:03 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:44327) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uQjQC-00010E-9z for 78561 <at> debbugs.gnu.org; Sun, 15 Jun 2025 05:13:01 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-451d41e1ad1so29694365e9.1 for <78561 <at> debbugs.gnu.org>; Sun, 15 Jun 2025 02:13:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749978774; x=1750583574; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=Bb2YJ9BPAMM7irQhtRQGRu7NWHzPw2GEYucRhuCtClI=; b=BNRFVvcuYmxUoEJtpQsK6VoYN5pDDoHkEpQt/VuuxRQTCgN1wYhfGbL8AHwdpaenXT S3/CT8iIcn9+zZp2QWXKwWdsjySkX/v66dxvBz0iQE2vlXr0+HSN4BTXd4uTDViuBAK2 5CSxgsGiOcGVSLLCqxvaqmhZ0SLWmNxa8RgU8LqfgJESl2JRFkF2t/dh+BoG3DcYm47P lXseBQd+rWeFN2uqOCojx868U2C0YDeTkzmrzYvEUaWC69hARYkao875aCg736fT6068 u8PMJd4AXDUgHJ37ZS9+pdi6pUiHYV6oUhdu32AWMzlHzfg1rK2TzjP9sYD5AjXUCd3s gMZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749978774; x=1750583574; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Bb2YJ9BPAMM7irQhtRQGRu7NWHzPw2GEYucRhuCtClI=; b=a0iGtWT1Xg+uibFr6Bume83zOlS8ujGoblSvqO/t++bofGg+/YwE3B/dX6VBG/ACBC JVoPaSx/zhvKdcaxolzSPXliOlL3Ck1c8CIIodGp3AmvAwAWlI7NXwI1NutAiWU7AowD K/nU5ZV25q5oFrd0jsm9CQXcouINJnbJJV85lrAl9rhN8K9Y3L0UYreYhyAJTlihDpNK WLiRCQXJzcqdxqiHxWlnZnk5mI36Mx7vv91R0ZLyfYcV1jWAwM8FMymEyX1pYWC0fIgS jzoIRCUixFMw7YeqePrUkEoZruayR6LDDzR4rTaGrFhFW5yJkFA1/FJTMC2Z0Qwg5DJM sbtg== X-Gm-Message-State: AOJu0YzcpAcFlNSlSsqNoK0IN/5Somz2GOhkI4aCKuCgtjwdHI6i9LQ3 pfHEfQraDmmOb/SKVLR57H6AVzBYHWLx4eTJyUF3yNuIgq3iVo2bugc6 X-Gm-Gg: ASbGncuG3aBv1ywBRYGwIstNKlidv7M8ZayRKoLmZJ76rEN3FsXtdQYf3o4jf0xmG2X alMHaXbuBW5rpA1g2gU+X8jzTR0jNd2Doz4KBz68hB6Opg97SDYiiMW2YjSc9uLpy8OE6PX4Xpq zq/yaPl8ly1ltXojrgCQk7Jqq+ixeMlJWm7+xr1IgNaRE6tA8vvsndfsv+f9NxdwBqV3SXTuPoe Ef3MlgVqYOofhF2+Bji0sF9kqW2Hxe3QYAGDE7SIinx7vLyi/KwrQZhOyOFdxsl07Twu0/Jmowc d5Upk0OVEQFfX708rst41b8CV2XuTwbkaWW2/4Vfbk0PfMJsMRS5NIwUYOg/Da6fuNficJI= X-Google-Smtp-Source: AGHT+IFgJxFifDDng3kOIsN8UewqqUmWvxfu/EGp4kcLqG0kSnB+xlBaXcdDBKwt9HrE1eNID8d5Yw== X-Received: by 2002:a05:600c:1ca1:b0:453:84a:8cf1 with SMTP id 5b1f17b1804b1-4533cac6479mr43696135e9.33.1749978773906; Sun, 15 Jun 2025 02:12:53 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e259108sm102432275e9.32.2025.06.15.02.12.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Jun 2025 02:12:53 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN>, Juri Linkov <juri@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <867c1dqwwi.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <867c1dqwwi.fsf@HIDDEN> Date: Sun, 15 Jun 2025 11:12:49 +0200 Message-ID: <87h60hz7u6.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> (setq-local fill-paragraph-function 'fill-paragraph-semlf) >> >> or this >> >> (setq-local fill-paragraph-function 'fill-region-as-paragraph-semlf) > > Neither, AFAIU? Those two are commands, not fill-paragraph functions. > They don't implement the protocol defined for fill-paragraph > functions. It should be possible to use `fill-paragraph-semlf' as `fill-paragraph-function'. It takes a JUSTIFY argument, which is required by: (funcall function justify) in the specific case in `fill-paragraph' ("2. Try fill-paragraph-function."). ;; 2. Try fill-paragraph-function. (and (not (eq fill-paragraph-function t)) (or fill-paragraph-function (and (minibufferp (current-buffer)) (= 1 (point-min)))) (let ((function (or fill-paragraph-function ;; In the minibuffer, don't count ;; the width of the prompt. 'fill-minibuffer-function)) ;; If fill-paragraph-function is set, it probably ;; takes care of comments and stuff. If not, it ;; will have to set fill-paragraph-handle-comment ;; back to t explicitly or return nil. (fill-paragraph-handle-comment nil) (fill-paragraph-function t)) (funcall function justify))) It also returns a non-nil value to avoid executing the following cases in `fill-paragraph'. Is there anything missing? Roi
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 15 Jun 2025 09:01:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 15 05:01:28 2025 Received: from localhost ([127.0.0.1]:54267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQjF1-0008St-PM for submit <at> debbugs.gnu.org; Sun, 15 Jun 2025 05:01:28 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:44510) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uQjEz-0008SG-JV for 78561 <at> debbugs.gnu.org; Sun, 15 Jun 2025 05:01:26 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-451d41e1ad1so29649135e9.1 for <78561 <at> debbugs.gnu.org>; Sun, 15 Jun 2025 02:01:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749978079; x=1750582879; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:to:from :from:to:cc:subject:date:message-id:reply-to; bh=vehSkhBUe2r0QjqqEaaI14h/IvhRB5NXC2Xkc0k7cp4=; b=DnXyekkC8cKQvnuBmLHidapIMqBCDRf8wKBPQH4Z20obaCS44FO7lTv7nDb5R70ZTR BHu3/yxtX7h9GSV8usnMzjSV37gFzsj4FyE+Lkql3j/cUtjmaWKv2pK/c/wQFGoEuPD5 NdPBGoijMYwViMiY2tdmRLG+pOGhu7SuOkANXVDEXYSS2XAwfcogEO1wno+DNux7PO5j 5qkz92J3JV+6DaE3eyj4jSpbuRvsF6At/7rnJfoIzD4yxYu2pp22MCAYw+vlLdVlkGPS 3H61hmF2IDVt7qt8wjn8ciyIMZIHlF2Sb83I8fSO6tdT2agTXERo84oEDJocpZxM1VjV gpYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749978079; x=1750582879; h=mime-version:message-id:date:references:in-reply-to:subject:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vehSkhBUe2r0QjqqEaaI14h/IvhRB5NXC2Xkc0k7cp4=; b=FpiGnlnaWuQQoxv4bCmLziktCLoDZ7/4RZo4Npc1ZfCcEP+t/J90IO6nicatYfF2dW Ri0ZWte9Xpb6sSN41BpK93kfqrDPnhK+GIN4xJM3xelJzr2uIZBtrG4He5kJSmgcq/lW r4/oZrTXkPwhFGbNqsggBWm57aXu0cwAgYs1KQ7JDa6THnjevNaFZOrDfQQ/n+4yG84B B6YLecFtQaWg7Mvb9uN7NDiuDrHuCG7WClw8iOFu9hzyJP2yJPalrFGG1K4llyBWYRtB 2X+Ehf/ouXx93nniTv5WOW3PHdvYArv2U7qyoI0UoqZzrBtYEzTQ/iNYHeUYJY6BWxEL b8WQ== X-Forwarded-Encrypted: i=1; AJvYcCWeWlGKJwaMYFkBxuekoNvi584Irud0lFYWOo+N/nXEQSCc75Ma4fzeg780sQVLA31TAzbJbw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzEWvaAA0vtHdoRhZusPLznEJJVAO5KPoLv6Z0Vu0tUpGy7XVRR ZD1T/ssaBNBW/AQ76HMVp418Xuwbx+H7O+v7XfBAjgPuGyrnfpj4seCC X-Gm-Gg: ASbGncsRFxcU8uUhsoiHF9acGrcSjZQVwk7L/2IdjeqT/SOU+U1p5BTxqnLcFU9jJZd rxb8Cdkxvf/u0QaMn7dc27twpYZtqOunasKWapJ39Czp7tjfLt9a5YYIyip7Bgz/RbNL0Jszns6 FEkP4eG7c9sQbHH4dG1w5oUGPPUHvL3RFj4ugc08lS31Az6wVADCpV4cJMaKZI5WgmvzxU4bCJd Ntr2Ljxnr0Fh0LTRj1+0OPbAh+qoo9SfAhp9fiZPObqp1LrM8MOiVYy2HKGbRlUOuR5D3cGWhLv sRjtnYGwvOZzc+8ZUaeE5gP7itnniqrdcO0lC7p+wNR7wOGfpL0448rZVeWb X-Google-Smtp-Source: AGHT+IEIrFw1uEc6yYBG1llZSDXim5BKHxKcgpVNYGjLTzKg6IF2R1heyvFO+aBMTfNtfyDcs5ENxA== X-Received: by 2002:a05:600c:820c:b0:43c:fa24:8721 with SMTP id 5b1f17b1804b1-4533caa2186mr52231155e9.17.1749978079210; Sun, 15 Jun 2025 02:01:19 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532dea1925sm105437035e9.12.2025.06.15.02.01.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Jun 2025 02:01:18 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Juri Linkov <juri@HIDDEN>, 78561 <at> debbugs.gnu.org, monnier@HIDDEN, eliz@HIDDEN Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87zfe9a56j.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> Date: Sun, 15 Jun 2025 11:01:14 +0200 Message-ID: <87jz5dz8dh.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Juri Linkov <juri@HIDDEN> writes: > Sorry if I missed something, but I tried to use this feature > and can't find in etc/NEWS whether to set this One option is setting a key binding, like this: (keymap-global-set "C-c q" #'fill-paragraph-semlf) Then you can invoke the command placing the cursor within a paragraph and using 'C-c q' (or 'M-x fill-paragraph-semlf'). > (setq-local fill-paragraph-function 'fill-paragraph-semlf) This works. However, the behavior of the usual key binding 'M-q' depends on the major-mode that is enabled. For instance, `org-mode' binds 'M-q' to `org-fill-paragraph' and won't invoke 'fill-paragraph-semlf. But placing the cursor within a paragraph a invoking `fill-paragraph' works. On the flip side, other modes (e.g. `outline-mode' or `texinfo-mode') don't do that and you can use 'M-q' to invoke `fill-paragraph' and, thus, `fill-paragraph-semlf' normally. How to fix this needs further discussion. Eli, Stefan any recommendation? Personally, for now, I'm setting a specific key binding to invoke `fill-paragraph-semlf'. Roi
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 15 Jun 2025 08:08:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 15 04:08:59 2025 Received: from localhost ([127.0.0.1]:53755 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQiQE-0003g1-NK for submit <at> debbugs.gnu.org; Sun, 15 Jun 2025 04:08:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41872) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uQiQC-0003fS-BO for 78561 <at> debbugs.gnu.org; Sun, 15 Jun 2025 04:08:56 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1uQiQ5-0001sy-Vo; Sun, 15 Jun 2025 04:08:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=JONtNh8w13undAww4hmitZeHpON42NpMb4yDKiAYdEk=; b=Cd0+skJ+nwYLzPxaheM9 WBkS1gGC/pe9oDQGqGrsXjkTRBeqIjkWTItQv9KopO4Ijv4s4NqfgcIMFofeUNdq+52ovpxSy0R8A p92/BW13gBFhqNYeqtpf7MQOv8Bc8KSDaGzE0F2tqI82wOYkILcdBfuU0RlaZkaF/7ySlS5R8wYYj TcsNphefa0yT/mQpANAQKwF986qO2rn7TVN6R1LzqnCWDSx09k4WHELxzxoeGpAONQpgEXJrUZdI+ HI2Tulj3nze/4shY/DVQitPgvuSyBMP64eFC029EiWA8CCkurF0nlO/nEY/IXOCGtMQ3UTJ946NJ9 7zW5M6TghFZadw==; Date: Sun, 15 Jun 2025 11:08:47 +0300 Message-Id: <865xgxqve8.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Rudolf =?utf-8?Q?Adamkovi=C4=8D?= <rudolf@HIDDEN> In-Reply-To: <m2sek1o35h.fsf@HIDDEN> (message from Rudolf =?utf-8?Q?Adamkovi=C4=8D?= on Sun, 15 Jun 2025 09:49:30 +0200) Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> <m2sek1o35h.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: jroi.martin@HIDDEN, 78561 <at> debbugs.gnu.org, juri@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Rudolf Adamkovič <rudolf@HIDDEN> > Cc: eliz@HIDDEN, jroi.martin@HIDDEN > Date: Sun, 15 Jun 2025 09:49:30 +0200 > > BTW, when the discussion started, few knew what "semantic line breaks" > were. The new function names shorten the term to "semlf". I tried to > search the Internet for "semlf" and I found only this thread and the > Emacs package discussed here. Is there a good reason for shortening > `semantic-line-breaks' to `semlf' here? Apart of its being significantly shorter? No reason, I suppose. But fill-region-as-paragraph-semantic-line-breaks is IMO too long for a command.
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 15 Jun 2025 07:49:42 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 15 03:49:41 2025 Received: from localhost ([127.0.0.1]:53579 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQi7Z-0001xQ-Bx for submit <at> debbugs.gnu.org; Sun, 15 Jun 2025 03:49:41 -0400 Received: from fhigh-a4-smtp.messagingengine.com ([103.168.172.155]:55565) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudolf@HIDDEN>) id 1uQi7X-0001wy-9h for 78561 <at> debbugs.gnu.org; Sun, 15 Jun 2025 03:49:39 -0400 Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfhigh.phl.internal (Postfix) with ESMTP id 23BBA1140094; Sun, 15 Jun 2025 03:49:34 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Sun, 15 Jun 2025 03:49:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adamkovic.org; h=cc:cc:content-transfer-encoding:content-type:content-type :date:date:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:subject:subject:to:to; s=fm2; t=1749973774; x=1750060174; bh=Uke8SgFiT5fEdcIV+WDjQQGqtrHkkLq/ Dvv/9N15t5s=; b=DlVlWltRFldnyJuIrH3AWQ2W2bh8LEF2XjFHGueBv1OqrY/Q m2SOuHfj1PGEDgHor/1do5cEBMDvnPqEda4AMl4CfUowUIlXVoCAXkRhaw/i4HKJ sVlS9TeqS88ko0SE2wsU3f6p2W1CiAQKG0JAzsJzS3ZfeFc/juf3hb6RXuxfJlkZ HrIkEL0u0/b1/G1FPKidj92LRZsFPyaqFW7ZobfFwUPU3mJ1Le39ut8Yge8AfpAd FIgdNFEbGG/UFt9ersMAYis5WMVlTQO5oE0ThHgWVFvrsoDuh6puzZTCU4AbAJNe jZc3W3mOzK5xq9ZdB96RJvbSO+IfnXtVLHI2rQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1749973774; x= 1750060174; bh=Uke8SgFiT5fEdcIV+WDjQQGqtrHkkLq/Dvv/9N15t5s=; b=D P+dEPRXT93OXH9byNCQSQ0AkGgWvO3PGPTzbqUOAH4/0/XJQ0I2Jk/EEL6D7XCIb vNMldWdaxO/1WPnoGKatvX3D4xKdE9nZhsEC4FgtTpVQZndrodanS2lj7YZEhUvg 3uey6YOmMoHgrMHa8BI7ysRGGhe8EXYLODdfyZQnkFOgVxsNGgyLG6K7FxGZBFtQ 6VAIh/4eeKtwaVEqFeiMgTTy/Irr06xqGshF9CQoP0viFdECMaM3QuY4tSxD2oFX jRvBTXJXmpudhd6ukplRN/lngOL1DF44nqWqo7aOoRMnmEkjisX/TcilXJ10Ujxt uwauFuOcl+OiI2Be2Yzkg== X-ME-Sender: <xms:DXtOaCtFjsXutPtC-cxmIBnR7dTyNL8_M0EWcWp1ryAITTfAmoizQw> <xme:DXtOaHcxUkV31-c0bHpxFaqVrgRk2TfZ6mdQkWKobju3rfS-iTg_BzYm2ThMfifl5 DRwwBmd69Yg-6qsv8k> X-ME-Received: <xmr:DXtOaNxRhB9WVwKUIYhvoGecFBLUFpl-MkBHJX7YCsnJBMEWmRYkIerfPT8LMBFIWZ9e36b7S-7R1CwPYYvXn8AxqFymBh8> X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddugddvfedugecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufgjfhffkfggtgfgsehtqhertddttdej necuhfhrohhmpeftuhguohhlfhcutegurghmkhhovhhitgcuoehruhguohhlfhesrggurg hmkhhovhhitgdrohhrgheqnecuggftrfgrthhtvghrnhepieeuteehffdugffhgeegveeh vedvtdekffelhfeuledugfetgfffledthfdujeegnecuffhomhgrihhnpegruggrmhhkoh hvihgtrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf rhhomheprhhuugholhhfsegruggrmhhkohhvihgtrdhorhhgpdhnsggprhgtphhtthhope egpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehjrhhoihdrmhgrrhhtihhnsehg mhgrihhlrdgtohhmpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhrtghpthhtoh epjeekheeiudesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhopehjuhhrihes lhhinhhkohhvrdhnvght X-ME-Proxy: <xmx:DXtOaNPuldBB5eDJCv1nji9gXNu9nPpv87pn-jQCgFs0B2uV4cWQ_A> <xmx:DXtOaC8GMOXXue7KtWlbOQMZFTFyB64ZyL9ObkxuJZddvrM3x4JIGQ> <xmx:DXtOaFV4O7GPVNtNhay6p4u1vWLTulqYnXKmqhIOpgkEkaWMimWSpg> <xmx:DXtOaLcraPu80wnKz7HjFqR7PZsiT7CE5tiLRUIDXonBnNA95tX9AQ> <xmx:DntOaGVehfE0os_F3ts-KTH8YP2aWn0aUHwvxPpy2Wqc7UUMEmfVOscW> Feedback-ID: i88214938:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 15 Jun 2025 03:49:32 -0400 (EDT) From: Rudolf =?utf-8?Q?Adamkovi=C4=8D?= <rudolf@HIDDEN> To: Juri Linkov <juri@HIDDEN>, 78561 <at> debbugs.gnu.org Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87zfe9a56j.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> Date: Sun, 15 Jun 2025 09:49:30 +0200 Message-ID: <m2sek1o35h.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 78561 Cc: eliz@HIDDEN, jroi.martin@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Juri Linkov <juri@HIDDEN> writes: > (setq-local fill-paragraph-function 'fill-paragraph-semlf) > > or this > > (setq-local fill-paragraph-function 'fill-region-as-paragraph-semlf) BTW, when the discussion started, few knew what "semantic line breaks" were. The new function names shorten the term to "semlf". I tried to search the Internet for "semlf" and I found only this thread and the Emacs package discussed here. Is there a good reason for shortening `semantic-line-breaks' to `semlf' here? Rudy --=20 "The whole science is nothing more than a refinement of everyday thinking." --- Albert Einstein, 1879-1955 Rudolf Adamkovi=C4=8D <rudolf@HIDDEN> [he/him] http://adamkovic.org
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 15 Jun 2025 07:36:25 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 15 03:36:25 2025 Received: from localhost ([127.0.0.1]:53390 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQhui-0000h4-R0 for submit <at> debbugs.gnu.org; Sun, 15 Jun 2025 03:36:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56546) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uQhuh-0000gk-0w for 78561 <at> debbugs.gnu.org; Sun, 15 Jun 2025 03:36:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1uQhua-0007Ij-Fu; Sun, 15 Jun 2025 03:36:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=p70Mj1qXvTg3qHKSmxCLZPVizIPlDboS+2t1JAhTbH8=; b=gqQ7utVQKKoK weTPwEHSPFrmYVEJh3Kbqqm7PPWL4WJc7B1LfRbMG2eDJHco5q3mT1dbYby8Nk9CnWzS5osyIHONl uF5eI152b4njpbhJwcchQY8upJ0j156C2Wy6mHOPqfHo7hWtpBAyVYJXegYRJJQYEUWN+FdZKXzyw 5LKNYhvp4Jlsuji/mOVU/tE7ctpz+0LkStNXfjY/AZ4fOteTwUgh+mzA5zo0wtHqqnBCABwo9WpK7 Ckm5mSJJTPIZQ6JkTRkonOGW0gaXchU8xyEeMFc8G9P6dkTAG0SNiJ1PwijjlPkeU6N4DoZvoqfZB LPrnklW03j1FAdhSY4nCmQ==; Date: Sun, 15 Jun 2025 10:36:13 +0300 Message-Id: <867c1dqwwi.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Juri Linkov <juri@HIDDEN> In-Reply-To: <87zfe9a56j.fsf@HIDDEN> (message from Juri Linkov on Sun, 15 Jun 2025 09:39:24 +0300) Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> <87zfe9a56j.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: jroi.martin@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Juri Linkov <juri@HIDDEN> > Cc: eliz@HIDDEN, jroi.martin@HIDDEN > Date: Sun, 15 Jun 2025 09:39:24 +0300 > > >> The latest version is far from perfect but works well for the most > >> common use cases. > > > > Thanks, I've now installed this on the master branch, and I'm > > therefore closing the bug. > > Sorry if I missed something, but I tried to use this feature > and can't find in etc/NEWS whether to set this > > (setq-local fill-paragraph-function 'fill-paragraph-semlf) > > or this > > (setq-local fill-paragraph-function 'fill-region-as-paragraph-semlf) Neither, AFAIU? Those two are commands, not fill-paragraph functions. They don't implement the protocol defined for fill-paragraph functions.
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 15 Jun 2025 06:50:50 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 15 02:50:49 2025 Received: from localhost ([127.0.0.1]:52846 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQhCb-0004hb-Kq for submit <at> debbugs.gnu.org; Sun, 15 Jun 2025 02:50:49 -0400 Received: from relay9-d.mail.gandi.net ([217.70.183.199]:50567) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1uQhBu-0004Y6-W6 for 78561 <at> debbugs.gnu.org; Sun, 15 Jun 2025 02:50:07 -0400 Received: by mail.gandi.net (Postfix) with ESMTPSA id 34DB2442A2; Sun, 15 Jun 2025 06:49:58 +0000 (UTC) From: Juri Linkov <juri@HIDDEN> To: 78561 <at> debbugs.gnu.org Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <868qlusako.fsf@HIDDEN> Organization: LINKOV.NET References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> <868qlusako.fsf@HIDDEN> Date: Sun, 15 Jun 2025 09:39:24 +0300 Message-ID: <87zfe9a56j.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: 0 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddugddvfedtvdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucenucfjughrpefhvfevufgjohhffffkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucggtffrrghtthgvrhhnpeffgeetfeevlefhleejfeeuheeiudeitdffhfdutdekfeffgffhveehteegueekheenucfkphepledurdduvdelrddutdefrddvjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeeluddruddvledruddtfedrvdejpdhhvghlohepmhgrihhlrdhgrghnughirdhnvghtpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhgspghrtghpthhtohepfedprhgtphhtthhopehjrhhoihdrmhgrrhhtihhnsehgmhgrihhlrdgtohhmpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhrtghpthhtohepjeekheeiudesuggvsggsuhhgshdrghhnuhdrohhrgh X-GND-Sasl: juri@HIDDEN X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 78561 Cc: eliz@HIDDEN, jroi.martin@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) >> The latest version is far from perfect but works well for the most >> common use cases. > > Thanks, I've now installed this on the master branch, and I'm > therefore closing the bug. Sorry if I missed something, but I tried to use this feature and can't find in etc/NEWS whether to set this (setq-local fill-paragraph-function 'fill-paragraph-semlf) or this (setq-local fill-paragraph-function 'fill-region-as-paragraph-semlf)
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561-done) by debbugs.gnu.org; 14 Jun 2025 13:43:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 14 09:43:57 2025 Received: from localhost ([127.0.0.1]:37551 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uQRAp-0001pT-HY for submit <at> debbugs.gnu.org; Sat, 14 Jun 2025 09:43:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57438) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uQRAY-0001nM-P4 for 78561-done <at> debbugs.gnu.org; Sat, 14 Jun 2025 09:43:40 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1uQRAS-0003Dq-03; Sat, 14 Jun 2025 09:43:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Zq647+xfIK2/LWNXhgO6Gmt8HWxf0taLEIsy7iHZF0M=; b=qcI7tbY0SPfO FxSmdZ5Qs4oqnXy0aKaaBPr3iPp5bP61bvSIkTKdmBw2SFoVuL5lQNNe/hRDRXHGbnQ0HxV4Uaeza gJQSVeLOudDg0QABIpNUn8Q98cDQ/qKRL8sHeYkAz5xtXIeZQbncwiU8Oi2N7anAIpXMe3HJ+w6QJ pK5vZNKoZgTvfKb86OExtDWhGM7OKkIxc/1M4iPrRspUbxbRKs5s9x7KRqLIGx0BhHxxrNYDME6yY qjOqCc3HzQfrOHSsRDN6hUStW7mOnjWaH5pSCqjWS8rX8rJWBIRnHRH+NqkKE7emrOphrodJyTxos CXmU5B7UiOJTkpQ9L1qqeg==; Date: Sat, 14 Jun 2025 16:43:19 +0300 Message-Id: <868qlusako.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> In-Reply-To: <87bjr5b9xe.fsf@HIDDEN> (message from Roi Martin on Tue, 03 Jun 2025 08:45:17 +0200) Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561-done Cc: mbork@HIDDEN, monnier@HIDDEN, 78561-done <at> debbugs.gnu.org, rms@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Roi Martin <jroi.martin@HIDDEN> > Cc: Eli Zaretskii <eliz@HIDDEN>, rms@HIDDEN, 78561 <at> debbugs.gnu.org, > mbork@HIDDEN > Date: Tue, 03 Jun 2025 08:45:17 +0200 > > Stefan Monnier <monnier@HIDDEN> writes: > > > Side comment, tho: it would be good to get rid of the `with-restriction` > > so that the code can see the surrounding text. In the past such > > restrictions in `fill.el` have posed problems for example when we want > > to refill code in a way that obeys indentation rules or that > > needs to distinguish filling within strings vs filling within comments. > > The latest version is far from perfect but works well for the most > common use cases. The included tests can given you an idea of the > current state. Are you OK with tackling the `with-restriction' > improvement in a future patch? Thanks, I've now installed this on the master branch, and I'm therefore closing the bug.
Roi Martin <jroi.martin@HIDDEN>
:Eli Zaretskii <eliz@HIDDEN>
:Received: (at 78561) by debbugs.gnu.org; 3 Jun 2025 17:25:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 03 13:25:05 2025 Received: from localhost ([127.0.0.1]:41128 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uMVNp-00066q-BG for submit <at> debbugs.gnu.org; Tue, 03 Jun 2025 13:25:05 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:62523) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1uMVNm-00065c-Sm for 78561 <at> debbugs.gnu.org; Tue, 03 Jun 2025 13:25:03 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 569A344239A; Tue, 3 Jun 2025 13:24:55 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1748971494; bh=fp7opKaFrbkXBQAS3FNNb/4QbxlW8NyFO8AertIWP9E=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=fmK1lX1y0mtIhgXlLy9nFy9EA3yexSQnwwHQ9XOFFVUyViPzDlBftUCJwQ7dyeWVa oCQt+dEglaFEFpYIcLz0veKWbxhEduauvZnlp4BOXBzULRB2cb+AYay8Kw5GeiEJOr O9v5zSlg4WwnfaaZotRWlGDJBqfz+vco2A/tbchbwpU2HA9OAPlwhmmwzLmIg0DoDj 8sKNYHg6AetiDdKdhH2ymIE/V8V4Ef0Gyf4hq7Xu5phTUUJZ/gpmzk9KJkpLHw0VGm 3pNnPi+/uuCMBHNrWxCOaqmSQ1N8wQdkvtjlwbyKV5+LNZ2bIO8THLAf711gijs/NC ivx36HdO4M6OQ== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 82021441857; Tue, 3 Jun 2025 13:24:54 -0400 (EDT) Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 6F3C012058A; Tue, 3 Jun 2025 13:24:54 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87bjr5b9xe.fsf@HIDDEN> Message-ID: <jwvo6v4hh5w.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> <87bjr5b9xe.fsf@HIDDEN> Date: Tue, 03 Jun 2025 13:24:54 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.161 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: Eli Zaretskii <eliz@HIDDEN>, mbork@HIDDEN, rms@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Are you OK with tackling the `with-restriction' > improvement in a future patch? Yes. Stefan
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 3 Jun 2025 06:45:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 03 02:45:34 2025 Received: from localhost ([127.0.0.1]:59370 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uMLOv-0004tD-LM for submit <at> debbugs.gnu.org; Tue, 03 Jun 2025 02:45:34 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:58454) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uMLOs-0004rc-4y for 78561 <at> debbugs.gnu.org; Tue, 03 Jun 2025 02:45:31 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-442f9043f56so31143015e9.0 for <78561 <at> debbugs.gnu.org>; Mon, 02 Jun 2025 23:45:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748933124; x=1749537924; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=wxeMZQendUGYwC0ErOXla8pwOMeLchK2GyuZrCySLeY=; b=ivG6REHsc/mmYFcCsdUcHtv6QLKYsNNouUXdQsTRoQvSUn5ZPiMusTC6WWKtOD1x6V dM9GbSqI11Lrpoe0a1XgvxO6AEhyu4mT1hU1JyatGUX2ucd6NwqGoQnMtv2dCFRUzFH6 G4jxd84X6MJdt8uxg50b5euTLU3yogK1RP5kpKsNCQQlT/834XNlGgUrTQmVGwcclJQg TvTYTVkyuUD425bmt0Sl+c4oR1z91JKjJscPXMhKdOq+N9Z5X0cikBxU80tHNXqAbr+u GXnBFhrL4i8K+EF3Yd8BxFoG+QQkdqQjpoqMTLY4rm0Ir7zjU0p2XVednx7mwz02Z2to Zppw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748933124; x=1749537924; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wxeMZQendUGYwC0ErOXla8pwOMeLchK2GyuZrCySLeY=; b=xRC8GX4uAbiqZDnjuTSqOAZi3iP3GZ65zo3+HT3VDLiJDHl7lMwLOlJfOc6zyPIOoD cZGAvuDwJOP377oyYQg3vlnRZJCZk6VO3YHRl8sbmwbxXoO56didoA4baRCdZouygbbh P/rYXdOWn92W488b/SVZg9hh59ul9/SDD7XDTiQf5VKwgRA32OwLIsTFP+44H9fvTeg9 s4jcdQstpobxs+MSn3ComkkPGqz/wW+HWVOXQoMtpeHvQ+/O0SzI0LwUBnAWfZvqgrpV jpCQUCPnqYDbOxaq35UfecSaRINkz1mTdgHNwls6q9L+tiUDh+DhzRFAtEikoa7Qd9BM wqqg== X-Forwarded-Encrypted: i=1; AJvYcCX8OWucBwFftYqHcW5Fps1ag43H66rloOiCZ20NDmuGxH3rrrIRMnnqIp2q+JQcNch5g2SrlQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz7iglbMpWMXhaq5EDto/Ld+ryVlTWirwy+POjFbMFSmKbG8HcY lGDsjEijxY5y3Bx2S9af5es3DjQukAOe4YACfEsP9J+R5vxs1nMXHVK/ X-Gm-Gg: ASbGnctRqgVtzN4fNEVypYMHJewS1kFpKU3p9rg+h6TKa18mfVjKLhNDzJZs0PxqVek lQBwvzVZdmf/ksZGAVmVQW9FMKW8n7YAEtMqyg2gN8HUcy2GTJw4Gd6wy0nUsQNjr5S1HWhbpKf jBFdkqhHyb9hTXwSwbKi3up4AIgFm9pY4J77KznJymCcElH5PyJwLGz0ztql2PtpWCMN3Hkin26 rC0FtLB6TlCqmHjsYoMTJOo97xOK0Dc3IajLsIP/EEPJgzfD4vdnUXwDaqchfssCJRQ5+qPj9it lWZHwgCRzrAXEp43z91LSSTwhPMNAVQYEgCWHsa+xnMnIM9I1w== X-Google-Smtp-Source: AGHT+IG+RfRKpfs9ptvwwu1H93yozKPeH3KDV8DxyhjuMZAplTZC3JZ7vVsqIRnKmIQzjhQHWdipkA== X-Received: by 2002:a05:6000:4282:b0:3a4:ec23:dba7 with SMTP id ffacd0b85a97d-3a4fe394766mr8747534f8f.31.1748933123687; Mon, 02 Jun 2025 23:45:23 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4efe5b79asm16875453f8f.2.2025.06.02.23.45.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Jun 2025 23:45:23 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> Date: Tue, 03 Jun 2025 08:45:17 +0200 Message-ID: <87bjr5b9xe.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: Eli Zaretskii <eliz@HIDDEN>, mbork@HIDDEN, rms@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: > Side comment, tho: it would be good to get rid of the `with-restriction` > so that the code can see the surrounding text. In the past such > restrictions in `fill.el` have posed problems for example when we want > to refill code in a way that obeys indentation rules or that > needs to distinguish filling within strings vs filling within comments. The latest version is far from perfect but works well for the most common use cases. The included tests can given you an idea of the current state. Are you OK with tackling the `with-restriction' improvement in a future patch? Roi
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 2 Jun 2025 19:13:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 02 15:13:16 2025 Received: from localhost ([127.0.0.1]:55047 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uMAax-0004Ce-Hz for submit <at> debbugs.gnu.org; Mon, 02 Jun 2025 15:13:15 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:14709) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1uMAau-0004CF-F1 for 78561 <at> debbugs.gnu.org; Mon, 02 Jun 2025 15:13:12 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id EE0F010013E; Mon, 2 Jun 2025 15:13:06 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1748891585; bh=Ir4t9Lv8qlBiauf38XrxdUO66L2uXFNJG09Ja/FZDno=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=h2K3FeAl0XZOSZ5tiO/1+1Pcfq/cniRCT11jLw0bS6k9EQiUHlShb8W+1DUyiG32l blFbfElfNc+gmtCIpF+4IbTV+6jtrgo10cfIc4/C/arco8BOywNEZCyTPd8Tvjrdqs kHnxaYvDPyKDLJKMpUNyoQGyXmpAOZMw1ccl281XSQzPgIYTLsNHvntzCfMSamojMD xjSGew4JkhhyOsQQIBtRP+Q6Uzfm5LUtO8aYiCCxH/5HYsPE9GG0fe+n95JjXQxJ0Y PLrk5yrE60VoDM73JLy1PDZi+Z/uzGrbCuLLBUgqrKiVZ0JaJNhXWdARGBv7l9dqWZ E2N1RSGZ6TMjQ== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id E7FA510006B; Mon, 2 Jun 2025 15:13:05 -0400 (EDT) Received: from alfajor (modemcable005.21-80-70.mc.videotron.ca [70.80.21.5]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id AD2DE12024D; Mon, 2 Jun 2025 15:13:05 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87tt4yqomv.fsf@HIDDEN> Message-ID: <jwvtt4ynez6.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> <87tt4yqomv.fsf@HIDDEN> Date: Mon, 02 Jun 2025 15:13:05 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.267 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: Eli Zaretskii <eliz@HIDDEN>, mbork@HIDDEN, rms@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > RMS replied to me with a review, where he mentioned that this feature > would be more convenient if it were a minor mode. Eli, Stefan, what do > you think? If it makes sense, we can add it in a future patch. Yes, it goes in the same direction of my TODO of adding more hooks to control various aspects of filling. (One of) Those hooks should make it easy to write such a minor mode. > I've attached a new version of the patch. It includes the following > changes compared to the previous version: LGTM. Side comment, tho: it would be good to get rid of the `with-restriction` so that the code can see the surrounding text. In the past such restrictions in `fill.el` have posed problems for example when we want to refill code in a way that obeys indentation rules or that needs to distinguish filling within strings vs filling within comments. Stefan
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 2 Jun 2025 13:06:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 02 09:06:35 2025 Received: from localhost ([127.0.0.1]:50227 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uM4s4-0006LG-C3 for submit <at> debbugs.gnu.org; Mon, 02 Jun 2025 09:06:35 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:61755) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uM4rz-0006KR-79 for 78561 <at> debbugs.gnu.org; Mon, 02 Jun 2025 09:06:30 -0400 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-3a503d9ef59so1048354f8f.3 for <78561 <at> debbugs.gnu.org>; Mon, 02 Jun 2025 06:06:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748869581; x=1749474381; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=OuTzJxuVXyokCjZIopmyduZHcqW3Aej8WBZA4PAzNU0=; b=Uq5Av/EYJ+A38ZKKcfq9LR0/f5ot1pegJCLT0WW4ywSZPdnbAyr+j2Sr+g5INQFbjF DZ89PPJxTLB79PZsgz7oF2hf41j88TUUquGQzUaaz40u49+aaqCAEPCd6Xq19C5ZmkTX zwS68qRH/CBPqrcy0v3Oc11kgpU1+j8RHg6YnkGd0u2y86r1d0D/l4OMEQgEirVxrpku uiFrdOrZj3ZDF0FXtQPY0+POsP/tTI+ajgcFuNuCxw5x2nIdZ1KCq7zA9ou2JObUwEO2 9xAQOxF7fOmk/vn3kkMT1pHIyCfIs3nmNfHQcuSM46ltscooZwTgA5figjJXwuzNyknM qa0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748869581; x=1749474381; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=OuTzJxuVXyokCjZIopmyduZHcqW3Aej8WBZA4PAzNU0=; b=mL1cZnc65CQiTXwiaIvM4KfkNWdGtE1hNhiLN1XLNLDmKEr/gmhDoF8BRrGHDVfHAx iu2ytsuAGmlGHbFF6nAOLx0iMTO2vb+yCDoB34UAYIf9nMnZZ0f0e0N+UiS4pJDRys3l 1WEzpVhIoWfB9HoO6qGqTPUtQA9yptLuFjI0mDBsBa+wmYZQCh1unBc5xkfV2sivZi5m mJtN3ADLkrHjI2EgWuJmuGpHRgfGvatx/RVg89KrxxJi/NjIgH4xabbBcBn4SwTrgySc ah0QvmftdkeU62It5ityvQx4UWjN+05KniGOQ5HFU/RHgG+deUeyGuvfLvm3q8V7g7Ih 3eJA== X-Gm-Message-State: AOJu0Yzzjc5wtoK2Y16R2+TK0ZIa15fHEjZS3RR0Wf5is3wX+X42JXwA 2DJRe447owYtGJheJA91d9oCt8zNLyjIMBO/9aJJ83m0zBWMeHJO/V5R X-Gm-Gg: ASbGnctgWUfT9D3l8ev6b1ojg4i9Ei4xezNDJRX7prR2Lbep+a2AuDZQSiHzAIB7fUx tAVKfcWszPkeoE4nFRXuqa/ZdFG7lTbvv9+TltwXJ8Vk+OFINR8Kn98skHLUG/cvAyLaFIP+Oo2 vALH1/VnUENpz5yyjJxOGXNo1EZoWrW6uuw7RnSe3Yl5r3Bf+sCuBxmTtFWQ6qZf85ymq5fIfAy r7hTtJ4iyZS+ucGHgkV6yAVHAaioGoZE9KrxXBY/YEn8lwdawzDB0S9IuMBzlMP4Uq+GX7POe34 Pi6l5otGPkPK0aygjl8DhYQuYDdKxMGg+ya04gtaclFrMIjIWQ== X-Google-Smtp-Source: AGHT+IFyNnw5Tbj+dUIIbzVre9TXU7GwtDkP7q+30qIDZp6tHPYIeGHPV8WU5CqO5bLjdz33M4EDiQ== X-Received: by 2002:a05:6000:248a:b0:3a4:e706:530f with SMTP id ffacd0b85a97d-3a4fe398991mr6559134f8f.42.1748869580467; Mon, 02 Jun 2025 06:06:20 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f00972b5sm14943698f8f.76.2025.06.02.06.06.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Jun 2025 06:06:19 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, rms@HIDDEN Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <86o6v8qd7m.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> <86o6v8qd7m.fsf@HIDDEN> Date: Mon, 02 Jun 2025 15:06:16 +0200 Message-ID: <87tt4yqomv.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: mbork@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Eli Zaretskii <eliz@HIDDEN> writes: > It's okay, but please make sure there are two spaces between > sentences, not one. There are quite a few cases in the patch where > this is not so. Fixed in doc strings. The rest of cases correspond to test data where we want to verify that `sentence-end-double-space' is respected. > Also, the commit log message should mention the bug number. Fixed. RMS replied to me with a review, where he mentioned that this feature would be more convenient if it were a minor mode. Eli, Stefan, what do you think? If it makes sense, we can add it in a future patch. Also, with regard to the paragraph: For more details about semantic linefeeds, see `https://sembr.org/' and `https://rhodesmill.org/brandon/2012/one-sentence-per-line/'." He raised the following concern: > This sort of information doesn't belong in an Emacs doc string. > If some of it isimportant for using this feature right, we > should state the point in this and other doc strings, or in > the Emacs Manual, That way we can propagate it and update it. > If information is "if you'd like to know more", not necessary for peopke > to read to know how to use the feature, then we can refer to it on a web page. > But we need to have reason to be confident that page will exist for many > years, serving the same purpose, in a way we would not be ashamed to link to. > > Otherwise, depending on it is asking for trouble. > > How much material is importaht to link to for this purpose? As I previously said, I think it should be fine to add a short explanation in the doc string or in the manual instead of linking with external sites that are subject to change or be deleted in the future. I've attached a new version of the patch. It includes the following changes compared to the previous version: - Separate sentences in doc strings using two spaces. - Add bug number to commit log message. - Slightly reword doc strings, following a suggestion from RMS. - Add test to check that it is possible to "revert" semlf-filling by refilling the paragraph, following a suggestion from RMS. Roi --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Add-semantic-linefeed-support-for-paragraph-filling.patch From db5067064d89ea16b2313622be3e6bb32e9293f4 Mon Sep 17 00:00:00 2001 From: Roi Martin <jroi.martin@HIDDEN> Date: Fri, 21 Mar 2025 14:22:46 +0100 Subject: [PATCH] Add semantic linefeed support for paragraph filling * lisp/textmodes/fill.el (fill-region-as-paragraph-semlf): Add function to fill a region using semantic linefeeds as if it were a single paragraph. (fill-paragraph-semlf): Add function to fill paragraph using semantic linefeeds. * test/lisp/textmodes/fill-tests.el (fill-test-fill-region-as-paragraph-semlf) (fill-test-fill-paragraph-semlf) (fill-test-fill-paragraph-semlf-fill-paragraph-function) (fill-test-fill-paragraph-semlf-justify) (fill-test-fill-paragraph-semlf-sentence-end-double-space) (fill-test-fill-paragraph-semlf-fill-column) (fill-test-fill-paragraph-semlf-punctuation-marks) (fill-test-fill-paragraph-semlf-twice) (fill-test-fill-paragraph-semlf-fill-prefix) (fill-test-fill-paragraph-semlf-indented-block) (fill-test-fill-paragraph-semlf-revert) (fill-test-fill-paragraph-semlf-emacs-lisp-mode) (fill-test-fill-paragraph-semlf-c-mode) (fill-test-fill-paragraph-semlf-org-mode) (fill-test-fill-paragraph-semlf-markdown-mode): Add tests. * test/lisp/textmodes/fill-resources/semlf-c-mode.erts: * test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts: * test/lisp/textmodes/fill-resources/semlf-fill-column.erts: * test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts: * test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts: * test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts: * test/lisp/textmodes/fill-resources/semlf-indented-block.erts: * test/lisp/textmodes/fill-resources/semlf-justify.erts: * test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts: * test/lisp/textmodes/fill-resources/semlf-org-mode.erts: * test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts: * test/lisp/textmodes/fill-resources/semlf-revert.erts: * test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts: * test/lisp/textmodes/fill-resources/semlf-twice.erts: * test/lisp/textmodes/fill-resources/semlf.erts: Add test data. (Bug#78561) --- lisp/textmodes/fill.el | 92 +++++++++ .../fill-resources/semlf-c-mode.erts | 183 ++++++++++++++++++ .../fill-resources/semlf-emacs-lisp-mode.erts | 87 +++++++++ .../fill-resources/semlf-fill-column.erts | 15 ++ .../semlf-fill-paragraph-function.erts | 12 ++ .../fill-resources/semlf-fill-prefix.erts | 35 ++++ .../semlf-fill-region-as-paragraph.erts | 37 ++++ .../fill-resources/semlf-indented-block.erts | 31 +++ .../fill-resources/semlf-justify.erts | 12 ++ .../fill-resources/semlf-markdown-mode.erts | 129 ++++++++++++ .../fill-resources/semlf-org-mode.erts | 122 ++++++++++++ .../semlf-punctuation-marks.erts | 13 ++ .../fill-resources/semlf-revert.erts | 11 ++ .../semlf-sentence-end-double-space.erts | 13 ++ .../textmodes/fill-resources/semlf-twice.erts | 12 ++ test/lisp/textmodes/fill-resources/semlf.erts | 88 +++++++++ test/lisp/textmodes/fill-tests.el | 112 +++++++++++ 17 files changed, 1004 insertions(+) create mode 100644 test/lisp/textmodes/fill-resources/semlf-c-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-column.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-indented-block.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-justify.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-org-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-revert.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-twice.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf.erts diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index e38d030734fb..386a88bda3a8 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -1583,4 +1583,96 @@ fill-individual-paragraphs-citation "") string)) +(defun fill-region-as-paragraph-semlf (from to &optional justify + nosqueeze squeeze-after) + "Fill the region using semantic linefeeds as if it were a single paragraph. +This command removes any paragraph breaks in the region and extra +newlines at the end, and fills lines within the region. Text is +refilled putting a newline character after each sentence, calling +`forward-sentence' to find the ends of sentences. If +`sentence-end-double-space' is non-nil, period followed by one space is +not the end of a sentence. + +If JUSTIFY is non-nil (interactively, with prefix argument), justify as +well. If NOSQUEEZE is non-nil, do not to make spaces between words +canonical before filling. SQUEEZE-AFTER, if non-nil, should be a buffer +position; it means canonicalize spaces only starting from that position. +See `canonically-space-region' for the meaning of canonicalization of +spaces. The variable `fill-column' controls the width for filling. + +Return the `fill-prefix' used for filling. + +For more details about semantic linefeeds, see `fill-paragraph-semlf'." + (interactive (progn + (barf-if-buffer-read-only) + (list (region-beginning) + (region-end) + (if current-prefix-arg 'full)))) + (unless (memq justify '(t nil none full center left right)) + (setq justify 'full)) + + (let ((from (min from to)) + (to (max from to)) + pfx) + (goto-char from) + (with-restriction (line-beginning-position) to + (let ((fill-column (point-max))) + (setq pfx (or (save-excursion + (fill-region-as-paragraph (point) + (point-max) + nil + nosqueeze + squeeze-after)) + ""))) + (while (not (eobp)) + (let ((fill-prefix pfx)) + (fill-region-as-paragraph (point) + (progn (forward-sentence) (point)) + justify + nosqueeze + squeeze-after)) + (when (and (> (point) (line-beginning-position)) + (< (point) (line-end-position))) + (delete-horizontal-space) + (insert "\n") + (insert pfx)))) + (unless (eobp) (forward-char 1)) + pfx)) + +(defun fill-paragraph-semlf (&optional justify) + "Fill paragraph at or after point using semantic linefeeds. +Refill text putting a newline character after each sentence, calling +`forward-sentence' to find the ends of sentences. If +`sentence-end-double-space' is non-nil, period followed by one space is +not the end of a sentence. + +If JUSTIFY is non-nil (interactively, with prefix argument), justify as +well. The variable `fill-column' controls the width for filling. + +Return the `fill-prefix' used for filling. + +You can use this function as the value of `fill-paragraph-function', so +`fill-paragraph' and other filling commands will use it. + +For more details about semantic linefeeds, see `https://sembr.org/' and +`https://rhodesmill.org/brandon/2012/one-sentence-per-line/'." + (interactive (progn + (barf-if-buffer-read-only) + (list (if current-prefix-arg 'full)))) + (unless (memq justify '(t nil none full center left right)) + (setq justify 'full)) + + (save-excursion + (let ((to (progn + (fill-forward-paragraph 1) + (backward-word) + (end-of-line) + (point))) + (from (progn + (fill-forward-paragraph -1) + (forward-word) + (beginning-of-line) + (point)))) + (fill-region-as-paragraph-semlf from to justify)))) + ;;; fill.el ends here diff --git a/test/lisp/textmodes/fill-resources/semlf-c-mode.erts b/test/lisp/textmodes/fill-resources/semlf-c-mode.erts new file mode 100644 index 000000000000..a28eb68cfc6a --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-c-mode.erts @@ -0,0 +1,183 @@ +Point-Char: | + +Name: c-mode - single-line + +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +// ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: c-mode - single-line - fill-prefix - marker + +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +// - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +// - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// - eiusmod tempor. +// - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// - veniam, quis nostrud exercitation ullamco laboris nisi ut. +// - Aliquip ex ea commodo consequat. +// - Duis aute irure dolor in reprehenderit in voluptate velit esse +// - cillum dolore eu fugiat nulla pariatur. +// - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +// - officia deserunt mollit anim id est laborum. +=-=-= + +Name: c-mode - single-line - fill-prefix - whitespace + +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +// Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +// Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +// Aliquip ex ea commodo consequat. +// Duis aute irure dolor in reprehenderit in voluptate velit esse +// cillum dolore eu fugiat nulla pariatur. +// Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +// officia deserunt mollit anim id est laborum. +=-=-= + +Name: c-mode - single-line - indented block + +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +// +// |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +// do eiusmod tempor. Incididunt ut labore et dolore magna +// aliqua. Ut enim ad minim veniam, quis nostrud exercitation +// ullamco laboris nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +// do eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +=-=-= + +Name: c-mode - multi-line + +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim + * ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + */ +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + */ +=-=-= + +Name: c-mode - multi-line - fill-prefix - marker + +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + * - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + * - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + */ +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * - eiusmod tempor. + * - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * - veniam, quis nostrud exercitation ullamco laboris nisi ut. + * - Aliquip ex ea commodo consequat. + * - Duis aute irure dolor in reprehenderit in voluptate velit esse + * - cillum dolore eu fugiat nulla pariatur. + * - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + * - officia deserunt mollit anim id est laborum. + */ +=-=-= + +Name: c-mode - multi-line - fill-prefix - whitespace + +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + * Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + * Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + */ +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + * Aliquip ex ea commodo consequat. + * Duis aute irure dolor in reprehenderit in voluptate velit esse + * cillum dolore eu fugiat nulla pariatur. + * Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + * officia deserunt mollit anim id est laborum. + */ +=-=-= + +Name: c-mode - multi-line - indented block + +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + * + * |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + * do eiusmod tempor. Incididunt ut labore et dolore magna + * aliqua. Ut enim ad minim veniam, quis nostrud exercitation + * ullamco laboris nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + */ +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + * do eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + */ +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts b/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts new file mode 100644 index 000000000000..fe71ee32c1aa --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts @@ -0,0 +1,87 @@ +Point-Char: | + +Name: emacs-lisp-mode + +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +;; ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: emacs-lisp-mode - fill-prefix - marker + +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +;; - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; - eiusmod tempor. +;; - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; - veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; - Aliquip ex ea commodo consequat. +;; - Duis aute irure dolor in reprehenderit in voluptate velit esse +;; - cillum dolore eu fugiat nulla pariatur. +;; - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +;; - officia deserunt mollit anim id est laborum. +=-=-= + +Name: emacs-lisp-mode - fill-prefix - whitespace + +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +;; Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; Aliquip ex ea commodo consequat. +;; Duis aute irure dolor in reprehenderit in voluptate velit esse +;; cillum dolore eu fugiat nulla pariatur. +;; Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +;; officia deserunt mollit anim id est laborum. +=-=-= + +Name: emacs-lisp-mode - indented block + +The `fill-forward-paragraph' function jumps to the beginning/end of +the comment. + +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. + +;; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +;; do eiusmod tempor. Incididunt ut labore et dolore magna +;; aliqua. Ut enim ad minim veniam, quis nostrud exercitation +;; ullamco laboris nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +;; do eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-column.erts b/test/lisp/textmodes/fill-resources/semlf-fill-column.erts new file mode 100644 index 000000000000..20db7b1f9c5b --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-column.erts @@ -0,0 +1,15 @@ +Name: fill-column + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, +consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore +magna aliqua. Ut enim ad minim +veniam, quis nostrud exercitation +ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts b/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts new file mode 100644 index 000000000000..467e7401cf50 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts @@ -0,0 +1,12 @@ +Name: fill-paragraph-function + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts b/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts new file mode 100644 index 000000000000..e067eff69701 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts @@ -0,0 +1,35 @@ +Name: fill-prefix - marker + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +- eiusmod tempor. +- Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +- veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. +- Duis aute irure dolor in reprehenderit in voluptate velit esse +- cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +- officia deserunt mollit anim id est laborum. +=-=-= + +Name: fill-prefix - whitespace + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + Aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts b/test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts new file mode 100644 index 000000000000..114eaa46fc3c --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts @@ -0,0 +1,37 @@ +Point-Char: | + +Name: fill-region-as-paragraph-semlf + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, s|ed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +do eiusmod tempor. +Incididunt ut labore et dolore +magna aliqua. Ut enim ad minim +veniam, quis nostrud exercitation +ullamco laboris nisi ut. +Lorem ipsum dolor sit amet, +consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore +magna aliqua. Ut enim ad minim +veniam, quis nostrud exercitation +ullamco laboris nisi ut. +Lorem ipsum dolor sit amet, +consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore +magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-indented-block.erts b/test/lisp/textmodes/fill-resources/semlf-indented-block.erts new file mode 100644 index 000000000000..e483567c6ab3 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-indented-block.erts @@ -0,0 +1,31 @@ +Point-Char: | + +Name: indented block + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-justify.erts b/test/lisp/textmodes/fill-resources/semlf-justify.erts new file mode 100644 index 000000000000..3a951b7ce424 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-justify.erts @@ -0,0 +1,12 @@ +Name: justify + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts b/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts new file mode 100644 index 000000000000..7257708c245d --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts @@ -0,0 +1,129 @@ +Point-Char: | + +Name: markdown-mode + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - one single-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - multiple single-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-=-= + +Name: markdown-mode - list - one multi-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - multiple multi-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= + +Name: markdown-mode - list - short sentence in multi-line item + +=-= +- Lorem ipsum dolor. Sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor. + Sit amet, consectetur adipiscing elit, sed do eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - indented block +Skip: t + +TODO - In `markdown-mode', the `fill-forward-paragraph' function +ignores code blocks. We should reach out to the `markdown-mode' +maintainer(s) to understand the reason for this and possibly suggest a +change to this behavior. This works as expected in +`markdown-ts-mode'. + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-org-mode.erts b/test/lisp/textmodes/fill-resources/semlf-org-mode.erts new file mode 100644 index 000000000000..81dd4841de94 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-org-mode.erts @@ -0,0 +1,122 @@ +Point-Char: | + +Name: org-mode + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - one single-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - multiple single-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-=-= + +Name: org-mode - list - one multi-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - multiple multi-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= + +Name: org-mode - list - short sentence in multi-line item + +=-= +- Lorem ipsum dolor. Sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor. + Sit amet, consectetur adipiscing elit, sed do eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - indented block + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts b/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts new file mode 100644 index 000000000000..5346216e9f9c --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts @@ -0,0 +1,13 @@ +Name: punctuation marks + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua! Ut enim +ad minim veniam? Quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua! +Ut enim ad minim veniam? +Quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-revert.erts b/test/lisp/textmodes/fill-resources/semlf-revert.erts new file mode 100644 index 000000000000..d3efca50de6d --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-revert.erts @@ -0,0 +1,11 @@ +Name: revert + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts b/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts new file mode 100644 index 000000000000..a01beed0f665 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts @@ -0,0 +1,13 @@ +Name: sentence-end-double-space + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris +nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-twice.erts b/test/lisp/textmodes/fill-resources/semlf-twice.erts new file mode 100644 index 000000000000..862dda6e27eb --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-twice.erts @@ -0,0 +1,12 @@ +Name: fill twice + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf.erts b/test/lisp/textmodes/fill-resources/semlf.erts new file mode 100644 index 000000000000..f3e331cd9381 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf.erts @@ -0,0 +1,88 @@ +Point-Char: | + +Name: beginning of buffer + +=-= +|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: second paragraph + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: end of buffer + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.| +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-tests.el b/test/lisp/textmodes/fill-tests.el index 6e079973100e..8fbd9919bad0 100644 --- a/test/lisp/textmodes/fill-tests.el +++ b/test/lisp/textmodes/fill-tests.el @@ -28,6 +28,7 @@ ;;; Code: (require 'ert) +(require 'ert-x) (ert-deftest fill-test-no-fill-polish-nobreak-p nil "Tests of the `fill-polish-nobreak-p' function." @@ -121,6 +122,117 @@ test-fill-haskell ;; w "))) + +(ert-deftest fill-test-fill-region-as-paragraph-semlf () + "Test the `fill-region-as-paragraph-semlf' function." + (ert-test-erts-file (ert-resource-file "semlf-fill-region-as-paragraph.erts") + (lambda () + (setq-local fill-column 35) + (fill-region-as-paragraph-semlf + (point) + (progn + (goto-char (point-max)) + (forward-line -1) + (beginning-of-line) + (point)))))) + +(ert-deftest fill-test-fill-paragraph-semlf () + "Test the `fill-paragraph-semlf' function." + (ert-test-erts-file (ert-resource-file "semlf.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-paragraph-function () + "Test `fill-paragraph-semlf' as `fill-paragraph-function'." + (ert-test-erts-file (ert-resource-file "semlf-fill-paragraph-function.erts") + (lambda () + (setq-local fill-paragraph-function #'fill-paragraph-semlf) + (fill-paragraph)))) + +(ert-deftest fill-test-fill-paragraph-semlf-justify () + "Test the JUSTIFY parameter of the `fill-paragraph-semlf' function." + (ert-test-erts-file (ert-resource-file "semlf-justify.erts") + (lambda () + (fill-paragraph-semlf 'justify)))) + +(ert-deftest fill-test-fill-paragraph-semlf-sentence-end-double-space () + "Test the `fill-paragraph-semlf' function with `sentence-end-double-space'." + (ert-test-erts-file (ert-resource-file "semlf-sentence-end-double-space.erts") + (lambda () + (setq-local sentence-end-double-space nil) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-column () + "Test the `fill-paragraph-semlf' function with `fill-column'." + (ert-test-erts-file (ert-resource-file "semlf-fill-column.erts") + (lambda () + (setq-local fill-column 35) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-punctuation-marks () + "Test the `fill-paragraph-semlf' function with different punctuation marks." + (ert-test-erts-file (ert-resource-file "semlf-punctuation-marks.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-twice () + "Test to run the `fill-paragraph-semlf' function twice." + (ert-test-erts-file (ert-resource-file "semlf-twice.erts") + (lambda () + (goto-char (point-min)) + (fill-paragraph-semlf) + (goto-char (point-min)) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-prefix () + "Test the `fill-paragraph-semlf' function with different fill prefixes." + (ert-test-erts-file (ert-resource-file "semlf-fill-prefix.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-indented-block () + "Test the `fill-paragraph-semlf' function with an indented block." + (ert-test-erts-file (ert-resource-file "semlf-indented-block.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-revert () + "Test that the `fill-paragraph-semlf' function can be reverted." + (ert-test-erts-file (ert-resource-file "semlf-revert.erts") + (lambda () + (fill-paragraph) + (fill-paragraph-semlf) + (fill-paragraph)))) + +(ert-deftest fill-test-fill-paragraph-semlf-emacs-lisp-mode () + "Test the `fill-paragraph-semlf' function with `emacs-lisp-mode'." + (ert-test-erts-file (ert-resource-file "semlf-emacs-lisp-mode.erts") + (lambda () + (emacs-lisp-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-c-mode () + "Test the `fill-paragraph-semlf' function with `c-mode'." + (ert-test-erts-file (ert-resource-file "semlf-c-mode.erts") + (lambda () + (c-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-org-mode () + "Test the `fill-paragraph-semlf' function with `org-mode'." + (ert-test-erts-file (ert-resource-file "semlf-org-mode.erts") + (lambda () + (org-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-markdown-mode () + "Test the `fill-paragraph-semlf' function with `markdown-mode'." + (skip-unless (functionp 'markdown-mode)) + (ert-test-erts-file (ert-resource-file "semlf-markdown-mode.erts") + (lambda () + (markdown-mode) + (fill-paragraph-semlf)))) + (provide 'fill-tests) ;;; fill-tests.el ends here -- 2.49.0 --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 1 Jun 2025 04:48:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 01 00:48:45 2025 Received: from localhost ([127.0.0.1]:35119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uLacm-0002v7-0K for submit <at> debbugs.gnu.org; Sun, 01 Jun 2025 00:48:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59734) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uLach-0002tT-A2 for 78561 <at> debbugs.gnu.org; Sun, 01 Jun 2025 00:48:40 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1uLaca-00022c-O4; Sun, 01 Jun 2025 00:48:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=9vm/Pg8C9eNwgBht4wIO8WbVPAzPZPNocNc8k2Qjhb0=; b=JzmAW7LAoCWH gryiXY3v9FgVWb5nsly+RYQ4NZQzvok3j47NP8TRToINd85XBauU4G8jsLj7ihItZC1nwKRB4VRcM U7ClbZuFRm162r3Ll40pStnfgzjT+N+nmmDtNHyC+9Ixi5qvvICcPyNdNNmHXn6vDFl3+Z9tF39i1 xWgmmOHt4eWRqxGnWgVp2lvYUMN5g8Qle+HVVloVd7YB4VAPTDbdv/13o6alQPaAYChN+X+9fLk1q ATu1Z7N1SJHyGrNX9UDE+w0L8lITn8BCAFKPb5murL5rwwxAf+Qgbc1X7C4okpN4lXvxHfboRq/fH lEP9sXLr4S9Nswr4pxWPcA==; Date: Sun, 01 Jun 2025 07:48:29 +0300 Message-Id: <86o6v8qd7m.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Sat, 31 May 2025 13:39:52 -0400) Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: mbork@HIDDEN, jroi.martin@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Stefan Monnier <monnier@HIDDEN> > Cc: Eli Zaretskii <eliz@HIDDEN>, 78561 <at> debbugs.gnu.org, Marcin Borkowski > <mbork@HIDDEN> > Date: Sat, 31 May 2025 13:39:52 -0400 > > >> I recommend you first finish the current patch and take on that > >> plan afterwards. > >> What I'm asking is a fairly small refactoring of the code you sent, > >> I think. > > > > Please, find attached a new version of the patch. > > Looks good to me. Eli? It's okay, but please make sure there are two spaces between sentences, not one. There are quite a few cases in the patch where this is not so. Also, the commit log message should mention the bug number. Thanks.
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 31 May 2025 17:40:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat May 31 13:40:12 2025 Received: from localhost ([127.0.0.1]:59580 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uLQBm-0000Im-Bm for submit <at> debbugs.gnu.org; Sat, 31 May 2025 13:40:11 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:30884) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1uLQBh-0000Gv-Fu for 78561 <at> debbugs.gnu.org; Sat, 31 May 2025 13:40:08 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 1FC7F440871; Sat, 31 May 2025 13:39:59 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1748713194; bh=m7ULPBB1HXO7dm2u8BJOx5MPICkaaDDvEAzJc6hB0Ko=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=KJvPrl9/CGf7vpMmLHZlkseb6iy7YpokqcaLlfmdy094XYIi0pEVsnB7IsmZ8p3Um /W4CsMWy8cgSTTD6uaujjy8X4eWY1lJ37EeCoUiR4U6/+MgIWX8QyoAdnqyFvMETe3 WkY6ij43g7hYb90N78OG9SURqYudckWAw5Fxzl+LGXHIz7fQkY+ytnQI4XV2Ver3Yk ntiZstpfJCUjxYWIn/tp5opKtYaigzrY0UwfxqTG9ckq4RYMM1RpWu17oX5beiENt8 Z7SQj0wIUdD75dAEcckVe/bFa6dPKX0OoW8UTdV6ofwYYZ1jlhDHZQ6bbsFIDs8gCc c/zxfCOwF3NVQ== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id F0005440BA2; Sat, 31 May 2025 13:39:53 -0400 (EDT) Received: from alfajor (unknown [104.247.225.139]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 9FC2A12023A; Sat, 31 May 2025 13:39:53 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <875xhkivul.fsf@HIDDEN> Message-ID: <jwvy0ucy93e.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> <875xhkivul.fsf@HIDDEN> Date: Sat, 31 May 2025 13:39:52 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.350 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: Eli Zaretskii <eliz@HIDDEN>, Marcin Borkowski <mbork@HIDDEN>, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> I recommend you first finish the current patch and take on that >> plan afterwards. >> What I'm asking is a fairly small refactoring of the code you sent, >> I think. > > Please, find attached a new version of the patch. Looks good to me. Eli? > - Remove the mention about using `fill-paragraph-semlf' as > `fill-paragraph-function' from docs, given that the long term plan is > to obsolete this. Well, it's been in my TODO for ages, so maybe we shouldn't assume this long term plan will materialize soon. Stefan
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 28 May 2025 15:44:26 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed May 28 11:44:26 2025 Received: from localhost ([127.0.0.1]:55122 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uKIx2-0000oY-Oo for submit <at> debbugs.gnu.org; Wed, 28 May 2025 11:44:26 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:46265) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uKIwv-0000nf-Ni for 78561 <at> debbugs.gnu.org; Wed, 28 May 2025 11:44:17 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-441d1ed82dbso85975e9.0 for <78561 <at> debbugs.gnu.org>; Wed, 28 May 2025 08:44:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748447047; x=1749051847; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=73Et3ZcBCNJOJEO8wMmvemEOZEOTwjoj/G2W+6yYo5s=; b=LR5CApVxFXkAvNDfiJZEFBiaFV1iOFYlXJHqBEqs0RKqU3PwthgdWf9qu0wEe90gBB bQsr0rwEMkp1eQCQOImkfGEOsZAsFyLYZaBUeoPQIErJuDUvxGHvGkFT9qNIPhMedJWY wMzAtfjpFwD9I68mOHcWMNGtZz/A8me+oEgEN8UTpuP7CQ7JEyrxlWoLgWMq0lZq3zHe rQY2y7y/DoqNS9ZEkYjJsNrY7gKtWrOnIMRte7fDnH6a0e8uITyo9ephXeVbnamQta3x RDh7DG6Ua/lwadP70WLEVgrmhCrUF3G4eJe3xg2gAwg/Sb+7oRcy9s2o2jBtNQLZukkB +56w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748447047; x=1749051847; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=73Et3ZcBCNJOJEO8wMmvemEOZEOTwjoj/G2W+6yYo5s=; b=enaEK93X6SdeirWritl9VZlYQONgo3psWe+F8LFfxh0C+mrrqdtD3Ol7WBkIOwk0NA +GEAEirvgan8GJuNTVORee4aZ6YvwrbJr7u1twJvjT0EgSmuvkBlQ2ME7jj7wWnTFXhE KVKhb4zYUYzh73vBRtFA+a6tfvRwknPSDY8LYvnI8tIDvcMK9Pk2Se5eIOGyG2uEobww 9wV4mj9Ug+nuEEPsH2F1j1qRjwYkaJsrpu+oFynz2oFpQ70V2oGsT6XwS4Gg7PD1HLpo Z8i8UmFDLYl+p/W6tW1Pp5digclZ1xjJX83G+480bRMEVFGoMrI48nRNkMt/7YySIlQA 2MOw== X-Forwarded-Encrypted: i=1; AJvYcCWeRG+f8TULVqofsrp+BHd6J1OYfoTrFp4oR5XH36NqWrbqw0l+MimFcbfpxrm7N1orKTwu+w==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yy6xhkJUff70ga2ZFPi0G2t0KzghsuZaIgqxLWpCQvpG6H/yXYk o6BriQkn5A5PV1LiAyzHgRa4jTBVE7KTth0mLufV3wHONZqnYbi9n6hm X-Gm-Gg: ASbGncvE3paDOTDbKTnp1f1LAXOl0wRrnu2npjj1CyRuF7sopZbV0JeTg21JvmJQs5G wD9lptcwCmEM/IdlfRwJ+BdPx/XYkHFl/P+VAvd7aJt4tab6OtKjlG2glQEBqjfcFY/t/BaM98q OlXUsE+PXHB5YVNNiCrQPkInHSLA6/mHasg8zVgG6otb2wI54uTWPUjsRr2ebqTT9EGqsACRl9H SilqBv1QZWUpITIoPmnNojjK4TrnrCUi2R1m+ESae7z1AlAn6Sjj43l+ln/2t7b7QshFCVnNxoL VxZGGi7snPxgBPxHoIFG4495pnzlTKUR3O3zdC0xesT3K7WB7g== X-Google-Smtp-Source: AGHT+IEc59yzkBSG9Ve6HAH4KhzeZULSOEDpiyMjzNoduZbDMlxcRTgbEjg+2uGxy0jHWq3F1KJo+g== X-Received: by 2002:a05:600c:6297:b0:43c:fc04:6d35 with SMTP id 5b1f17b1804b1-44c91ad6b51mr184676975e9.4.1748447046822; Wed, 28 May 2025 08:44:06 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450064add8bsm25955795e9.17.2025.05.28.08.44.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 May 2025 08:44:06 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <jwvmsayni12.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> <jwvmsayni12.fsf-monnier+emacs@HIDDEN> Date: Wed, 28 May 2025 17:44:02 +0200 Message-ID: <875xhkivul.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: Eli Zaretskii <eliz@HIDDEN>, Marcin Borkowski <mbork@HIDDEN>, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Stefan Monnier <monnier@HIDDEN> writes: > I recommend you first finish the current patch and take on that > plan afterwards. > What I'm asking is a fairly small refactoring of the code you sent, > I think. Please, find attached a new version of the patch. It contains the following changes: - Add a new function named `fill-region-as-paragraph-semlf', which fills a region using semantic linefeeds as if it were a single paragraph. Its behavior is analogous to `fill-region-as-paragraph'. - Update the `fill-paragraph-semlf' function to use `fill-region-as-paragraph-semlf' internally. - Remove the mention about using `fill-paragraph-semlf' as `fill-paragraph-function' from docs, given that the long term plan is to obsolete this. - Add test for `fill-region-as-paragraph-semlf'. Thanks a lot for all the explanations. I hope this new version is closer to what you had in mind. Roi --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Add-semantic-linefeed-support-for-paragraph-filling.patch From 92538223e4808a46d47de57be4e85b3773f1fc8b Mon Sep 17 00:00:00 2001 From: Roi Martin <jroi.martin@HIDDEN> Date: Fri, 21 Mar 2025 14:22:46 +0100 Subject: [PATCH] Add semantic linefeed support for paragraph filling * lisp/textmodes/fill.el (fill-region-as-paragraph-semlf): Add function to fill a region using semantic linefeeds as if it were a single paragraph. (fill-paragraph-semlf): Add function to fill paragraph using semantic linefeeds. * test/lisp/textmodes/fill-tests.el (fill-test-fill-region-as-paragraph-semlf) (fill-test-fill-paragraph-semlf) (fill-test-fill-paragraph-semlf-fill-paragraph-function) (fill-test-fill-paragraph-semlf-justify) (fill-test-fill-paragraph-semlf-sentence-end-double-space) (fill-test-fill-paragraph-semlf-fill-column) (fill-test-fill-paragraph-semlf-punctuation-marks) (fill-test-fill-paragraph-semlf-twice) (fill-test-fill-paragraph-semlf-fill-prefix) (fill-test-fill-paragraph-semlf-indented-block) (fill-test-fill-paragraph-semlf-emacs-lisp-mode) (fill-test-fill-paragraph-semlf-c-mode) (fill-test-fill-paragraph-semlf-org-mode) (fill-test-fill-paragraph-semlf-markdown-mode): Add tests. * test/lisp/textmodes/fill-resources/semlf-c-mode.erts: * test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts: * test/lisp/textmodes/fill-resources/semlf-fill-column.erts: * test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts: * test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts: * test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts: * test/lisp/textmodes/fill-resources/semlf-indented-block.erts: * test/lisp/textmodes/fill-resources/semlf-justify.erts: * test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts: * test/lisp/textmodes/fill-resources/semlf-org-mode.erts: * test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts: * test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts: * test/lisp/textmodes/fill-resources/semlf-twice.erts: * test/lisp/textmodes/fill-resources/semlf.erts: Add test data. --- lisp/textmodes/fill.el | 92 +++++++++ .../fill-resources/semlf-c-mode.erts | 183 ++++++++++++++++++ .../fill-resources/semlf-emacs-lisp-mode.erts | 87 +++++++++ .../fill-resources/semlf-fill-column.erts | 15 ++ .../semlf-fill-paragraph-function.erts | 12 ++ .../fill-resources/semlf-fill-prefix.erts | 35 ++++ .../semlf-fill-region-as-paragraph.erts | 37 ++++ .../fill-resources/semlf-indented-block.erts | 31 +++ .../fill-resources/semlf-justify.erts | 12 ++ .../fill-resources/semlf-markdown-mode.erts | 129 ++++++++++++ .../fill-resources/semlf-org-mode.erts | 122 ++++++++++++ .../semlf-punctuation-marks.erts | 13 ++ .../semlf-sentence-end-double-space.erts | 13 ++ .../textmodes/fill-resources/semlf-twice.erts | 12 ++ test/lisp/textmodes/fill-resources/semlf.erts | 88 +++++++++ test/lisp/textmodes/fill-tests.el | 104 ++++++++++ 16 files changed, 985 insertions(+) create mode 100644 test/lisp/textmodes/fill-resources/semlf-c-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-column.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-indented-block.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-justify.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-org-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-twice.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf.erts diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index e38d030734fb..b457b01d6917 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -1583,4 +1583,96 @@ fill-individual-paragraphs-citation "") string)) +(defun fill-region-as-paragraph-semlf (from to &optional justify + nosqueeze squeeze-after) + "Fill the region using semantic linefeeds as if it were a single paragraph. +This command removes any paragraph breaks in the region and extra +newlines at the end, and fills lines within the region. It leaves point +at the beginning of the line following the region. + +If JUSTIFY is non-nil (interactively, with prefix argument), justify as +well. If NOSQUEEZE is non-nil, do not to make spaces between words +canonical before filling. SQUEEZE-AFTER, if non-nil, should be a buffer +position; it means canonicalize spaces only starting from that position. +See `canonically-space-region' for the meaning of canonicalization of +spaces. + +Return the `fill-prefix' used for filling. + +If `sentence-end-double-space' is non-nil, then period followed by one +space does not end a sentence, so don't break a line there. +The variable `fill-column' controls the width for filling. + +For more details about semantic linefeeds, see `fill-paragraph-semlf'." + (interactive (progn + (barf-if-buffer-read-only) + (list (region-beginning) + (region-end) + (if current-prefix-arg 'full)))) + (unless (memq justify '(t nil none full center left right)) + (setq justify 'full)) + + (let ((from (min from to)) + (to (max from to)) + pfx) + (goto-char from) + (with-restriction (line-beginning-position) to + (let ((fill-column (point-max))) + (setq pfx (or (save-excursion + (fill-region-as-paragraph (point) + (point-max) + nil + nosqueeze + squeeze-after)) + ""))) + (while (not (eobp)) + (let ((fill-prefix pfx)) + (fill-region-as-paragraph (point) + (progn (forward-sentence) (point)) + justify + nosqueeze + squeeze-after)) + (when (and (> (point) (line-beginning-position)) + (< (point) (line-end-position))) + (delete-horizontal-space) + (insert "\n") + (insert pfx)))) + (unless (eobp) (forward-char 1)) + pfx)) + +(defun fill-paragraph-semlf (&optional justify) + "Fill paragraph at or after point using semantic linefeeds. +This command ensures that a newline character follows every sentence. +If a sentence is not followed by a newline character, one is inserted. +The task of deciding what is considered a sentence is delegated to the +`forward-sentence' function. + +If JUSTIFY is non-nil (interactively, with prefix argument), justify as +well. If `sentence-end-double-space' is non-nil, then period followed +by one space does not end a sentence, so don't break a line there. +The variable `fill-column' controls the width for filling. + +Return the `fill-prefix' used for filling. + +For more details about semantic linefeeds, see `https://sembr.org/' and +`https://rhodesmill.org/brandon/2012/one-sentence-per-line/'." + (interactive (progn + (barf-if-buffer-read-only) + (list (if current-prefix-arg 'full)))) + (unless (memq justify '(t nil none full center left right)) + (setq justify 'full)) + + (save-excursion + (let ((to (progn + (fill-forward-paragraph 1) + (backward-word) + (end-of-line) + (point))) + (from (progn + (fill-forward-paragraph -1) + (forward-word) + (beginning-of-line) + (point)))) + (fill-region-as-paragraph-semlf from to justify)))) + ;;; fill.el ends here diff --git a/test/lisp/textmodes/fill-resources/semlf-c-mode.erts b/test/lisp/textmodes/fill-resources/semlf-c-mode.erts new file mode 100644 index 000000000000..a28eb68cfc6a --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-c-mode.erts @@ -0,0 +1,183 @@ +Point-Char: | + +Name: c-mode - single-line + +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +// ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: c-mode - single-line - fill-prefix - marker + +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +// - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +// - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// - eiusmod tempor. +// - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// - veniam, quis nostrud exercitation ullamco laboris nisi ut. +// - Aliquip ex ea commodo consequat. +// - Duis aute irure dolor in reprehenderit in voluptate velit esse +// - cillum dolore eu fugiat nulla pariatur. +// - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +// - officia deserunt mollit anim id est laborum. +=-=-= + +Name: c-mode - single-line - fill-prefix - whitespace + +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +// Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +// Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +// Aliquip ex ea commodo consequat. +// Duis aute irure dolor in reprehenderit in voluptate velit esse +// cillum dolore eu fugiat nulla pariatur. +// Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +// officia deserunt mollit anim id est laborum. +=-=-= + +Name: c-mode - single-line - indented block + +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +// +// |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +// do eiusmod tempor. Incididunt ut labore et dolore magna +// aliqua. Ut enim ad minim veniam, quis nostrud exercitation +// ullamco laboris nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +// do eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +=-=-= + +Name: c-mode - multi-line + +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim + * ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + */ +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + */ +=-=-= + +Name: c-mode - multi-line - fill-prefix - marker + +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + * - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + * - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + */ +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * - eiusmod tempor. + * - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * - veniam, quis nostrud exercitation ullamco laboris nisi ut. + * - Aliquip ex ea commodo consequat. + * - Duis aute irure dolor in reprehenderit in voluptate velit esse + * - cillum dolore eu fugiat nulla pariatur. + * - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + * - officia deserunt mollit anim id est laborum. + */ +=-=-= + +Name: c-mode - multi-line - fill-prefix - whitespace + +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + * Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + * Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + */ +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + * Aliquip ex ea commodo consequat. + * Duis aute irure dolor in reprehenderit in voluptate velit esse + * cillum dolore eu fugiat nulla pariatur. + * Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + * officia deserunt mollit anim id est laborum. + */ +=-=-= + +Name: c-mode - multi-line - indented block + +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + * + * |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + * do eiusmod tempor. Incididunt ut labore et dolore magna + * aliqua. Ut enim ad minim veniam, quis nostrud exercitation + * ullamco laboris nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + */ +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + * do eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + */ +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts b/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts new file mode 100644 index 000000000000..fe71ee32c1aa --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts @@ -0,0 +1,87 @@ +Point-Char: | + +Name: emacs-lisp-mode + +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +;; ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: emacs-lisp-mode - fill-prefix - marker + +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +;; - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; - eiusmod tempor. +;; - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; - veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; - Aliquip ex ea commodo consequat. +;; - Duis aute irure dolor in reprehenderit in voluptate velit esse +;; - cillum dolore eu fugiat nulla pariatur. +;; - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +;; - officia deserunt mollit anim id est laborum. +=-=-= + +Name: emacs-lisp-mode - fill-prefix - whitespace + +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +;; Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; Aliquip ex ea commodo consequat. +;; Duis aute irure dolor in reprehenderit in voluptate velit esse +;; cillum dolore eu fugiat nulla pariatur. +;; Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +;; officia deserunt mollit anim id est laborum. +=-=-= + +Name: emacs-lisp-mode - indented block + +The `fill-forward-paragraph' function jumps to the beginning/end of +the comment. + +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. + +;; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +;; do eiusmod tempor. Incididunt ut labore et dolore magna +;; aliqua. Ut enim ad minim veniam, quis nostrud exercitation +;; ullamco laboris nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +;; do eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-column.erts b/test/lisp/textmodes/fill-resources/semlf-fill-column.erts new file mode 100644 index 000000000000..20db7b1f9c5b --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-column.erts @@ -0,0 +1,15 @@ +Name: fill-column + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, +consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore +magna aliqua. Ut enim ad minim +veniam, quis nostrud exercitation +ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts b/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts new file mode 100644 index 000000000000..467e7401cf50 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts @@ -0,0 +1,12 @@ +Name: fill-paragraph-function + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts b/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts new file mode 100644 index 000000000000..e067eff69701 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts @@ -0,0 +1,35 @@ +Name: fill-prefix - marker + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +- eiusmod tempor. +- Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +- veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. +- Duis aute irure dolor in reprehenderit in voluptate velit esse +- cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +- officia deserunt mollit anim id est laborum. +=-=-= + +Name: fill-prefix - whitespace + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + Aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts b/test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts new file mode 100644 index 000000000000..114eaa46fc3c --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts @@ -0,0 +1,37 @@ +Point-Char: | + +Name: fill-region-as-paragraph-semlf + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, s|ed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +do eiusmod tempor. +Incididunt ut labore et dolore +magna aliqua. Ut enim ad minim +veniam, quis nostrud exercitation +ullamco laboris nisi ut. +Lorem ipsum dolor sit amet, +consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore +magna aliqua. Ut enim ad minim +veniam, quis nostrud exercitation +ullamco laboris nisi ut. +Lorem ipsum dolor sit amet, +consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore +magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-indented-block.erts b/test/lisp/textmodes/fill-resources/semlf-indented-block.erts new file mode 100644 index 000000000000..e483567c6ab3 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-indented-block.erts @@ -0,0 +1,31 @@ +Point-Char: | + +Name: indented block + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-justify.erts b/test/lisp/textmodes/fill-resources/semlf-justify.erts new file mode 100644 index 000000000000..3a951b7ce424 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-justify.erts @@ -0,0 +1,12 @@ +Name: justify + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts b/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts new file mode 100644 index 000000000000..7257708c245d --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts @@ -0,0 +1,129 @@ +Point-Char: | + +Name: markdown-mode + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - one single-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - multiple single-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-=-= + +Name: markdown-mode - list - one multi-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - multiple multi-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= + +Name: markdown-mode - list - short sentence in multi-line item + +=-= +- Lorem ipsum dolor. Sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor. + Sit amet, consectetur adipiscing elit, sed do eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - indented block +Skip: t + +TODO - In `markdown-mode', the `fill-forward-paragraph' function +ignores code blocks. We should reach out to the `markdown-mode' +maintainer(s) to understand the reason for this and possibly suggest a +change to this behavior. This works as expected in +`markdown-ts-mode'. + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-org-mode.erts b/test/lisp/textmodes/fill-resources/semlf-org-mode.erts new file mode 100644 index 000000000000..81dd4841de94 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-org-mode.erts @@ -0,0 +1,122 @@ +Point-Char: | + +Name: org-mode + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - one single-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - multiple single-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-=-= + +Name: org-mode - list - one multi-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - multiple multi-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= + +Name: org-mode - list - short sentence in multi-line item + +=-= +- Lorem ipsum dolor. Sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor. + Sit amet, consectetur adipiscing elit, sed do eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - indented block + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts b/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts new file mode 100644 index 000000000000..5346216e9f9c --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts @@ -0,0 +1,13 @@ +Name: punctuation marks + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua! Ut enim +ad minim veniam? Quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua! +Ut enim ad minim veniam? +Quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts b/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts new file mode 100644 index 000000000000..a01beed0f665 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts @@ -0,0 +1,13 @@ +Name: sentence-end-double-space + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris +nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-twice.erts b/test/lisp/textmodes/fill-resources/semlf-twice.erts new file mode 100644 index 000000000000..862dda6e27eb --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-twice.erts @@ -0,0 +1,12 @@ +Name: fill twice + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf.erts b/test/lisp/textmodes/fill-resources/semlf.erts new file mode 100644 index 000000000000..f3e331cd9381 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf.erts @@ -0,0 +1,88 @@ +Point-Char: | + +Name: beginning of buffer + +=-= +|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: second paragraph + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: end of buffer + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.| +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-tests.el b/test/lisp/textmodes/fill-tests.el index 6e079973100e..1448965c9d46 100644 --- a/test/lisp/textmodes/fill-tests.el +++ b/test/lisp/textmodes/fill-tests.el @@ -28,6 +28,7 @@ ;;; Code: (require 'ert) +(require 'ert-x) (ert-deftest fill-test-no-fill-polish-nobreak-p nil "Tests of the `fill-polish-nobreak-p' function." @@ -121,6 +122,109 @@ test-fill-haskell ;; w "))) + +(ert-deftest fill-test-fill-region-as-paragraph-semlf () + "Test the `fill-region-as-paragraph-semlf' function." + (ert-test-erts-file (ert-resource-file "semlf-fill-region-as-paragraph.erts") + (lambda () + (setq-local fill-column 35) + (fill-region-as-paragraph-semlf + (point) + (progn + (goto-char (point-max)) + (forward-line -1) + (beginning-of-line) + (point)))))) + +(ert-deftest fill-test-fill-paragraph-semlf () + "Test the `fill-paragraph-semlf' function." + (ert-test-erts-file (ert-resource-file "semlf.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-paragraph-function () + "Test `fill-paragraph-semlf' as `fill-paragraph-function'." + (ert-test-erts-file (ert-resource-file "semlf-fill-paragraph-function.erts") + (lambda () + (setq-local fill-paragraph-function #'fill-paragraph-semlf) + (fill-paragraph)))) + +(ert-deftest fill-test-fill-paragraph-semlf-justify () + "Test the JUSTIFY parameter of the `fill-paragraph-semlf' function." + (ert-test-erts-file (ert-resource-file "semlf-justify.erts") + (lambda () + (fill-paragraph-semlf 'justify)))) + +(ert-deftest fill-test-fill-paragraph-semlf-sentence-end-double-space () + "Test the `fill-paragraph-semlf' function with `sentence-end-double-space'." + (ert-test-erts-file (ert-resource-file "semlf-sentence-end-double-space.erts") + (lambda () + (setq-local sentence-end-double-space nil) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-column () + "Test the `fill-paragraph-semlf' function with `fill-column'." + (ert-test-erts-file (ert-resource-file "semlf-fill-column.erts") + (lambda () + (setq-local fill-column 35) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-punctuation-marks () + "Test the `fill-paragraph-semlf' function with different punctuation marks." + (ert-test-erts-file (ert-resource-file "semlf-punctuation-marks.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-twice () + "Test to run the `fill-paragraph-semlf' function twice." + (ert-test-erts-file (ert-resource-file "semlf-twice.erts") + (lambda () + (goto-char (point-min)) + (fill-paragraph-semlf) + (goto-char (point-min)) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-prefix () + "Test the `fill-paragraph-semlf' function with different fill prefixes." + (ert-test-erts-file (ert-resource-file "semlf-fill-prefix.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-indented-block () + "Test the `fill-paragraph-semlf' function with an indented block." + (ert-test-erts-file (ert-resource-file "semlf-indented-block.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-emacs-lisp-mode () + "Test the `fill-paragraph-semlf' function with `emacs-lisp-mode'." + (ert-test-erts-file (ert-resource-file "semlf-emacs-lisp-mode.erts") + (lambda () + (emacs-lisp-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-c-mode () + "Test the `fill-paragraph-semlf' function with `c-mode'." + (ert-test-erts-file (ert-resource-file "semlf-c-mode.erts") + (lambda () + (c-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-org-mode () + "Test the `fill-paragraph-semlf' function with `org-mode'." + (ert-test-erts-file (ert-resource-file "semlf-org-mode.erts") + (lambda () + (org-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-markdown-mode () + "Test the `fill-paragraph-semlf' function with `markdown-mode'." + (skip-unless (functionp 'markdown-mode)) + (ert-test-erts-file (ert-resource-file "semlf-markdown-mode.erts") + (lambda () + (markdown-mode) + (fill-paragraph-semlf)))) + (provide 'fill-tests) ;;; fill-tests.el ends here -- 2.49.0 --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 27 May 2025 16:36:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue May 27 12:36:23 2025 Received: from localhost ([127.0.0.1]:43108 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uJxHr-0007vZ-Ga for submit <at> debbugs.gnu.org; Tue, 27 May 2025 12:36:23 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:10489) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1uJxHn-0007uo-OE for 78561 <at> debbugs.gnu.org; Tue, 27 May 2025 12:36:20 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id CB715441485; Tue, 27 May 2025 12:36:12 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1748363771; bh=PHlXLK7t+I5XgTtttLfYgyL17+Ztm2nG6cE76l5lun0=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=SnOu3tRAo0HVlaYlBHGIDWznDXiN0dErYHvsqrlzNWe/9fyRXEyf7qrSM/JHvtM91 t54pnSKLIqRLlgOcBTujhYTXoTwACBOVULnNO1WqLW1ftoB+aSuO7Q7Y61qonQNPiu VKcYjpaaFC5Wht9Af/0ukXP+f9AH/uYxcOhLkPD31A/YOYKYmf7F6Yp1Kvu79KGTh7 DP+C2VhL8J8Jw+gjr8vvmPZZf9lqLBypZNxkzYw89k9QhtmhRRLKp7Orj4w7U7RgDQ BHu/So3Bfgr2N+Ea+EpyLyBBta8fJKzO4oCCuDvu+0jlHuqg9LR1pHprael2oBP8b9 GPUlLeXtRlVXQ== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 9627744098F; Tue, 27 May 2025 12:36:11 -0400 (EDT) Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 880B5120495; Tue, 27 May 2025 12:36:11 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87bjrehx8d.fsf@HIDDEN> Message-ID: <jwvmsayni12.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> <87bjrehx8d.fsf@HIDDEN> Date: Tue, 27 May 2025 12:36:10 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.162 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: Eli Zaretskii <eliz@HIDDEN>, Marcin Borkowski <mbork@HIDDEN>, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> Yes, I've had this in my TODO for many years. =F0=9F=99=81 > I'll try to implement it :) For some definition of "it". >>> So, do we really want a specific `fill-region-semlf' function? >> Actually, I think I want a `fill-region-as-paragraph-semlf'. >> And maybe then some way to tell the `fill.el` code to use that instead >> of the default `fill-region-as-paragraph`. > OK, so here is my plan: That plan has a much larger scope than semantic linefeed, so I recommend you first finish the current patch and take on that plan afterwards. What I'm asking is a fairly small refactoring of the code you sent, I think. > First, I'll give a closer look to all the "fill" functions that Emacs > currently provides to understand how every thing fits together and what > is and what is not already supported. Sounds good. I can give you a quick summary of what I know. `fill-paragraph-function`s usually serve as either: - Some way for the major mode to teach the fill code how to stay within a major-mode-specific notion of paragraph (e.g. fill within comments or within strings). This use has made somewhat obsolete by `fill-paragraph-forward-function` but it's still pretty common. - Some way for the major mode to teach the fill code about special line-wrapping conventions (e.g. add a trailing \ on the previous line to fill C strings, add a leading SPC or TAB to fill rfc822 headers, ..) or to fine tune (adaptive-)fill-prefix. - Actually change where we break lines for example to fill code in a "smart" way (like `smie-auto-fill` does). - It can also be used to prevent filling in some parts (e.g. titles/headlines). > Then, I'll send a new patch to support applying a > `fill-paragraph-function' on a region "as-paragraph" (similar to the > behavior of `fill-region-as-paragraph') and "per-paragraph" (similar to > executing `fill-paragraph' for each paragraph within the region). I think in general these are impossible because we don't know what the `fill-paragraph-function` actually does. My TODO is instead to provide different hooks for the above different uses (some hooks already exist such as `comment-line-break-function` but often they need to be generalized) to try and make `fill-paragraph-function` effectively obsolete (without necessarily marking it officially as obsolete). Stefan
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 27 May 2025 15:47:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue May 27 11:47:34 2025 Received: from localhost ([127.0.0.1]:42722 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uJwWb-0004Dk-1t for submit <at> debbugs.gnu.org; Tue, 27 May 2025 11:47:34 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:59522) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uJwWV-0004D1-M4 for 78561 <at> debbugs.gnu.org; Tue, 27 May 2025 11:47:31 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-3a361b8a66cso2348350f8f.2 for <78561 <at> debbugs.gnu.org>; Tue, 27 May 2025 08:47:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748360839; x=1748965639; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=jS4kvaGruoas+80TdZ4QzuvjtrATkwcUof+JSXGY82s=; b=fXYl+PFA9O0rWKTurMUvTuitLfUbzcXaT+4OAkcgZf1182mSy6i33n1i8t4cAzD5QU vc4irRytQd56sapnC7Fal3Em2BqzCbY1qqxhFgjsM99dSo5HBp21am9jHOP0M2UAJoej aME6mt9F5Ub9EerJJeZMV/trwNGNj8U2oy2CTsZlzztmIO1Z+NUyutEFjvgMam8R78aC qpT+D/YC//6JrTeAXHl8qMFIjUW2HJxVfDy4Sn/8HPrpLSbe7UtjUsKsA//2TvvxG2bE iIJphTKYBAy1HPqTYMLgQy+pHzc5GiRSxRQ/OKV7TrbjsYr5QfduVRkHru5iwyl+ayg5 fbNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748360839; x=1748965639; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jS4kvaGruoas+80TdZ4QzuvjtrATkwcUof+JSXGY82s=; b=RR7JyhkGAPQ+SL45Oi2BClZQZGfWqtRe0v+3/mg4hx1l5G52akELSCtsmF8DLhl4X5 WRTK/+g6fmeUnEdBsiuciJovJR3LmAOEUE1lU0QcrmefUvq0sJ74GS2b8TPom1H6khLf viwzEuoF3XDS+ZNG0MjVBFDr7bSKaShks1+CkWZzPFKE2YUBQxe1vEvctPhLN6z0fmAm dWWCGatXnweRsgLnuSmUwYws5Ugf4wCAQPI81uWO8HPozYxOeVAo07sa28ZcFd3AsyV5 YQSdfIlkXO5kU6gtfPtyfayw0ZeOGzhrYVTntLd+v1hOe+26R0p/xWQeGIH6qk2oSoYM IRog== X-Forwarded-Encrypted: i=1; AJvYcCWgUOjc9tUyjjiPj28y7Pl/+yCoZcy+W4wGBROtaKVWoHUqc1uM+WBGMuh8sJH7Y+TOxLA9ZA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyyMYtmxHKKvKIF4QIabZ8J2BQwQB60q/lRvvCGDOHRENc4FcR6 l0D/Fj76XA5alaVdGqf1rLrdE7lIr/8gXO6YX1P7voYhVoSipEtdkoVO X-Gm-Gg: ASbGncsrS8zpLBh3upfQkGz+IN9xsj/842Pjq/slxsRf9NaBohrIfzThd8z5C1fPjEb t2WyxlRRz4VacWgv4TNCraYA8htW4iVus63OArQvndaKpqfCFYA3MoEQzQb9z6RhhgXCt0E9F2H 49NhUgxUpWGlQaAo3b+yJTNPaaNs+widoiZbmMwQdocbI9HFM2OWKsUsSKsGgCooJf1xBJw5Q6b C2vRYGicCf0Z8MZpDMhHfptMztevhtQErhHQg6Og2VnlVN0mU8AJM2iq9yFdoXS4ARXhGKGj+E8 ojdUoAUHQlxjzREaJey0VFldqdUJMNi9RCz1BK+OBE5zBMpUOw== X-Google-Smtp-Source: AGHT+IEGNOK0mUt1T1WfWtWU+RejdIoExLutF0eNoTGmnP3hgijV52hlSf5N2PoPErVIxW8zZ0id4Q== X-Received: by 2002:a05:6000:40ce:b0:3a4:dd02:f48a with SMTP id ffacd0b85a97d-3a4dd02f535mr5103446f8f.11.1748360838733; Tue, 27 May 2025 08:47:18 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4d2a7a317sm8594418f8f.24.2025.05.27.08.47.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 May 2025 08:47:18 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> Date: Tue, 27 May 2025 17:47:14 +0200 Message-ID: <87bjrehx8d.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: Eli Zaretskii <eliz@HIDDEN>, Marcin Borkowski <mbork@HIDDEN>, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: >>> Please try and separate it into a `fill-region-semlf` function and then >>> another one which applies it to a paragraph, so that it can also be used >>> to fill a specific user-specified region (or the whole buffer). >> I'm not sure about this one. The idea is that `fill-paragraph-semlf' >> can be assigned as a value for `fill-paragraph-function' (I also >> included a mention to this in the doc string) or it can be called >> directly. The thing is that `fill-paragraph' docs say: > > Sadly, we don't currently have anything like a `fill-region-function`, > but that's "a bug, not a feature", so we should write new code such that > this misfeature is easier rather than harder to fix in the future. > >> I agree that it would be useful to apply `fill-paragraph-semlf' on >> a region or the whole buffer. But, the same could be said about any >> other `fill-paragraph-function'. > > Yes, I've had this in my TODO for many years. 🙁 I'll try to implement it :) >> So, do we really want a specific `fill-region-semlf' function? > > Actually, I think I want a `fill-region-as-paragraph-semlf'. > And maybe then some way to tell the `fill.el` code to use that instead > of the default `fill-region-as-paragraph`. OK, so here is my plan: First, I'll give a closer look to all the "fill" functions that Emacs currently provides to understand how every thing fits together and what is and what is not already supported. Then, I'll send a new patch to support applying a `fill-paragraph-function' on a region "as-paragraph" (similar to the behavior of `fill-region-as-paragraph') and "per-paragraph" (similar to executing `fill-paragraph' for each paragraph within the region). Finally, if needed, I can update this patch. Does it make sense?
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 26 May 2025 16:21:25 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon May 26 12:21:25 2025 Received: from localhost ([127.0.0.1]:58606 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uJaZp-0004HF-3Q for submit <at> debbugs.gnu.org; Mon, 26 May 2025 12:21:25 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:8451) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1uJaZn-0004Gs-6D for 78561 <at> debbugs.gnu.org; Mon, 26 May 2025 12:21:23 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 418C8100C6C; Mon, 26 May 2025 12:21:17 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1748276476; bh=o8AfXoAY1ASeeY3lNXkNfoqCplrE70IkgiDp9/+n4P4=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=R7GGaIIpylOo+I2U6w9zbqTkZxxIc/Y6pa6MDKex4dzqlFx6JLoe5g7PcMbDrYjud gzWl4zlq3Hdahx/8LHHhOv500yRwqxzETt70QDC7rX3g6gbGAkBhgBxaX24w6W5Ffi KQ+hu9PdmycV5MyTj30qIqsAo/OVmWTN0lVvosa9SvNQ/OyNcA92DkTEkyEL/HpD8v dw6GmF0UBz5c/K3S7CHBdrJm3s6SBt7MPTtRU1k/wtxTyiljUD5n+H9isCWP5dQkI5 omvBZxUbodu1pseor2hARPKDgL+MAMjPs2+6lYzUmNcZHipQFgn3rIjKVQGf3cx4cF 6thvUUxTruWJw== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 4CDC81003A7; Mon, 26 May 2025 12:21:16 -0400 (EDT) Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 3430812065C; Mon, 26 May 2025 12:21:16 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87frgs4jfh.fsf@HIDDEN> Message-ID: <jwvmsazpdai.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> <87frgs4jfh.fsf@HIDDEN> Date: Mon, 26 May 2025 12:21:15 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.073 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: Eli Zaretskii <eliz@HIDDEN>, Marcin Borkowski <mbork@HIDDEN>, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> Please try and separate it into a `fill-region-semlf` function and then >> another one which applies it to a paragraph, so that it can also be used >> to fill a specific user-specified region (or the whole buffer). > I'm not sure about this one. The idea is that `fill-paragraph-semlf' > can be assigned as a value for `fill-paragraph-function' (I also > included a mention to this in the doc string) or it can be called > directly. The thing is that `fill-paragraph' docs say: Sadly, we don't currently have anything like a `fill-region-function`, but that's "a bug, not a feature", so we should write new code such that this misfeature is easier rather than harder to fix in the future. > I agree that it would be useful to apply `fill-paragraph-semlf' on > a region or the whole buffer. But, the same could be said about any > other `fill-paragraph-function'. Yes, I've had this in my TODO for many years. =F0=9F=99=81 > So, do we really want a specific `fill-region-semlf' function? Actually, I think I want a `fill-region-as-paragraph-semlf'. And maybe then some way to tell the `fill.el` code to use that instead of the default `fill-region-as-paragraph`. Stefan
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 25 May 2025 18:47:21 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun May 25 14:47:21 2025 Received: from localhost ([127.0.0.1]:48569 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uJGNS-0005XW-53 for submit <at> debbugs.gnu.org; Sun, 25 May 2025 14:47:21 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:56635) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uJGNM-0005Wi-Cf for 78561 <at> debbugs.gnu.org; Sun, 25 May 2025 14:47:16 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-3a4d877dfb3so368332f8f.1 for <78561 <at> debbugs.gnu.org>; Sun, 25 May 2025 11:47:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748198826; x=1748803626; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=ibFQPPnAeaxgTD845cIwyo1dnwwP146ml1u7cW+8A5g=; b=YhIck9LJbRWwZt2gT1JGeLE9WooSzMM6xeFTMGBJiNeOulckAsfd1PGIsD+XswdAtg LroZ1PNg1FaRC+Oe6ijCpKY+C/yxgf3iiD7Un7Q9pLn53e84P8eDa3PGUhpB/G5e4eJ7 rRS+u/6WIsOMdtSiuhp8NSrzaGA+J+b8nlVRf4qVRsOn8ofaHy1UGMQNBpiZpB/CrRGJ CbNBdvDYTF4fbi5B207xhSvvtscHB0P4nAjOG7dMFKhNnxyOk9rpLEsf4yvVC/b7W/ZO g7Y3Shx/Ov7nm9K0OJtTPf3AO9ePP+Dn+iLceQdkze6Jl+69/SGmXZasgdndPgWbqyJG ITYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748198826; x=1748803626; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ibFQPPnAeaxgTD845cIwyo1dnwwP146ml1u7cW+8A5g=; b=nBhcD8CtWxPE10XkrNkULbzaqqpODXDinH+BCtOyEGC+MNR3do1baJxgX+sDxsh6ON roNIwc/1dJEuAejVjhBmWX3TK3QxvrWGBTGVLOU8Casc2AryKwcoCrfr8eOamFva0JYN SxyaGZZ+PEPGxQTC9oVuUQkTOGTeqVB+S6+gnG/0wvdiqXnThX5GiJRPnobXa515DPTN mQBu4LLN5ldLNQtN0EXdAxvNth5dyUUEqs5PnsgMlLweOfpRcyE053/4TDbqjawxW6e4 mrcJk6y6lYqCTwRNkQMawtvXCrXDw1fSz+Ay+H7mAVvt5eoRuQuu659qtXUHZOncHShr gCJw== X-Gm-Message-State: AOJu0YzkmYhHv8xPcM4uyuRATeaFUYFRLOvvztF51du1QWbKB6mn69kZ W1nAH4fRQXqRfDFISq7EQzpQcqhXWuvQ8Vvx6SSYZfhTzWneWsC1J7Yh X-Gm-Gg: ASbGnctvE+j4063uupqbAU8sPByfP9Gg0SWGIFWjGtTSE6LpjLhz/gNPZmR9QkegHfR wasbdvGj8VwwISvjfkvpFKPcOnPk8eQmgX24FeTh4VR9G90fy17BCQFhXtKC1DRCv9kzDWriS0p x94/EfgnLLnHfiOeluESjwV1vFmArgdh4H5qbSBfLaeQx+cbQ3VXKphvCpeRtdDZTzdDocepZF8 xvx2MBfCEM1NIEAIKcyxEBnQSBTHPdW4CDUr5z/SnV6eQqt9P42HmX2wJFwK8RWihwmrOXhWRn6 t+AWJAZY+BtbwOeEiQig6U1vqlC4B5jPnEEBFej0Zs3z5Gf99Q== X-Google-Smtp-Source: AGHT+IEtRwMFegIyM4Z2bC9BuSsIqz+vBtOJFYI9xCWEYdJ052htQqVVWRtL4N6PkLeHqRoqXUzFtg== X-Received: by 2002:a05:6000:3103:b0:3a3:64d2:ced0 with SMTP id ffacd0b85a97d-3a4cb49e6e4mr3809761f8f.53.1748198825937; Sun, 25 May 2025 11:47:05 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f73d4aa2sm219222405e9.21.2025.05.25.11.47.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 May 2025 11:47:05 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> Date: Sun, 25 May 2025 20:46:58 +0200 Message-ID: <87frgs4jfh.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: Marcin Borkowski <mbork@HIDDEN>, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Stefan Monnier <monnier@HIDDEN> writes: >> Given that this is a first version, I have not added any reference to >> the manuals. If you think it makes sense, please let me know and I'll >> modify the patch accordingly. > > Maybe a short version of the explanation you give below would be good to > have in the manual (tho Eli suggests a URL instead, so maybe that's > good enough?). > >> +(defun fill-paragraph-semlf (&optional justify) >> + "Fill paragraph at or after point using semantic linefeeds. >> + >> +This function ensures that a newline character follows every >> +sentence, as punctuated by a period (.), exclamation mark (!), or >> +question mark (?). > > This seems inaccurate: it just uses whichever definition of sentence is > used by `forward-sentence`, so it may ignore some of those chars or pay > attention to others. I have updated the patch with a more precise definition. Also, I added links to the sources I referenced for semantic linefeeds. >> +If JUSTIFY is non-nil (interactively, with prefix argument), justify as >> +well. If `sentence-end-double-space' is non-nil, then period followed >> +by one space does not end a sentence, so don't break a line there. The >> +variable `fill-column' controls the width for filling." > > I'd move the "The" to the last line. 🙂 Fixed :) >> + (interactive "P") >> + (save-excursion >> + (let ((end (progn >> + (fill-forward-paragraph 1) >> + (backward-word) >> + (end-of-line) >> + (point))) >> + (start (progn >> + (fill-forward-paragraph -1) >> + (forward-word) >> + (beginning-of-line) >> + (point))) >> + pfx) >> + (with-restriction start end >> + (let ((fill-column (point-max))) >> + (setq pfx (or (fill-region-as-paragraph (point-min) (point-max)) ""))) >> + (goto-char (point-min)) >> + (while (not (eobp)) >> + (let ((fill-prefix pfx)) >> + (fill-region-as-paragraph (point) >> + (progn (forward-sentence) (point)) >> + justify)) >> + (when (and (> (point) (line-beginning-position)) >> + (< (point) (line-end-position))) >> + (delete-horizontal-space) >> + (newline) >> + (insert pfx)))))) >> + t) > > Please try and separate it into a `fill-region-semlf` function and then > another one which applies it to a paragraph, so that it can also be used > to fill a specific user-specified region (or the whole buffer). I'm not sure about this one. The idea is that `fill-paragraph-semlf' can be assigned as a value for `fill-paragraph-function' (I also included a mention to this in the doc string) or it ca be called directly. The thing is that `fill-paragraph' docs say: The REGION argument is non-nil if called interactively; in that case, if Transient Mark mode is enabled and the mark is active, call `fill-region' to fill each of the paragraphs in the active region, instead of just filling the current paragraph. And `fill-paragraph-function' docs say: Note: This only affects ‘fill-paragraph’ and not ‘fill-region’ nor ‘auto-fill-mode’ So, if I'm not wrong, filling regions and paragraphs is different in the current design. I agree that it would be useful to apply `fill-paragraph-semlf' on a region or the whole buffer. But, the same could be said about any other `fill-paragraph-function'. So, do we really want a specific `fill-region-semlf' function? I attach a new version of the patch. Thanks! --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Add-semantic-linefeed-support-for-paragraph-filling.patch From 9b8a28910a3da271afe32377926fd6cc2a9356ff Mon Sep 17 00:00:00 2001 From: Roi Martin <jroi.martin@HIDDEN> Date: Fri, 21 Mar 2025 14:22:46 +0100 Subject: [PATCH] Add semantic linefeed support for paragraph filling * lisp/textmodes/fill.el (fill-paragraph-semlf): Add function to fill paragraph using semantic linefeeds. * test/lisp/textmodes/fill-tests.el (fill-test-fill-paragraph-semlf) (fill-test-fill-paragraph-semlf-fill-paragraph-function) (fill-test-fill-paragraph-semlf-justify) (fill-test-fill-paragraph-semlf-sentence-end-double-space) (fill-test-fill-paragraph-semlf-fill-column) (fill-test-fill-paragraph-semlf-punctuation-marks) (fill-test-fill-paragraph-semlf-twice) (fill-test-fill-paragraph-semlf-fill-prefix) (fill-test-fill-paragraph-semlf-indented-block) (fill-test-fill-paragraph-semlf-emacs-lisp-mode) (fill-test-fill-paragraph-semlf-c-mode) (fill-test-fill-paragraph-semlf-org-mode) (fill-test-fill-paragraph-semlf-markdown-mode): Add tests. * test/lisp/textmodes/fill-resources/semlf-c-mode.erts: * test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts: * test/lisp/textmodes/fill-resources/semlf-fill-column.erts: * test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts: * test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts: * test/lisp/textmodes/fill-resources/semlf-indented-block.erts: * test/lisp/textmodes/fill-resources/semlf-justify.erts: * test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts: * test/lisp/textmodes/fill-resources/semlf-org-mode.erts: * test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts: * test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts: * test/lisp/textmodes/fill-resources/semlf-twice.erts: * test/lisp/textmodes/fill-resources/semlf.erts: Add test data. --- lisp/textmodes/fill.el | 47 +++++ .../fill-resources/semlf-c-mode.erts | 183 ++++++++++++++++++ .../fill-resources/semlf-emacs-lisp-mode.erts | 87 +++++++++ .../fill-resources/semlf-fill-column.erts | 15 ++ .../semlf-fill-paragraph-function.erts | 12 ++ .../fill-resources/semlf-fill-prefix.erts | 35 ++++ .../fill-resources/semlf-indented-block.erts | 31 +++ .../fill-resources/semlf-justify.erts | 12 ++ .../fill-resources/semlf-markdown-mode.erts | 129 ++++++++++++ .../fill-resources/semlf-org-mode.erts | 122 ++++++++++++ .../semlf-punctuation-marks.erts | 13 ++ .../semlf-sentence-end-double-space.erts | 13 ++ .../textmodes/fill-resources/semlf-twice.erts | 12 ++ test/lisp/textmodes/fill-resources/semlf.erts | 88 +++++++++ test/lisp/textmodes/fill-tests.el | 90 +++++++++ 15 files changed, 889 insertions(+) create mode 100644 test/lisp/textmodes/fill-resources/semlf-c-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-column.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-indented-block.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-justify.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-org-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-twice.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf.erts diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index e38d030734fb..b6b413f88b2d 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -1583,4 +1583,51 @@ fill-individual-paragraphs-citation "") string)) +(defun fill-paragraph-semlf (&optional justify) + "Fill paragraph at or after point using semantic linefeeds. + +This function ensures that a newline character follows every sentence. +If a sentence is not followed by a newline character, one is inserted. +The task of deciding what is considered a sentence is delegated to the +`forward-sentence' function. + +If JUSTIFY is non-nil (interactively, with prefix argument), justify as +well. If `sentence-end-double-space' is non-nil, then period followed +by one space does not end a sentence, so don't break a line there. +The variable `fill-column' controls the width for filling. + +This function can be assigned as a value for `fill-paragraph-function', +allowing `fill-paragraph' to utilize it. + +For more details about semantic linefeeds, see `https://sembr.org/' and +`https://rhodesmill.org/brandon/2012/one-sentence-per-line/'." + (interactive "P") + (save-excursion + (let ((end (progn + (fill-forward-paragraph 1) + (backward-word) + (end-of-line) + (point))) + (start (progn + (fill-forward-paragraph -1) + (forward-word) + (beginning-of-line) + (point))) + pfx) + (with-restriction start end + (let ((fill-column (point-max))) + (setq pfx (or (fill-region-as-paragraph (point-min) (point-max)) ""))) + (goto-char (point-min)) + (while (not (eobp)) + (let ((fill-prefix pfx)) + (fill-region-as-paragraph (point) + (progn (forward-sentence) (point)) + justify)) + (when (and (> (point) (line-beginning-position)) + (< (point) (line-end-position))) + (delete-horizontal-space) + (insert "\n") + (insert pfx)))))) + t) + ;;; fill.el ends here diff --git a/test/lisp/textmodes/fill-resources/semlf-c-mode.erts b/test/lisp/textmodes/fill-resources/semlf-c-mode.erts new file mode 100644 index 000000000000..a28eb68cfc6a --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-c-mode.erts @@ -0,0 +1,183 @@ +Point-Char: | + +Name: c-mode - single-line + +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +// ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: c-mode - single-line - fill-prefix - marker + +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +// - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +// - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// - eiusmod tempor. +// - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// - veniam, quis nostrud exercitation ullamco laboris nisi ut. +// - Aliquip ex ea commodo consequat. +// - Duis aute irure dolor in reprehenderit in voluptate velit esse +// - cillum dolore eu fugiat nulla pariatur. +// - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +// - officia deserunt mollit anim id est laborum. +=-=-= + +Name: c-mode - single-line - fill-prefix - whitespace + +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +// Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +// Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +// Aliquip ex ea commodo consequat. +// Duis aute irure dolor in reprehenderit in voluptate velit esse +// cillum dolore eu fugiat nulla pariatur. +// Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +// officia deserunt mollit anim id est laborum. +=-=-= + +Name: c-mode - single-line - indented block + +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +// +// |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +// do eiusmod tempor. Incididunt ut labore et dolore magna +// aliqua. Ut enim ad minim veniam, quis nostrud exercitation +// ullamco laboris nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +// do eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +=-=-= + +Name: c-mode - multi-line + +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim + * ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + */ +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + */ +=-=-= + +Name: c-mode - multi-line - fill-prefix - marker + +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + * - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + * - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + */ +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * - eiusmod tempor. + * - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * - veniam, quis nostrud exercitation ullamco laboris nisi ut. + * - Aliquip ex ea commodo consequat. + * - Duis aute irure dolor in reprehenderit in voluptate velit esse + * - cillum dolore eu fugiat nulla pariatur. + * - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + * - officia deserunt mollit anim id est laborum. + */ +=-=-= + +Name: c-mode - multi-line - fill-prefix - whitespace + +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + * Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + * Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + */ +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + * Aliquip ex ea commodo consequat. + * Duis aute irure dolor in reprehenderit in voluptate velit esse + * cillum dolore eu fugiat nulla pariatur. + * Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + * officia deserunt mollit anim id est laborum. + */ +=-=-= + +Name: c-mode - multi-line - indented block + +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + * + * |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + * do eiusmod tempor. Incididunt ut labore et dolore magna + * aliqua. Ut enim ad minim veniam, quis nostrud exercitation + * ullamco laboris nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + */ +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + * do eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + */ +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts b/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts new file mode 100644 index 000000000000..fe71ee32c1aa --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts @@ -0,0 +1,87 @@ +Point-Char: | + +Name: emacs-lisp-mode + +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +;; ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: emacs-lisp-mode - fill-prefix - marker + +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +;; - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; - eiusmod tempor. +;; - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; - veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; - Aliquip ex ea commodo consequat. +;; - Duis aute irure dolor in reprehenderit in voluptate velit esse +;; - cillum dolore eu fugiat nulla pariatur. +;; - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +;; - officia deserunt mollit anim id est laborum. +=-=-= + +Name: emacs-lisp-mode - fill-prefix - whitespace + +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +;; Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; Aliquip ex ea commodo consequat. +;; Duis aute irure dolor in reprehenderit in voluptate velit esse +;; cillum dolore eu fugiat nulla pariatur. +;; Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +;; officia deserunt mollit anim id est laborum. +=-=-= + +Name: emacs-lisp-mode - indented block + +The `fill-forward-paragraph' function jumps to the beginning/end of +the comment. + +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. + +;; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +;; do eiusmod tempor. Incididunt ut labore et dolore magna +;; aliqua. Ut enim ad minim veniam, quis nostrud exercitation +;; ullamco laboris nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +;; do eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-column.erts b/test/lisp/textmodes/fill-resources/semlf-fill-column.erts new file mode 100644 index 000000000000..20db7b1f9c5b --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-column.erts @@ -0,0 +1,15 @@ +Name: fill-column + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, +consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore +magna aliqua. Ut enim ad minim +veniam, quis nostrud exercitation +ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts b/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts new file mode 100644 index 000000000000..467e7401cf50 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts @@ -0,0 +1,12 @@ +Name: fill-paragraph-function + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts b/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts new file mode 100644 index 000000000000..e067eff69701 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts @@ -0,0 +1,35 @@ +Name: fill-prefix - marker + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +- eiusmod tempor. +- Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +- veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. +- Duis aute irure dolor in reprehenderit in voluptate velit esse +- cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +- officia deserunt mollit anim id est laborum. +=-=-= + +Name: fill-prefix - whitespace + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + Aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-indented-block.erts b/test/lisp/textmodes/fill-resources/semlf-indented-block.erts new file mode 100644 index 000000000000..e483567c6ab3 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-indented-block.erts @@ -0,0 +1,31 @@ +Point-Char: | + +Name: indented block + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-justify.erts b/test/lisp/textmodes/fill-resources/semlf-justify.erts new file mode 100644 index 000000000000..3a951b7ce424 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-justify.erts @@ -0,0 +1,12 @@ +Name: justify + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts b/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts new file mode 100644 index 000000000000..7257708c245d --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts @@ -0,0 +1,129 @@ +Point-Char: | + +Name: markdown-mode + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - one single-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - multiple single-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-=-= + +Name: markdown-mode - list - one multi-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - multiple multi-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= + +Name: markdown-mode - list - short sentence in multi-line item + +=-= +- Lorem ipsum dolor. Sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor. + Sit amet, consectetur adipiscing elit, sed do eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - indented block +Skip: t + +TODO - In `markdown-mode', the `fill-forward-paragraph' function +ignores code blocks. We should reach out to the `markdown-mode' +maintainer(s) to understand the reason for this and possibly suggest a +change to this behavior. This works as expected in +`markdown-ts-mode'. + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-org-mode.erts b/test/lisp/textmodes/fill-resources/semlf-org-mode.erts new file mode 100644 index 000000000000..81dd4841de94 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-org-mode.erts @@ -0,0 +1,122 @@ +Point-Char: | + +Name: org-mode + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - one single-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - multiple single-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-=-= + +Name: org-mode - list - one multi-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - multiple multi-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= + +Name: org-mode - list - short sentence in multi-line item + +=-= +- Lorem ipsum dolor. Sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor. + Sit amet, consectetur adipiscing elit, sed do eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - indented block + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts b/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts new file mode 100644 index 000000000000..5346216e9f9c --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts @@ -0,0 +1,13 @@ +Name: punctuation marks + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua! Ut enim +ad minim veniam? Quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua! +Ut enim ad minim veniam? +Quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts b/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts new file mode 100644 index 000000000000..a01beed0f665 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts @@ -0,0 +1,13 @@ +Name: sentence-end-double-space + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris +nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-twice.erts b/test/lisp/textmodes/fill-resources/semlf-twice.erts new file mode 100644 index 000000000000..862dda6e27eb --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-twice.erts @@ -0,0 +1,12 @@ +Name: fill twice + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf.erts b/test/lisp/textmodes/fill-resources/semlf.erts new file mode 100644 index 000000000000..f3e331cd9381 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf.erts @@ -0,0 +1,88 @@ +Point-Char: | + +Name: beginning of buffer + +=-= +|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: second paragraph + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: end of buffer + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.| +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-tests.el b/test/lisp/textmodes/fill-tests.el index 6e079973100e..afd17c52dcd5 100644 --- a/test/lisp/textmodes/fill-tests.el +++ b/test/lisp/textmodes/fill-tests.el @@ -28,6 +28,7 @@ ;;; Code: (require 'ert) +(require 'ert-x) (ert-deftest fill-test-no-fill-polish-nobreak-p nil "Tests of the `fill-polish-nobreak-p' function." @@ -121,6 +122,95 @@ test-fill-haskell ;; w "))) +(ert-deftest fill-test-fill-paragraph-semlf () + "Test the `fill-paragraph-semlf' function." + (ert-test-erts-file (ert-resource-file "semlf.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-paragraph-function () + "Test `fill-paragraph-semlf' as `fill-paragraph-function'." + (ert-test-erts-file (ert-resource-file "semlf-fill-paragraph-function.erts") + (lambda () + (setq-local fill-paragraph-function #'fill-paragraph-semlf) + (fill-paragraph)))) + +(ert-deftest fill-test-fill-paragraph-semlf-justify () + "Test the JUSTIFY parameter of the `fill-paragraph-semlf' function." + (ert-test-erts-file (ert-resource-file "semlf-justify.erts") + (lambda () + (fill-paragraph-semlf 'justify)))) + +(ert-deftest fill-test-fill-paragraph-semlf-sentence-end-double-space () + "Test the `fill-paragraph-semlf' function with `sentence-end-double-space'." + (ert-test-erts-file (ert-resource-file "semlf-sentence-end-double-space.erts") + (lambda () + (setq-local sentence-end-double-space nil) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-column () + "Test the `fill-paragraph-semlf' function with `fill-column'." + (ert-test-erts-file (ert-resource-file "semlf-fill-column.erts") + (lambda () + (setq-local fill-column 35) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-punctuation-marks () + "Test the `fill-paragraph-semlf' function with different punctuation marks." + (ert-test-erts-file (ert-resource-file "semlf-punctuation-marks.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-twice () + "Test to run the `fill-paragraph-semlf' function twice." + (ert-test-erts-file (ert-resource-file "semlf-twice.erts") + (lambda () + (goto-char (point-min)) + (fill-paragraph-semlf) + (goto-char (point-min)) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-prefix () + "Test the `fill-paragraph-semlf' function with different fill prefixes." + (ert-test-erts-file (ert-resource-file "semlf-fill-prefix.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-indented-block () + "Test the `fill-paragraph-semlf' function with an indented block." + (ert-test-erts-file (ert-resource-file "semlf-indented-block.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-emacs-lisp-mode () + "Test the `fill-paragraph-semlf' function with `emacs-lisp-mode'." + (ert-test-erts-file (ert-resource-file "semlf-emacs-lisp-mode.erts") + (lambda () + (emacs-lisp-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-c-mode () + "Test the `fill-paragraph-semlf' function with `c-mode'." + (ert-test-erts-file (ert-resource-file "semlf-c-mode.erts") + (lambda () + (c-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-org-mode () + "Test the `fill-paragraph-semlf' function with `org-mode'." + (ert-test-erts-file (ert-resource-file "semlf-org-mode.erts") + (lambda () + (org-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-markdown-mode () + "Test the `fill-paragraph-semlf' function with `markdown-mode'." + (skip-unless (functionp 'markdown-mode)) + (ert-test-erts-file (ert-resource-file "semlf-markdown-mode.erts") + (lambda () + (markdown-mode) + (fill-paragraph-semlf)))) + (provide 'fill-tests) ;;; fill-tests.el ends here -- 2.49.0 --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 24 May 2025 13:38:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat May 24 09:38:59 2025 Received: from localhost ([127.0.0.1]:59178 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uIp5W-0007dG-3D for submit <at> debbugs.gnu.org; Sat, 24 May 2025 09:38:59 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:54291) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uIp5S-0007ca-4B for 78561 <at> debbugs.gnu.org; Sat, 24 May 2025 09:38:55 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-43edecbfb46so6159225e9.0 for <78561 <at> debbugs.gnu.org>; Sat, 24 May 2025 06:38:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748093928; x=1748698728; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=Jei9RgntfFW1KMM19Dv1vnPgqSCMfTqeAQJ8Lla+amo=; b=cNiG8ED4/CsTaL8Jhv3JaqdndCeSslOWIKnlIFNYevf1mLymu41biUBCLBIs5wIpma pDtq2uMhRrYNM/K92Zdp8lIG0QhTzw8N9f12uMPaJN2uonWAm0cbSusUNwGgQWEN28hG 0JoaSPzrzdEVE2VkheSL6Myb68UYuM5vd2ybHYsGSIbqADd1kdfEel+rOCZTUJ0NPj3U kbcsOGfeuGiRdQK34Vgzl8C3fVNvO5CKOzB5+24wnpdZkwP5CTKCxQLEAo7mWzAPijI7 XLFBFS3MIJBF/jepfaE/Fknu1kv/6A6ZLzJzZ/5O40KGCJuxKLvFft7AbS0NfH88qleE I52Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748093928; x=1748698728; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Jei9RgntfFW1KMM19Dv1vnPgqSCMfTqeAQJ8Lla+amo=; b=Ihqa/uUvUzYfyyQrrhNHuGwNCdbjJn0YTGJ7VD0OWp9GN4lGThluShdv1sYxKAdgU4 KbgADJz0vy4AOttg4zGM9vCXGZgDHRcCXQnjmVWkjB6QADNq8bQNKbhT1uZUWqv27OaU 6Wj53h2i4n68jGgk/FJ+SaRTm4la113J/lQ9xFdocLJ60gRk2XmdXIFOfti9mxaTX/pU j/dgKgcnZjWoBa0JjVw4E5w7m/yPZo7zT8OlXM8o61GZtya2cwTdNF8cmxIu9b6hohnj BkeMsIaG9pvxCxcYvxC96Wkz0DJ/IXm0s9Bga21t9How3XH9mGDlt1kT6yoiqlQoqPBE D6lg== X-Gm-Message-State: AOJu0Yxli3rxmMCqcYuGIuKGDc8+36b6zwu4jOMsmRkb3HbLpLnogQMH WRpOKbTXRA1/PP7yqul0WRdmCHyQR7rACY9B6Lk9hbCC0LI5ixPMzOpu X-Gm-Gg: ASbGncuKwSOJREqtiLicfv2BtwYEeitcCn69n5oqIkEzCOUyzo6DSxFt1hYO+mpBrfU t5Su34+j8OKsaDeky6sbgXA30Sgid+QjDh8P2IojlsUQ4Zv9GpeuxiUmXYFqyBo/gV/CXCsHwnR IEBi2zab+Ms1XcMVGcH6lE5NzXbvH7fA1UxBznYbvbpeZMmJLihAjkWigZaktw2aHBJdxTAIQx6 SLAVGPuxq+OcHMKmSHi7elqc/9giWvRUwIhd1eaYrNGW6MLrnGvmACZ2xKgVHfEKJHRHwC/1GQc JHlzySnSUx14ETPjeL/NJqBz0woQpPP7HewC5u7Y0j3rxqjVgQ== X-Google-Smtp-Source: AGHT+IFPw2TGeRcgaqgEhTwJreIorLvM087smP0viDcMK6WYSjCKtT4KC8xNAC8kAlvkR95JBwpdng== X-Received: by 2002:a05:600c:620a:b0:43d:b3:f95 with SMTP id 5b1f17b1804b1-44c94c28b8fmr20716505e9.28.1748093927467; Sat, 24 May 2025 06:38:47 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f18251c7sm177882785e9.3.2025.05.24.06.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 24 May 2025 06:38:47 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <864ixa17s8.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <86ldqn4m54.fsf@HIDDEN> <87msb2432u.fsf@HIDDEN> <864ixa17s8.fsf@HIDDEN> Date: Sat, 24 May 2025 15:38:40 +0200 Message-ID: <87jz663z8f.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: mbork@HIDDEN, monnier@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Roi Martin <jroi.martin@HIDDEN> >> Cc: 78561 <at> debbugs.gnu.org, mbork@HIDDEN, monnier@HIDDEN >> Date: Sat, 24 May 2025 14:15:37 +0200 >> >> Eli Zaretskii <eliz@HIDDEN> writes: >> >> > This explanation of what is "semantic linefeeds" is a good starting >> > point, but it is not enough. For starters, "ensures" hints but >> > doesn't say explicitly that if there's no newline there, it is >> > inserted. Also, I think a URL to at least one site explaining what >> > "semantic linefeeds" are should be in the doc string. >> >> I would prefer to avoid depending on external URLs to explain the >> concept. > > Since the concept came from outside, why not? > >> I'd link to an external reference if, for instance, this >> feature was backed by an standard located in a well-known site >> (e.g. IETF RFCs). In this case, the concept is quite simple and I agree >> with Stefan in that we can provide our own interpretation in the manual >> and link to the Info node from the doc string. > > There's no contradiction: we could describe this in our documentation > and also mention the external references. We do that, for example, > for Unicode-related features. OK. I'll update the patch accordingly. >> >> + (when (and (> (point) (line-beginning-position)) >> >> + (< (point) (line-end-position))) >> >> + (delete-horizontal-space) >> >> + (newline) >> > >> > Are you sure 'newline' is the right function to call here? It doesn't >> > just insert the newline character, at least not in all the cases. >> > Perhaps inserting a literal newline character is better? >> >> The reason behind using 'newline' is to support documents that follow >> other conventions to represent newlines (e.g. '\r\n' or '\r'). Does it >> make sense? Is this the right approach? > > In Emacs, there's only one "newline convention", the one that uses the > newline (LFD) character. The different en d-of-line conventions are > supported during I/O: we "encode" newlines as CR-LF pair for Windows, > for example, when saving buffers to files, and "decode" CR-LF back > into a single newline when reading files into buffers. Got it. Thanks a lot for the explanation. That simplifies things a lot. > By contrast, the 'newline' function does other things, in addition to > inserting the newline character; see its documentation for the > details. It seems to me that some of those additional actions is not > something this feature will want, because this feature is _only_ about > where to break text into physical lines. You are right. I replaced it with (insert "\n") Thanks!
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 24 May 2025 13:02:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat May 24 09:02:27 2025 Received: from localhost ([127.0.0.1]:58898 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uIoWB-0004oe-Ah for submit <at> debbugs.gnu.org; Sat, 24 May 2025 09:02:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52060) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uIoW8-0004o8-Mf for 78561 <at> debbugs.gnu.org; Sat, 24 May 2025 09:02:25 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1uIoW1-00056p-Tp; Sat, 24 May 2025 09:02:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=h+yNJTGgcmjl+0l15x2AirHrSAlrlRZAIope8fXB/MQ=; b=K39UFKWebYJ/ ZH1FvXSw/59mesZXx2iCnXBGaLYDYNk5KPvvkj+8C4Mk+Mg7VmvRckArZDd+RX2g+8kU11ovlwtGN 8f/O/vOpPO93DW0IUHLGE5a6eIG0+ZMZke+UuSN1JE8CqR5BIjOnm1sspvLhFdhBuuA95tNqK+NzZ qIBQdYZycRcIfpR7uCJO3x1VidvvesSZX8hV/OU4NNAsVXcmc8GQCMuCDWXoJA90GVE3vg4rHZFyO PNG3gDgKLvZZydO/sHjrqe82bg1w7YKRL5OPHDOaVLJFz5GRuwNLgRiGNibp8xRJoBHWOc5YtGur7 zCySXd9lJPowPr7U7PsS8Q==; Date: Sat, 24 May 2025 16:02:15 +0300 Message-Id: <864ixa17s8.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> In-Reply-To: <87msb2432u.fsf@HIDDEN> (message from Roi Martin on Sat, 24 May 2025 14:15:37 +0200) Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling References: <87jz67tzrp.fsf@HIDDEN> <86ldqn4m54.fsf@HIDDEN> <87msb2432u.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: mbork@HIDDEN, monnier@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Roi Martin <jroi.martin@HIDDEN> > Cc: 78561 <at> debbugs.gnu.org, mbork@HIDDEN, monnier@HIDDEN > Date: Sat, 24 May 2025 14:15:37 +0200 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > This explanation of what is "semantic linefeeds" is a good starting > > point, but it is not enough. For starters, "ensures" hints but > > doesn't say explicitly that if there's no newline there, it is > > inserted. Also, I think a URL to at least one site explaining what > > "semantic linefeeds" are should be in the doc string. > > I would prefer to avoid depending on external URLs to explain the > concept. Since the concept came from outside, why not? > I'd link to an external reference if, for instance, this > feature was backed by an standard located in a well-known site > (e.g. IETF RFCs). In this case, the concept is quite simple and I agree > with Stefan in that we can provide our own interpretation in the manual > and link to the Info node from the doc string. There's no contradiction: we could describe this in our documentation and also mention the external references. We do that, for example, for Unicode-related features. > >> + (when (and (> (point) (line-beginning-position)) > >> + (< (point) (line-end-position))) > >> + (delete-horizontal-space) > >> + (newline) > > > > Are you sure 'newline' is the right function to call here? It doesn't > > just insert the newline character, at least not in all the cases. > > Perhaps inserting a literal newline character is better? > > The reason behind using 'newline' is to support documents that follow > other conventions to represent newlines (e.g. '\r\n' or '\r'). Does it > make sense? Is this the right approach? In Emacs, there's only one "newline convention", the one that uses the newline (LFD) character. The different en d-of-line conventions are supported during I/O: we "encode" newlines as CR-LF pair for Windows, for example, when saving buffers to files, and "decode" CR-LF back into a single newline when reading files into buffers. By contrast, the 'newline' function does other things, in addition to inserting the newline character; see its documentation for the details. It seems to me that some of those additional actions is not something this feature will want, because this feature is _only_ about where to break text into physical lines.
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 24 May 2025 12:15:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat May 24 08:15:53 2025 Received: from localhost ([127.0.0.1]:58567 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uInn6-0001Cg-A9 for submit <at> debbugs.gnu.org; Sat, 24 May 2025 08:15:52 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:51505) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uInn3-0001CB-OR for 78561 <at> debbugs.gnu.org; Sat, 24 May 2025 08:15:50 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-442e9c00bf4so4017545e9.3 for <78561 <at> debbugs.gnu.org>; Sat, 24 May 2025 05:15:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748088943; x=1748693743; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=4wL6depUM5YYutY6Z1jvAXcvu6dI5wWkUuZIzQptSkE=; b=F4UA47TMapVc+18XqPGWUuNt5W2BLZLYGB9Stbq4910wNbz8m9necO9V2rkL/UZQET +zdE2B2fweX/UzR8yHjJ9+tp+gVilA/V5RSU1FzLYegfseeAH/gy7lvNBnurE//Zj+ju MRCeYhqAidxZQziDlOS/l1dWNGDjocFmw0mqwoazeqi6aeJ+Xg5E5Zm82W+xjo/5Bzd+ Yy2FBnHzNCM1odCb9PcLSqXF/QbBR2gJuPtN+RAkg72aMOmynDPnKN1WtvG/qB3SRQOZ 0QHe0GBEahmrua00yjUjbz8yTK9c70IcoJD08r6uhvsnS/O8ZSKFLmW10TsfGQyvBLFm oc0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748088943; x=1748693743; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4wL6depUM5YYutY6Z1jvAXcvu6dI5wWkUuZIzQptSkE=; b=qCXyISCKZH5BnxkwkDchjDPHIcSguSHZt3701MMhm5NIp/hWF34K+5+S0rDzPdNALw qUsovewkN24TPyGVTBCMR88Adm8fyhZiWfsGPyTCtmcCvZufNNY7W7BSIgm8wFqUBy4Q SJSr9kldo06C6uFi+E6lxK2u83NToNA1ScxEXCtA3bs+VsJgRneSvQBvEUAFySrnwq0S 5MqyvegqVhH7mna8PE8Uu0LRs1dU0Mvnef+XMGtZ4X8uTuM7u2BaGqbCtRNA2bPkIOLs e1EpbAYy3NAbKejFOUEC5CF1+MFyTr9U1zzMlTMW/pXsmJs8uIF0Sm7+rPyHUmbPdfp1 tN8w== X-Gm-Message-State: AOJu0YwS493p9tOmotX1IkE8KEwrMp/kdvfCvCVuMQgkcqkcrzcfCODN nDW7/nmBOVDR4IJjcnYvn0pUP1lxIEVDgWctVLFEANcDk+X69lTrkWmt X-Gm-Gg: ASbGnct9de6E8u1MbcPmThnEEnAhbON4MVnyvWR7oEK5CAXCh1VZ/rV9IyqFZyvTi/A Twj/POYUtwwfaXFkCfVG1+WJ1cNbJjT3whTnnnHRiNAbgYXsjEDp65AxC2J/OwGxVgFYv+Iw5tt R+YQQffuTXtThKqWAGbyiuEUv51jpUN4pOwvqqZnncSr5BxX6wXUMZ/Kr/y88vNamogoTa8JcXQ CXxzV5KRE+aSDvfXhp3xnt24tS8pBnESfdfIBK4MdnwnyYmWMVNyzri5kfG8CcQyv7oo1eT00NS Kg03Zy2L4ur4VBAtDohhmN3OehadJEBB/nUNBuPFQ4nRC7T3p0A1h4w7gcyu X-Google-Smtp-Source: AGHT+IFnNDqjMAI64si92n72fBMOwPHud4O4gwPcqBWLaXb7vpNHVt7JU9ZZ2V2B29vrG/cAQEt8VA== X-Received: by 2002:a05:600c:138f:b0:43d:fa5d:9315 with SMTP id 5b1f17b1804b1-44c94c2d54emr20925575e9.33.1748088943066; Sat, 24 May 2025 05:15:43 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f3dd99absm172802105e9.37.2025.05.24.05.15.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 24 May 2025 05:15:42 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <86ldqn4m54.fsf@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> <86ldqn4m54.fsf@HIDDEN> Date: Sat, 24 May 2025 14:15:37 +0200 Message-ID: <87msb2432u.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78561 Cc: mbork@HIDDEN, monnier@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> +(defun fill-paragraph-semlf (&optional justify) >> + "Fill paragraph at or after point using semantic linefeeds. >> + >> +This function ensures that a newline character follows every >> +sentence, as punctuated by a period (.), exclamation mark (!), or >> +question mark (?). > > This explanation of what is "semantic linefeeds" is a good starting > point, but it is not enough. For starters, "ensures" hints but > doesn't say explicitly that if there's no newline there, it is > inserted. Also, I think a URL to at least one site explaining what > "semantic linefeeds" are should be in the doc string. I would prefer to avoid depending on external URLs to explain the concept. I'd link to an external reference if, for instance, this feature was backed by an standard located in a well-known site (e.g. IETF RFCs). In this case, the concept is quite simple and I agree with Stefan in that we can provide our own interpretation in the manual and link to the Info node from the doc string. If you prefer to avoid changing the manual until this is well tested, then we can provide a more detailed explanation in the doc string itself. What do you think? >> + (when (and (> (point) (line-beginning-position)) >> + (< (point) (line-end-position))) >> + (delete-horizontal-space) >> + (newline) > > Are you sure 'newline' is the right function to call here? It doesn't > just insert the newline character, at least not in all the cases. > Perhaps inserting a literal newline character is better? The reason behind using 'newline' is to support documents that follow other conventions to represent newlines (e.g. '\r\n' or '\r'). Does it make sense? Is this the right approach?
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 23 May 2025 15:05:03 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 23 11:05:03 2025 Received: from localhost ([127.0.0.1]:49126 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uITxH-0003M8-0L for submit <at> debbugs.gnu.org; Fri, 23 May 2025 11:05:03 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:5707) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1uITxA-0003LE-1X for 78561 <at> debbugs.gnu.org; Fri, 23 May 2025 11:04:56 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 4BD17808F6; Fri, 23 May 2025 11:04:50 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1748012689; bh=4fYUJbc6WRM9wdXyLiLuQkpg+tKpC6CbwznpF8cVR7Y=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=I/v8ouY9xBB9OsJZ8iwkgGZrL7IPqZTFZm1m3vlk4/O/fQMaMcqe+vDbYcJtHKTh0 IUk1an+jGcyWRHSLFEURj3MvamlWb2/CAXD41z4+JDJaIeH26VO+7eBVfKZbHY4c31 P+V1kWqAFxUrfTQ7ku/4UYLbAGIdIbnF4yd3gqpTaYJ8Qxs9aymy+ffWEXswI3S7iM EjTkCS/NURa/p8J+m/5Hz6Ii4CRnQeEQajtutpoGWenfAEnAKk7LsGZq+437sOlQo6 P8zTSb+Mu4IDbUb0KkQgW1P57Zy2a8oMPgqmRKBdmkihnwbkDSJZ5y+3muSy+NwkN2 D6YxcEr7t8IKg== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 527918053B; Fri, 23 May 2025 11:04:49 -0400 (EDT) Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 399C512041A; Fri, 23 May 2025 11:04:49 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling In-Reply-To: <87jz67tzrp.fsf@HIDDEN> Message-ID: <jwvr00fqt10.fsf-monnier+emacs@HIDDEN> References: <87jz67tzrp.fsf@HIDDEN> Date: Fri, 23 May 2025 11:04:48 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.169 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78561 Cc: Marcin Borkowski <mbork@HIDDEN>, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Given that this is a first version, I have not added any reference to > the manuals. If you think it makes sense, please let me know and I'll > modify the patch accordingly. Maybe a short version of the explanation you give below would be good to have in the manual (tho Eli suggests a URL instead, so maybe that's good enough?). > +(defun fill-paragraph-semlf (&optional justify) > + "Fill paragraph at or after point using semantic linefeeds. > + > +This function ensures that a newline character follows every > +sentence, as punctuated by a period (.), exclamation mark (!), or > +question mark (?). This seems inaccurate: it just uses whichever definition of sentence is used by `forward-sentence`, so it may ignore some of those chars or pay attention to others. > +If JUSTIFY is non-nil (interactively, with prefix argument), justify as > +well. If `sentence-end-double-space' is non-nil, then period followed > +by one space does not end a sentence, so don't break a line there. The > +variable `fill-column' controls the width for filling." I'd move the "The" to the last line. =F0=9F=99=82 > + (interactive "P") > + (save-excursion > + (let ((end (progn > + (fill-forward-paragraph 1) > + (backward-word) > + (end-of-line) > + (point))) > + (start (progn > + (fill-forward-paragraph -1) > + (forward-word) > + (beginning-of-line) > + (point))) > + pfx) > + (with-restriction start end > + (let ((fill-column (point-max))) > + (setq pfx (or (fill-region-as-paragraph (point-min) (point-max)) ""))) > + (goto-char (point-min)) > + (while (not (eobp)) > + (let ((fill-prefix pfx)) > + (fill-region-as-paragraph (point) > + (progn (forward-sentence) (point)) > + justify)) > + (when (and (> (point) (line-beginning-position)) > + (< (point) (line-end-position))) > + (delete-horizontal-space) > + (newline) > + (insert pfx)))))) > + t) Please try and separate it into a `fill-region-semlf` function and then another one which applies it to a paragraph, so that it can also be used to fill a specific user-specified region (or the whole buffer). Stefan
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at 78561) by debbugs.gnu.org; 23 May 2025 11:11:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 23 07:11:54 2025 Received: from localhost ([127.0.0.1]:46015 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uIQJa-0005Vo-6t for submit <at> debbugs.gnu.org; Fri, 23 May 2025 07:11:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37606) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uIQJV-0005VV-Nm for 78561 <at> debbugs.gnu.org; Fri, 23 May 2025 07:11:47 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1uIQJP-0000aJ-1w; Fri, 23 May 2025 07:11:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=FoL1TLkdB2QqpAUn7sGXGxqGWRuC2RTpuREVMclz/co=; b=SOBOdWQwllxf b0DQYTfGrCC2sPqoy2qtRJuK6rm18EMrAxdzcJX7gHF8umy5YPB3zB5oyRvi5xYyKdb1AL6r9dkl0 ZMTLwGCX7n8IyQb/B8h4i12L50iyiakO/AfLw5dJQ0oEZ2XamCcg0RFA80Z4ofisn3KGwJDxQMQ6c RrR37ZPXP+6hrZeq27/1/zoY6ZDke7O+baez2FH4vflstp9HW+lj1Ogjlynl78MwO9ZvuIvwhzf9D r70P60+It+iXVnRNIYgYkhLVSFfJ3aKuk1ik3ax2WGVUXUI4VHRdX6PE5OB6pI9PMVfRy0w+/g9ll LbWtP7Ma7zf3m3F22cRqYA==; Date: Fri, 23 May 2025 14:11:35 +0300 Message-Id: <86ldqn4m54.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Roi Martin <jroi.martin@HIDDEN> In-Reply-To: <87jz67tzrp.fsf@HIDDEN> (message from Roi Martin on Fri, 23 May 2025 11:58:02 +0200) Subject: Re: bug#78561: [PATCH] Add semantic linefeed support for paragraph filling References: <87jz67tzrp.fsf@HIDDEN> X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: 78561 Cc: mbork@HIDDEN, 78561 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.3 (/) > Cc: Marcin Borkowski <mbork@HIDDEN> > From: Roi Martin <jroi.martin@HIDDEN> > Date: Fri, 23 May 2025 11:58:02 +0200 > > This patch adds semantic linefeed support for paragraph filling. The > functionality has been discussed in the emacs-devel mailing list in the > following threads: > > - Fill paragraph using semantic linefeeds: https://lists.gnu.org/archive/html/emacs-devel/2025-03/msg00035.html > - [GNU ELPA] New package: semlf: https://lists.gnu.org/archive/html/emacs-devel/2025-03/msg00702.html > > In the second thread we agreed on sending a patch to core instead of > adding a new package to GNU ELPA. > > Given that this is a first version, I have not added any reference to > the manuals. If you think it makes sense, please let me know and I'll > modify the patch accordingly. > > What follows is a detailed explanation of the term semantic linefeeds, > so we have all the information in one single place. > > The term "semantic linefeeds" or "semantic line breaks" refers to a set > of conventions for using insensitive vertical whitespace to structure > prose along semantic boundaries. > > The concept was first introduced by Brian Kernighan in "UNIX for > Beginners" [1] in October 1974. > > Hints for Preparing Documents > > Most documents go through several versions (always more than you > expected) before they are finally finished. Accordingly, you should > do whatever possible to make the job of changing them easy. > > First, when you do the purely mechanical operations of typing, type so > subsequent editing will be easy. Start each sentence on a new line. > Make lines short, and break lines at natural places, such as after > commas and semicolons, rather than randomly. Since most people change > documents by rewriting phrases and adding, deleting and rearranging > sentences, these precautions simplify any editing you have to do > later. > > Semantic linefeeds are usually used with markup languages that are not > sensitive to newlines when exported to a different format (e.g. Org, > Texinfo, Markdown). > > Let's say that we have the following paragraph in an Org document: > > Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod > tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim > veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea > commodo consequat. > > After filling the paragraph using semantic linefeeds, the result is: > > Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod > tempor. > Incididunt ut labore et dolore magna aliqua. > Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi > ut aliquip ex ea commodo consequat. > > However, when exported, in both cases the result is: > > Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod > tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim > veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea > commodo consequat. > > So, what are the benefits? > > One of the greatest benefits is that semantic linefeeds are "diff > friendly". > > For example, > > -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod > -tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim > -veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea > -commodo consequat. > +Lorem ipsum dolor sit amet, XXXXX consectetur adipiscing elit, sed do > +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim > +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut > +aliquip ex ea commodo consequat. > > Versus, > > -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod > -tempor. > +Lorem ipsum dolor sit amet, XXXXX consectetur adipiscing elit, sed do > +eiusmod tempor. > Incididunt ut labore et dolore magna aliqua. > Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi > ut aliquip ex ea commodo consequat. > > Semantic linefeeds make easier to spot that the word "XXXXX" was added > in the first line. > > Also, they are convenient during code reviews. Shorter diffs and > separating "ideas" with newlines allow to be more accurate when adding > comments. > > The site "Semantic Line Breaks" [2] by Mattt and the blog post "Semantic > Linefeeds" [3] by Brandon Rhodes are both excellent references. > > [1] https://web.archive.org/web/20130108163017if_/http://miffy.tom-yam.or.jp:80/2238/ref/beg.pdf > [2] https://sembr.org/ > [3] https://rhodesmill.org/brandon/2012/one-sentence-per-line/ Thanks. > +(defun fill-paragraph-semlf (&optional justify) > + "Fill paragraph at or after point using semantic linefeeds. > + > +This function ensures that a newline character follows every > +sentence, as punctuated by a period (.), exclamation mark (!), or > +question mark (?). This explanation of what is "semantic linefeeds" is a good starting point, but it is not enough. For starters, "ensures" hints but doesn't say explicitly that if there's no newline there, it is inserted. Also, I think a URL to at least one site explaining what "semantic linefeeds" are should be in the doc string. > + (when (and (> (point) (line-beginning-position)) > + (< (point) (line-end-position))) > + (delete-horizontal-space) > + (newline) Are you sure 'newline' is the right function to call here? It doesn't just insert the newline character, at least not in all the cases. Perhaps inserting a literal newline character is better?
bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 23 May 2025 09:58:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 23 05:58:30 2025 Received: from localhost ([127.0.0.1]:45802 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uIPAZ-0001n6-QS for submit <at> debbugs.gnu.org; Fri, 23 May 2025 05:58:30 -0400 Received: from lists.gnu.org ([2001:470:142::17]:51364) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <jroi.martin@HIDDEN>) id 1uIPAT-0001mh-Ur for submit <at> debbugs.gnu.org; Fri, 23 May 2025 05:58:25 -0400 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 <jroi.martin@HIDDEN>) id 1uIPAO-0006wH-1A for bug-gnu-emacs@HIDDEN; Fri, 23 May 2025 05:58:16 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <jroi.martin@HIDDEN>) id 1uIPAI-0008JZ-IO for bug-gnu-emacs@HIDDEN; Fri, 23 May 2025 05:58:15 -0400 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-442ccf0e1b3so110918915e9.3 for <bug-gnu-emacs@HIDDEN>; Fri, 23 May 2025 02:58:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747994289; x=1748599089; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=tV8Afgj1RHH7Wkie9fiOeLvOGYbh1s9V6ZTd6UchsTo=; b=NRcUd4KhqwFHSfZmoSv/oVxwRqZhD8U07l7FFkfndSFdlNTFC9+x1pOXJKLJXoKumu iNCW69KSA495W7WlZXq5KKzNpEi4qQ8ZTzoAmeCXR6+cnJTRSQyhWzRaoRAAJNz2HUzX V9MRUuRekV2pqKtiVdEVOJo9Fs4FZUBQX/MTlwktCgZ8y9rBW4Y8M9zDAWTESgpP/spX gTyZmwerAkqc7MQzHziMT1BdhwBV11tHLZ7fyoeAu6gYMWc30ExWH3lL6MfjhuRy9AMB hEOCvMB6tsuaBitzdt+rLt46n3X6T8pFwDBAK7/xApWZHSMUe535hCz0eKlaThBYOaFW wFBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747994289; x=1748599089; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=tV8Afgj1RHH7Wkie9fiOeLvOGYbh1s9V6ZTd6UchsTo=; b=Y9iRwRNDQ2xgl8+18eSkyprec2wvfJfc8fbfHGUEU/UgpTnWylB56xYS7rMUc3VUTn 7m1im4zJgBKZtNWtnjrVM4u/m8OovRwntJp5JKnu+2+kjL+4npxsE0gSGm8TFHbaoT83 GkTM9PCQ2wJyFm/MoAlDhYpziIHWFGl1H2+brvVTgdUHQgK2bV3F9o6YTPnd4uuKRnhw hbE83JE/rdOE/2V7aH1RwFnGN13ECEB+h1WaTvp2e1xCUTgVPyKhkNRgOXtcYPGFm2kG mkHpwiikglOpApMt8tcF5Wy6Dp+wMIt3cyP6y33uWPGLMUZ3KBA9RCTNY1eaqBScaXjs NXpw== X-Gm-Message-State: AOJu0YwdCb4wvKRFwsm2AbbD0QnKLqZJaCFd6b9wsK0WohDoGRSrFqbK iHs/nk6CiAMrnLfurbsLXZsAIpcNvEPq5YheFKS7w5DU67XXpGSb9qF14YX+bg== X-Gm-Gg: ASbGncsftz67TrX3uqnPSxguJVZSYZtRRZHoNqwSvs/P689z/PC7vsr8+iy6gS9vLX3 4iiGfQbF1x2tyquliT20mm7zCC7v04IyOx3FhDj4N0+89ILTcjRE+jsMs1Uh9oKA2QT2CUN8UNE pBXBssi5UxGfsklk3VM+Nxl6VldIBvyAGTFqDTUTKTjcrw7uBPMjdj3goPgwrJqfGvFiIwaHrEl chkfKGBOqy4uyOExOBPcAEuFY9BlqApuXQ3u1KNyFyOOrTn6pPEKqsq5ds0zFmcYijD+jOnus6P qNxKNvxtU9nSBbWsDh+btDohlbriP1V+xPtL8MLoKHWI+/QjJA== X-Google-Smtp-Source: AGHT+IEGnz4MnmNI14hA1Qdgf3iikFvX9xB9d2OQNmDsOrpkYaP7yAKJKEVlDqUWwySAm958FGDoMQ== X-Received: by 2002:a05:6000:2f87:b0:3a0:b84c:52b4 with SMTP id ffacd0b85a97d-3a4c20eea8amr2414044f8f.10.1747994288615; Fri, 23 May 2025 02:58:08 -0700 (PDT) Received: from localhost ([84.79.192.255]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a362997dc8sm24192274f8f.46.2025.05.23.02.58.07 for <bug-gnu-emacs@HIDDEN> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 02:58:07 -0700 (PDT) From: Roi Martin <jroi.martin@HIDDEN> To: bug-gnu-emacs@HIDDEN Subject: [PATCH] Add semantic linefeed support for paragraph filling X-Debbugs-Cc: Marcin Borkowski <mbork@HIDDEN> Date: Fri, 23 May 2025 11:58:02 +0200 Message-ID: <87jz67tzrp.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=jroi.martin@HIDDEN; helo=mail-wm1-x330.google.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_SBL_A=0.1 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.7 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Tags: patch This patch adds semantic linefeed support for paragraph filling. The functionality has been discussed in the emacs-devel mailing list in the following threads: - Fill paragraph using semantic linefeeds: https://lists.gnu.org/archive/html/emacs-devel/2025-03/msg00035.html - [GNU ELPA] New package: semlf: https://lists.gnu.org/archive/html/emacs-devel/2025-03/ [...] Content analysis details: (1.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.1 URIBL_SBL_A Contains URL's A record listed in the Spamhaus SBL blocklist [URIs: web.archive.org] 0.6 URIBL_SBL Contains an URL's NS IP listed in the Spamhaus SBL blocklist [URIs: web.archive.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (jroi.martin[at]gmail.com) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org] X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.7 (/) --=-=-= Content-Type: text/plain Tags: patch This patch adds semantic linefeed support for paragraph filling. The functionality has been discussed in the emacs-devel mailing list in the following threads: - Fill paragraph using semantic linefeeds: https://lists.gnu.org/archive/html/emacs-devel/2025-03/msg00035.html - [GNU ELPA] New package: semlf: https://lists.gnu.org/archive/html/emacs-devel/2025-03/msg00702.html In the second thread we agreed on sending a patch to core instead of adding a new package to GNU ELPA. Given that this is a first version, I have not added any reference to the manuals. If you think it makes sense, please let me know and I'll modify the patch accordingly. What follows is a detailed explanation of the term semantic linefeeds, so we have all the information in one single place. The term "semantic linefeeds" or "semantic line breaks" refers to a set of conventions for using insensitive vertical whitespace to structure prose along semantic boundaries. The concept was first introduced by Brian Kernighan in "UNIX for Beginners" [1] in October 1974. Hints for Preparing Documents Most documents go through several versions (always more than you expected) before they are finally finished. Accordingly, you should do whatever possible to make the job of changing them easy. First, when you do the purely mechanical operations of typing, type so subsequent editing will be easy. Start each sentence on a new line. Make lines short, and break lines at natural places, such as after commas and semicolons, rather than randomly. Since most people change documents by rewriting phrases and adding, deleting and rearranging sentences, these precautions simplify any editing you have to do later. Semantic linefeeds are usually used with markup languages that are not sensitive to newlines when exported to a different format (e.g. Org, Texinfo, Markdown). Let's say that we have the following paragraph in an Org document: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. After filling the paragraph using semantic linefeeds, the result is: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. However, when exported, in both cases the result is: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. So, what are the benefits? One of the greatest benefits is that semantic linefeeds are "diff friendly". For example, -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod -tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim -veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea -commodo consequat. +Lorem ipsum dolor sit amet, XXXXX consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut +aliquip ex ea commodo consequat. Versus, -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod -tempor. +Lorem ipsum dolor sit amet, XXXXX consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Semantic linefeeds make easier to spot that the word "XXXXX" was added in the first line. Also, they are convenient during code reviews. Shorter diffs and separating "ideas" with newlines allow to be more accurate when adding comments. The site "Semantic Line Breaks" [2] by Mattt and the blog post "Semantic Linefeeds" [3] by Brandon Rhodes are both excellent references. [1] https://web.archive.org/web/20130108163017if_/http://miffy.tom-yam.or.jp:80/2238/ref/beg.pdf [2] https://sembr.org/ [3] https://rhodesmill.org/brandon/2012/one-sentence-per-line/ --=-=-= Content-Type: text/patch Content-Disposition: attachment; filename=0001-Add-semantic-linefeed-support-for-paragraph-filling.patch From 8faa17e5ddc8156a6f9f18965bb34e477d5d8b1d Mon Sep 17 00:00:00 2001 From: Roi Martin <jroi.martin@HIDDEN> Date: Fri, 21 Mar 2025 14:22:46 +0100 Subject: [PATCH] Add semantic linefeed support for paragraph filling * lisp/textmodes/fill.el (fill-paragraph-semlf): Add function to fill paragraph using semantic linefeeds. * test/lisp/textmodes/fill-tests.el (fill-test-fill-paragraph-semlf) (fill-test-fill-paragraph-semlf-fill-paragraph-function) (fill-test-fill-paragraph-semlf-justify) (fill-test-fill-paragraph-semlf-sentence-end-double-space) (fill-test-fill-paragraph-semlf-fill-column) (fill-test-fill-paragraph-semlf-punctuation-marks) (fill-test-fill-paragraph-semlf-twice) (fill-test-fill-paragraph-semlf-fill-prefix) (fill-test-fill-paragraph-semlf-indented-block) (fill-test-fill-paragraph-semlf-emacs-lisp-mode) (fill-test-fill-paragraph-semlf-c-mode) (fill-test-fill-paragraph-semlf-org-mode) (fill-test-fill-paragraph-semlf-markdown-mode): Add tests. * test/lisp/textmodes/fill-resources/semlf-c-mode.erts: * test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts: * test/lisp/textmodes/fill-resources/semlf-fill-column.erts: * test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts: * test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts: * test/lisp/textmodes/fill-resources/semlf-indented-block.erts: * test/lisp/textmodes/fill-resources/semlf-justify.erts: * test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts: * test/lisp/textmodes/fill-resources/semlf-org-mode.erts: * test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts: * test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts: * test/lisp/textmodes/fill-resources/semlf-twice.erts: * test/lisp/textmodes/fill-resources/semlf.erts: Add test data. --- lisp/textmodes/fill.el | 40 ++++ .../fill-resources/semlf-c-mode.erts | 183 ++++++++++++++++++ .../fill-resources/semlf-emacs-lisp-mode.erts | 87 +++++++++ .../fill-resources/semlf-fill-column.erts | 15 ++ .../semlf-fill-paragraph-function.erts | 12 ++ .../fill-resources/semlf-fill-prefix.erts | 35 ++++ .../fill-resources/semlf-indented-block.erts | 31 +++ .../fill-resources/semlf-justify.erts | 12 ++ .../fill-resources/semlf-markdown-mode.erts | 129 ++++++++++++ .../fill-resources/semlf-org-mode.erts | 122 ++++++++++++ .../semlf-punctuation-marks.erts | 13 ++ .../semlf-sentence-end-double-space.erts | 13 ++ .../textmodes/fill-resources/semlf-twice.erts | 12 ++ test/lisp/textmodes/fill-resources/semlf.erts | 88 +++++++++ test/lisp/textmodes/fill-tests.el | 90 +++++++++ 15 files changed, 882 insertions(+) create mode 100644 test/lisp/textmodes/fill-resources/semlf-c-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-column.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-indented-block.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-justify.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-org-mode.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf-twice.erts create mode 100644 test/lisp/textmodes/fill-resources/semlf.erts diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index e38d030734fb..676c1657b666 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -1583,4 +1583,44 @@ fill-individual-paragraphs-citation "") string)) +(defun fill-paragraph-semlf (&optional justify) + "Fill paragraph at or after point using semantic linefeeds. + +This function ensures that a newline character follows every +sentence, as punctuated by a period (.), exclamation mark (!), or +question mark (?). + +If JUSTIFY is non-nil (interactively, with prefix argument), justify as +well. If `sentence-end-double-space' is non-nil, then period followed +by one space does not end a sentence, so don't break a line there. The +variable `fill-column' controls the width for filling." + (interactive "P") + (save-excursion + (let ((end (progn + (fill-forward-paragraph 1) + (backward-word) + (end-of-line) + (point))) + (start (progn + (fill-forward-paragraph -1) + (forward-word) + (beginning-of-line) + (point))) + pfx) + (with-restriction start end + (let ((fill-column (point-max))) + (setq pfx (or (fill-region-as-paragraph (point-min) (point-max)) ""))) + (goto-char (point-min)) + (while (not (eobp)) + (let ((fill-prefix pfx)) + (fill-region-as-paragraph (point) + (progn (forward-sentence) (point)) + justify)) + (when (and (> (point) (line-beginning-position)) + (< (point) (line-end-position))) + (delete-horizontal-space) + (newline) + (insert pfx)))))) + t) + ;;; fill.el ends here diff --git a/test/lisp/textmodes/fill-resources/semlf-c-mode.erts b/test/lisp/textmodes/fill-resources/semlf-c-mode.erts new file mode 100644 index 000000000000..a28eb68cfc6a --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-c-mode.erts @@ -0,0 +1,183 @@ +Point-Char: | + +Name: c-mode - single-line + +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +// ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: c-mode - single-line - fill-prefix - marker + +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +// - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +// - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// - eiusmod tempor. +// - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// - veniam, quis nostrud exercitation ullamco laboris nisi ut. +// - Aliquip ex ea commodo consequat. +// - Duis aute irure dolor in reprehenderit in voluptate velit esse +// - cillum dolore eu fugiat nulla pariatur. +// - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +// - officia deserunt mollit anim id est laborum. +=-=-= + +Name: c-mode - single-line - fill-prefix - whitespace + +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +// Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +// Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +// - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +// Aliquip ex ea commodo consequat. +// Duis aute irure dolor in reprehenderit in voluptate velit esse +// cillum dolore eu fugiat nulla pariatur. +// Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +// officia deserunt mollit anim id est laborum. +=-=-= + +Name: c-mode - single-line - indented block + +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +// +// |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +// do eiusmod tempor. Incididunt ut labore et dolore magna +// aliqua. Ut enim ad minim veniam, quis nostrud exercitation +// ullamco laboris nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +=-= +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +// do eiusmod tempor. +// Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +// veniam, quis nostrud exercitation ullamco laboris nisi ut. +// +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +// eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +// enim ad minim veniam, quis nostrud exercitation ullamco laboris +// nisi ut. +=-=-= + +Name: c-mode - multi-line + +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim + * ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + */ +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + */ +=-=-= + +Name: c-mode - multi-line - fill-prefix - marker + +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + * - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + * - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + */ +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * - eiusmod tempor. + * - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * - veniam, quis nostrud exercitation ullamco laboris nisi ut. + * - Aliquip ex ea commodo consequat. + * - Duis aute irure dolor in reprehenderit in voluptate velit esse + * - cillum dolore eu fugiat nulla pariatur. + * - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + * - officia deserunt mollit anim id est laborum. + */ +=-=-= + +Name: c-mode - multi-line - fill-prefix - whitespace + +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + * Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + * Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + */ +=-= +/* + * - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + * Aliquip ex ea commodo consequat. + * Duis aute irure dolor in reprehenderit in voluptate velit esse + * cillum dolore eu fugiat nulla pariatur. + * Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + * officia deserunt mollit anim id est laborum. + */ +=-=-= + +Name: c-mode - multi-line - indented block + +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + * + * |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + * do eiusmod tempor. Incididunt ut labore et dolore magna + * aliqua. Ut enim ad minim veniam, quis nostrud exercitation + * ullamco laboris nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + */ +=-= +/* + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + * do eiusmod tempor. + * Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + * veniam, quis nostrud exercitation ullamco laboris nisi ut. + * + * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + * eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + * enim ad minim veniam, quis nostrud exercitation ullamco laboris + * nisi ut. + */ +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts b/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts new file mode 100644 index 000000000000..fe71ee32c1aa --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts @@ -0,0 +1,87 @@ +Point-Char: | + +Name: emacs-lisp-mode + +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +;; ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: emacs-lisp-mode - fill-prefix - marker + +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; - Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +;; - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; - eiusmod tempor. +;; - Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; - veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; - Aliquip ex ea commodo consequat. +;; - Duis aute irure dolor in reprehenderit in voluptate velit esse +;; - cillum dolore eu fugiat nulla pariatur. +;; - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +;; - officia deserunt mollit anim id est laborum. +=-=-= + +Name: emacs-lisp-mode - fill-prefix - whitespace + +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +;; Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +;; - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. +;; Aliquip ex ea commodo consequat. +;; Duis aute irure dolor in reprehenderit in voluptate velit esse +;; cillum dolore eu fugiat nulla pariatur. +;; Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +;; officia deserunt mollit anim id est laborum. +=-=-= + +Name: emacs-lisp-mode - indented block + +The `fill-forward-paragraph' function jumps to the beginning/end of +the comment. + +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. + +;; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +;; do eiusmod tempor. Incididunt ut labore et dolore magna +;; aliqua. Ut enim ad minim veniam, quis nostrud exercitation +;; ullamco laboris nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. +=-= +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed +;; do eiusmod tempor. +;; Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +;; veniam, quis nostrud exercitation ullamco laboris nisi ut. + +;; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +;; eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut +;; enim ad minim veniam, quis nostrud exercitation ullamco laboris +;; nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-column.erts b/test/lisp/textmodes/fill-resources/semlf-fill-column.erts new file mode 100644 index 000000000000..20db7b1f9c5b --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-column.erts @@ -0,0 +1,15 @@ +Name: fill-column + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, +consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore +magna aliqua. Ut enim ad minim +veniam, quis nostrud exercitation +ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts b/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts new file mode 100644 index 000000000000..467e7401cf50 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts @@ -0,0 +1,12 @@ +Name: fill-paragraph-function + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts b/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts new file mode 100644 index 000000000000..e067eff69701 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts @@ -0,0 +1,35 @@ +Name: fill-prefix - marker + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +- eiusmod tempor. +- Incididunt ut labore et dolore magna aliqua. Ut enim ad minim +- veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. +- Duis aute irure dolor in reprehenderit in voluptate velit esse +- cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui +- officia deserunt mollit anim id est laborum. +=-=-= + +Name: fill-prefix - whitespace + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + Aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-indented-block.erts b/test/lisp/textmodes/fill-resources/semlf-indented-block.erts new file mode 100644 index 000000000000..e483567c6ab3 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-indented-block.erts @@ -0,0 +1,31 @@ +Point-Char: | + +Name: indented block + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-justify.erts b/test/lisp/textmodes/fill-resources/semlf-justify.erts new file mode 100644 index 000000000000..3a951b7ce424 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-justify.erts @@ -0,0 +1,12 @@ +Name: justify + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts b/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts new file mode 100644 index 000000000000..7257708c245d --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts @@ -0,0 +1,129 @@ +Point-Char: | + +Name: markdown-mode + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - one single-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - multiple single-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-=-= + +Name: markdown-mode - list - one multi-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - list - multiple multi-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= + +Name: markdown-mode - list - short sentence in multi-line item + +=-= +- Lorem ipsum dolor. Sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor. + Sit amet, consectetur adipiscing elit, sed do eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: markdown-mode - indented block +Skip: t + +TODO - In `markdown-mode', the `fill-forward-paragraph' function +ignores code blocks. We should reach out to the `markdown-mode' +maintainer(s) to understand the reason for this and possibly suggest a +change to this behavior. This works as expected in +`markdown-ts-mode'. + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-org-mode.erts b/test/lisp/textmodes/fill-resources/semlf-org-mode.erts new file mode 100644 index 000000000000..81dd4841de94 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-org-mode.erts @@ -0,0 +1,122 @@ +Point-Char: | + +Name: org-mode + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - one single-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - multiple single-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +=-=-= + +Name: org-mode - list - one multi-line item + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - list - multiple multi-line items + +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-= +- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +- Aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. +- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui + officia deserunt mollit anim id est laborum. +=-=-= + +Name: org-mode - list - short sentence in multi-line item + +=-= +- Lorem ipsum dolor. Sit amet, consectetur adipiscing elit, sed do + eiusmod tempor. Incididunt ut labore et dolore magn a aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut. +=-= +- Lorem ipsum dolor. + Sit amet, consectetur adipiscing elit, sed do eiusmod tempor. + Incididunt ut labore et dolore magn a aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: org-mode - indented block + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. Incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor. + Incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts b/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts new file mode 100644 index 000000000000..5346216e9f9c --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts @@ -0,0 +1,13 @@ +Name: punctuation marks + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua! Ut enim +ad minim veniam? Quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua! +Ut enim ad minim veniam? +Quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts b/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts new file mode 100644 index 000000000000..a01beed0f665 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts @@ -0,0 +1,13 @@ +Name: sentence-end-double-space + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris +nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf-twice.erts b/test/lisp/textmodes/fill-resources/semlf-twice.erts new file mode 100644 index 000000000000..862dda6e27eb --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf-twice.erts @@ -0,0 +1,12 @@ +Name: fill twice + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-resources/semlf.erts b/test/lisp/textmodes/fill-resources/semlf.erts new file mode 100644 index 000000000000..f3e331cd9381 --- /dev/null +++ b/test/lisp/textmodes/fill-resources/semlf.erts @@ -0,0 +1,88 @@ +Point-Char: | + +Name: beginning of buffer + +=-= +|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: second paragraph + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. +=-=-= + +Name: end of buffer + +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.| +=-= +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. Incididunt ut labore et dolore magna aliqua. Ut enim +ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor. +Incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, +quis nostrud exercitation ullamco laboris nisi ut. +=-=-= diff --git a/test/lisp/textmodes/fill-tests.el b/test/lisp/textmodes/fill-tests.el index 6e079973100e..afd17c52dcd5 100644 --- a/test/lisp/textmodes/fill-tests.el +++ b/test/lisp/textmodes/fill-tests.el @@ -28,6 +28,7 @@ ;;; Code: (require 'ert) +(require 'ert-x) (ert-deftest fill-test-no-fill-polish-nobreak-p nil "Tests of the `fill-polish-nobreak-p' function." @@ -121,6 +122,95 @@ test-fill-haskell ;; w "))) +(ert-deftest fill-test-fill-paragraph-semlf () + "Test the `fill-paragraph-semlf' function." + (ert-test-erts-file (ert-resource-file "semlf.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-paragraph-function () + "Test `fill-paragraph-semlf' as `fill-paragraph-function'." + (ert-test-erts-file (ert-resource-file "semlf-fill-paragraph-function.erts") + (lambda () + (setq-local fill-paragraph-function #'fill-paragraph-semlf) + (fill-paragraph)))) + +(ert-deftest fill-test-fill-paragraph-semlf-justify () + "Test the JUSTIFY parameter of the `fill-paragraph-semlf' function." + (ert-test-erts-file (ert-resource-file "semlf-justify.erts") + (lambda () + (fill-paragraph-semlf 'justify)))) + +(ert-deftest fill-test-fill-paragraph-semlf-sentence-end-double-space () + "Test the `fill-paragraph-semlf' function with `sentence-end-double-space'." + (ert-test-erts-file (ert-resource-file "semlf-sentence-end-double-space.erts") + (lambda () + (setq-local sentence-end-double-space nil) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-column () + "Test the `fill-paragraph-semlf' function with `fill-column'." + (ert-test-erts-file (ert-resource-file "semlf-fill-column.erts") + (lambda () + (setq-local fill-column 35) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-punctuation-marks () + "Test the `fill-paragraph-semlf' function with different punctuation marks." + (ert-test-erts-file (ert-resource-file "semlf-punctuation-marks.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-twice () + "Test to run the `fill-paragraph-semlf' function twice." + (ert-test-erts-file (ert-resource-file "semlf-twice.erts") + (lambda () + (goto-char (point-min)) + (fill-paragraph-semlf) + (goto-char (point-min)) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-fill-prefix () + "Test the `fill-paragraph-semlf' function with different fill prefixes." + (ert-test-erts-file (ert-resource-file "semlf-fill-prefix.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-indented-block () + "Test the `fill-paragraph-semlf' function with an indented block." + (ert-test-erts-file (ert-resource-file "semlf-indented-block.erts") + (lambda () + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-emacs-lisp-mode () + "Test the `fill-paragraph-semlf' function with `emacs-lisp-mode'." + (ert-test-erts-file (ert-resource-file "semlf-emacs-lisp-mode.erts") + (lambda () + (emacs-lisp-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-c-mode () + "Test the `fill-paragraph-semlf' function with `c-mode'." + (ert-test-erts-file (ert-resource-file "semlf-c-mode.erts") + (lambda () + (c-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-org-mode () + "Test the `fill-paragraph-semlf' function with `org-mode'." + (ert-test-erts-file (ert-resource-file "semlf-org-mode.erts") + (lambda () + (org-mode) + (fill-paragraph-semlf)))) + +(ert-deftest fill-test-fill-paragraph-semlf-markdown-mode () + "Test the `fill-paragraph-semlf' function with `markdown-mode'." + (skip-unless (functionp 'markdown-mode)) + (ert-test-erts-file (ert-resource-file "semlf-markdown-mode.erts") + (lambda () + (markdown-mode) + (fill-paragraph-semlf)))) + (provide 'fill-tests) ;;; fill-tests.el ends here -- 2.49.0 --=-=-=--
Roi Martin <jroi.martin@HIDDEN>
:mbork@HIDDEN, bug-gnu-emacs@HIDDEN
.
Full text available.mbork@HIDDEN, bug-gnu-emacs@HIDDEN
:bug#78561
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.