<match-query> and <exclude-query> Support in Completion.xml for tree-sitter based grammars


Nova supports a feature called <match-selector> and <exclude-selector> see docs.

This is sort of ok, but extremely limited as we can not make our own selectors, and we are limited to theming selectors that are used in highlights.scm

What would be ideally better and nicer to have instead is to allow us to write queries. specifying tree-sitter nodes that the completion set should [show up/not show up] in the <proivder>. I know we have <query> but it is not very reliable. for example I specified a node, declaring where a completion set to be shown, and I still had to use <exclude-selector> to prevent completion showing inside attribute regions… (might be a bug?)

Not to mention, sometimes you would like the set to be shown practically everywhere apart from one specific node. it is easier to use <exclude-query> to specify one node than listing the entire tree in the <query>.

Unfortunately currently there are no predicates to exclude a node for us. Maybe creating a @provider.exclude could be another option, to add on in the future if the <exclude-query>|<match-query> is not appealing?