It sorts lexicographically, case-insensitively. Microsoft tends to favor case-insensitive file names because humans perceive instances of the same word in different case to be equivalent.
It's a bit strange in a programming tool, though, given that programmers are used to case being important, and virtually all other similar tools order capitals first.
You really, REALLY don't wan't to contextualize filesystem case sensitivity. Either it's case sensitive, either it's not.
The rest should be the least surprising in all cases: either conform to long age practices (unix, windows, case sensitive fs or not), or kept behind flags, and then you have the UX for general users (eg. files browser), in which whatever the least surprising for a picked lower bar of computer literate will do.
I agree. But contextualising case sensitivity is sort of what VSCode is doing here. I'm running on a system where files are case-sensitive, yet it, because of Microsoft's preference for case-insensitivity, insists on sorting filenames without regard for case.
Isn't that just due to "lazyness", rather than an explicit design choice? I mean just doing char based comparisons, which is the easiest solution, will give the separation of uppercase and lowercase (at least for ascii and similar encodings).
Programmers using "C family" languages - ok, I guess that's ~99% nowadays, but the "Pascal family" languages (and probably others I'm not familiar with) are case insensitive.
Windows tends to have a case insensitive file system (although these days it's possible to deviate from this tradition). For files the case being important thing isn't really a thing there.