[[!sidebar content=""]] [[!meta title="Tree-sitter beyond syntax highlighting"]] [[!meta copyright="Copyright © 2022 Abin Simon"]] [[!inline pages="internal(2022/info/treesitter-nav)" raw="yes"]] # Tree-sitter beyond syntax highlighting Abin Simon (IRC: meain on libera.chat, Matrix: @meain:matrix.org, ) [[!inline pages="internal(2022/info/treesitter-before)" raw="yes"]] Tree sitter has seen a lot of development recently, but more often than not folks are only aware of its use for syntax highliting. The idea of this talk is to introduce some other usecases where they could benefit from tree-sitter. This talk will be an overview of the kind of things that they will be able to do with tree-sitter with demos but won't go in depth into how they would all of them. The presentation will link to the resources mentioned during the talk where folks can learn more about each of them. This session will introduce them to things like (not final list): - textobjects using tree-sitter: - Folding using tree-sitter: - Navigating config headings: - Using tree-sitter for narrowing: - Intelligent snippets using tree-sitter: - Using tree-sitter to get which-func like functionality: - Some useful tree-sitter functions: tree-sitter-save-excursion # Discussion ## Notes - The speaker\'s blog: - Fancy Narrow: - Text objects using tree-sitter in evil-mode: - Notes/Slides: ## Questions and answers - Q: What treesitter package is being used I think there is 3 different ones - A:  Most of what is demoed here is using - Q: Can the folds be treated as outlines as in outline-minor-mode folds? - A: I don\'t think the package ts-fold which I showcased works with outline mode, but it should be simple enough to add something like that () - Q: Is there any benefit to use tree-sitter for sexp-based languages? +1 - A: Being able to query for specific things like variables / conditions might come in handy - Q:Do you have to have an LSP set up in order to use tree-sitter? - A:I still use eglot for lsp. While tree-sitter help with highlighting, folding, nav etc . . tree-sitter can be more thought of to be working on a single file. So when I need to do project wide things like jump to defenition, find reference or renames lsp comes in handy. - Q: Is there any example configuration for the transition from traditional major mode to new \*-ts-major-mode? It seems that configuration of major mode (xxx-mode-hook, yasnippet, etc) has to been rewritten - A: I am just starting to work with builtin tree-sitter, so don\'t have much input here  unfortunately :( [[!inline pages="internal(2022/info/treesitter-after)" raw="yes"]] [[!inline pages="internal(2022/info/treesitter-nav)" raw="yes"]] [[!taglink CategoryTreeSitter]]