* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) [not found] ` <20240918042641.56C7BC410E2@vcs2.savannah.gnu.org> @ 2024-09-18 6:31 ` Po Lu 2024-09-20 4:53 ` Yuan Fu 2024-09-22 0:59 ` Stefan Kangas 0 siblings, 2 replies; 16+ messages in thread From: Po Lu @ 2024-09-18 6:31 UTC (permalink / raw) To: emacs-devel; +Cc: Yuan Fu Yuan Fu <casouri@gmail.com> writes: > branch: emacs-30 > commit f0daa2f2153a9d250d32ac1261a6fffb30860e31 > Author: Yuan Fu <casouri@gmail.com> > Commit: Yuan Fu <casouri@gmail.com> > > Conservative heuristic for tree-sitter parser ranges (bug#73324) > > * src/treesit.c (treesit_sync_visible_region): If the parser's original > ranges don't overlap with visible region, give it a zero range, rather > than don't set any range. > * test/src/treesit-tests.el (treesit-range-fixup-after-edit): Test new > behavior. Please fill ChangeLog entries in commit messages to a width of 64 columns, not 71 or 72, as here. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-18 6:31 ` emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) Po Lu @ 2024-09-20 4:53 ` Yuan Fu 2024-09-20 6:32 ` Eli Zaretskii 2024-09-22 0:59 ` Stefan Kangas 1 sibling, 1 reply; 16+ messages in thread From: Yuan Fu @ 2024-09-20 4:53 UTC (permalink / raw) To: Po Lu; +Cc: emacs-devel > On Sep 17, 2024, at 11:31 PM, Po Lu <luangruo@yahoo.com> wrote: > > Yuan Fu <casouri@gmail.com> writes: > >> branch: emacs-30 >> commit f0daa2f2153a9d250d32ac1261a6fffb30860e31 >> Author: Yuan Fu <casouri@gmail.com> >> Commit: Yuan Fu <casouri@gmail.com> >> >> Conservative heuristic for tree-sitter parser ranges (bug#73324) >> >> * src/treesit.c (treesit_sync_visible_region): If the parser's original >> ranges don't overlap with visible region, give it a zero range, rather >> than don't set any range. >> * test/src/treesit-tests.el (treesit-range-fixup-after-edit): Test new >> behavior. > > Please fill ChangeLog entries in commit messages to a width of 64 > columns, not 71 or 72, as here. Oh ok. Got it. But 80 for the title? Yuan ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-20 4:53 ` Yuan Fu @ 2024-09-20 6:32 ` Eli Zaretskii 2024-09-20 6:44 ` Eli Zaretskii 0 siblings, 1 reply; 16+ messages in thread From: Eli Zaretskii @ 2024-09-20 6:32 UTC (permalink / raw) To: Yuan Fu; +Cc: luangruo, emacs-devel > From: Yuan Fu <casouri@gmail.com> > Date: Thu, 19 Sep 2024 21:53:40 -0700 > Cc: emacs-devel@gnu.org > > > Please fill ChangeLog entries in commit messages to a width of 64 > > columns, not 71 or 72, as here. > > Oh ok. Got it. But 80 for the title? No, 74. Because the title is also indented by a TAB in the generated ChangeLog file, and it should end up the same width as the entries. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-20 6:32 ` Eli Zaretskii @ 2024-09-20 6:44 ` Eli Zaretskii 2024-09-21 3:10 ` Yuan Fu 0 siblings, 1 reply; 16+ messages in thread From: Eli Zaretskii @ 2024-09-20 6:44 UTC (permalink / raw) To: casouri; +Cc: luangruo, emacs-devel > Date: Fri, 20 Sep 2024 09:32:44 +0300 > From: Eli Zaretskii <eliz@gnu.org> > Cc: luangruo@yahoo.com, emacs-devel@gnu.org > > > From: Yuan Fu <casouri@gmail.com> > > Date: Thu, 19 Sep 2024 21:53:40 -0700 > > Cc: emacs-devel@gnu.org > > > > > Please fill ChangeLog entries in commit messages to a width of 64 > > > columns, not 71 or 72, as here. > > > > Oh ok. Got it. But 80 for the title? > > No, 74. Because the title is also indented by a TAB in the generated ^^ Sorry, that was supposed to be 64, not 74. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-20 6:44 ` Eli Zaretskii @ 2024-09-21 3:10 ` Yuan Fu 0 siblings, 0 replies; 16+ messages in thread From: Yuan Fu @ 2024-09-21 3:10 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Po Lu, emacs-devel > On Sep 19, 2024, at 11:44 PM, Eli Zaretskii <eliz@gnu.org> wrote: > >> Date: Fri, 20 Sep 2024 09:32:44 +0300 >> From: Eli Zaretskii <eliz@gnu.org> >> Cc: luangruo@yahoo.com, emacs-devel@gnu.org >> >>> From: Yuan Fu <casouri@gmail.com> >>> Date: Thu, 19 Sep 2024 21:53:40 -0700 >>> Cc: emacs-devel@gnu.org >>> >>>> Please fill ChangeLog entries in commit messages to a width of 64 >>>> columns, not 71 or 72, as here. >>> >>> Oh ok. Got it. But 80 for the title? >> >> No, 74. Because the title is also indented by a TAB in the generated > ^^ > Sorry, that was supposed to be 64, not 74. Cool, thanks for the info! Yuan ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-18 6:31 ` emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) Po Lu 2024-09-20 4:53 ` Yuan Fu @ 2024-09-22 0:59 ` Stefan Kangas 2024-09-22 5:18 ` Eli Zaretskii 2024-09-22 5:43 ` Po Lu 1 sibling, 2 replies; 16+ messages in thread From: Stefan Kangas @ 2024-09-22 0:59 UTC (permalink / raw) To: Po Lu, emacs-devel; +Cc: Yuan Fu Po Lu <luangruo@yahoo.com> writes: > Yuan Fu <casouri@gmail.com> writes: > >> branch: emacs-30 >> commit f0daa2f2153a9d250d32ac1261a6fffb30860e31 >> Author: Yuan Fu <casouri@gmail.com> >> Commit: Yuan Fu <casouri@gmail.com> >> >> Conservative heuristic for tree-sitter parser ranges (bug#73324) >> >> * src/treesit.c (treesit_sync_visible_region): If the parser's original >> ranges don't overlap with visible region, give it a zero range, rather >> than don't set any range. >> * test/src/treesit-tests.el (treesit-range-fixup-after-edit): Test new >> behavior. > > Please fill ChangeLog entries in commit messages to a width of 64 > columns, not 71 or 72, as here. I don't want to get into another argument about this, but I don't see any problem with the above formatting, FWIW. In any case, I really don't think it is a good use of our time to police the recently introduced default of 64 columns here. We never did that before, when the default in `vc-git-log-edit-mode' was 70 characters, and there is no reason to start doing it now. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-22 0:59 ` Stefan Kangas @ 2024-09-22 5:18 ` Eli Zaretskii 2024-09-22 5:43 ` Po Lu 1 sibling, 0 replies; 16+ messages in thread From: Eli Zaretskii @ 2024-09-22 5:18 UTC (permalink / raw) To: Stefan Kangas; +Cc: luangruo, emacs-devel, casouri > From: Stefan Kangas <stefankangas@gmail.com> > Date: Sat, 21 Sep 2024 17:59:08 -0700 > Cc: Yuan Fu <casouri@gmail.com> > > In any case, I really don't think it is a good use of our time to police > the recently introduced default of 64 columns here. We never did that > before, when the default in `vc-git-log-edit-mode' was 70 characters, > and there is no reason to start doing it now. I don't police it, but when I install someone's changes, I frequently reformat the log entries to be short enough. It would be nice if I had to do this less than I do now. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-22 0:59 ` Stefan Kangas 2024-09-22 5:18 ` Eli Zaretskii @ 2024-09-22 5:43 ` Po Lu 2024-09-22 6:44 ` Yuan Fu 1 sibling, 1 reply; 16+ messages in thread From: Po Lu @ 2024-09-22 5:43 UTC (permalink / raw) To: Stefan Kangas; +Cc: emacs-devel, Yuan Fu Stefan Kangas <stefankangas@gmail.com> writes: >> Please fill ChangeLog entries in commit messages to a width of 64 >> columns, not 71 or 72, as here. > > I don't want to get into another argument about this, but I don't see > any problem with the above formatting, FWIW. > > In any case, I really don't think it is a good use of our time to police It is a good (and a exceedingly slight) use of my time. > the recently introduced default of 64 columns here. We never did that > before, when the default in `vc-git-log-edit-mode' was 70 characters, > and there is no reason to start doing it now. That point is moot when most of us were self-consciously observing this standard before it was formalized in .dir-locals.el. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-22 5:43 ` Po Lu @ 2024-09-22 6:44 ` Yuan Fu 2024-09-22 21:23 ` Kévin Le Gouguec 0 siblings, 1 reply; 16+ messages in thread From: Yuan Fu @ 2024-09-22 6:44 UTC (permalink / raw) To: Po Lu; +Cc: Stefan Kangas, emacs-devel > On Sep 21, 2024, at 10:43 PM, Po Lu <luangruo@yahoo.com> wrote: > > Stefan Kangas <stefankangas@gmail.com> writes: > >>> Please fill ChangeLog entries in commit messages to a width of 64 >>> columns, not 71 or 72, as here. >> >> I don't want to get into another argument about this, but I don't see >> any problem with the above formatting, FWIW. >> >> In any case, I really don't think it is a good use of our time to police > > It is a good (and a exceedingly slight) use of my time. > >> the recently introduced default of 64 columns here. We never did that >> before, when the default in `vc-git-log-edit-mode' was 70 characters, >> and there is no reason to start doing it now. > > That point is moot when most of us were self-consciously observing this > standard before it was formalized in .dir-locals.el. I took a look and it’s set for log-edit-mode only. It would be nice if magit can pick it up. I’m sure a lot of people (me included) use magit for developing Emacs. The only problem is magit’s commit message editing buffer doesn’t have a special major mode. It does git-commit-mode which is a minor mode, and runs git-commit-setup-hook. But I’m not sure how to edit dir-locals to set fill-column using a hook or minor mode. Yuan ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-22 6:44 ` Yuan Fu @ 2024-09-22 21:23 ` Kévin Le Gouguec 2024-09-23 8:27 ` Robert Pluim 2024-09-23 11:49 ` Eli Zaretskii 0 siblings, 2 replies; 16+ messages in thread From: Kévin Le Gouguec @ 2024-09-22 21:23 UTC (permalink / raw) To: Yuan Fu; +Cc: Po Lu, Stefan Kangas, emacs-devel Yuan Fu <casouri@gmail.com> writes: >> On Sep 21, 2024, at 10:43 PM, Po Lu <luangruo@yahoo.com> wrote: >> >> Stefan Kangas <stefankangas@gmail.com> writes: >> >>>> Please fill ChangeLog entries in commit messages to a width of 64 >>>> columns, not 71 or 72, as here. >>> >>> I don't want to get into another argument about this, but I don't see >>> any problem with the above formatting, FWIW. >>> >>> In any case, I really don't think it is a good use of our time to police >> >> It is a good (and a exceedingly slight) use of my time. >> >>> the recently introduced default of 64 columns here. We never did that >>> before, when the default in `vc-git-log-edit-mode' was 70 characters, >>> and there is no reason to start doing it now. >> >> That point is moot when most of us were self-consciously observing this >> standard before it was formalized in .dir-locals.el. > > I took a look and it’s set for log-edit-mode only. It would be nice if magit can pick it up. I’m sure a lot of people (me included) use magit for developing Emacs. The only problem is magit’s commit message editing buffer doesn’t have a special major mode. It does git-commit-mode which is a minor mode, and runs git-commit-setup-hook. But I’m not sure how to edit dir-locals to set fill-column using a hook or minor mode. Kludge from my personal config reproduced below¹, if it can help. It adds a function to git-commit-setup-hook that sets fill-column when it detects that one of the remotes is Emacs's Savannah repo. Thinking more about it, and considering the existence of the git-commit-major-mode variable, I guess one could also 1) define a major mode derived from text-mode in their personal config; 2) add a .dir-locals-2.el file to their Emacs checkout that sets git-commit-major-mode to that-new-mode, and fill-column to *checks config* 63 *checks discussion* ^W64 *ponders git-blaming to see what Past Self has to say for himself* *looks at the time* *you're off the hook, Past Self* for that-new-mode. Thinking *more* about it, setting git-commit-major-mode to log-edit-mode in .dir-locals-2.el sounds like TRT in theory; in practice though I bet it would lead to "interesting" fireworks². ¹ ``` (defun my/git-upstreams () ;; TODO: memoize, perhaps? (seq-uniq (seq-keep (lambda (remote-desc) (and (string-match "\\`.*\t\\(.*\\) (fetch)\\'" remote-desc) (match-string 1 remote-desc))) (process-lines "git" "remote" "-v")))) (defun my/emacs-repo-p (upstreams) "Guess whether we are working in the Emacs repository. UPSTREAMS is a list of fetch URLs." (member "https://git.savannah.gnu.org/git/emacs.git" upstreams)) (defvar my/git-commit-fill-columns '((my/emacs-repo-p . 63))) (cl-defun my/git-commit-maybe-set-fill-column () (let ((remotes (my/git-upstreams))) (pcase-dolist (`(,pred . ,column) my/git-commit-fill-columns) (when (funcall pred remotes) (cl-return-from my/git-commit-maybe-set-fill-column (setq fill-column column)))))) (add-hook 'git-commit-setup-hook 'my/git-commit-maybe-set-fill-column) ``` ² Off the top of my head: * bindings conflicting, e.g. log-edit-done vs with-editor-finish: guessing the minor mode wins in that case… 🫣 * log-edit-generate-changelog-from-diff being ineffectual because log-edit-diff-function is not set up: something to kludge around, though Magit does also provide magit-commit-add-log from the diff buffer 🤷 ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-22 21:23 ` Kévin Le Gouguec @ 2024-09-23 8:27 ` Robert Pluim 2024-09-23 11:49 ` Eli Zaretskii 1 sibling, 0 replies; 16+ messages in thread From: Robert Pluim @ 2024-09-23 8:27 UTC (permalink / raw) To: Kévin Le Gouguec; +Cc: Yuan Fu, Po Lu, Stefan Kangas, emacs-devel >>>>> On Sun, 22 Sep 2024 23:23:06 +0200, Kévin Le Gouguec <kevin.legouguec@gmail.com> said: Kévin> * bindings conflicting, e.g. log-edit-done vs with-editor-finish: Kévin> guessing the minor mode wins in that case… 🫣 Kévin> * log-edit-generate-changelog-from-diff being ineffectual because Kévin> log-edit-diff-function is not set up: something to kludge around, though Kévin> Magit does also provide magit-commit-add-log from the diff buffer 🤷 I set the fill-column to 64 from git-commit-setup-hook, and also have it run 'magit-generate-changelog', which works from the commit buffer. Robert -- ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-22 21:23 ` Kévin Le Gouguec 2024-09-23 8:27 ` Robert Pluim @ 2024-09-23 11:49 ` Eli Zaretskii 2024-09-23 17:24 ` Kévin Le Gouguec 1 sibling, 1 reply; 16+ messages in thread From: Eli Zaretskii @ 2024-09-23 11:49 UTC (permalink / raw) To: Kévin Le Gouguec; +Cc: casouri, luangruo, stefankangas, emacs-devel > From: Kévin Le Gouguec <kevin.legouguec@gmail.com> > Cc: Po Lu <luangruo@yahoo.com>, Stefan Kangas <stefankangas@gmail.com>, > emacs-devel@gnu.org > Date: Sun, 22 Sep 2024 23:23:06 +0200 > > Yuan Fu <casouri@gmail.com> writes: > > > I took a look and it’s set for log-edit-mode only. It would be nice if magit can pick it up. I’m sure a lot of people (me included) use magit for developing Emacs. The only problem is magit’s commit message editing buffer doesn’t have a special major mode. It does git-commit-mode which is a minor mode, and runs git-commit-setup-hook. But I’m not sure how to edit dir-locals to set fill-column using a hook or minor mode. > > Kludge from my personal config reproduced below¹, if it can help. It > adds a function to git-commit-setup-hook that sets fill-column when it > detects that one of the remotes is Emacs's Savannah repo. > > Thinking more about it, and considering the existence of the > git-commit-major-mode variable, I guess one could also > > 1) define a major mode derived from text-mode in their personal config; > 2) add a .dir-locals-2.el file to their Emacs checkout that sets > git-commit-major-mode to that-new-mode, and fill-column to > *checks config* > 63 > *checks discussion* > ^W64 > *ponders git-blaming to see what Past Self has to say for himself* > *looks at the time* > *you're off the hook, Past Self* > for that-new-mode. Isn't it a bug in magit that it doesn't do something like that already? Fill column is just the tip of an iceberg, because a log message is generally human-readable text, and so should benefit from other features of Text mode and its descendants, like spell-checking etc. Perhaps magit should simply use log-edit-mode? Should we perhaps submit a feature request to the magit developers? ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-23 11:49 ` Eli Zaretskii @ 2024-09-23 17:24 ` Kévin Le Gouguec 2024-09-23 18:24 ` Eli Zaretskii 0 siblings, 1 reply; 16+ messages in thread From: Kévin Le Gouguec @ 2024-09-23 17:24 UTC (permalink / raw) To: Eli Zaretskii; +Cc: casouri, luangruo, stefankangas, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Kévin Le Gouguec <kevin.legouguec@gmail.com> >> Cc: Po Lu <luangruo@yahoo.com>, Stefan Kangas <stefankangas@gmail.com>, >> emacs-devel@gnu.org >> Date: Sun, 22 Sep 2024 23:23:06 +0200 >> >> Yuan Fu <casouri@gmail.com> writes: >> >> > I took a look and it’s set for log-edit-mode only. It would be nice if magit can pick it up. I’m sure a lot of people (me included) use magit for developing Emacs. The only problem is magit’s commit message editing buffer doesn’t have a special major mode. It does git-commit-mode which is a minor mode, and runs git-commit-setup-hook. But I’m not sure how to edit dir-locals to set fill-column using a hook or minor mode. >> >> Kludge from my personal config reproduced below¹, if it can help. It >> adds a function to git-commit-setup-hook that sets fill-column when it >> detects that one of the remotes is Emacs's Savannah repo. >> >> Thinking more about it, and considering the existence of the >> git-commit-major-mode variable, I guess one could also >> >> 1) define a major mode derived from text-mode in their personal config; >> 2) add a .dir-locals-2.el file to their Emacs checkout that sets >> git-commit-major-mode to that-new-mode, and fill-column to >> *checks config* >> 63 >> *checks discussion* >> ^W64 >> *ponders git-blaming to see what Past Self has to say for himself* >> *looks at the time* >> *you're off the hook, Past Self* >> for that-new-mode. > > Isn't it a bug in magit that it doesn't do something like that > already? Fill column is just the tip of an iceberg, because a log > message is generally human-readable text, and so should benefit from > other features of Text mode and its descendants, like spell-checking > etc. It does try to do "something like that"; AFAIU the two main knobs are: * git-commit-major-mode lets users pick their preferred text-adjacent major mode (or it lets maintainers choose it, e.g. setting that variable in a checked-in .dir-locals.el; the default is text-mode), * git-commit-setup-hook lets users turn on useful log-editing features; the defcustom includes various opt-in functions. Robert mentioned magit-generate-changelog; there's also git-commit-turn-on-flyspell and bug-reference-mode. (There's also a mysterious git-commit-setup-changelog-support that checks for (fboundp 'log-indent-fill-entry) ; New in Emacs 27 but I can't find any trace of log-indent-fill-entry in the tree so not sure what that's about) So what's "missing" from Magit's git-commit.el is a knob dedicated to the fill-column for commit messages. Quotes around "missing" because a dedicated git-commit-fill-column defcustom used to exist, but was eventually removed: <https://github.com/magit/magit/issues/2848> (My takeaway skimming that thread: fill-column ought be enough) > Perhaps magit should simply use log-edit-mode? > > Should we perhaps submit a feature request to the magit developers? Maybe, though if core contributors are already using Magit and the only "clue" is the occasional mis-filled changelog, perhaps the status quo is not so bad, if we have a reliable answer to that problem. (I realize my previous message might have made it look inordinately hard to make git-commit do TRT for Emacs changelogs, but TBH a good chunk of that message was theory-crafting, and another chunk was my convoluted personal config; I think Robert's answer shows things can be simpler) ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-23 17:24 ` Kévin Le Gouguec @ 2024-09-23 18:24 ` Eli Zaretskii 2024-09-24 7:10 ` Kévin Le Gouguec 0 siblings, 1 reply; 16+ messages in thread From: Eli Zaretskii @ 2024-09-23 18:24 UTC (permalink / raw) To: Kévin Le Gouguec; +Cc: casouri, luangruo, stefankangas, emacs-devel > From: Kévin Le Gouguec <kevin.legouguec@gmail.com> > Cc: casouri@gmail.com, luangruo@yahoo.com, stefankangas@gmail.com, > emacs-devel@gnu.org > Date: Mon, 23 Sep 2024 19:24:45 +0200 > > > Isn't it a bug in magit that it doesn't do something like that > > already? Fill column is just the tip of an iceberg, because a log > > message is generally human-readable text, and so should benefit from > > other features of Text mode and its descendants, like spell-checking > > etc. > > It does try to do "something like that"; AFAIU the two main knobs are: > > * git-commit-major-mode lets users pick their preferred text-adjacent > major mode (or it lets maintainers choose it, e.g. setting that variable > in a checked-in .dir-locals.el; the default is text-mode), > > * git-commit-setup-hook lets users turn on useful log-editing features; > the defcustom includes various opt-in functions. Robert mentioned > magit-generate-changelog; there's also git-commit-turn-on-flyspell and > bug-reference-mode. > > (There's also a mysterious git-commit-setup-changelog-support that > checks for > > (fboundp 'log-indent-fill-entry) ; New in Emacs 27 > > but I can't find any trace of log-indent-fill-entry in the tree so not > sure what that's about) That sounds to me like a heap of patches when just having a full-blown mode like VC does would have done the job cleanly and seamlessly. > So what's "missing" from Magit's git-commit.el is a knob dedicated to > the fill-column for commit messages. I'm quite sure that soon enough someone will come with more "missing" stuff. I still think they should use something very similar to log-edit-mode there. It doesn't make much sense not to. E.g., the .dir-locals settings would have been in effect for magit users as well. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-23 18:24 ` Eli Zaretskii @ 2024-09-24 7:10 ` Kévin Le Gouguec 2024-09-26 7:28 ` Yuan Fu 0 siblings, 1 reply; 16+ messages in thread From: Kévin Le Gouguec @ 2024-09-24 7:10 UTC (permalink / raw) To: Eli Zaretskii; +Cc: casouri, luangruo, stefankangas, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Kévin Le Gouguec <kevin.legouguec@gmail.com> >> Cc: casouri@gmail.com, luangruo@yahoo.com, stefankangas@gmail.com, >> emacs-devel@gnu.org >> Date: Mon, 23 Sep 2024 19:24:45 +0200 >> >> > Isn't it a bug in magit that it doesn't do something like that >> > already? Fill column is just the tip of an iceberg, because a log >> > message is generally human-readable text, and so should benefit from >> > other features of Text mode and its descendants, like spell-checking >> > etc. >> >> It does try to do "something like that"; AFAIU the two main knobs are: >> >> * git-commit-major-mode lets users pick their preferred text-adjacent >> major mode (or it lets maintainers choose it, e.g. setting that variable >> in a checked-in .dir-locals.el; the default is text-mode), >> >> * git-commit-setup-hook lets users turn on useful log-editing features; >> the defcustom includes various opt-in functions. Robert mentioned >> magit-generate-changelog; there's also git-commit-turn-on-flyspell and >> bug-reference-mode. >> >> (There's also a mysterious git-commit-setup-changelog-support that >> checks for >> >> (fboundp 'log-indent-fill-entry) ; New in Emacs 27 >> >> but I can't find any trace of log-indent-fill-entry in the tree so not >> sure what that's about) > > That sounds to me like a heap of patches when just having a full-blown > mode like VC does would have done the job cleanly and seamlessly. That's how it was 10 years ago: there was a single major mode, git-commit-mode, which "did it all" (setup emacsclient as git's EDITOR, setup font-lock, provide key bindings, etc). Then the decision was taken to move to configurable-major-mode-plus-hook. The commit log for that change¹ focuses on the technical details over the motivation, but looking at the current defcustom's selection of major modes, I guess the use-case is obvious - let people pick their preferred markup for authoring messages, and tuck all the "VC-specific extra features" under a dedicated minor mode & hook. >> So what's "missing" from Magit's git-commit.el is a knob dedicated to >> the fill-column for commit messages. > > I'm quite sure that soon enough someone will come with more "missing" > stuff. I still think they should use something very similar to > log-edit-mode there. It doesn't make much sense not to. E.g., the > .dir-locals settings would have been in effect for magit users as > well. Right. And in principle users should be able to opt-in to log-edit-mode (or vc-git-log-edit-mode?) by configuring git-commit-major-mode. I just don't expect that to be seamless - because (AFAIR; apologies for inaccuracies) log-edit-mode depends on callbacks set by vc-$BACKEND.el, which in turn depend on bookkeeping usually managed by vc.el commands; Magit steers mostly clear of that bookkeeping. tl;dr I don't disagree but I don't see log-edit-mode integration into Magit to be the path of least resistance. (That shouldn't stop anyone from trying though, or submit a feature request; this is all just my 2¢ as a {heavy Magit,occasional VC} user) ¹ 2014-03-18 "git-commit: allow use of arbitrary major mode" (feb58998) https://github.com/magit/magit/commit/feb58998fc128824728959695a9448e7752c2ca3.patch ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) 2024-09-24 7:10 ` Kévin Le Gouguec @ 2024-09-26 7:28 ` Yuan Fu 0 siblings, 0 replies; 16+ messages in thread From: Yuan Fu @ 2024-09-26 7:28 UTC (permalink / raw) To: Kévin Le Gouguec; +Cc: Eli Zaretskii, luangruo, stefankangas, emacs-devel > On Sep 24, 2024, at 12:10 AM, Kévin Le Gouguec <kevin.legouguec@gmail.com> wrote: > > Eli Zaretskii <eliz@gnu.org> writes: > >>> From: Kévin Le Gouguec <kevin.legouguec@gmail.com> >>> Cc: casouri@gmail.com, luangruo@yahoo.com, stefankangas@gmail.com, >>> emacs-devel@gnu.org >>> Date: Mon, 23 Sep 2024 19:24:45 +0200 >>> >>>> Isn't it a bug in magit that it doesn't do something like that >>>> already? Fill column is just the tip of an iceberg, because a log >>>> message is generally human-readable text, and so should benefit from >>>> other features of Text mode and its descendants, like spell-checking >>>> etc. >>> >>> It does try to do "something like that"; AFAIU the two main knobs are: >>> >>> * git-commit-major-mode lets users pick their preferred text-adjacent >>> major mode (or it lets maintainers choose it, e.g. setting that variable >>> in a checked-in .dir-locals.el; the default is text-mode), >>> >>> * git-commit-setup-hook lets users turn on useful log-editing features; >>> the defcustom includes various opt-in functions. Robert mentioned >>> magit-generate-changelog; there's also git-commit-turn-on-flyspell and >>> bug-reference-mode. >>> >>> (There's also a mysterious git-commit-setup-changelog-support that >>> checks for >>> >>> (fboundp 'log-indent-fill-entry) ; New in Emacs 27 >>> >>> but I can't find any trace of log-indent-fill-entry in the tree so not >>> sure what that's about) >> >> That sounds to me like a heap of patches when just having a full-blown >> mode like VC does would have done the job cleanly and seamlessly. > > That's how it was 10 years ago: there was a single major mode, > git-commit-mode, which "did it all" (setup emacsclient as git's EDITOR, > setup font-lock, provide key bindings, etc). Then the decision was > taken to move to configurable-major-mode-plus-hook. > > The commit log for that change¹ focuses on the technical details over > the motivation, but looking at the current defcustom's selection of > major modes, I guess the use-case is obvious - let people pick their > preferred markup for authoring messages, and tuck all the "VC-specific > extra features" under a dedicated minor mode & hook. > >>> So what's "missing" from Magit's git-commit.el is a knob dedicated to >>> the fill-column for commit messages. >> >> I'm quite sure that soon enough someone will come with more "missing" >> stuff. I still think they should use something very similar to >> log-edit-mode there. It doesn't make much sense not to. E.g., the >> .dir-locals settings would have been in effect for magit users as >> well. > > Right. And in principle users should be able to opt-in to log-edit-mode > (or vc-git-log-edit-mode?) by configuring git-commit-major-mode. > > I just don't expect that to be seamless - because (AFAIR; apologies for > inaccuracies) log-edit-mode depends on callbacks set by vc-$BACKEND.el, > which in turn depend on bookkeeping usually managed by vc.el commands; > Magit steers mostly clear of that bookkeeping. > > tl;dr I don't disagree but I don't see log-edit-mode integration into > Magit to be the path of least resistance. > > (That shouldn't stop anyone from trying though, or submit a feature > request; this is all just my 2¢ as a {heavy Magit,occasional VC} user) > > > ¹ 2014-03-18 "git-commit: allow use of arbitrary major mode" (feb58998) > https://github.com/magit/magit/commit/feb58998fc128824728959695a9448e7752c2ca3.patch I was hoping for some config that we can put in .dir-locals.el that works automatically for magit. That should prevent a lot of future corrections on fill column. That doesn’t seem trivial, so I guess I’ll just stick something into my config and call it a day :-) Yuan ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2024-09-26 7:28 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <172663360099.23732.9998257239822693024@vcs2.savannah.gnu.org> [not found] ` <20240918042641.56C7BC410E2@vcs2.savannah.gnu.org> 2024-09-18 6:31 ` emacs-30 f0daa2f2153: Conservative heuristic for tree-sitter parser ranges (bug#73324) Po Lu 2024-09-20 4:53 ` Yuan Fu 2024-09-20 6:32 ` Eli Zaretskii 2024-09-20 6:44 ` Eli Zaretskii 2024-09-21 3:10 ` Yuan Fu 2024-09-22 0:59 ` Stefan Kangas 2024-09-22 5:18 ` Eli Zaretskii 2024-09-22 5:43 ` Po Lu 2024-09-22 6:44 ` Yuan Fu 2024-09-22 21:23 ` Kévin Le Gouguec 2024-09-23 8:27 ` Robert Pluim 2024-09-23 11:49 ` Eli Zaretskii 2024-09-23 17:24 ` Kévin Le Gouguec 2024-09-23 18:24 ` Eli Zaretskii 2024-09-24 7:10 ` Kévin Le Gouguec 2024-09-26 7:28 ` Yuan Fu
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).