package tree-sitter

  1. Overview
  2. Docs
OCaml bindings for Tree-sitter

Install

dune-project
 Dependency

Authors

Maintainers

Sources

mosaic-0.1.0.tbz
sha256=9e4e90d17f9b2af1b07071fe425bc2c519c849c4f1d1ab73cde512be2d874849
sha512=06e9c4a741590942e81a27738d0b5c0413fafec8cf3b7dae047ad69f155e7b718aa4223818dc161b7d028efffcfd3365905e264d6fd31d453910ddfa91dcf9b9

doc/src/tree-sitter.json/tree_sitter_json.ml.html

Source file tree_sitter_json.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
external language_ptr : unit -> nativeint = "caml_tree_sitter_json_language"

let language () = Tree_sitter.Language.of_address (language_ptr ())

let highlights_query =
  {|
  (document (string) @string)
  (pair value: (string) @string)
  (array (string) @string)
  (number) @number
  (null) @constant
  (true) @constant
  (false) @constant
  (pair key: (string) @property)
  |}

let parser = lazy (Tree_sitter.Parser.create (language ()))

let query =
  lazy (Tree_sitter.Query.create (language ()) ~source:highlights_query)

let highlight content =
  let parser = Lazy.force parser in
  let query = Lazy.force query in
  let tree = Tree_sitter.Parser.parse_string parser content in
  Tree_sitter.highlight query tree