Subject: bug#58839: [Patch] Re: bug#58839: 29.0.50; project-kill-buffer fails when Eglot is running

From: Philip Kaludercic <[email-masked]>
Date: Wed, 02 Nov 2022 11:31:11 +0000

João Távora <[email-masked]> writes:

>>> That way you still get your mini-language, you get a much faster version
>>> of it, and you don't force your mini-language to other people who prefer
>>> just typing plain old Elisp.
>>
>> That is not the case to begin with, as the "mini-language" is just a
>> super-set of Emacs Lisp, seeing as any function is a legal word of the
>> language.  As I have said before, it just makes it easier to write
>> common operations like matching buffer names or major modes.
>
> That's not what a super-set is.  A super-set language is C++ to C,
> because C++ can compile (almost any) C program.  The mini-language is a
> DSL.  In my opinion, one that brings very few advantages, but there's no
> accounting for taste.  So the common way to do DSL's in Elisp is use the
> approach I provided.  You make them more useful, and you don't force
> people to use them.

Let B be the set of S-Expressions that `buffer-match-p' handles, and F
be the set of S-Expressions that satisfy `functionp'.  We see that

   B ∖ F ≠ ∅

as for any foo, (major-mode . foo) ∈ B, but (major-mode . foo) ∉ F.  We
see that

   F ∖ B = ∅

as every function (per `functionp') is a valid `buffer-match-p'
predicate.  Hence we conclude that B ⊋ F (strict superset).             ∎

>> be a special symbol, so I would like to avoid the possibility of this
>> leading to issues that hack to be back-hacked at some point in the
>> future.
>>
>> But this is just a matter of personal style.  I have seen you write
>> documentations strings like "[...] This docstring appeases checkdoc,
>> that's all."
>
> Ahaha, that was just a joke.  Keep documenting all your functions,
> you're very right to do so.  Trust me, don't make defvar's for
> (make-symbol).  Noone does this: it's just cruft.

Again, see the other bug report, the code I pasted in this thread was
just a sketch.