github / semantic

Parsing, analyzing, and comparing source code across many languages
8.95k stars 454 forks source link

OCaml support (WIP) #623

Open 314eter opened 4 years ago

314eter commented 4 years ago

The tests are currently failing because it depends on some unreleased changes to haskell-tree-sitter (tree-sitter/haskell-tree-sitter#290, tree-sitter/haskell-tree-sitter#291) and tree-sitter-ocaml.

314eter commented 4 years ago

I'm working on tagging, but I have a question.

Semantic currently only tracks function definitions and references, no ordinary variables. But in a functional language, that can be a difficult (and without type checker even impossible) distinction to make. So there are two options

What is the best option for now?

patrickt commented 4 years ago

@314eter FYI, though this patch is still valuable for our long-term work, the fastest way to unblock tagging is to use the tree-sitter query API, like how Ruby and friends do it: https://github.com/tree-sitter/tree-sitter-ruby/blob/master/queries/tags.scm. Our new internal systems are bypassing Semantic for the simple syntax-based tagging, so it might be a better use of your time to start there.

Note that due to database capacity concerns on our side, tagging (via tree-sitter queries or Haskell-side stuff) will take a while to arrive for any new language—however, we really appreciate the work you’re putting in!

patrickt commented 4 years ago

Re. the questions about tagging, that’s a good question. Maybe @robrix has some thoughts?

314eter commented 4 years ago

Ok, I'll start with the tree-sitter queries then, thanks.

If you have database capacity concerns, the second approach will generate much more data.

XVilka commented 3 years ago
  1. Seems Bazel CI job stuck
  2. Had been there any updates since? I see there are regular updates in tree-sitter-ocaml and queries already supported. Should be this PR updated too then?