github / stack-graphs

Rust implementation of stack graphs
https://docs.rs/stack-graphs/*/stack_graphs/
Apache License 2.0
712 stars 122 forks source link

What languages are supported? #420

Open shobrook opened 2 months ago

shobrook commented 2 months ago

Hi,

Just need some clarification. The tree-sitter-stack-graphs crate appears to only support four languages. The stack-graphs crate claims to work for any arbitrary programming language. I'm wondering, if I want to use this with more languages, what do I need to do? Which crate should I use? If I use the tree-sitter crate, do I need to supply a grammar for that language? What about the stack-graphs crate?

Thank you!

hendrikvanantwerpen commented 2 months ago

Thanks for the question. The setup for stack graphs is indeed similar to tree sitter. While tree-sitter is not specific to a language, a grammar is needed to support any particular language. Similarly, stack-graphs and tree-sitter-stack-graphs are not specific to any language, but a set of rules is needed to be able to generate stack graphs for any particular language. For tree-sitter-stack-graphs, these rules are written in TSG (e.g., for TypeScript) and we have done that for four languages so far. To support other languages, someone has to write such a TSG file for that particular language. (Since tree-sitter-stack-graphs is using tree-sitter, this assumes a tree-sitter grammar already exists.)

arybitskiy commented 1 week ago

Hi In Typescript stack-graphs.tsg i see rules support tsx too. But when i try to index tsx file it does nothing. When i try to parse like tree-sitter-stack-graphs-typescript parse Dropdown.tsx, i'm getting Error: No stack graph language found Please help me.

Thank you!