From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Felician Nemeth Newsgroups: gmane.emacs.bugs Subject: bug#62116: RFE: eglot: support window.showDocument LSP RPC Date: Mon, 08 May 2023 15:23:15 +0200 Message-ID: <875y93arek.fsf@betli.tmit.bme.hu> References: <87jzznxx8f.fsf@gmail.com> <83fsabwhpg.fsf@gnu.org> <87v8j7vy48.fsf@gmail.com> <83r0tuv62t.fsf@gnu.org> <874jp8gu8a.fsf@betli.tmit.bme.hu> <838re3jowg.fsf@gnu.org> <87ttwqsow9.fsf@gmail.com> <87ttwpbpaj.fsf@betli.tmit.bme.hu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32029"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) Cc: sebastian.poeplau@mailbox.org, adonovan@google.com, 62116@debbugs.gnu.org To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon May 08 15:24:22 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 1pw0qk-0008BM-6Y for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 08 May 2023 15:24:22 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pw0qS-0001e6-Ly; Mon, 08 May 2023 09:24:04 -0400 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 1pw0qQ-0001du-TR for bug-gnu-emacs@gnu.org; Mon, 08 May 2023 09:24:02 -0400 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 1pw0qQ-000547-L0 for bug-gnu-emacs@gnu.org; Mon, 08 May 2023 09:24:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pw0qQ-0004t4-BJ for bug-gnu-emacs@gnu.org; Mon, 08 May 2023 09:24:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Felician Nemeth Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 May 2023 13:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62116 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 62116-submit@debbugs.gnu.org id=B62116.168355220518735 (code B ref 62116); Mon, 08 May 2023 13:24:02 +0000 Original-Received: (at 62116) by debbugs.gnu.org; 8 May 2023 13:23:25 +0000 Original-Received: from localhost ([127.0.0.1]:39592 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pw0po-0004s6-Tb for submit@debbugs.gnu.org; Mon, 08 May 2023 09:23:25 -0400 Original-Received: from mail-wm1-f47.google.com ([209.85.128.47]:52376) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pw0pn-0004rq-8m for 62116@debbugs.gnu.org; Mon, 08 May 2023 09:23:23 -0400 Original-Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-3f415a90215so25946735e9.0 for <62116@debbugs.gnu.org>; Mon, 08 May 2023 06:23:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683552197; x=1686144197; h=mime-version:face:user-agent:message-id:in-reply-to:date:references :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=Mvpsc22Mvajl6CBgVCxBPp0dFxrouX1icKoNZF0NQbU=; b=fq8mwPx74XapWZi/meoXkBS4SkY2PX1chuQz3mVB4tK51fM9jDy629ODYDtl2KkVdJ 76heTEdU3HMO/RkrGYFphap2gY+ZiI/j9RHjGRDrGy5LfzQpdqb1bxQklti3avlRoz2S BAp9l6a52VPUnwqEPZnb0Ro2okNpH2ANQ+pp2DkGy914hvkW8zIALgzOr5RF1+Ugp8QU miyW9n8BV4TWeDOlQ0uaNGTygFmdxQtYjbjuDYDYa0lACcflB1dAjrljlyQt+Und8QpO YNt3qkjAwZu0gPz6d0bHiNnyajDKp9TZIwrTBwen6smkVXeMHv98xT/Toixkxsf+Bfl0 lZ3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683552197; x=1686144197; h=mime-version:face:user-agent:message-id:in-reply-to:date:references :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Mvpsc22Mvajl6CBgVCxBPp0dFxrouX1icKoNZF0NQbU=; b=K/druW3uvbQhAX/42+7SlOJzQEKi+6PM1Zs9YEV07qasoEWByJOn2AB5wIdTQLmG5h WmJDJoT3gwjdpChKCNgg1GsMeDJnfyD76Ju1Kt2sc9oAm+ZAwLfm0TjexKFW8FDf3eWA gn7D4BvMOG+nMh4/eV5SOp7+WNk5xP8dKzrXbzJgzqeKTmkANFHbFB7UPZsOuJuZdbNl yj4qNzQwUpai4xIbVpt1j3XtQAscaRZRbsAW8LK0PsPkjqWJAWiFegJOB+6tUuUqNFbF gRFvcBOfacKOWi4ue1Y8qG0i+7CLqzIVOtP5/PxTipDypEioiGNgCa4o/8gApaYt0y8K 8VZQ== X-Gm-Message-State: AC+VfDyKLxfRqXZ2I/LbFhtLb9MWbrdCfxgvaMrlCWO97YAbKEl/GNsB PNW5l6CbXU45aoPLc+J4NGE= X-Google-Smtp-Source: ACHHUZ6UndisJPXvjWmawfF9a77weOMoqJiVWXwNQnBj/DIzRJRxqUW4Kf0BXVMHiFfmkNUZBWRH/A== X-Received: by 2002:a05:600c:c5:b0:3f4:2610:5cd0 with SMTP id u5-20020a05600c00c500b003f426105cd0mr1700627wmm.7.1683552197172; Mon, 08 May 2023 06:23:17 -0700 (PDT) Original-Received: from betli.gmail.com (catv-89-134-210-182.catv.fixed.vodafone.hu. [89.134.210.182]) by smtp.gmail.com with ESMTPSA id z9-20020a05600c114900b003f4069417absm13963568wmz.24.2023.05.08.06.23.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 May 2023 06:23:16 -0700 (PDT) In-Reply-To: <87ttwpbpaj.fsf@betli.tmit.bme.hu> (Felician Nemeth's message of "Sat, 06 May 2023 14:46:44 +0200") Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAElBMVEWOdXElERN7LDLZs6/l 0dDQq6TepMcqAAACW0lEQVQ4jWWSzY7bMAyEaSm6mypylxjkroTRvUW8d9lavf+r7NDOZotWQHzg lyGHP0Sn5ed9qKrLWWIWos9/QJWIeCSywPNTd/AE0LtwFj7A+3WT5PwfeBrQKcsBnkfwVcNySWQr 3i34XN6gRNgis/v4uwSKHCD9lPitB0Aq9BHfHX4cgsI7cJJfLdZg/4bbCzoRmkD9MsagQSBDedZi CgNxkVSJmSOStTBUBKkywEnEoZzbwWj+ACiVJkF6pOpak2PMCqkMYDpaw+gatLR8atMOrB3JGzmm 3rSQo+tkxU+UAbhQSgtslULhsXKk6+IyQ1QTzeQB0MzjlpkCEUCeUdviWrwBcxVqpZjP+v0MYPA0 aq2rvIEZe4GRM0v+9QIB03rsABVSk5y+Mz3LSzExtJLlCCO6dV1uzDQFTBad+gO0TqqL9XE8x4ek +orvYiMJgzC8e+r6TqaPaK6QyqVNvoHtsRrooQ6tTi4vgaSkd8wIikodB3B0iIk58avsDdYNajpS bSKJ+mQnipGszB6zW4lGgsOkKHE2RWVcBpwhaIv3BYIAu3WsnC7YYKLRchp6w8fRGZIWiZuFsVai 7gbcUcJEhiDZ3K1+uzZvBlfaEO8oH4MLu6/hrKVM7QpQcIXJFuC1XjfbfKRxNslk94l9cYcEihV2 HWyNDQAXaLsvnrSyp7HaQhrAn13V6/XW11nh0XINBOEAV+tHK4EvAGNGvEwc0eZw8Vyr56imYEsV sOW9jxm/yb9AH1ufqGMviIK7A0Tc/723oM3tJ4HTOu9gDr3ftbdkxfdjsUv5AqWKwyfCYo5WAAAA AElFTkSuQmCC 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:261321 Archived-At: --=-=-= Content-Type: text/plain Felician Nemeth writes: > If I understand it correctly, you argued that if takeFocus is false, > Eglot should still show the requested file, but the point should remain > were it was. I think you're right, but I haven't updated my patch yet. It is enough to call display-buffer. I've attached the new patch and a simple test that can be run with "emacs -Q -l test.el". Since it advances the status quo, can this be merged? If not, how should we proceed? Thanks. --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Eglot-support-window-showDocument-request.patch >From 468a8104183ba46f92d0a194862761c81943c505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felici=C3=A1n=20N=C3=A9meth?= Date: Sat, 22 Apr 2023 10:49:17 +0200 Subject: [PATCH] Eglot: support window/showDocument request * eglot.el (eglot-client-capabilities): Add showDocument support. (eglot-handle-request window/showDocument): New cl-defmethod. --- lisp/progmodes/eglot.el | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 3134d55fc0..daabb4ff7b 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -830,7 +830,8 @@ eglot-client-capabilities `(:valueSet [,@(mapcar #'car eglot--tag-faces)]))) - :window `(:workDoneProgress t) + :window `(:showDocument (:support t) + :workDoneProgress t) :general (list :positionEncodings ["utf-32" "utf-8" "utf-16"]) :experimental eglot--{}))) @@ -2345,6 +2346,28 @@ eglot-handle-request "Handle server request workspace/workspaceFolders." (eglot-workspace-folders server)) +(cl-defmethod eglot-handle-request + (_server (_method (eql window/showDocument)) &key + uri external takeFocus selection) + "Handle request window/showDocument." + (if (eq external t) + (browse-url uri) + (let ((filename (eglot--uri-to-path uri))) + (if (eq takeFocus t) + (find-file filename) + (display-buffer (find-file-noselect filename))) + (when selection + (with-current-buffer (get-file-buffer filename) + (save-restriction + (widen) + (pcase-let ((`(,beg . ,end) (eglot--range-region selection))) + (if (equal beg end) + (goto-char beg) + (goto-char end) + (set-mark-command nil) + (goto-char beg)))))))) + '(:success t)) + (defun eglot--TextDocumentIdentifier () "Compute TextDocumentIdentifier object for current buffer." `(:uri ,(eglot--path-to-uri (or buffer-file-name -- 2.30.2 --=-=-= Content-Type: application/x-gtar-compressed Content-Disposition: attachment; filename=test-showDucument-ada.tgz Content-Transfer-Encoding: base64 H4sIAAAAAAAAA+2XS4/aMBCAOfMrrBxKkGpK0jwOnCqtKvVQaQ89cvHGA7g1NvKD3Z/fcQK7sIVl DxHbbv0dSHDG4/GMx/Y4sI7alb6/8Y1fg3KUcfZp0CtTpC7L8Mzqcnr43DPIiiKvsjrPq3owzcos Kwak7NeM03jrmCFkoGANbrU4K3fp+z+KOxn/NRNqwvhdP2OEAFdFcT7+ed3GvyyysqwrjH+FC2BA pv0M/zL/efw3RjfAvQHyHWNOhCXKSzl7a7MiV+J0/ofWCciexriQ/9nnquz2f3zN8yLkfzEtY/5f g2HKYeEVYdJS7VZg6EJIIOkHvXFCKyaJBbMFMx4SkgrlwLDGiS20/2EptaPwAI13QBu9XjPFSarN rtNegjbemLC2umaqDZXawjgoOUNybFByXjLdQuP001g/4MHd6G4xf+P4IxYC7UeG+8m2i75hUlLJ XDDzYI7GK3ov3IoKLoE6scbvOVFCktEzH+06BbWMc7rS+hcZdUY0Wim0atf2bLjQwSsJ1pIUrWmC nzeonTO61rzzLNopFFAOBn3N23ayFyC4Zy+7t+QLZ0nbIVjgNJXCOlTl8TUIUNY1pMl8jue5nc9H CZk8ahq/vuvdH12P571vP3IDKIsnSxDE2fDOa8nubmHR7uFsRr5q07RTatAhQi0JOphsdPBYt55a jR9J6/h7YYEc6iZcgw1qFH7H3pNhuvF2RUYSFo54ZYDxR0WwxdVgcdi3Trq/iNP7/2QpXH9FwGvv /2Vdl3kW9v8yiMf7/xU4HX9Mx5+4f02WG9PDGBfv/1X+dP8PclgHYhkYz/8rcNtFmtzi1b89Yxd4 lLalgMetNt3v1nfJeDYEPNxvY2nwrnix/rf9jHEx/7OD+h/3glD/YxkQ8/8KHNf/MbkjkUgkEolE IpFIJBKJRCKR98RvyqPSQAAoAAA= --=-=-=--