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
}
}
}
}
Thanks for the hint @nullchilly. Turns out my config for
root_dir
has some issue with inlay hints. Now it shows the function return type and function params,but variable types are still missing. Does it show the variable types on your end?Looks like it's the behavior ofpylance
, I got the same result in vscode. Thanks again bro. You're crazy good at this 😁