Le 14/09/2023 à 06:11, Yuan Fu a écrit : > > >> On Sep 13, 2023, at 5:43 AM, Augustin Chéneau (BTuin) wrote: >> >> Le 12/09/2023 à 02:22, Yuan Fu a écrit : >>>> On Sep 9, 2023, at 9:39 AM, Augustin Chéneau (BTuin) wrote: >>>> >>>> Le 08/09/2023 à 18:43, Yuan Fu a écrit : >>>>>> On Sep 8, 2023, at 4:53 AM, Augustin Chéneau (BTuin) wrote: >>>>>> >>>>>> Le 06/09/2023 à 06:07, Yuan Fu a écrit : >>>>>>> I added local parser support to master. If everything goes right, you just need to add a :local t flag in treesit-range-rules. Check out the modified bision-ts-mode.el that I hacked up for an example. BTW, it’s vital that you define treesit-language-at-point-function for a multi-language mode. >>>>>>> Yuan >>>>>> >>>>>> Thanks a lot! >>>>>> >>>>>> I did some tests and it's working pretty well. >>>>> Awesome! >>>> >>>> >>>> It seems I spoke a bit too soon :( >>>> When I edit the buffer, sometimes there is an offset between the text and the nodes after modifying the buffer, or the syntax highlighting breaks in C code. >>>> >>>> I attached an example Bison file if needed. >>> Thanks. I was able to reproduce this, but then can’t. I’ll keep looking into this, if you found out something new please let me know. >> >> It may be unrelated, but I have this popping in *Messages* sometimes: >> >> Error during redisplay: (jit-lock-function 1410) signaled (treesit-load-language-error not-found ("libtree-sitter-nil" "libtree-sitter-nil.0" "libtree-sitter-nil.0.0" "libtree-sitter-nil.so" "libtree-sitter-nil.so.0" "libtree-sitter-nil.so.0.0") "No such file or directory”) > > Thanks. I’ve fixed that and some other problems. Please pull master and try it out. Now bison-ts-mode works pretty well for me. I can’t reproduce the offset problem anymore, maybe it’s fixed in some of the fixes I made. Anyway, let me know if you observe it again. > > Yuan > It indeed works much better, thanks! I found a bug and a way to replicate it (you'll need to update your Bison grammar): - Open the file "treesit-bug-highlighting-demo"; - Enable bison-ts-mode; - At the beginning of the second line (the part managed by the embedded C parser, with "static void ..."), add a space; => The whole line loses its highlighting. If you add a space again, the highlighting works correctly again. Not a big issue, but pretty weird. Also, I have one (last?) question: Since the C code uses its own indentation, it's entirely independent of Bison's nodes positions. Is it possible to add an offset to the indentation of the embedded parts, relative to its container node? For instance, rather than: %% grammar_declaration: grammar_rule { int myvar; } ; %% I would like to get %% grammar_declaration: grammar_rule { int myvar; } ; %% ("int myvar;" is managed by a C parser).