zbelial / lspce

LSP Client for Emacs implemented as a module using rust.
GNU General Public License v3.0
154 stars 11 forks source link

Deno lsp 如何设置? #5

Closed noalias closed 4 months ago

noalias commented 1 year ago
;;; `lsp'in `eglot' `lspce'
(defconst prog:lsp 'lspce)

(use-package lspce
  :straight (
             :host github
             :repo "zbelial/lspce"
             :pre-build (("cargo" "build" "--release")
                         ("mv" "target/release/liblspce_module.so" "lspce-module.so"))
             :files ("lspce-module.so" :defaults)
             )
  :if (eq prog:lsp 'lspce)
  :hook
  (rust-ts-mode-hook typescript-ts-mode-hook js-ts-mode-hook)
  :config
  (defun lspce-deno-initializationOptions ()
    (let ((options (make-hash-table :test #'equal)))
      (setq options (lspce--add-option "settings.deno.enable" t options))
      options))

  (setq lspce-server-programs
        `(("typescript" "deno" "lsp" lspce-deno-initializationOptions)
          ("rust" "rust-analyzer" "" lspce-ra-initializationOptions)))

  (lspce-disable-logging)
  )

请问下,这是我的设置,但是在编辑ts文件时,不能弹出补全。

zbelial commented 1 year ago

简单研究了一下,也没能让它补全。我再继续看看。

可能也是因为我不熟悉deno,但我感觉deno的lsp好像也不是很完善啊

noalias commented 1 year ago

暂时换回eglot了。

zbelial commented 1 year ago

嗯,哪个趁手用哪个。

话说eglot里可以用deno吗?如果是的话,那就是lspce的实现有问题。

noalias commented 1 year ago

嗯,哪个趁手用哪个。

话说eglot里可以用deno吗?如果是的话,那就是lspce的实现有问题。

可以的,参照这个

zbelial commented 7 months ago

试了下1.39.4版本的deno,用下面的配置看起来lsp可以工作了

(defun lspce-deno-initializationOptions ()
  (let ((options (make-hash-table :test #'equal)))
    (setq options (lspce--add-option "enable" t options))
    (setq options (lspce--add-option "lint" t options))
    (setq options (lspce--add-option "unstable" :json-false options))
    options))
(setq lspce-server-programs `(
                              ("typescript" "deno" "lsp" lspce-deno-initializationOptions)
                              ))