<story><title>Tree-sitter: new incremental parsing system for programming tools (2018) [video]</title><url>https://www.youtube.com/watch?v=Jes3bD6P0To</url></story><parent_chain></parent_chain><comment><author>georgewfraser</author><text>The most obvious application of tree-sitter is editors. I wrote a VSCode extension to replace the built-in syntax coloring with tree-sitter-based coloring: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;marketplace.visualstudio.com&amp;#x2F;items?itemName=georgewfraser.vscode-tree-sitter&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;marketplace.visualstudio.com&amp;#x2F;items?itemName=georgewf...&lt;/a&gt;&lt;p&gt;I actually think it would make more sense for the various VSCode language extensions to just bake in tree-sitter for their language. I have had a PR open to do this with golang for a while: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;microsoft&amp;#x2F;vscode-go&amp;#x2F;pull&amp;#x2F;2555&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;microsoft&amp;#x2F;vscode-go&amp;#x2F;pull&amp;#x2F;2555&lt;/a&gt;</text></comment>
<story><title>Tree-sitter: new incremental parsing system for programming tools (2018) [video]</title><url>https://www.youtube.com/watch?v=Jes3bD6P0To</url></story><parent_chain></parent_chain><comment><author>minxomat</author><text>Important recent development in tree sitter was the new query language. Like TextMate or Sublime Grammars, ts in atom did use CSS selectors, but now it has a much more powerful s-expression query language which is useful for more than just syntax highlighting, e.g. static analysis. An application of that is Github&amp;#x27;s semantic, a haskell tool for code navigation and call graph analysis.&lt;p&gt;Demo and explanation: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;tree-sitter&amp;#x2F;tree-sitter&amp;#x2F;pull&amp;#x2F;444&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;tree-sitter&amp;#x2F;tree-sitter&amp;#x2F;pull&amp;#x2F;444&lt;/a&gt;</text></comment>