microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
163.05k stars 28.8k forks source link

Language specific settings overwrite all or nothing from User to Workspace #19219

Closed dbaeumer closed 7 years ago

dbaeumer commented 7 years ago

Test: https://github.com/Microsoft/vscode/issues/19060

Steps to Reproduce:

User settings:

    "[markdown]": {
        "editor.wordWrap": true,
        "editor.lineNumbers": "off"
    }

Workspace settings:

    "[markdown]": {
    }

Displays mardown files with wordwarp false and lineNumbers on

dbaeumer commented 7 years ago

The means I can't add a markdown setting for something in a workspace. For example

    "[markdown]": {
        "files.insertFinalNewline": true
    }

I personally find this very confusing since I still specific single settings and we always merged single setting from User - Workspace. If we would have chosen a different syntax like "markdown[editor.wordWrap]" our current implementation would have merged user and workspace specific markdown settings

So I think we should not depend this on our implementation but should define the expected behavior and then implement it.

sandy081 commented 7 years ago

@dbaeumer After giving more thinking, I also felt that merging the language specific settings from user to workspace is a better strategy and user experience.

@bpasero FYI, Mentioning you as I remember that when we discussed, you were inclined towards overriding than merging.

bpasero commented 7 years ago

@sandy081 we must merge and NOT override, sorry if I was not clear from the beginning 👍 . This is also what happens for other settings like files.exclude.

sandy081 commented 7 years ago

Its fine @bpasero, Thanks for clarification.