all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Michael Albinus <michael.albinus@gmx.de>
To: Danny Freeman <danny@dfreeman.email>
Cc: "Felician Nemeth" <felician.nemeth@gmail.com>,
	58790@debbugs.gnu.org, "João Távora" <joaotavora@gmail.com>,
	"Dmitry Gutov" <dgutov@yandex.ru>, "Eli Zaretskii" <eliz@gnu.org>,
	"Stefan Kangas" <stefankangas@gmail.com>
Subject: bug#58790: Eglot URI parsing bug when using clojure-lsp server
Date: Fri, 02 Dec 2022 17:14:01 +0100	[thread overview]
Message-ID: <87o7sl6awm.fsf@gmx.de> (raw)
In-Reply-To: <87v8nejy32.fsf@dfreeman.email> (Danny Freeman's message of "Wed,  16 Nov 2022 17:59:08 -0500")

Danny Freeman <danny@dfreeman.email> writes:

Hi Danny,

Sorry for being late, it took me a while to find a free time slot.

>> url-handlers.el supports already non-canonical schemes, see
>> `url-tramp-protocols'. We could add "jar" and "zipfile" to another user
>> option, `url-archive-protocols', and let tramp-archive.el do the job.
>
> I think this could be a nice thing to include in emacs itself.
> I have already implemented this funcitonality in a package on elpa:
> https://elpa.gnu.org/packages/jarchive.html if you want to look.

Well, the jar: and zipfile: semantics is a little bit different from
what url-handlers supports. So let's continue with your package ATM; we
could replace it by an implementation in url-handlers later on if we
like.

I gave your package a short review, it looks nice. Testing it together
with eglot and the recipe below works nicely. Just one recommendation: I
would add in jarchive--file-name-handler

--8<---------------cut here---------------start------------->8---
          ((eq op 'abbreviate-file-name) uri)
          ((eq op 'make-auto-save-file-name) nil)
          ((eq op 'vc-registered) nil)
--8<---------------cut here---------------end--------------->8---

Eval prior your tests

--8<---------------cut here---------------start------------->8---
(trace-function 'jarchive--file-name-handler)
--8<---------------cut here---------------end--------------->8---

and you'll see what I mean in buffer *trace-output*.

>> Danny would, probably, but the recipe would involve a particular LSP server and clojure toolchain, i think.
>
> Indeed I do :)

I've prepared the test as indicated.

> Running `M-x eglot`
> Then `M-x xref-find-definitions` over the symbol `inc` should reproduce
> the error.

Well, running the test together with your package looks fine. What I
don't understand is the following sequence:

--8<---------------cut here---------------start------------->8---
[client-request] (id:6) Fri Dec  2 17:04:01 2022:
(:jsonrpc "2.0" :id 6 :method "textDocument/definition" :params
	  (:textDocument
	   (:uri "file:///usr/local/src/eglot-xref-to-jar-repo/src/user.clj")
	   :position
	   (:line 3 :character 3)))
[server-reply] (id:6) Fri Dec  2 17:04:01 2022:
(:jsonrpc "2.0" :id 6 :result
	  (:uri "jar:file:///home/albinus/.m2/repository/org/clojure/clojure/1.10.3/clojure-1.10.3.jar!/clojure/core.clj" :range
		(:start
		 (:line 923 :character 6)
		 :end
		 (:line 923 :character 9))))
--8<---------------cut here---------------end--------------->8---

That means, that the client (my local Emacs) has asked for
"textDocument/definition" on the file user.clj, as indicated by your
recipe. The remote server has returned as answer, that this definition is in
"jar:file:///home/albinus/.m2/repository/org/clojure/clojure/1.10.3/clojure-1.10.3.jar!/clojure/core.clj". This
file must be located on the server, because the server cannot know
anything about my local configuration, right?

But your jarchive package opens this file locally. It works, because on
my local machine I have the same file, but it looks confusing to
me. What if the file doesn't exist locally?

Best regards, Michael.





  reply	other threads:[~2022-12-02 16:14 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-25 21:44 bug#58790: Eglot URI parsing bug when using clojure-lsp server Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-26  6:22 ` Stefan Kangas
2022-10-26 19:50   ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-27 15:09     ` João Távora
2022-10-29  1:22       ` Dmitry Gutov
2022-10-29  2:02         ` João Távora
2022-10-29 14:54           ` Dmitry Gutov
2022-10-29 19:35             ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-31 14:40               ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-02  8:09                 ` João Távora
2022-11-02 13:15                   ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-03 17:10                   ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-10  9:49                     ` Eli Zaretskii
2022-11-10 11:00                       ` João Távora
2022-11-10 13:47                         ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-10 15:38                         ` Eli Zaretskii
2022-11-10 21:45                           ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-10 21:59                             ` João Távora
2022-11-10 22:22                               ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-10 22:30                                 ` João Távora
2022-11-10 22:48                                   ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-10 22:48                                 ` João Távora
2022-11-10 22:57                                   ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-11  7:29                                   ` Eli Zaretskii
2022-11-12 17:03                                     ` Michael Albinus
2022-11-13 21:04                                       ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-15 19:04                                         ` Michael Albinus
2022-11-15 22:28                                           ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-16  7:53                                             ` Michael Albinus
2022-11-16 10:21                                               ` João Távora
2022-11-16 15:45                                                 ` Michael Albinus
2022-11-16 16:20                                                   ` João Távora
2022-11-16 22:59                                                     ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-02 16:14                                                       ` Michael Albinus [this message]
2022-12-07 18:56                                                         ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-08 13:46                                                           ` Michael Albinus
2022-12-08 19:07                                                             ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-09 16:04                                                               ` Michael Albinus
2022-12-10 17:21                                                                 ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-10 17:45                                                                   ` Michael Albinus
2022-11-22 14:30                                                     ` Michael Albinus
2022-11-23 11:55                                                       ` Richard Copley
2022-11-23 12:36                                                         ` João Távora
2022-11-23 12:42                                                           ` Arash Esbati
2022-11-23 12:49                                                             ` Richard Copley
2022-11-23 12:54                                                               ` João Távora
2022-11-23 13:33                                                           ` Eli Zaretskii
2022-11-23 13:44                                                             ` João Távora
2022-11-23 14:03                                                               ` Danny Freeman via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-23 19:53                                                                 ` João Távora
2022-11-11  8:30                               ` Eli Zaretskii
2022-11-11  9:45                                 ` João Távora
2022-11-11 12:01                                   ` Eli Zaretskii
2022-11-11 14:02                                     ` João Távora
2022-11-11 14:45                                       ` Eli Zaretskii
2022-11-12  9:04                                         ` João Távora
2022-11-11  7:16                             ` Eli Zaretskii
2022-11-01 17:25         ` Juri Linkov
2022-10-29 15:36 ` Felician Nemeth
2022-10-29 17:09   ` João Távora
2022-11-09  0:59 ` bug#58790: Robert Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o7sl6awm.fsf@gmx.de \
    --to=michael.albinus@gmx.de \
    --cc=58790@debbugs.gnu.org \
    --cc=danny@dfreeman.email \
    --cc=dgutov@yandex.ru \
    --cc=eliz@gnu.org \
    --cc=felician.nemeth@gmail.com \
    --cc=joaotavora@gmail.com \
    --cc=stefankangas@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.