On our project we support both VSCode and cursor as IDEs. We use Pylance. Cursor modifies the VSCode setting for Pylance ( "python.languageServer": "Pylance",) in .vscode/settings.json when starting.
Steps to Reproduce
Add "python.languageServer": "Pylance", to .vscode/settings.json, start cursor.
Expected Behavior
Cursor should overwrite settings in its own file (.cursor/settings.json?) instead of modifying the vscode settings.
Hey, thanks for the report. This is a known issue. In some cases, Cursor can modify .vscode/settings.json on startup, which is especially annoying for teams that share projects between VS Code and Cursor.
The most likely root cause is the anysphere.cursorpyright extension (v1.0.10). In its package.json, it has:
This disables Pylance because cursorpyright replaces it. It looks like on Windows and Linux these default values get written into .vscode/settings.json, overwriting your explicit "Pylance" setting.
A couple of questions to narrow it down:
What value does Cursor change python.languageServer to. Is it "None"?
Does this happen every time you open the project, or only on the first launch?
As a temporary workaround, you can add a git pre-commit hook to restore the value:
git checkout -- .vscode/settings.json
Or use a .gitattributes merge strategy to keep your version during merges.