Cursor-specific overrides to .vscode/settings.json

I often work with codebases that have committed .vscode/settings.json files, targeted towards people who are using vscode, and not cursor.

However, there are some settings that may conflict between cursor or vscode - for instance, many of these projects have "python.languageServer": "Pylance", which cursor the forces to "python.languageServer": "None".

It would be helpful to have a way to override .vscode/settings.json settings with cursor-specific ones. A few ways of implementing this might be:

  • Have a separate cursor-specific file (say, .cursor/settings.json or .vscode/cursor-settings.json) that can sparsely override .vscode/settings.json
  • Have a single setting within .vscode/settings.json, whose value is dictionary with sparse cursor-specific overrides - ie, you might have a .vscode/settings.json with:
{
    "python.languageServer": "Pylance",
    "cursor.overrides": {
        "python.languageServer": "None"
    }
}
  • designate a setting-name-prefix to override specific settings, ie:
{
    "python.languageServer": "Pylance",
    "cursor.overrides.python.languageServer": "None"
}

I agree this would be useful. Some extensions that work with vscode are not available on cursor. For example cursor supports xaver-clang-format (which doesn’t properly support the cuda-cpp language) but not seaube-clang-format (which does). I’m not sure why it’s not supported, but if I want clang-format on CUDA code in cursor, I have to comment out some of my project’s settings.