Re: [NonGNU ELPA] New package: tabspaces
Philip Kaludercic <[email protected]> Sat, 01 Aug 2026 13:59:32 +0000
| Newsgroups | gmane.emacs.devel |
|---|---|
| Message-ID | <[email protected]> |
(I've added emacs-devel back to the CC's so others can follow along) Colin McLear <[email protected]> writes: > Hi Philip, > > Thanks so much for the careful review and quick reply. Your > suggestions were very helpful and taught me a few things. > I've applied nearly all of it, pushed as commit 221484c on the > Codeberg repo: [... you don't have to repeat everything I wrote ;)] Out of curiosity, since I don't know much about this, your commit message ends with Claude-Session: https://claude.ai/code/session_019AtEULWCQRLrDCkm7p8KyU but the link doesn't give me anything when I open it. Is this supposed to be a public URL? (Also, your usage of AI precludes the package from being added to GNU ELPA for now, so I'll regard that as a suitable explanation for choice of NonGNU ELPA over GNU ELPA.) > > Your questions: > > Autoloaded internal functions: no good reason, just leftovers. The > cookies are removed. > > tab-bar-tabs vs. the variable: good eye, though I harmonized in > the other direction. tab-bar-tabs is the default value of > tab-bar-tabs-function and reads the frame parameter directly, so > calling it would bypass a customized provider. > tabspaces--list-tabspaces now goes through the variable, and the > places you flagged call it. > > Project-name uniqueness: basename collisions are real. The main > entry point (tabspaces-open-or-create-project-and-workspace) > resolves them by renaming the colliding tab to a "name (parent/dir)" > form and tracking paths in tabspaces-project-tab-map. In the > tab-bar-tab-name-function path a duplicate name is cosmetic only; > nothing keys off it. OK, that sounds good. > I didn't take two of your suggestions; here is my reasoning: > > key-sequence: the option's value is a kbd-syntax string handed to kbd > when the keymap is built. The key-sequence widget's external value is > the raw key sequence, so the current default and existing user > settings > like "C-c TAB" would be misread as literal characters. When the > package > can require Emacs 28+ I'll switch to the `key' type, whose value stays > a > kbd-format string. Alternatively, I could drop Emacs 27 now, though > I'm > not sure if that would leave any significant user base out in the > cold. > It might make sense though. Correct me if I'm wrong, but NonGNU ELPA > ships with Emacs 28.1 and later, so every user who installs tabspaces > from the archive is on 28+ by definition. The only people a bump to > 28.1 > could strand are MELPA users still on 27, and Emacs 28.1 is over four > years old at this point. So maybe it is time. Let me know what you > think. Ah, my bad. But in that case, why not just change the user option to be an actual key binding, ie. the default value is (kbd "C-c TAB"), instead of a string that denotes a binding? > file-equal-p: pr-dir is compared against the sentinel completion > entry "... (choose a dir)" rather than a file name, so equal is the > right test here (this mirrors project-prompt-project-dir in > project.el). OK, I missed that context. Adding a comment might help other readers in the future from making that mistake. > As for GNU ELPA: My thinking was that the package has accumulated over > a > dozen outside contributors and I haven't collected FSF copyright > assignments from them, so GNU ELPA isn't an option without tracking > all > of them down, which I (perhaps lazily) don't particulary want to spend > the time doing. I'm open to an alternative view, however, so please do > let me know if you think otherwise. That is also a fair explanation. I just want to make sure it was not dismissed a-priori as there are some people who either assume that it is not possible to have a package added to ELPA without a certain reputation or think that they cannot maintain the package on their own as soon as it has been added to ELPA, none of which is true. > Thanks again, > Colin