Install the pylance extension in vscode or manually download it from the marketplace
The extension path should be similar to this: ~/.vscode/extensions/ms-python.vscode-pylance-2023.11.10
In init.vim
, this will automatically detect the latest pylance version because after an upgrade the old plugin might linger for a while:
call coc#config('languageserver', { "pylance": { "module": expand("~/.vscode/extensions/ms-python.vscode-pylance-*/dist/server.bundle.js", 0, 1)[0] } })
In coc-settings.json
, we add these env
to trick pylance into thinking we are running vscode:
{
"languageserver": {
"pylance": {
"enable": true,
"filetypes": [
"python"
],
"env": {
"ELECTRON_RUN_AS_NODE": "0",
"VSCODE_NLS_CONFIG": "{\"locale\": \"en\"}"
},
"module": "${userHome}/.vscode/extensions/ms-python.vscode-pylance-2023.11.10/dist/server.bundle.js",
"initializationOptions": {},
"settings": {
"python.analysis.typeCheckingMode": "basic",
"python.analysis.diagnosticMode": "openFilesOnly",
"python.analysis.stubPath": "./typings",
"python.analysis.autoSearchPaths": true,
"python.analysis.extraPaths": [],
"python.analysis.diagnosticSeverityOverrides": {},
"python.analysis.useLibraryCodeForTypes": true
}
}
}
}
Are you running directly on Windows? It appears not, but just curious.
If I run
node ~/.vscode/extensions/ms-python.vscode-pylance-2023.7.20/dist/server.bundle.js --stdio
I get a message noting that it can only be used from MS products. Even when doingexport ELECTRON_RUN_AS_NODE=1
andexport VSCODE_NLS_CONFIG=1
beforehand, the same thing occurs.Does it work for you directly from an interactive shell @nullchilly? I wonder of coc is doing something special that allows it to work.