An issue came up in Neovim at neovim/neovim#37204 about it failing to initialize if the server provides a glob like **/**.dart which it considers to be invalid.
It's not clear to me from the spec that **/**.dart is invalid (it might not be what was intended, but that's a different issue), or what the behaviour should be if a client receives an invalid glob (if that is possible). My suggestion is that neovim handles this the same way that npm's glob/minimatch does, but I also appreciate that they should be following a spec and not another implementation.
Specifically, the should make it clear:
- whether
**/**.dart is valid or not
- and what its behaviour would be
- whether unclosed braces/brackets are valid or not, for example
example.[0-9 missing its closing bracket or **/*.{ts,js missing its closing brace
- and what their behaviour should be
- if a pattern is invalid, what the behaviour should be (fail, ignore, etc.)