diff --git a/highlight/README.md b/highlight/README.md index 07edc421..89b19d7f 100644 --- a/highlight/README.md +++ b/highlight/README.md @@ -1,5 +1,4 @@ -Tree-sitter Highlight -========================= +# `tree-sitter-highlight` [![Build Status](https://travis-ci.org/tree-sitter/tree-sitter.svg?branch=master)](https://travis-ci.org/tree-sitter/tree-sitter) [![Build status](https://ci.appveyor.com/api/projects/status/vtmbd6i92e97l55w/branch/master?svg=true)](https://ci.appveyor.com/project/maxbrunsfeld/tree-sitter/branch/master) @@ -7,11 +6,13 @@ Tree-sitter Highlight ### Usage -Compile some languages into your app, and declare them: +Add this crate, and the language-specific crates for whichever languages you want to parse, to your `Cargo.toml`: -```rust -extern "C" tree_sitter_html(); -extern "C" tree_sitter_javascript(); +```toml +[dependencies] +tree-sitter-highlight = "0.19" +tree-sitter-html = "0.19" +tree-sitter-javascript = "0.19" ``` Define the list of highlight names that you will recognize: @@ -60,17 +61,17 @@ let html_language = unsafe { tree_sitter_html() }; let javascript_language = unsafe { tree_sitter_javascript() }; let html_config = HighlightConfiguration::new( - html_language, - &fs::read_to_string("./tree-sitter-html/queries/highlights.scm").unwrap(), - &fs::read_to_string("./tree-sitter-html/queries/injections.scm").unwrap(), + tree_sitter_html::language(), + tree_sitter_html::HIGHLIGHTS_QUERY, + tree_sitter_html::INJECTIONS_QUERY, "", ).unwrap(); let javascript_config = HighlightConfiguration::new( - javascript_language, - &fs::read_to_string("./tree-sitter-javascript/queries/highlights.scm").unwrap(), - &fs::read_to_string("./tree-sitter-javascript/queries/injections.scm").unwrap(), - &fs::read_to_string("./tree-sitter-javascript/queries/locals.scm").unwrap(), + tree_sitter_javascript::language(), + tree_sitter_javascript::HIGHLIGHTS_QUERY, + tree_sitter_javascript::INJECTIONS_QUERY, + tree_sitter_javascript::LCOALS_QUERY, ).unwrap(); ``` diff --git a/tags/README.md b/tags/README.md index 7a55c254..36efa494 100644 --- a/tags/README.md +++ b/tags/README.md @@ -1,13 +1,14 @@ -Tree-sitter Tags -========================= +# `tree-sitter-tags` ### Usage -Compile some languages into your app, and declare them: +Add this crate, and the language-specific crates for whichever languages you want to parse, to your `Cargo.toml`: -```rust -extern "C" tree_sitter_python(); -extern "C" tree_sitter_javascript(); +```toml +[dependencies] +tree-sitter-tags = "0.19" +tree-sitter-javascript = "0.19" +tree-sitter-python = "0.19" ``` Create a tag context. You need one of these for each thread that you're using for tag computation: @@ -21,34 +22,28 @@ let context = TagsContext::new(); Load some tagging queries from the `queries` directory of some language repositories: ```rust -use tree_sitter_highlight::TagsConfiguration; +use tree_sitter_tags::TagsConfiguration; -let python_language = unsafe { tree_sitter_python() }; -let javascript_language = unsafe { tree_sitter_javascript() }; - -let python_config = HighlightConfiguration::new( - python_language, - &fs::read_to_string("./tree-sitter-python/queries/tags.scm").unwrap(), - &fs::read_to_string("./tree-sitter-python/queries/locals.scm").unwrap(), +let python_config = TagsConfiguration::new( + tree_sitter_python::language(), + tree_sitter_python::TAGGING_QUERY, + "", ).unwrap(); -let javascript_config = HighlightConfiguration::new( - javascript_language, - &fs::read_to_string("./tree-sitter-javascript/queries/tags.scm").unwrap(), - &fs::read_to_string("./tree-sitter-javascript/queries/locals.scm").unwrap(), +let javascript_config = TagsConfiguration::new( + tree_sitter_javascript::language(), + tree_sitter_javascript::TAGGING_QUERY, + tree_sitter_javascript::LOCALS_QUERY, ).unwrap(); ``` Compute code navigation tags for some source code: ```rust -use tree_sitter_highlight::HighlightEvent; - let tags = context.generate_tags( &javascript_config, b"class A { getB() { return c(); } }", None, - |_| None ); for tag in tags {