Avoid modifying VSCode project settings

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

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.

Operating System

Windows 10/11
Linux

Version Information

Version: 2.4.37 (user setup)
VSCode Version: 1.105.1
Commit: 7b9c34466f5c119e93c3e654bb80fe9306b6cc70
Date: 2026-02-12T23:15:35.107Z
Build Type: Stable
Release Track: Default
Electron: 39.2.7
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Windows_NT x64 10.0.26100

Does this stop you from using Cursor

No - Cursor works, but with this issue

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:

"configurationDefaults": {
    "python.languageServer": "None"
}

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:

  1. What value does Cursor change python.languageServer to. Is it "None"?
  2. 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.

1 Like

Thanks for the answer!

It changes the value to “None”. It happens every time we open the project.

Shouldn’t the extension defaults only be applied if the setting is not explicitly there yet?