From: Eli Zaretskii <eliz@gnu.org>
To: "Dov Grobgeld" <dov.grobgeld@gmail.com>,
"João Távora" <joaotavora@gmail.com>
Cc: 73436@debbugs.gnu.org
Subject: bug#73436: eglot-1.17 fails to run in emacs 29.4
Date: Mon, 23 Sep 2024 14:58:17 +0300 [thread overview]
Message-ID: <861q1ah99i.fsf@gnu.org> (raw)
In-Reply-To: <CA++fsGE5Kc=+oDJbQCpc56QUj1bc7MZLZH=jB5J+xox4GVfbkg@mail.gmail.com> (message from Dov Grobgeld on Mon, 23 Sep 2024 11:58:03 +0300)
> From: Dov Grobgeld <dov.grobgeld@gmail.com>
> Date: Mon, 23 Sep 2024 11:58:03 +0300
>
> Running the latest version of eglot, version 1.17, installed by
> package-list-packages, on emacs 29.4 fails.
Adding João.
> Here's what I did:
>
> $ cd /tmp/eglot-1.17
> $ emacs -Q -nw eglot.el
>
> and then the interactive commands
>
> M-x eval-buffer
> C-x C-f hello.c
> C-: (setq debug-on-error t)
> M-x eglot
>
> This resulted in an error. Here is the stack trace:
>
> Debugger entered--Lisp error: (invalid-slot-name "#<eglot-lsp-server
> eglot-lsp-server-93e4e78>" :events-buffer-config)
> signal(invalid-slot-name ("#<eglot-lsp-server
> eglot-lsp-server-93e4e78>" :events-buffer-config))
> slot-missing(#<eglot-lsp-server eglot-lsp-server-93e4e78>
> :events-buffer-config oset (:size 2000000 :format full))
> #f(compiled-function (obj slots) "Set slots of OBJ with SLOTS which
> is a list of name/value pairs.\nCalled from the constructor routine."
> #<bytecode 0x4590eddf9051ddd>)(#<eglot-lsp-server
> eglot-lsp-server-93e4e78> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode
> c++-mode c++-t..." :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> apply(#f(compiled-function (obj slots) "Set slots of OBJ with SLOTS
> which is a list of name/value pairs.\nCalled from the constructor
> routine." #<bytecode 0x4590eddf9051ddd>) #<eglot-lsp-server
> eglot-lsp-server-93e4e78> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode
> c++-mode c++-t..." :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> shared-initialize(#<eglot-lsp-server eglot-lsp-server-93e4e78>
> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> #f(compiled-function (this &optional args) "Construct the new object
> THIS based on ARGS.\nARGS is a property list where odd numbered
> elements are tags, and\neven numbered elements are the values to store
> in the tagged slot.\nIf you overload the `initialize-instance', there
> you will need to\ncall `shared-initialize' yourself, or you can call
> `call-next-method'\nto have this constructor called automatically. If
> these steps are\nnot taken, then new objects of your class will not
> have their values\ndynamically set from ARGS." #<bytecode
> -0x1f60eebd0e85d7f7>)(#<eglot-lsp-server eglot-lsp-server-93e4e78>
> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> apply(#f(compiled-function (this &optional args) "Construct the new
> object THIS based on ARGS.\nARGS is a property list where odd numbered
> elements are tags, and\neven numbered elements are the values to store
> in the tagged slot.\nIf you overload the `initialize-instance', there
> you will need to\ncall `shared-initialize' yourself, or you can call
> `call-next-method'\nto have this constructor called automatically. If
> these steps are\nnot taken, then new objects of your class will not
> have their values\ndynamically set from ARGS." #<bytecode
> -0x1f60eebd0e85d7f7>) (#<eglot-lsp-server eglot-lsp-server-93e4e78>
> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t))))))
> #f(compiled-function (&rest args) #<bytecode -0x7469b45b80fef61>)()
> #f(compiled-function (cl--cnm conn slots) #<bytecode
> 0x18a7bfd9b312194c>)(#f(compiled-function (&rest args) #<bytecode
> -0x7469b45b80fef61>) #<eglot-lsp-server eglot-lsp-server-93e4e78>
> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> apply(#f(compiled-function (cl--cnm conn slots) #<bytecode
> 0x18a7bfd9b312194c>) #f(compiled-function (&rest args) #<bytecode
> -0x7469b45b80fef61>) (#<eglot-lsp-server eglot-lsp-server-93e4e78>
> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t))))))
> #f(compiled-function (conn slots) #<bytecode
> 0x164956dec53e81bc>)(#<eglot-lsp-server eglot-lsp-server-93e4e78>
> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> apply(#f(compiled-function (conn slots) #<bytecode
> 0x164956dec53e81bc>) (#<eglot-lsp-server eglot-lsp-server-93e4e78>
> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t))))))
> #f(compiled-function (&rest args) #<bytecode
> -0xb77c4438ff27908>)(#<eglot-lsp-server eglot-lsp-server-93e4e78>
> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> apply(#f(compiled-function (&rest args) #<bytecode
> -0xb77c4438ff27908>) #<eglot-lsp-server eglot-lsp-server-93e4e78>
> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> initialize-instance(#<eglot-lsp-server eglot-lsp-server-93e4e78>
> (:name "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> #f(compiled-function (class &rest slots) "Default constructor for
> CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots
> used by `initialize-instance'.\nThis static method is called when an
> object is constructed.\nIt allocates the vector used to represent an
> EIEIO object, and then\ncalls `initialize-instance' on that object."
> #<bytecode -0x982733269180e59>)(eglot-lsp-server :name "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..." :events-buffer-config
> (:size 2000000 :format full) :notification-dispatcher (closure ((fn .
> eglot-handle-notification)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :request-dispatcher (closure ((fn . eglot-handle-request))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :on-shutdown eglot--on-shutdown
> :process (closure ((contact "/usr/bin/clangd") (server-info)
> (readable-name . "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode
> c++-t...") tramp-ssh-controlmaster-options
> tramp-use-ssh-controlmaster-options) nil (let ((default-directory
> default-directory) (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t))))
> apply(#f(compiled-function (class &rest slots) "Default constructor
> for CLASS `eieio-default-superclass'.\nSLOTS are the initialization
> slots used by `initialize-instance'.\nThis static method is called
> when an object is constructed.\nIt allocates the vector used to
> represent an EIEIO object, and then\ncalls `initialize-instance' on
> that object." #<bytecode -0x982733269180e59>) eglot-lsp-server (:name
> "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..."
> :events-buffer-config (:size 2000000 :format full)
> :notification-dispatcher (closure ((fn . eglot-handle-notification))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :request-dispatcher (closure ((fn
> . eglot-handle-request)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :on-shutdown eglot--on-shutdown :process (closure ((contact
> "/usr/bin/clangd") (server-info) (readable-name . "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t...")
> tramp-ssh-controlmaster-options tramp-use-ssh-controlmaster-options)
> nil (let ((default-directory default-directory)
> (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> make-instance(eglot-lsp-server :name "EGLOT (eglot-1.17/(c-mode
> c-ts-mode c++-mode c++-t..." :events-buffer-config (:size 2000000
> :format full) :notification-dispatcher (closure ((fn .
> eglot-handle-notification)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :request-dispatcher (closure ((fn . eglot-handle-request))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :on-shutdown eglot--on-shutdown
> :process (closure ((contact "/usr/bin/clangd") (server-info)
> (readable-name . "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode
> c++-t...") tramp-ssh-controlmaster-options
> tramp-use-ssh-controlmaster-options) nil (let ((default-directory
> default-directory) (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t))))
> apply(make-instance eglot-lsp-server :name "EGLOT
> (eglot-1.17/(c-mode c-ts-mode c++-mode c++-t..." :events-buffer-config
> (:size 2000000 :format full) :notification-dispatcher (closure ((fn .
> eglot-handle-notification)) (server method params) (let
> ((eglot--cached-server server)) (apply fn server method (append params
> nil)))) :request-dispatcher (closure ((fn . eglot-handle-request))
> (server method params) (let ((eglot--cached-server server)) (apply fn
> server method (append params nil)))) :on-shutdown eglot--on-shutdown
> (:process (closure ((contact "/usr/bin/clangd") (server-info)
> (readable-name . "EGLOT (eglot-1.17/(c-mode c-ts-mode c++-mode
> c++-t...") tramp-ssh-controlmaster-options
> tramp-use-ssh-controlmaster-options) nil (let ((default-directory
> default-directory) (tramp-use-ssh-controlmaster-options 'suppress)
> (tramp-ssh-controlmaster-options "-o ControlMaster=no -o
> ControlPath=none")) (make-process :name readable-name :command (setq
> server-info (eglot--cmd contact)) :connection-type 'pipe :coding
> 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create (format "*%s
> stderr*" readable-name)) :file-handler t)))))
> (let* ((default-directory (project-root project)) (nickname
> (project-name project)) (readable-name (format "EGLOT (%s/%s)"
> nickname managed-modes)) server-info (contact (if (functionp contact)
> (funcall contact) contact)) (initargs (cond ((keywordp (car contact))
> contact) ((integerp (car (cdr contact))) (setq server-info (list
> (format "%s:%s" ... ...))) (list ':process #'(lambda nil ...))) ((and
> (stringp (car contact)) (cl-find-if #'... contact)) (setq server-info
> (list "<inferior process>")) (list ':process
> (jsonrpc-autoport-bootstrap readable-name contact :connect-args
> '...))) ((stringp (car contact)) (let* ((probe ...) (more-initargs
> ...) (contact ...)) (cons ':process (cons ... more-initargs))))))
> (spread #'(lambda (fn) #'(lambda (server method params) (let ...
> ...)))) (server (apply #'make-instance class :name readable-name
> :events-buffer-config eglot-events-buffer-config
> :notification-dispatcher (funcall spread #'eglot-handle-notification)
> :request-dispatcher (funcall spread #'eglot-handle-request)
> :on-shutdown #'eglot--on-shutdown initargs)) (canceled nil) (tag
> (make-symbol "connected-catch-tag"))) (if server-info (progn
> (jsonrpc--debug server "Running language server: %s" (string-join
> server-info " ")))) (let* ((v server)) (\(setf\
> eglot--saved-initargs\) initargs v)) (let* ((v server)) (\(setf\
> eglot--project\) project v)) (let* ((v server)) (\(setf\
> eglot--project-nickname\) nickname v)) (let* ((v server)) (\(setf\
> eglot--languages\) (let* ((--cl-var-- managed-modes) (m nil)
> (--cl-var-- language-ids) (l nil) (--cl-var-- nil)) (while (and (consp
> --cl-var--) (progn (setq m ...) (consp --cl-var--))) (setq l (car
> --cl-var--)) (setq --cl-var-- (cons (cons m l) --cl-var--)) (setq
> --cl-var-- (cdr --cl-var--)) (setq --cl-var-- (cdr --cl-var--)))
> (nreverse --cl-var--)) v)) (run-hook-with-args
> 'eglot-server-initialized-hook server) (unwind-protect (condition-case
> _quit (let ((retval (catch tag (jsonrpc-async-request server
> :initialize ... :success-fn ... :timeout eglot-connect-timeout
> :error-fn ... :timeout-fn ...) (cond ... ...)))) (cond ((consp retval)
> (let* (...) (if ... ... ...))) ((null retval) (let nil (eglot--message
> "Waiting in background for server `%s'" ...) nil)) (t (let nil
> server)))) (quit (jsonrpc-shutdown server) (setq canceled 'quit)))
> (setq tag nil)))
> eglot--connect((c-mode c-ts-mode c++-mode c++-ts-mode objc-mode)
> (transient . "/tmp/eglot-1.17/") eglot-lsp-server ("/usr/bin/clangd")
> ("c" "c" "c++" "c++" "objc"))
> eglot((c-mode c-ts-mode c++-mode c++-ts-mode objc-mode) (transient .
> "/tmp/eglot-1.17/") eglot-lsp-server ("/usr/bin/clangd") ("c" "c"
> "c++" "c++" "objc") t)
> funcall-interactively(eglot (c-mode c-ts-mode c++-mode c++-ts-mode
> objc-mode) (transient . "/tmp/eglot-1.17/") eglot-lsp-server
> ("/usr/bin/clangd") ("c" "c" "c++" "c++" "objc") t)
> command-execute(eglot record)
> execute-extended-command(nil "eglot" "eglot")
> funcall-interactively(execute-extended-command nil "eglot" "eglot")
> command-execute(execute-extended-command)
>
>
>
>
next prev parent reply other threads:[~2024-09-23 11:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-23 8:58 bug#73436: eglot-1.17 fails to run in emacs 29.4 Dov Grobgeld
2024-09-23 11:58 ` Eli Zaretskii [this message]
2024-09-23 18:02 ` João Távora
2024-09-23 19:29 ` Dov Grobgeld
2024-09-24 2:24 ` Eli Zaretskii
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=861q1ah99i.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=73436@debbugs.gnu.org \
--cc=dov.grobgeld@gmail.com \
--cc=joaotavora@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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).