emacs-lsp / lsp-pyright

lsp-mode :heart: pyright

Home Page:https://emacs-lsp.github.io/lsp-pyright

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Remote support?

shanemcd opened this issue · comments

Hello. Is there a way to use this with LSP Mode's Remote capabilities?

You could try something like this

(lsp-register-client
     (make-lsp-client
      :new-connection
      (lsp-tramp-connection
       (lambda ()
         (cons (executable-find "pyright-langserver" t)
               lsp-pyright-langserver-command-args)))
      :major-modes '(python-mode)
      :server-id 'pyright-remote
      :multi-root lsp-pyright-multi-root
      :remote? t
      :priority -1
      :initialized-fn
      (lambda (workspace)
        (with-lsp-workspace workspace
          ;; we send empty settings initially, LSP server will ask for the
          ;; configuration of each workspace folder later separately
          (lsp--set-configuration
           (make-hash-table :test 'equal))))
      :download-server-fn
      (lambda (_client callback error-callback _update?)
        (lsp-package-ensure 'pyright callback error-callback))
      :notification-handlers
      (lsp-ht ("pyright/beginProgress" 'lsp-pyright--begin-progress-callback)
              ("pyright/reportProgress" 'lsp-pyright--report-progress-callback)
              ("pyright/endProgress" 'lsp-pyright--end-progress-callback))))

@PythonNut It seems good. I can add it to lsp-pyright if there is no issue after more testings. Please keep testing.

I've tried this, and it looks like it almost works.

It prompts for a download of pyright-remote on the remote server, but doesn't seem to download anything and enters a loop of prompting for download over and over.
If I remove the :download-server-fn section, the prompt to download doesn't appear as would be expected, but the lsp-log buffer shows that the pyright server can't be found on the remote, even though I've installed it and it exists at /usr/bin/pyright-langserver.

Has anything changed in the codebase since November that would affect this?

commented

Also have the prompt for download of pyright-remote problem.

Upon opening file I get:

Unable to locate install server supporting this file. The following servers could be installed automatically:
pyright-remote

I then get the error:
Forbidden reentrant of Tramp

Is there a fix for it? Is it possible to install pyright-remote on the server? Do I need to install pyright-remote locally?

@smsegal Did you check your tramp-remote-path?

@pmcvay Does it work to removing this and download the pyright manually?

      :download-server-fn
      (lambda (_client callback error-callback _update?)
        (lsp-package-ensure 'pyright callback error-callback))
commented

Yep, I got it working without that and pyright downloaded manually on the server

commented

I was having problems because pyright was erroring out on the server and I had to go to the tmp file stderr output to debug it. It took a little bit to figure out but that's what I was missing