On Jan 7, 2025, at 11:23 PM, Jostein Kjønigsen <jostein@fastmail.fm> wrote:
On 8 Jan 2025, at 07:14, Yuan Fu <casouri@gmail.com> wrote:
Thanks! I suspect that an earlier grammar version used type_of_expression. Can you see if it’s true?
This seems to be true. This was changed in a commit in May 2024.
https://github.com/tree-sitter/tree-sitter-c-sharp/commit/cd38110b3911979282ad6eeb8cb4d0ecd671b188
If it is, we should keep the rules for both type_of_expression and typeof_expression, WDYT?
Compatibility is a good thing, unless it comes at a too big cost. ;)
I can’t agree more, trust me ;-) This one seems ok to me, but it’s your call.
On the same note, we could use some utility function that makes it less verbose to test queries and use different query based on the test result.
I agree about that. That makes sense.
Is there any precedent for how that is done in other major-modes?
Usually we define a test function that checks the installed grammar accepts a certain query, and use this test to determine what query to use. I’m thinking about adding this utility function to treesit.el to streamline the process, but haven’t decided on what the interface should be.
For some existing example, you can take a look at go-ts-mode--iota-query-supported-p and how it’s used.
Yuan