Also, please note that this is a problem because Pyright as configured by Cursor does not offer all locations where a variable is used when using command-click on a symbol, for example. Therefore, I was trying to compare its behavior relative to the ms-python plugin.
I could have sworn I got this to work correctly once, but since then I cannot get ms-python to work correctly – the time it worked, I was able to post a separate bug report about the behavior difference (here: Cursor's Pyright/BasedPyright doesn't find all variable references )
Since that one time, I’m unable to get the ms-python extension to work correctly again. Maybe it auto-updated in the meantime?!
Some additional errors which may or may not be relevant:
This one, when disable then re-enable of ms-python:
_pickle.UnpicklingError: invalid load key, ’ '.: Error: _pickle.UnpicklingError: invalid load key, ’ '.
at ae (/Users/athana/.cursor/extensions/ms-python.python-2025.6.1-darwin-arm64/out/client/extension.js:2:1962784)
at oe (/Users/athana/.cursor/extensions/ms-python.python-2025.6.1-darwin-arm64/out/client/extension.js:2:1960744)
at Immediate. (/Users/athana/.cursor/extensions/ms-python.python-2025.6.1-darwin-arm64/out/client/extension.js:2:1957038)
at process.processImmediate (node:internal/timers:485:21) Error: _pickle.UnpicklingError: invalid load key, ’ '.
| error | @ | workbench.desktop.main.js:55 | |
|---|---|---|---|
| error | @ | workbench.desktop.main.js:55 | |
| undefined | ---- | ---- | ---- |
| error | @ | workbench.desktop.main.js:14986 | |
| undefined | ---- | ---- | ---- |
| handleUnexpectedError | @ | workbench.desktop.main.js:14983 | |
| undefined | ---- | ---- | ---- |
| (anonymous) | @ | workbench.desktop.main.js:14983 | |
| undefined | ---- | ---- | ---- |
| onUnexpectedExternalError | @ | workbench.desktop.main.js:27 | |
| undefined | ---- | ---- | ---- |
| B0 | @ | workbench.desktop.main.js:22 | |
| undefined | ---- | ---- | ---- |
| (anonymous) | @ | workbench.desktop.main.js:534 | |
| undefined | ---- | ---- | ---- |
| await in (anonymous) | |||
|---|---|---|---|
| xPr | @ | workbench.desktop.main.js:534 | |
| undefined | ---- | ---- | ---- |
| (anonymous) | @ | workbench.desktop.main.js:534 | |
| undefined | ---- | ---- | ---- |
| ky | @ | workbench.desktop.main.js:50 | |
| undefined | ---- | ---- | ---- |
| _requestRange | @ | workbench.desktop.main.js:534 | |
| undefined | ---- | ---- | ---- |
| (anonymous) | @ | workbench.desktop.main.js:534 | |
| undefined | ---- | ---- | ---- |
| _tokenizeViewportNow | @ | workbench.desktop.main.js:534 | |
| undefined | ---- | ---- | ---- |
| (anonymous) | @ | workbench.desktop.main.js:534 | |
| undefined | ---- | ---- | ---- |
| doRun | @ | workbench.desktop.main.js:50 | |
| undefined | ---- | ---- | ---- |
| onTimeout | @ | workbench.desktop.main.js:50 | |
| undefined | ---- | ---- | ---- |
| setTimeout | |||
|---|---|---|---|
| e.setTimeout | @ | workbench.desktop.main.js:12478 | |
| undefined | ---- | ---- | ---- |
| schedule | @ | workbench.desktop.main.js:50 | |
| undefined | ---- | ---- | ---- |
| a | @ | workbench.desktop.main.js:534 | |
| undefined | ---- | ---- | ---- |
| (anonymous) | @ | workbench.desktop.main.js:534 | |
| undefined | ---- | ---- | ---- |
| _deliver | @ | workbench.desktop.main.js:49 | |
| undefined | ---- | ---- | ---- |
| _deliverQueue | @ | workbench.desktop.main.js:49 | |
| undefined | ---- | ---- | ---- |
| fire | @ | workbench.desktop.main.js:49 | |
| undefined | ---- | ---- | ---- |
| register | @ | workbench.desktop.main.js:12358 | |
| undefined | ---- | ---- | ---- |
| $registerDocumentRangeSemanticTokensProvider | @ | workbench.desktop.main.js:12358 | |
| undefined | ---- | ---- | ---- |
| _doInvokeHandler | @ | workbench.desktop.main.js:13027 | |
| undefined | ---- | ---- | ---- |
| _invokeHandler | @ | workbench.desktop.main.js:13027 | |
| undefined | ---- | ---- | ---- |
| _receiveRequest | @ | workbench.desktop.main.js:13027 | |
| undefined | ---- | ---- | ---- |
| _receiveOneMessage | @ | workbench.desktop.main.js:13027 | |
| undefined | ---- | ---- | ---- |
| (anonymous) | @ | workbench.desktop.main.js:13027 | |
| undefined | ---- | ---- | ---- |
| _deliver | @ | workbench.desktop.main.js:49 | |
| undefined | ---- | ---- | ---- |
| fire | @ | workbench.desktop.main.js:49 | |
| undefined | ---- | ---- | ---- |
| fire | @ | workbench.desktop.main.js:12360 | |
| undefined | ---- | ---- | ---- |
| (anonymous) | @ | workbench.desktop.main.js:15027 | |
| undefined | ---- | ---- | ---- |
This one shows up at times:
An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can escape its sandboxing.
mountTo @ workbench.desktop.main.js:15371
_show @ workbench.desktop.main.js:15371
claim @ workbench.desktop.main.js:15371
openMarkdown @ workbench.desktop.main.js:14044
await in openMarkdown
openDetails @ workbench.desktop.main.js:14102
await in openDetails
open @ workbench.desktop.main.js:14044
onNavbarChange @ workbench.desktop.main.js:14044
renderNavbar @ workbench.desktop.main.js:14044
render @ workbench.desktop.main.js:14044
await in render
setInput @ workbench.desktop.main.js:14044
await in setInput
doSetInput @ workbench.desktop.main.js:884
doOpenEditor @ workbench.desktop.main.js:884
openEditor @ workbench.desktop.main.js:884
(anonymous) @ workbench.desktop.main.js:7769
doShowEditor @ workbench.desktop.main.js:7769
doOpenEditor @ workbench.desktop.main.js:7769
openEditor @ workbench.desktop.main.js:7769
openEditor @ workbench.desktop.main.js:12411
open @ workbench.desktop.main.js:14116
openExtension @ workbench.desktop.main.js:13902
(anonymous) @ workbench.desktop.main.js:13902
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
(anonymous) @ workbench.desktop.main.js:47
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
(anonymous) @ workbench.desktop.main.js:47
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
_open @ workbench.desktop.main.js:459
onPointer @ workbench.desktop.main.js:459
(anonymous) @ workbench.desktop.main.js:459
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
(anonymous) @ workbench.desktop.main.js:47
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
onViewPointer @ workbench.desktop.main.js:296
(anonymous) @ workbench.desktop.main.js:47
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
(anonymous) @ workbench.desktop.main.js:47
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
n @ workbench.desktop.main.js:136