lsp-mode client leveraging pyright and basedpyright language server.
(use-package lsp-pyright
:ensure t
:custom (lsp-pyright-langserver-command "pyright") ;; or basedpyright
:hook (python-mode . (lambda ()
(require 'lsp-pyright)
(lsp)))) ; or lsp-deferred
lsp-pyright
supports the following configuration. Each configuration is described in detail in
Pyright Settings.
basedpyright.
/ pyright.disableLanguageServices
via lsp-pyright-disable-language-services
basedpyright.
/ pyright.disableOrganizeImports
via lsp-pyright-disable-organize-imports
basedpyright.
/ pyright.disableTaggedHints
via lsp-pyright-disable-tagged-hints
basedpyright.
/ python.typeCheckingMode
via lsp-pyright-type-checking-mode
basedpyright.analysis.inlayHints.variableTypes
via lsp-pyright-basedpyright-inlay-hints-variable-types
basedpyright.analysis.inlayHints.callArgumentNames
via lsp-pyright-basedpyright-inlay-hints-call-argument-names
basedpyright.analysis.inlayHints.functionReturnTypes
via lsp-pyright-basedpyright-inlay-hints-function-return-types
basedpyright.analysis.inlayHints.genericTypes
via lsp-pyright-basedpyright-inlay-hints-generic-types
python.analysis.autoImportCompletions
via lsp-pyright-auto-import-completions
python.analysis.diagnosticMode
via lsp-pyright-diagnostic-mode
python.analysis.logLevel
via lsp-pyright-log-level
python.analysis.autoSearchPaths
via lsp-pyright-auto-search-paths
python.analysis.extraPaths
via lsp-pyright-extra-paths
python.pythonPath
via lsp-pyright-locate-python
python.venvPath
via lsp-pyright-venv-path
Projects can be further configured using pyrightconfig.json
file. For further details please see
Pyright Configuration.
lsp-pyright
will try its best to select the correct version of the
python executable to use. It will do so by iteratively executing
different search functions, going from most precise to most
general.
The list and order of the list can be modified by customizing
lsp-pyright-python-search-functions
. By default the order is:
.venv
or venv
via lsp-pyright--locate-python-venv
.lsp-pyright--locate-python-python
.