diff --git a/modules/tools/lsp/demos.org b/modules/tools/lsp/demos.org new file mode 100644 index 000000000..b107f140a --- /dev/null +++ b/modules/tools/lsp/demos.org @@ -0,0 +1,40 @@ +#+title: :tools lsp API demos +#+property: header-args:elisp :results pp :exports both :eval never-export + +* set-eglot-client! +#+begin_src emacs-lisp +;; For setting a single server command: +(set-eglot-client! 'python-mode + `(,(concat doom-data-dir \"lsp/mspyls/Microsoft.Python.LanguageServer\"))) + +;; This is equivalent to +(with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs `(python-mode . (,(concat doom-data-dir "lsp/mspyls/Microsoft.Python.LanguageServer\"))))) +#+end_src + +#+begin_src emacs-lisp +(set-eglot-client! '(python-mode python-ts-mode) + "pylsp" "pyls" + '("basedpyright" "--stdio") + '("basedpyright-langserver" "--stdio") + '("pyright" "--stdio") + '("pyright-langserver" "--stdio") + '("pyrefly" "lsp") + "jedi-language-server" + '("ruff" "server") + "ruff-lsp") + +;; This is equivalent to +(with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs + `(python-mode + . ,(eglot-alternatives '("pylsp" "pyls" + ("basedpyright" "--stdio") + ("basedpyright-langserver" "--stdio") + ("pyright" "--stdio") + ("pyright-langserver" "--stdio") + ("pyrefly" "lsp") + "jedi-language-server" + ("ruff" "server") + "ruff-lsp")))))) +#+end_src