With the following text in a buffer with elixir-ts-mode:
def foo() do
end
When I delete the `)` and re-insert it, the tree-sitter syntax tree does
not fully recover and the `do end` part is absent when observing using
treesit-explore-mode.
Before removing the `)`:
(source
(call target: (identifier)
(arguments
(call target: (identifier)
(arguments ( ))))
(do_block do end)))
after re-inserting `)`:
(source
(call target: (identifier)
(arguments
(call target: (identifier)
(arguments ( ))))))
I can see the same behaviour using ruby-ts-mode when I remove the
following expression:
(setq-local syntax-propertize-function #'ruby-ts--syntax-propertize)
The ruby syntax I tested with:
def foo()
end
When I add a local `syntax-propertize-function' function to elixir-ts-mode
it also solves the problem of not fully recovering the tree-sitter
syntax tree. It does not seem to matter what the function achieves
thought, so am a bit confused.