The list of languages enabled by default has grown considerably, which is certainly a good thing. However, it also entails that enabling (or disabling) languages means copying this long list of languages to user/workspace/folder settings. For simply enabling (or disabling) a single language this is somewhat messy, and it seems to have led to confusion in the past (#248). Additionally, if new languages were to be enabled by default in the future, the user/workspace/folder would not "benefit" from this (automatically).
Could adding settings for "additionally enabled languages" and "disabled languages" to add to or subtract from the default set be an idea, and would it even be possible to do without breaking stuff?
I agree, something like that could be useful.
Please keep in mind, there is UI that will do this for you.


There is a new setting: enableFiletypes allows you to add languages to be enabled / disabled.

Now that enabledLanguageIds is deprecated, is there a way to only enable spell checking in a specific list of languages? Maybe you could support !all?
enabledLanguageIds is still there. If you specify an empty array, it should clear all the languages.
It gets flagged with a warning for being deprecated, if it's still supported and required functionality it might be best not marking it as deprecated.
This is a mess and very confusing. My expectation is that spell check is only enabled for languages I explicitly specify. Based on the info here, I created this in user settings:
"cSpell.enabledLanguageIds": [],
"cSpell.enableFiletypes": [
"git-commit",
"text",
"markdown"
]
After reloading VSCode, I still see squiggly markers in C# code files (*.cs). I only want spell checker to be active in the 3 languages explicitly listed above. Note that the "Show Spell Checker Configuration Info" page shows only those 3 enabled, as if it's working, but as I said there are still spelling suggestions in those files.
@rcdailey How about just including the ones you want?
"cSpell.enabledLanguageIds": [
"git-commit",
"text",
"markdown"
]
It seems the underlying spell checker library ignores enabledLanguageIds if it is empty and uses the default settings.
I'll try that. But why is this setting marked as obsolete/deprecated if we still have to rely on it for functional reasons? It could be that all that needs to happen here is a change that no longer indicates that option is deprecated.
It is still supported. The deprecated message was added to discourage people from using enabledLanguageIds because they tended to accidentally turn off languages when they intended to add a new one.
Most helpful comment
It gets flagged with a warning for being deprecated, if it's still supported and required functionality it might be best not marking it as deprecated.