From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 28 07:38:46 2023 Received: (at submit) by debbugs.gnu.org; 28 Feb 2023 12:38:46 +0000 Received: from localhost ([127.0.0.1]:49880 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pWzFl-0006Wk-Vo for submit@debbugs.gnu.org; Tue, 28 Feb 2023 07:38:46 -0500 Received: from lists.gnu.org ([209.51.188.17]:41642) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pWzFj-0006Wc-Kt for submit@debbugs.gnu.org; Tue, 28 Feb 2023 07:38:44 -0500 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 1pWzFj-0002nt-Eq for bug-gnu-emacs@gnu.org; Tue, 28 Feb 2023 07:38:43 -0500 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pWzFh-0002nx-En for bug-gnu-emacs@gnu.org; Tue, 28 Feb 2023 07:38:42 -0500 Received: by mail-ed1-x535.google.com with SMTP id eg37so39115751edb.12 for ; Tue, 28 Feb 2023 04:38:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :subject:to:from:from:to:cc:subject:date:message-id:reply-to; bh=WAgSMThWePapqEWSbALFaZac5uN+C5Vjo011X92FcH0=; b=TCi69O9F/pAqs6XZYwzJXqM89m7ukgOAYFkxbA/d/28kNR5uVfasbW5p9sTwRQieT6 52gs3o6Tbtmb2LsYdrMxwCPDn5pm5Z5UqLLhjkwbSfh0C0eg7WTdbmwFT2kB+SLDEd6k GBVuJ465ZlEFfWmFieWq1qUtNMoBQ32xm5yMcaSk6NZMmR5bjMEkg0XSWO/SNCWe9Jhn saiaS2kDEwawVS33fZplx8hp8ugYFl1W1alkb5sUWFNWLcJFPbgikGS7KFDm1e6kSa1w AD3iGOJ/BLzEBNbCiHn/wJ4N2t4Yro0vpm1H/GZTeMxMq+8QjHLt76lWz6ehT9ekU3Xa IX4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :subject:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=WAgSMThWePapqEWSbALFaZac5uN+C5Vjo011X92FcH0=; b=SFndg0BEHvTorCheb03nINfRyOO6DC/4WIn9cfKSDlU+/TVHcTuPNoGQRK+9YCN5HD h6QfG5aldAMsGBv5rnEQ3s6JWp+sAcq0SYldPtpDdKfnm6FQyz7X6drheb9wyM9aGJSF YQ8xvGIeST/44rF/JbdZO/zZr08V4+xQVBbhBC4vS69uDzq5gOAyMx7uDv7bs7wAQfbM XCZmiIhKmOxDAkyp3O+/O+t79AqHjiUnRzdYZm2VY1LWYo3Fb0eXfa1TSHKb+pOsnfBM /m6QfYaRqfMeI/9DYkzv4Dayakp87t0x2rS3CSV48wdW8VCK5KrD3QGGIcTXUg3LU94i r4MQ== X-Gm-Message-State: AO0yUKUVGbFKeHQnyJLN367v67OEU+hbqyK4xi9s9YAlsUidH3FbQQ3Z E19IZ33j4VxBVMZP9j7yOY7ykS+Kt9S9Zg== X-Google-Smtp-Source: AK7set9ZtzGHuQMNwevtsxXpvZpAlv7IYELNA+852RH2I6DAfbM3KjhmRN90jCXNweCjNx0+bH4z6Q== X-Received: by 2002:a05:6402:134b:b0:4ab:4c5e:b0ed with SMTP id y11-20020a056402134b00b004ab4c5eb0edmr3325162edw.21.1677587918984; Tue, 28 Feb 2023 04:38:38 -0800 (PST) Received: from ars3 ([2a02:8109:8ac0:56d0::8b3a]) by smtp.gmail.com with ESMTPSA id ha12-20020a170906a88c00b008f100fd50e5sm4578544ejb.140.2023.02.28.04.38.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Feb 2023 04:38:38 -0800 (PST) From: Augusto Stoffel To: bug-gnu-emacs@gnu.org Subject: 29.0.60; Eglot: Dir-local workspace config doesn't work as described X-Debbugs-Cc: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Tue, 28 Feb 2023 13:38:37 +0100 Message-ID: <87cz5uarsi.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::535; envelope-from=arstoffel@gmail.com; helo=mail-ed1-x535.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Quoting from the manual: > Here=E2=80=99s an example of defining the workspace-configuration setting= s [...] > > ((python-mode > . ((eglot-workspace-configuration > . (:pylsp (:plugins (:jedi_completion (:include_params t > :fuzzy t) > :pylint (:enabled :json-false))))))) > (go-mode > . ((eglot-workspace-configuration > . (:gopls (:usePlaceholders t)))))) The above doesn't work. > Alternatively, the same configuration could be defined as follows: > ((nil > . ((eglot-workspace-configuration > . (:pylsp (:plugins (:jedi_completion (:include_params t > :fuzzy t) > :pylint (:enabled :json-false))) > :gopls (:usePlaceholders t)))))) But this version does. To see why, patch eglot-signal-didChangeConfiguration as follows: (defun eglot-signal-didChangeConfiguration (server) "Send a `:workspace/didChangeConfiguration' signal to SERVER. When called interactively, use the currently active server" (interactive (list (eglot--current-server-or-lose))) (message "=3D> %s %s" (current-buffer) default-directory) (jsonrpc-notify ...) Then you'll see that upon first starting the server, one gets: =3D> *temp* ~/project_dir/ Presumably, the temp buffer is in fundamental mode. Note also that if you later do `M-x eglot-signal-didChangeConfiguration RET', then the that buffer's local value of `eglot-workspace-configuration' is used, since: =3D> actual_file.py ~/project_dir/subdir [ This behavior is confusing and reinforces my opinion that server information should be kept away from buffer-local variables. Related glitch: if you have two servers running, A and B, and then, from a buffer in project A you do M-x eglot-show-workspace-configuration RET and select server B in the prompt, you get server A's information. ] There's probably no better place than dir-locals to store "workspace" (aka project) configuration. But it would be better to then record this configuration in the server object after it's read for .dir-locals.el, and provide some UI to modify the configuration on the fly if desired. From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 28 14:18:52 2023 Received: (at 61866) by debbugs.gnu.org; 28 Feb 2023 19:18:52 +0000 Received: from localhost ([127.0.0.1]:52019 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX5Ux-0001BT-Pr for submit@debbugs.gnu.org; Tue, 28 Feb 2023 14:18:52 -0500 Received: from mail-wm1-f49.google.com ([209.85.128.49]:41860) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX5Uv-0001BF-Fx for 61866@debbugs.gnu.org; Tue, 28 Feb 2023 14:18:50 -0500 Received: by mail-wm1-f49.google.com with SMTP id r19-20020a05600c459300b003eb3e2a5e7bso4888648wmo.0 for <61866@debbugs.gnu.org>; Tue, 28 Feb 2023 11:18:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677611923; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NHc/2ov6Fyk6PWqAqYs3E6LDPUZAVlmD6JqWu8VpKiQ=; b=DwT7Fvo2hFZQ36NK/9IMFGUDVnoyJru2gx8P5espAtcHWOo/h+o6Rv4zDdpiG2UC7D 6S/ytWOAyAdTisklLMa0gOqe7Un2Xhu11MT7FlCJlPDeBNrBsXCLRMEIa5OvmrrL91W/ K2Y5S22vJVAyEpbypXojTgZafnl4yFq8jRWFa0v7LlNoJgNL1jxXvpIG+EBGpleIF8gF VDhreUAnmRLC93t7tXPw2CYmCerJN8KyVlrC3U3+B8PgJS3NpOjMnB/vYj52K1JVlYPH W4cBkFZiLw7To4N7QGY3sQYKuApIjHe/QeokPdZkHR3BjwaKLqr7M9m0I+wuM85HkbKR y10A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677611923; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NHc/2ov6Fyk6PWqAqYs3E6LDPUZAVlmD6JqWu8VpKiQ=; b=Vfc4H6spusx0UCqPWcigDlvjYn9G8SG7T9Zb2ATWIlRcnzeyrQ9FIikT3Tap/smv1H bdPACCAmxzxEybzm7vWxlHKqodKRPbewLgbrIwWKsC8Eo790leAgS4isfTsEn16kk9FH bDcW8AX8+xZhxnbZKrv57GvGzb2OMyF8YxvF9yMWP81AlTnP2V0rwLISX7qgBH2im4rX yW74X508IV8udq86slKEREEFqD7WRzc0SZTHv+9nePyqPPWNDSm1T/yiI58eKqnVvthp 87XE+LqL0ismYHwOhsXPFefe8tZgTIjGoBC3bprC84jhntyjvYWKCXB40tZQwG8bfaDZ ORFA== X-Gm-Message-State: AO0yUKXk+LLuPT7K89Cyd2gy8Rp7g9b1czBnqB1OknQseecT363y7MVr rDHZX9LTh7Jo8gC94tk+um30bnsUwZI= X-Google-Smtp-Source: AK7set/9fQX9WLYHyOOgUQqoWHaIjpULOwFGf4A2e7RcbUcXy65lIHb4tTL9uYc3G4OZLsLMjz6z1w== X-Received: by 2002:a05:600c:4aa8:b0:3eb:3947:41ea with SMTP id b40-20020a05600c4aa800b003eb394741eamr2794410wmp.37.1677611922994; Tue, 28 Feb 2023 11:18:42 -0800 (PST) Received: from krug (87-196-72-142.net.novis.pt. [87.196.72.142]) by smtp.gmail.com with ESMTPSA id p25-20020a05600c1d9900b003e71a6be279sm13839485wms.37.2023.02.28.11.18.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Feb 2023 11:18:42 -0800 (PST) From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= To: Augusto Stoffel Subject: Re: bug#61866: 29.0.60; Eglot: Dir-local workspace config doesn't work as described In-Reply-To: <87cz5uarsi.fsf@gmail.com> (Augusto Stoffel's message of "Tue, 28 Feb 2023 13:38:37 +0100") References: <87cz5uarsi.fsf@gmail.com> Date: Tue, 28 Feb 2023 19:20:35 +0000 Message-ID: <87sfepppfg.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 61866 Cc: 61866@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Augusto Stoffel writes: > Quoting from the manual: > >> Here=E2=80=99s an example of defining the workspace-configuration settin= gs [...] >> >> ((python-mode >> . ((eglot-workspace-configuration >> . (:pylsp (:plugins (:jedi_completion (:include_params t >> :fuzzy t) >> :pylint (:enabled :json-false))))))) >> (go-mode >> . ((eglot-workspace-configuration >> . (:gopls (:usePlaceholders t)))))) > > The above doesn't work. I've just tried it and it works fine. Here's what I did: I put that example in a .dir-locals.el nearby a thingy.py and thingy.go file in the same dir. I start two Eglots managing each file and inspect that the correct config is sent in each case. > =3D> *temp* ~/project_dir/ Have you tried adding a trace of the 'major-mode' variable to that 'message' call? It should produce the correct major mode. > Presumably, the temp buffer is in fundamental mode. This is why we set major-mode and call hack-dir-local-variables-non-file-buffer. You could write a recipe that demonstrating that it fails, but read on as I have a patch to present to fix another separate thing you reported here. > Note also that if you later do `M-x > eglot-signal-didChangeConfiguration RET', then the that buffer's local > value of `eglot-workspace-configuration' is used, since: > > =3D> actual_file.py ~/project_dir/subdir This is how it should work. A buffer in python-mode should report its directory-local values. > [ This behavior is confusing and reinforces my opinion that server > information should be kept away from buffer-local variables. I'm not sure I see the benefit. This would cache things and necessitate some invalidation when the user changes the .dir-locals.el file. > Related glitch: if you have two servers running, A and B, and then, > from a buffer in project A you do > M-x eglot-show-workspace-configuration RET > and select server B in the prompt, you get server A's information. ] I've reproduced this, and indeed this was quite broken. The patch at the end should fix it, but I'd like you to test it. > There's probably no better place than dir-locals to store "workspace" > (aka project) configuration. But it would be better to then record this > configuration in the server object after it's read for .dir-locals.el, .dir-locals.el is short for "dir-local variables". buffer-local variables are an integral part to that mechanism. If we add a new slot in Eglot's server object we're adding caching/duplication/entangling (however you prefer to call this). Sometimes that is needed, for example for performance reasons, but it comes with invalitation challenges. Please try this patch: diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index ffc9511469f..89cdd8c14c7 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -1335,10 +1335,7 @@ eglot--connect (lambda () (setf (eglot--inhibit-autoreconnect s= erver) (null eglot-autoreconnect))))))) - (let ((default-directory (project-root project)) - (major-mode (car managed-modes))) - (hack-dir-local-variables-non-file-buffer) - (run-hook-with-args 'eglot-connect-hook server= )) + (run-hook-with-args 'eglot-connect-hook server) (eglot--message "Connected! Server `%s' now managing `%s' buffe= rs \ in project `%s'." @@ -2444,9 +2441,7 @@ eglot-workspace-configuration =20 (defun eglot-show-workspace-configuration (&optional server) "Dump `eglot-workspace-configuration' as JSON for debugging." - (interactive (list (and (eglot-current-server) - (eglot--read-server "Server configuration" - (eglot-current-server))))) + (interactive (list (eglot--read-server "Show workspace configuration for= " t))) (let ((conf (eglot--workspace-configuration-plist server))) (with-current-buffer (get-buffer-create "*EGLOT workspace configuratio= n*") (erase-buffer) @@ -2457,14 +2452,23 @@ eglot-show-workspace-configuration (json-pretty-print-buffer)) (pop-to-buffer (current-buffer))))) =20 -(defun eglot--workspace-configuration (server) - (if (functionp eglot-workspace-configuration) - (funcall eglot-workspace-configuration server) - eglot-workspace-configuration)) - -(defun eglot--workspace-configuration-plist (server) - "Returns `eglot-workspace-configuration' suitable for serialization." - (let ((val (eglot--workspace-configuration server))) +(defun eglot--workspace-configuration-plist (server &optional path) + "Returns SERVER's workspace configuration as a plist. +If PATH consider that file's `file-name-directory' to get the +local value of the `eglot-workspace-configuration' variable, else +use the root of SERVER's `eglot--project'." + (let ((val (with-temp-buffer + (setq default-directory + (if path + (file-name-directory path) + (project-root (eglot--project server)))) + ;; FIXME; Should probably join values of all managed + ;; major mode of this server. + (setq major-mode (car (eglot--major-modes server))) + (hack-dir-local-variables-non-file-buffer)() + (if (functionp eglot-workspace-configuration) + (funcall eglot-workspace-configuration server) + eglot-workspace-configuration)))) (or (and (consp (car val)) (cl-loop for (section . v) in val collect (if (keywordp section) section @@ -2489,25 +2493,18 @@ eglot-handle-request (apply #'vector (mapcar (eglot--lambda ((ConfigurationItem) scopeUri section) - (with-temp-buffer - (let* ((uri-path (eglot--uri-to-path scopeUri)) - (default-directory - (if (and uri-path - (not (string-empty-p uri-path)) - (file-directory-p uri-path)) - (file-name-as-directory uri-path) - (project-root (eglot--project server))))) - (setq-local major-mode (car (eglot--major-modes server))) - (hack-dir-local-variables-non-file-buffer) - (cl-loop for (wsection o) - on (eglot--workspace-configuration-plist server) - by #'cddr - when (string=3D - (if (keywordp wsection) - (substring (symbol-name wsection) 1) - wsection) - section) - return o)))) + (cl-loop with scope-uri-path =3D + (and scopeUri (eglot--uri-to-path scopeUri)) + for (wsection o) + on (eglot--workspace-configuration-plist server + scope-uri-pa= th) + by #'cddr + when (string=3D + (if (keywordp wsection) + (substring (symbol-name wsection) 1) + wsection) + section) + return o)) items))) =20 (defun eglot--signal-textDocument/didChange () From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 28 15:26:32 2023 Received: (at 61866) by debbugs.gnu.org; 28 Feb 2023 20:26:33 +0000 Received: from localhost ([127.0.0.1]:52078 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX6YS-00032e-8T for submit@debbugs.gnu.org; Tue, 28 Feb 2023 15:26:32 -0500 Received: from mail-ed1-f47.google.com ([209.85.208.47]:46674) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX6YQ-00032Q-9N for 61866@debbugs.gnu.org; Tue, 28 Feb 2023 15:26:31 -0500 Received: by mail-ed1-f47.google.com with SMTP id o15so42661831edr.13 for <61866@debbugs.gnu.org>; Tue, 28 Feb 2023 12:26:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rSJ6sbKc6Scvi2csQjHueiMX7oTfSo6sa8oc/+10znE=; b=TJVz+rG0UdQun5XPhwp0OBOSXKDs05B0ypfFl2+hSt3lMtRJjnTgJwGVfirHVncvSO Foqw4cOGQy+eRHFvWItbKTAALatqQf2zSAeed33kBoPCTB3VYZ8yONqBARFzFBUlNHt2 vNbxm0/Bm0DY6viW2heu7bo/c8PTON0SZACytyKC7oxa001ocLezIO/GO2FrA70R9hA7 M1MTj6GaMYpVTDoI0E8uuVAvvXIldMjOpFKblLl1YCsTlAhemfKcbkWxb22C59Rw53hy WRjCTViquVzk/pRDCxcCkRde4/hDccjQhmNCfAuDpsP7PlpWxTx5i169aE0vth4i3lYR ICaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rSJ6sbKc6Scvi2csQjHueiMX7oTfSo6sa8oc/+10znE=; b=22KXNrlcSJFqmN+WfGHTX1RQik4R7u6LR1QU6X1DHaqpF8nVrpLfmts0WtfhrIO4cd v3OzMZ7rH+0qY+Q7n2G6V1GGi4dDxloyw8Jx8JH0RI+QMndeYo4YqZr0BurKEtLiD27A L2GwwrIG/zfbvad88VTRSuThx6qWsHyrLe3Ncp/PTTCt8iK01+uclcgs0spbiYdWgrWe x6TIiM09u4L6LVqO5GB2+vh7RScpSR3S8Lcamm9UlNfKHkuzl2514KQZfjfz7+QooMnz Ut/o7MnUkGMFKbW6AmC5Oa2EsXFJGH2OqERFQjRikhnCELSAvGjRtCTcqd7V1lXw13ng RYqw== X-Gm-Message-State: AO0yUKUNsjUvqBmMJAQchklGUMpe6ygNySOhxb8iObndXBXLJ/9qUVfp od7atpedk8zJU5GMLxWfQlzk/rj8l+Slfw== X-Google-Smtp-Source: AK7set+V7194zIprFiriNXq0GyVlJ8wJHlwk/cWZVcgQqjE/1IXZudUocoaKZq8kSIOSRje/x7N5wA== X-Received: by 2002:aa7:c612:0:b0:4ad:7224:ce9d with SMTP id h18-20020aa7c612000000b004ad7224ce9dmr4547912edq.17.1677615983640; Tue, 28 Feb 2023 12:26:23 -0800 (PST) Received: from ars3 ([2a02:8109:8ac0:56d0::8b3a]) by smtp.gmail.com with ESMTPSA id g15-20020a1709064e4f00b008ee64893786sm4948796ejw.99.2023.02.28.12.26.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Feb 2023 12:26:22 -0800 (PST) From: Augusto Stoffel To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= Subject: Re: bug#61866: 29.0.60; Eglot: Dir-local workspace config doesn't work as described In-Reply-To: <87sfepppfg.fsf@gmail.com> (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vor?= =?utf-8?Q?a=22's?= message of "Tue, 28 Feb 2023 19:20:35 +0000") References: <87cz5uarsi.fsf@gmail.com> <87sfepppfg.fsf@gmail.com> Date: Tue, 28 Feb 2023 21:26:21 +0100 Message-ID: <87wn41a64y.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 61866 Cc: 61866@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Tue, 28 Feb 2023 at 19:20, Jo=C3=A3o T=C3=A1vora wrote: > I've just tried it and it works fine. Here's what I did: I put that > example in a .dir-locals.el nearby a thingy.py and thingy.go file in the > same dir. I start two Eglots managing each file and inspect that the > correct config is sent in each case. > >> =3D> *temp* ~/project_dir/ > > Have you tried adding a trace of the 'major-mode' variable to that > 'message' call? It should produce the correct major mode. Duh, I don't know what I did wrong. This indeed works as you describe. >> [ This behavior is confusing and reinforces my opinion that server >> information should be kept away from buffer-local variables. > > I'm not sure I see the benefit. This would cache things and necessitate > some invalidation when the user changes the .dir-locals.el file. The benefit is that my suggestion would restrict the origin of server configuration to exactly 1 place: the dir-locals.el. It would never ever come from a buffer-local value of some random managed buffer. >> Related glitch: if you have two servers running, A and B, and then, >> from a buffer in project A you do >> M-x eglot-show-workspace-configuration RET >> and select server B in the prompt, you get server A's information. ] > > I've reproduced this, and indeed this was quite broken. The patch at > the end should fix it, but I'd like you to test it. > >> There's probably no better place than dir-locals to store "workspace" >> (aka project) configuration. But it would be better to then record this >> configuration in the server object after it's read for .dir-locals.el, > > .dir-locals.el is short for "dir-local variables". buffer-local > variables are an integral part to that mechanism. If we add a new slot > in Eglot's server object we're adding caching/duplication/entangling > (however you prefer to call this). Sometimes that is needed, for > example for performance reasons, but it comes with invalitation > challenges. So again, this would be _removing_ duplication. Yes, the managed buffers would have some garbage buffer-local value, but it would be always ignored. Okay, now that I read your patch, it achieves the same goal of ignoring the buffer-locals in a different way. Makes sense to me. > Please try this patch: > > diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el > index ffc9511469f..89cdd8c14c7 100644 > --- a/lisp/progmodes/eglot.el > +++ b/lisp/progmodes/eglot.el > @@ -1335,10 +1335,7 @@ eglot--connect > (lambda () > (setf (eglot--inhibit-autoreconnect= server) > (null eglot-autoreconnect))))= ))) > - (let ((default-directory (project-root project= )) > - (major-mode (car managed-modes))) > - (hack-dir-local-variables-non-file-buffer) > - (run-hook-with-args 'eglot-connect-hook serv= er)) > + (run-hook-with-args 'eglot-connect-hook server) > (eglot--message > "Connected! Server `%s' now managing `%s' buf= fers \ > in project `%s'." > @@ -2444,9 +2441,7 @@ eglot-workspace-configuration >=20=20 > (defun eglot-show-workspace-configuration (&optional server) > "Dump `eglot-workspace-configuration' as JSON for debugging." > - (interactive (list (and (eglot-current-server) > - (eglot--read-server "Server configuration" > - (eglot-current-server))))) > + (interactive (list (eglot--read-server "Show workspace configuration f= or" t))) > (let ((conf (eglot--workspace-configuration-plist server))) > (with-current-buffer (get-buffer-create "*EGLOT workspace configurat= ion*") > (erase-buffer) > @@ -2457,14 +2452,23 @@ eglot-show-workspace-configuration > (json-pretty-print-buffer)) > (pop-to-buffer (current-buffer))))) >=20=20 > -(defun eglot--workspace-configuration (server) > - (if (functionp eglot-workspace-configuration) > - (funcall eglot-workspace-configuration server) > - eglot-workspace-configuration)) > - > -(defun eglot--workspace-configuration-plist (server) > - "Returns `eglot-workspace-configuration' suitable for serialization." > - (let ((val (eglot--workspace-configuration server))) > +(defun eglot--workspace-configuration-plist (server &optional path) > + "Returns SERVER's workspace configuration as a plist. > +If PATH consider that file's `file-name-directory' to get the > +local value of the `eglot-workspace-configuration' variable, else > +use the root of SERVER's `eglot--project'." > + (let ((val (with-temp-buffer > + (setq default-directory > + (if path > + (file-name-directory path) > + (project-root (eglot--project server)))) > + ;; FIXME; Should probably join values of all managed > + ;; major mode of this server. > + (setq major-mode (car (eglot--major-modes server))) I don't like that merging idea. Think of a server like Digestif that covers 4 major modes and several more derived ones. In fact, IIUC, mode derivations imply that it's impossible to know beforehand all modes a server can manage (other than inspecting the whole obarray). It seems best to declare that the user must save the config in the nil section of dir-locals.el. The configuration helper of the other bug could enforce this. Or maybe put it under the fake `eglot' entry like this: ((go-mode . ((indent-tabs-mode . nil))) (eglot . ((eglot-workspace-configuration . (:gopls (:usePlaceholders t)))))) It should work if you adapt the last quoted line, since (provided-mode-derived-p 'eglot 'eglot) =3D> t, but is probably too eccentric. > + (hack-dir-local-variables-non-file-buffer)() > + (if (functionp eglot-workspace-configuration) > + (funcall eglot-workspace-configuration server) > + eglot-workspace-configuration)))) > (or (and (consp (car val)) > (cl-loop for (section . v) in val > collect (if (keywordp section) section > @@ -2489,25 +2493,18 @@ eglot-handle-request > (apply #'vector > (mapcar > (eglot--lambda ((ConfigurationItem) scopeUri section) > - (with-temp-buffer > - (let* ((uri-path (eglot--uri-to-path scopeUri)) > - (default-directory > - (if (and uri-path > - (not (string-empty-p uri-path)) > - (file-directory-p uri-path)) > - (file-name-as-directory uri-path) > - (project-root (eglot--project server))))) > - (setq-local major-mode (car (eglot--major-modes server))) > - (hack-dir-local-variables-non-file-buffer) > - (cl-loop for (wsection o) > - on (eglot--workspace-configuration-plist server) > - by #'cddr > - when (string=3D > - (if (keywordp wsection) > - (substring (symbol-name wsection) 1) > - wsection) > - section) > - return o)))) > + (cl-loop with scope-uri-path =3D > + (and scopeUri (eglot--uri-to-path scopeUri)) > + for (wsection o) > + on (eglot--workspace-configuration-plist server > + scope-uri-= path) > + by #'cddr > + when (string=3D > + (if (keywordp wsection) > + (substring (symbol-name wsection) 1) > + wsection) > + section) > + return o)) > items))) >=20=20 > (defun eglot--signal-textDocument/didChange () From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 28 20:42:55 2023 Received: (at 61866) by debbugs.gnu.org; 1 Mar 2023 01:42:55 +0000 Received: from localhost ([127.0.0.1]:52254 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pXBUd-00037b-6r for submit@debbugs.gnu.org; Tue, 28 Feb 2023 20:42:55 -0500 Received: from mail-wr1-f42.google.com ([209.85.221.42]:37690) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pXBUb-00037M-Bm for 61866@debbugs.gnu.org; Tue, 28 Feb 2023 20:42:54 -0500 Received: by mail-wr1-f42.google.com with SMTP id h14so11672859wru.4 for <61866@debbugs.gnu.org>; Tue, 28 Feb 2023 17:42:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677634965; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wPgf5VvTSvWJ+b1kom/UNVOw6ajp1h0+OIZFAbA0FPM=; b=PxwVBQm6TIxHEvUpSwK3OyMShumpRAp2sR9YARoqOGAliw3nYK1b0mN/aRKHQWVIei kWgMuEHI19OIASSfwrsZ0Gex40cxmwQ4wwbeAjCjRvHnBMXgsLZmChKFU0U6KFdv3lHv IHU2dUS2ZJdadtXpzaC9D7eB0s6ZI18mqS+hAenRkUWzkwWaWOT2MKQucoPXyBtsjeAv shHdhGGmam5hakAyx0gyll7zoz4naeRB/GUF6JGH5Lj0oellYqVP1qMKlRn9HOT8DyLZ cs5hFJg8VrSrQfBmkAEfDWde3E/EbSLvR8+Zs7C5d2L5QM5NNDJpZcScfF6W+Q2q0Zx6 ifVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677634965; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wPgf5VvTSvWJ+b1kom/UNVOw6ajp1h0+OIZFAbA0FPM=; b=kSwQ3xbf5GsMmeDcHYuSVvf5SZdJInxES2glYOKF2hnGN93GgbP+K8RliF3gz6Ef/6 IbSqrHIaN9U6OwqQOYfn61+MlNnaURMeLRoQICHTs/OLZ/fnJIhYW3qRMCZ35QfW/O1V iwaHm5/TQRFS5IwFF1wjAWlTA7vAU1ymEITdU+X1bZWBS6101Qxj7fyLmPDPz8+RIWXc CD2jZRWyvmm1fOg4aDUHE5V9v7v/psx4rKDQWMliuTqunGKnM5LSHP8kl03+AS/IKcC+ 6dnYWbsh6eVhIogroNdae68cPkkr4d7spnQgIQlC7ujyGVuAohbwiGhLG3Ux3CSJbbwu H7DQ== X-Gm-Message-State: AO0yUKX66YKdZynczKFDGo1KV0Zapqd7+Ixbfr7nUXhDdnC3K5PrT4/5 0VzT2qzqTD4lAytUeBnFwxDfqQJVg9g= X-Google-Smtp-Source: AK7set90yLdCF6OanPJ2mTGLClnxejrlVFYScK7EYbEn9w+y9KUrwSj+ADG/kbWRjKzFqJbeMa7zxA== X-Received: by 2002:a5d:4a52:0:b0:2c5:598c:14b0 with SMTP id v18-20020a5d4a52000000b002c5598c14b0mr2829395wrs.20.1677634965644; Tue, 28 Feb 2023 17:42:45 -0800 (PST) Received: from krug (87-196-72-142.net.novis.pt. [87.196.72.142]) by smtp.gmail.com with ESMTPSA id u3-20020adfed43000000b002c55ec7f661sm11714102wro.5.2023.02.28.17.42.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Feb 2023 17:42:45 -0800 (PST) From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= To: Augusto Stoffel Subject: Re: bug#61866: 29.0.60; Eglot: Dir-local workspace config doesn't work as described In-Reply-To: <87wn41a64y.fsf@gmail.com> (Augusto Stoffel's message of "Tue, 28 Feb 2023 21:26:21 +0100") References: <87cz5uarsi.fsf@gmail.com> <87sfepppfg.fsf@gmail.com> <87wn41a64y.fsf@gmail.com> Date: Wed, 01 Mar 2023 01:44:39 +0000 Message-ID: <87a60xp7nc.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 61866 Cc: 61866@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Augusto Stoffel writes: >> I'm not sure I see the benefit. This would cache things and necessitate >> some invalidation when the user changes the .dir-locals.el file. > > The benefit is that my suggestion would restrict the origin of server > configuration to exactly 1 place: the dir-locals.el. It would never > ever come from a buffer-local value of some random managed buffer. That buffer is never "random", it is always a temporary buffer in the project's directory with the correct major-mode. >>> Related glitch: if you have two servers running, A and B, and then, >>> from a buffer in project A you do >>> M-x eglot-show-workspace-configuration RET >>> and select server B in the prompt, you get server A's information. ] >> >> I've reproduced this, and indeed this was quite broken. The patch at >> the end should fix it, but I'd like you to test it. >> >>> There's probably no better place than dir-locals to store "workspace" >>> (aka project) configuration. But it would be better to then record this >>> configuration in the server object after it's read for .dir-locals.el, >> >> .dir-locals.el is short for "dir-local variables". buffer-local >> variables are an integral part to that mechanism. If we add a new slot >> in Eglot's server object we're adding caching/duplication/entangling >> (however you prefer to call this). Sometimes that is needed, for >> example for performance reasons, but it comes with invalitation >> challenges. > > So again, this would be _removing_ duplication. Sorry but I don't follow. You can't take buffer-local variables out of the equation, so if we add a new slot and copy the value we're adding a copy to the process. If the user updates .dir-locals.el we have to add code to update that duplicated copy of information. In my version we don't have to do anything. >> + ;; FIXME; Should probably join values of all managed >> + ;; major mode of this server. >> + (setq major-mode (car (eglot--major-modes server))) > > I don't like that merging idea. Think of a server like Digestif that > covers 4 major modes and several more derived ones. In fact, IIUC, mode > derivations imply that it's impossible to know beforehand all modes a > server can manage (other than inspecting the whole obarray). > > It seems best to declare that the user must save the config in the nil > section of dir-locals.el. The configuration helper of the other bug > could enforce this. > > Or maybe put it under the fake `eglot' entry like this: > > ((go-mode > . ((indent-tabs-mode . nil))) > (eglot > . ((eglot-workspace-configuration > . (:gopls (:usePlaceholders t)))))) > > It should work if you adapt the last quoted line, since > (provided-mode-derived-p 'eglot 'eglot) =3D> t, but is probably too > eccentric. Yes, a bit :-) I'm not sure I want to change this or break people's .dir-locals.el. I don't place too much importance on thought-experiment problems until I'm presented with evidence of a real problem. Like the eglot-show-workspace-configuration bug you showed me and that I just solved. I pushed the patch, after testing manually. I took out the FIXME, as it's not really relevant. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 01 02:10:38 2023 Received: (at 61866) by debbugs.gnu.org; 1 Mar 2023 07:10:38 +0000 Received: from localhost ([127.0.0.1]:52460 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pXGbm-0006q4-2c for submit@debbugs.gnu.org; Wed, 01 Mar 2023 02:10:38 -0500 Received: from mail-ed1-f49.google.com ([209.85.208.49]:41810) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pXGbj-0006pn-Up for 61866@debbugs.gnu.org; Wed, 01 Mar 2023 02:10:36 -0500 Received: by mail-ed1-f49.google.com with SMTP id ec43so49876255edb.8 for <61866@debbugs.gnu.org>; Tue, 28 Feb 2023 23:10:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KRSKXYxgWsbnaeImPuM1QMsLrqJUJMltY8m9lODHTnc=; b=KKtmC6Z3sGYBBjZYDLmSOiyx+lkAE+2Tt4n3gBGs3zJxGLd3zpBQ4oyYU1qU74iCcN sBpdKkHOMaIdfsiz5maZCzMy+KqTHLgIUZfmMBkk+MU8yakJ3lbSbbwghfe/h/1Ux33z WQN5qAARmUoJ9rmC1oJNDNzjxzcQEF9oKALvq3hqolOWdpW6RZYUrpUKHwr/3Cx79yZs NjykqhctfcwOfAzlTD/ZE5WZO8H4jG6h3RHUJw2jpAomL+U8b/aTuw7P9+lqe26mnEu6 22gWkcKrOdR3DAEUTX127IkjEE8V7Nk3l0VOyqceUbCE2Gy58wez34NXUz3Q3yMi5XNp PUrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KRSKXYxgWsbnaeImPuM1QMsLrqJUJMltY8m9lODHTnc=; b=f/S7W5ZWvoWhvFAsDCMmB5+dGmWVtwDqIBxNe7KWpolKysfRyzfLT8Lkz8BNYG20AD wfo4pl0Y9eWj7UW9z/5zTTTW2xo/QhhUiRmJKpKMlxrSYFT4wQ3Sgr/QFsc3ZY8jThnb ZEMA8qnIvItlY7TkPXhpCERyi2bA+3VzLcEKyLsEm3YfAQaUR8nq6h+t1XXlz8vPPXjL 0juAiPUScVwns9uPmIocmblpTgOPHloO8dWPAxvyCSYUXdSIk3NWxdJMGbe70ImzL+GE xqT+AzBTdnbW+M4A78xNgRUP/p/f3rFIJdO1Eufr2vayYpgCYQZFwCOWXUcij29NJBxQ 9ebw== X-Gm-Message-State: AO0yUKXq/u5THL8JjIAJydBC/VGQMpjefpUZkEv86jzj7yJvHL5AO1Ch RY+sUGmllD54KdFP2OZmIe8Va4cyPV+IOg== X-Google-Smtp-Source: AK7set9x3QE5yoL+PrMFe4CBs6nVneAjd37kJIOfs77jeyhaUcEQICNiwk7RhfyzWNrkea6mmYwdYA== X-Received: by 2002:a17:906:9e23:b0:8fb:575d:1556 with SMTP id fp35-20020a1709069e2300b008fb575d1556mr4530695ejc.54.1677654629252; Tue, 28 Feb 2023 23:10:29 -0800 (PST) Received: from ars3 ([2a02:8109:8ac0:56d0::8b3a]) by smtp.gmail.com with ESMTPSA id l23-20020a1709062a9700b008d4b6f086c9sm5435848eje.185.2023.02.28.23.10.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Feb 2023 23:10:28 -0800 (PST) From: Augusto Stoffel To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= Subject: Re: bug#61866: 29.0.60; Eglot: Dir-local workspace config doesn't work as described In-Reply-To: <87a60xp7nc.fsf@gmail.com> (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vor?= =?utf-8?Q?a=22's?= message of "Wed, 01 Mar 2023 01:44:39 +0000") References: <87cz5uarsi.fsf@gmail.com> <87sfepppfg.fsf@gmail.com> <87wn41a64y.fsf@gmail.com> <87a60xp7nc.fsf@gmail.com> Date: Wed, 01 Mar 2023 08:10:27 +0100 Message-ID: <87o7pdvtek.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 61866 Cc: 61866@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Wed, 1 Mar 2023 at 01:44, Jo=C3=A3o T=C3=A1vora wrote: > That buffer is never "random", it is always a temporary buffer in the > project's directory with the correct major-mode. Yes, you patch is great. By random I meant a real project buffer (random because it's just one of many files in a project). > I pushed the patch, after testing manually. I took out the FIXME, as > it's not really relevant. Fine by me, but that observation was important. If today I configure my server and put it under the `latex-mode' section (because I _think_ it's a LaTeX project), and tomorrow I open a new Emacs and then do C-x C-f myproject/bibliography.bib then my server will be in an unexpected state. So I'd would always suggest, if not enforce, that the server configuration goes in the nil section. Or, at the very least, not teach the problematic variant in the manual. From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 01 04:23:12 2023 Received: (at 61866) by debbugs.gnu.org; 1 Mar 2023 09:23:13 +0000 Received: from localhost ([127.0.0.1]:52684 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pXIg4-0004Uz-MN for submit@debbugs.gnu.org; Wed, 01 Mar 2023 04:23:12 -0500 Received: from mail-oa1-f46.google.com ([209.85.160.46]:38403) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pXIg2-0004Un-MB for 61866@debbugs.gnu.org; Wed, 01 Mar 2023 04:23:10 -0500 Received: by mail-oa1-f46.google.com with SMTP id 586e51a60fabf-1720433ba75so13773497fac.5 for <61866@debbugs.gnu.org>; Wed, 01 Mar 2023 01:23:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677662585; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=hvSb9ZQJoC9tkAIsDnJxWl3mavPtgxoaesKLtLN6iJQ=; b=TxUKEkGfz4W291ju86f4keBtyXDjZXjAfq54BPggHLSlDNvEGUFQDuK0OEz4U7jpk9 SoHvo1TY+3izkwOd28r8uS5rIApb5JrDv+bzVdM7XhVBQg1mcHVIzjYCHHNRstwflr3h HAF9XbzYQDifkNPONt/ywf91KRKpJMgbtZOyqlremnmkIcnciRPI8gtSrdlyubMJm4zo tcXYuorfcixjK3oiokT9k8kGD8OgZ7wFv+/Zoa3Fxs0c7OZ3pJXOfhQHjCaprpiODT1F l+maFVrXLtfa0d1ci729cIWlCBf9Bw9D7oMu1q+two14PCBQLpUD2nJqirHqhoEdU86Q uz9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677662585; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hvSb9ZQJoC9tkAIsDnJxWl3mavPtgxoaesKLtLN6iJQ=; b=ZjJ4CHAbOGyJ2Z2cfgCHjI9kWojlX/CE1n7N9Rgn3oGZmfVGe2PVSsbejPieqCkLv/ sMxuInbeN4FjfR84rsy6P0b/srOMYdBFeaLsJX+spV15mp+UcQwU6uWPAFLCQMcdrdG+ cnzz68NcQxJMUqWGQo2sZxIU6FkANDEeveRqzSjgqC+4QZaCp+HEjBsLNpoqYTM4d6Oo /TqQK/JtHZSHqo08xoazUS3Ird583U4XtBR3/F1U95PbzkodVz0F6Oi671uJZYnXNJvm xCyR25ZCzxlv02cbsVJ8U6N0j+F7Z7GhwkNcqy4knX6ed8lTyMNSQsT8ZJpwhMBzUlqK ZfDQ== X-Gm-Message-State: AO0yUKUX1/1mgfOM1Ugg9aWcMlBptnFENnILrvy04QIxNu/lR7EQMi1a OG8b4sdFyy7TnPmc2hJBFJSpyI4pJkKjAq9v9Do= X-Google-Smtp-Source: AK7set99O4GnE4v/kW3j8sinyZH5RocPjns+U7W5ghuU/gUZmMS046KUlvgdzxCI+G2kVdW6ZIsnSp588w4jWbLW8Oo= X-Received: by 2002:a05:6870:70b:b0:175:4a1f:edff with SMTP id ea11-20020a056870070b00b001754a1fedffmr766987oab.8.1677662584951; Wed, 01 Mar 2023 01:23:04 -0800 (PST) MIME-Version: 1.0 References: <87cz5uarsi.fsf@gmail.com> <87sfepppfg.fsf@gmail.com> <87wn41a64y.fsf@gmail.com> <87a60xp7nc.fsf@gmail.com> <87o7pdvtek.fsf@gmail.com> In-Reply-To: <87o7pdvtek.fsf@gmail.com> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Wed, 1 Mar 2023 09:22:54 +0000 Message-ID: Subject: Re: bug#61866: 29.0.60; Eglot: Dir-local workspace config doesn't work as described To: Augusto Stoffel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 61866 Cc: 61866@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Wed, Mar 1, 2023 at 7:10=E2=80=AFAM Augusto Stoffel wrote: > So I'd would always suggest, if not enforce, that the server > configuration goes in the nil section. Or, at the very least, not > teach the problematic variant in the manual. If you're configuring a server that manages multiple different languages then you should use the 'nil' section, of course. I can add that to the manual. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 09 08:10:22 2023 Received: (at control) by debbugs.gnu.org; 9 Mar 2023 13:10:22 +0000 Received: from localhost ([127.0.0.1]:51168 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1paG2I-0007BF-Ce for submit@debbugs.gnu.org; Thu, 09 Mar 2023 08:10:22 -0500 Received: from mail-ed1-f47.google.com ([209.85.208.47]:41766) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1paG2G-0007B3-Mf for control@debbugs.gnu.org; Thu, 09 Mar 2023 08:10:21 -0500 Received: by mail-ed1-f47.google.com with SMTP id s11so6718894edy.8 for ; Thu, 09 Mar 2023 05:10:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678367414; h=subject:from:to:message-id:date:from:to:cc:subject:date:message-id :reply-to; bh=mhGLdf+eo81f9LCI2P3vJkjZAYWacRp4g+jmQJvGR8c=; b=mM3vyszIAIbVHPWjzpOmbwlAnFsjw4DUN9PCRUDwlmn0ZymvpBDwpo/yBJD4OGtUN1 UOtnrkdxjjtqpdHpwyS+VfM7Z0QN3NY/YOLAO3/djtBAWLkNBYrmfxOgJKjjcEQ50efs a1mXVrJivmg4qKvX4I6FJdIqrSOBl/Kui040w78uq5PYYM+FDb/DNEZuf8ca+urDrOm4 JFM+rUgOyEGM0s8bmhPoUb5tdmjAFRd8vlZzfzsM90GL6870Re0QySMozivs3CdsVzjx /Eb9GQQ/3fgkjmbJiyOQimldFXDBKVwncLFzrpCzQMbD6ZGWihqzqwoc6/qmA3Jg/H1C ywKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678367414; h=subject:from:to:message-id:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mhGLdf+eo81f9LCI2P3vJkjZAYWacRp4g+jmQJvGR8c=; b=W1b4ze8rP9R+I+ibxABnTFLsebdLI7CQ6yDghU22Zd6q9He6vMSsARR79hLUk1G3Q7 vCi2tQ2jLZiF4T06MVervAfnTItvBfG6NlitlUqjSSpkroeklAF03DqmwY1vfbJHqSe2 sJlO67dzALJvC01nvslXLBT/4GPWHjNdRFqwv6PaLTGRXHDY+kfNfL+opheCQATyz/Ka ki0rlk9Atbi7qox7zfWZGZrSi95xGXG2xoRa7W0xaBYoSzEiUfk+X0+5I8H7oS5PicZp TbQC8skJKLBXjNWHhIAXPGRg5jeDTzrs61M40+T+57BBoS4hckLJX8ohaNxSNeOYYfnQ zfOA== X-Gm-Message-State: AO0yUKXY1qtKBjolQ/PAbyWwf8bv2AeDVT2y14th4je1icD3zYVYjMEF SpYNwm3KjN1Nj/JgF8NPPQdnX05z+P3Jow== X-Google-Smtp-Source: AK7set/crlBwV3XZCb+sSvlXfLoseI2+B8sghmMeRCFVosVEzwo0Se5/y0gWOfCiQ5WBtrAywMqJng== X-Received: by 2002:a17:907:20aa:b0:878:814d:bc99 with SMTP id pw10-20020a17090720aa00b00878814dbc99mr21663377ejb.66.1678367414558; Thu, 09 Mar 2023 05:10:14 -0800 (PST) Received: from ars3 ([2a02:8109:8ac0:56d0::8b3a]) by smtp.gmail.com with ESMTPSA id kv22-20020a17090778d600b008dceec0fd4csm8794216ejc.73.2023.03.09.05.10.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Mar 2023 05:10:14 -0800 (PST) Date: Thu, 09 Mar 2023 14:10:12 +0100 Message-Id: <87y1o69ikr.fsf@gmail.com> To: control@debbugs.gnu.org From: Augusto Stoffel Subject: control message for bug #61866 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) close 61866 29.1 quit From unknown Sun Jun 22 11:44:25 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 07 Apr 2023 11:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator