Subject: bug#68579: [PATCH] Support a local repo as URL in treesit-language-source-alist

From: Eli Zaretskii <[email-masked]>
Date: Fri, 19 Jan 2024 18:26:00 +0200

> From: Konstantin Kharlamov <[email-masked]>
> Cc: [email-masked], [email-masked]
> Date: Fri, 19 Jan 2024 19:06:59 +0300
> 
> On Fri, 2024-01-19 at 17:06 +0200, Eli Zaretskii wrote:
> > > From: Konstantin Kharlamov <[email-masked]>
> > > Cc: [email-masked], [email-masked]
> > > Date: Fri, 19 Jan 2024 17:33:03 +0300
> > > 
> > > > > > > -      (when (file-exists-p workdir)
> > > > > > > +      (when (and (not url-is-path) (file-exists-p
> > > > > > > workdir))
> > > > > > >          (delete-directory workdir t)))))
> > > > > > 
> > > > > > Why?  Does workdir have different semantics in these two use
> > > > > > cases?
> > > > > > Isn't it the directory where we cloned the repository?
> > > > > 
> > > > > When an absolute path is passed as URL, that means the user
> > > > > have
> > > > > cloned
> > > > > the repo, not us.
> > > > 
> > > > But you still clone from it into workdir, no?  treesit--git-
> > > > clone-
> > > > repo
> > > > invokes "git clone" in both cases, according to my reading of the
> > > > patch.
> > > 
> > > No, the `treesit--git-clone-repo` is located on the "else" branch
> > > of
> > > the `(if url-is-path`. That is, we do not call it when it's a local
> > > path
> > 
> > Then this assumes some kind of workflow, doesn't it?  The user must
> > first clone the repository, either via treesit.el or manually, and
> > then they can use this new feature, right?  So I guess we should
> > document this workflow somewhere?
> 
> Well, I can add some docs if you want, but the workflow per se seems
> obvious to me: you have a function that accepts a local path to repo
> and builds from it.

What I had in mind is some short description in the doc string of the
interactive command that invokes all this stuff.