Hi, I’ve written tree-sitter grammar for ROS Interface files (.msg, .srv, .action).
It can be found at SuperJappie08/tree-sitter-ros-interface.
It can be used in other projects or serve as integration for your favorite editor (such as VIM or Helix).
It is setup as a generic parser/grammar, with setup instructions for Helix.
For Helix, it provides syntax highlighting and tree-sitter movements.
The grammar itself is based on the parser of rosidl_adapter and tested on 1167 ROS Interface files from released packages on Rolling.
Hope this helps!
P.S. If you encounter any issues, please let me know!