From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Donovan via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#62115: RFE: eglot: support window.showDocument LSP RPC Date: Fri, 10 Mar 2023 10:34:22 -0500 Message-ID: Reply-To: Alan Donovan Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000ae315705f68d7f68" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21567"; mail-complaints-to="usenet@ciao.gmane.io" Cc: joaotavora@gmail.com To: 62115@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Mar 11 05:11:19 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1paqZi-0005Qa-PW for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 11 Mar 2023 05:11:18 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1paqZU-0005Jy-Re; Fri, 10 Mar 2023 23:11:04 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1paqZT-0005Jh-MU for bug-gnu-emacs@gnu.org; Fri, 10 Mar 2023 23:11:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1paqZT-0006ZL-EK for bug-gnu-emacs@gnu.org; Fri, 10 Mar 2023 23:11:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1paqZT-0007XY-AA for bug-gnu-emacs@gnu.org; Fri, 10 Mar 2023 23:11:03 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Alan Donovan Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 11 Mar 2023 04:11:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 62115 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.167850785728934 (code B ref -1); Sat, 11 Mar 2023 04:11:03 +0000 Original-Received: (at submit) by debbugs.gnu.org; 11 Mar 2023 04:10:57 +0000 Original-Received: from localhost ([127.0.0.1]:56376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1paqZM-0007WW-B2 for submit@debbugs.gnu.org; Fri, 10 Mar 2023 23:10:56 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:53508) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1paelV-0005fd-Gv for submit@debbugs.gnu.org; Fri, 10 Mar 2023 10:34:41 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1paelV-00015w-9G for bug-gnu-emacs@gnu.org; Fri, 10 Mar 2023 10:34:41 -0500 Original-Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1paelT-0005rz-NV for bug-gnu-emacs@gnu.org; Fri, 10 Mar 2023 10:34:41 -0500 Original-Received: by mail-pg1-x534.google.com with SMTP id y19so3267335pgk.5 for ; Fri, 10 Mar 2023 07:34:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1678462476; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=L+NTPoh5nxudtBD2HgCfuhAU4dd/Gbtg/gr6JNJXs2M=; b=odVvr6jy0+Io8PbTYYjiGNZ6q+ClCmPOm1ZpIO7DJeDNBj326Ro99jvaAvHuZCusq9 K5UwEqPl3DSL5rDCn9xh+hyHm70tQPpmORw7Or8bWSraITen9n0ec3yrevK/fpo/dH/7 haq2ebvCaKZ8Mj+59MULuwZPsgaoPa/dsQDP3qrHQ9w1eK1vPGQ9poRcIG8u3mls88eI 7WnFfDdd++u/nXM+UYyYD33QvvRR6lGyV10So3inyKkvLtNGcXC9NyA4hxun0fGJBFLy vFKYN16EK5kCylodxol3CIxJZ1qvN7nw0ZIBa1QqhSeAQ3uRV+DNmxBQBs41nSOh7/HU Dvrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678462476; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=L+NTPoh5nxudtBD2HgCfuhAU4dd/Gbtg/gr6JNJXs2M=; b=RShaO3N7DjBvkAjn0JZKaNKu5w9UFNAM6g7PdICRTEf3vmNKKeyajYQI4ljoVF8LuR h6qPHLtWP3AuHgKbv21XLC3Sr06/se2OqQI2aOw/xQfzVzkJW/5Zg7eYUN7faIIKcvLh AHwzdUrQQRqMTsjccwp0TIsjjhIPzOlbYgbKqmTVg6A2AgpbSQ07+eH3KIGbCBXfHg/P uNMC32RPI2rDqtwERCI/zcfVFB1i7xTHkAFMHM3Wm7jZ2pI7AJHSKqP1rtyw0Mt04gIO bhNC0Jd6iwzw4IztlZqTcaH3HZ3vYm4Sl2QXaB6/DBu8WL86l9oZLKzAGpqF/cC+/Gd6 e9Qg== X-Gm-Message-State: AO0yUKU0NvJ2gBysP2i4wGRPp5g8GckIRt3spJlHkvhjPXjqgE4l52P2 PVF0P+14OjBUoHt5T6bQo1F6YQR055C5c/Pu91sC15bZZbweOaHbMZo4vw== X-Google-Smtp-Source: AK7set9j5O8JgDSY7eYWihsbkGCH9TOBQ4/rZz1PMSPhbfRrjxso9nvi0iAcCwpiUExPdXPbtGQNfTuBH5d2Ww7B4l8= X-Received: by 2002:a63:7f5c:0:b0:503:7bb8:3c32 with SMTP id p28-20020a637f5c000000b005037bb83c32mr8447997pgn.0.1678462476422; Fri, 10 Mar 2023 07:34:36 -0800 (PST) Received-SPF: pass client-ip=2607:f8b0:4864:20::534; envelope-from=adonovan@google.com; helo=mail-pg1-x534.google.com X-Spam_score_int: -175 X-Spam_score: -17.6 X-Spam_bar: ----------------- X-Spam_report: (-17.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 10 Mar 2023 23:10:52 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:257750 Archived-At: --000000000000ae315705f68d7f68 Content-Type: text/plain; charset="UTF-8" Attn: Joao Tavora The attached patch adds basic support to eglot for the window.showDocument downcall, added in LSP 3.16, which enables the server to request that the client open an URL either in an external browser (e.g. as if by the open(1) or xdg-open(1) command) or internally, in the editor. https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#window_showDocument See also https://github.com/joaotavora/eglot/discussions/1180. Thanks to @nemethf, whose unmerged PR https://github.com/joaotavora/eglot/pull/855 provided numerous improvements over my own first draft. This patch can be applied to the base commit of 8ee205d. Please let me know if you'd like it in some other form. cheers alan --000000000000ae315705f68d7f68 Content-Type: application/octet-stream; name="eglot-showDocument.patch" Content-Disposition: attachment; filename="eglot-showDocument.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lf2p7em50 ClRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IHRvIGVnbG90IGZvciB0aGUgd2luZG93LnNo b3dEb2N1bWVudApkb3duY2FsbCwgYWRkZWQgaW4gTFNQIDMuMTYsIHdoaWNoIGVuYWJsZXMgdGhl IHNlcnZlciB0byByZXF1ZXN0IHRoYXQKdGhlIGNsaWVudCBvcGVuIGFuIFVSTCBlaXRoZXIgaW4g YW4gZXh0ZXJuYWwgYnJvd3NlciAoZS5nLiBhcyBpZiBieQp0aGUgb3BlbigxKSBvciB4ZGctb3Bl bigxKSBjb21tYW5kKSBvciBpbnRlcm5hbGx5LCBpbiB0aGUgZWRpdG9yLgoKaHR0cHM6Ly9taWNy b3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9s c3AvMy4xNy9zcGVjaWZpY2F0aW9uLyN3aW5kb3dfc2hvd0RvY3VtZW50CgpTZWUgYWxzbyBodHRw czovL2dpdGh1Yi5jb20vam9hb3Rhdm9yYS9lZ2xvdC9kaXNjdXNzaW9ucy8xMTgwLgoKVGhhbmtz IHRvIEBuZW1ldGhmLCB3aG9zZSB1bm1lcmdlZCBQUgpodHRwczovL2dpdGh1Yi5jb20vam9hb3Rh dm9yYS9lZ2xvdC9wdWxsLzg1NSBwcm92aWRlZCBudW1lcm91cwppbXByb3ZlbWVudHMgb3ZlciBt eSBvd24gZmlyc3QgZHJhZnQuCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvZWdsb3QuZWwg Yi9saXNwL3Byb2dtb2Rlcy9lZ2xvdC5lbAppbmRleCAyZjhkMjAwMmNkMy4uY2IwYmZkZjYwM2Qg MTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL2VnbG90LmVsCisrKyBiL2xpc3AvcHJvZ21vZGVz L2VnbG90LmVsCkBAIC04MTksNiArODE5LDcgQEAgdHJlYXRlZCBhcyBpbiBgZWdsb3QtLWRiaW5k Jy4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFssQChtYXBjYXIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnY2FyIGVnbG90 LS10YWctZmFjZXMpXSkpKQogICAgICAgICAgICAgOmdlbmVyYWwgKGxpc3QgOnBvc2l0aW9uRW5j b2RpbmdzIFsidXRmLTMyIiAidXRmLTgiICJ1dGYtMTYiXSkKKyAgICAgICAgICAgIDp3aW5kb3cg Jyg6c2hvd0RvY3VtZW50ICg6c3VwcG9ydCB0KSkKICAgICAgICAgICAgIDpleHBlcmltZW50YWwg ZWdsb3QtLXt9KSkpCiAKIChjbC1kZWZnZW5lcmljIGVnbG90LXdvcmtzcGFjZS1mb2xkZXJzIChz ZXJ2ZXIpCkBAIC0yMTQzLDYgKzIxNDQsNDUgQEAgQ09NTUFORCBpcyBhIHN5bWJvbCBuYW1pbmcg dGhlIGNvbW1hbmQuIgogICAoX3NlcnZlciAoX21ldGhvZCAoZXFsIHdpbmRvdy9sb2dNZXNzYWdl KSkgJmtleSBfdHlwZSBfbWVzc2FnZSkKICAgIkhhbmRsZSBub3RpZmljYXRpb24gd2luZG93L2xv Z01lc3NhZ2UuIikgOzsgbm9vcCwgdXNlIGV2ZW50cyBidWZmZXIKIAorKGNsLWRlZm1ldGhvZCBl Z2xvdC1oYW5kbGUtcmVxdWVzdAorICAoX3NlcnZlciAoX21ldGhvZCAoZXFsIHdpbmRvdy9zaG93 RG9jdW1lbnQpKSAma2V5IHVyaSBleHRlcm5hbCB0YWtlRm9jdXMgc2VsZWN0aW9uCisgICAgICAg ICAgICZhbGxvdy1vdGhlci1rZXlzKQorICAiSGFuZGxlIGEgd2luZG93L3Nob3dEb2N1bWVudCBz ZXJ2ZXItPmNsaWVudCByZXF1ZXN0IGJ5IG9wZW5pbmcgdGhlCitVUkwgaW4gYSBicm93c2VyIG9y IHdpdGhpbiBFbWFjcy4iCisgIDs7IE5vdGU6IGJyb3dzZS11cmwgb24gYSAiZmlsZToiIFVSTCB3 aWxsIGV4ZWN1dGUgb3BlbigxKSBvciB4ZGctb3BlbigxKSwKKyAgOzsgd2hpY2ggbWF5IGVuZCB1 cCBvcGVuaW5nIHRoZSBmaWxlIGluIEVtYWNzIChvciBzb21lIG90aGVyIGVkaXRvciB0aGF0Cisg IDs7IGhhcyByZWdpc3RlcmVkIHRoZSAqLmdvIGV4dGVuc2lvbiksIGlnbm9yaW5nIHRoZSBvcHRp b25hbCBzZWxlY3Rpb24uCisgIDs7IFR5cGljYWxseSBzZXJ2ZXJzIHNlbmQgIkV4dGVybmFsOiBm YWxzZSIgZm9yIGZpbGVzLgorICAoaWYgKGFuZCBleHRlcm5hbCAobm90IChlcSBleHRlcm5hbCA6 anNvbi1mYWxzZSkpKQorICAgICAgKGJyb3dzZS11cmwgdXJpKQorICAgIDs7IERvbid0IGNhbGwg ZmluZC1maWxlIGltbWVkaWF0ZWx5ICh3aXRoaW4gdGhlIFJQQyBoYW5kbGVyKSBzaW5jZQorICAg IDs7IGZpbmQtZmlsZSdzIGdvLW1vZGUgaG9va3MgaXNzdWUgbW9yZSBMU1AgUlBDcyAoZS5nLgor ICAgIDs7IHRleHREb2N1bWVudC9kb2N1bWVudFN5bWJvbCkgZnJvbSB3aXRoaW4gdGhpcyBvbmUs IHdoaWNoIHRoZW4KKyAgICA7OyBnZXRzIHN0dWNrLiAoSXMgdGhhdCBhIGJ1ZyBpbiBnb3Bscz8p CisgICAgOzsgU28sIG1ha2UgdGhlIGNhbGwgYXN5bmNocm9ub3VzbHkgZnJvbSB0aGUgaWRsZSBs b29wLgorICAgIDs7IE9mIGNvdXJzZSB0aGlzIG1lYW5zIHdlIGNhbid0IHJlc3BvbmQgd2l0aCB0 aGUgcHJvcGVyIHN1Y2Nlc3MgdmFsdWUuCisgICAgOzsocnVuLXdpdGgtaWRsZS10aW1lciAwIG5p bAorICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsCisgICAgICAgICAgICAgICAgICAg ICAgICAgIycobGFtYmRhIChmaWxlbmFtZSBub3NlbGVjdCBzZWxlY3Rpb24pCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChpZiBub3NlbGVj dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGZpbmQtZmlsZS1ub3NlbGVjdCBmaWxlbmFtZSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeC1mb2N1cy1mcmFtZSBuaWwp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGZpbmQtZmlsZSBmaWxlbmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHdoZW4gc2VsZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc2F2ZS1yZXN0cmljdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAod2lkZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChwY2FzZS1sZXQgKChgKCxiZWcgLiAsZW5kKSAoZWdsb3QtLXJhbmdlLXJlZ2lvbiBzZWxlY3Rp b24pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVx dWFsIGJlZyBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGdvdG8tY2hhciBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc2V0LW1hcmstY29tbWFuZCBuaWwpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGJlZykpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlY2VudGVyKSkpKSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgKGVnbG90LS11cmktdG8tcGF0aCB1cmkpIDsgZmlsZW5hbWUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAob3IgKG51bGwgdGFrZUZvY3VzKSAoZXEgdGFrZUZvY3VzIDpq c29uLWZhbHNlKSkgOyBub3NlbGVjdAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlv bikpCisgICcoOnN1Y2Nlc3MgdCkpCisKIChjbC1kZWZtZXRob2QgZWdsb3QtaGFuZGxlLW5vdGlm aWNhdGlvbgogICAoX3NlcnZlciAoX21ldGhvZCAoZXFsIHRlbGVtZXRyeS9ldmVudCkpICZyZXN0 IF9hbnkpCiAgICJIYW5kbGUgbm90aWZpY2F0aW9uIHRlbGVtZXRyeS9ldmVudC4iKSA7OyBub29w LCB1c2UgZXZlbnRzIGJ1ZmZlcgo= --000000000000ae315705f68d7f68--