tree_sitter_stack_graphs_javascript/
lib.rs1use tree_sitter_stack_graphs::loader::LanguageConfiguration;
9use tree_sitter_stack_graphs::loader::LoadError;
10use tree_sitter_stack_graphs::CancellationFlag;
11
12use crate::npm_package::NpmPackageAnalyzer;
13
14mod npm_package;
15mod util;
16
17pub const STACK_GRAPHS_TSG_PATH: &str = "src/stack-graphs.tsg";
19pub const STACK_GRAPHS_TSG_SOURCE: &str = include_str!("../src/stack-graphs.tsg");
21
22pub const STACK_GRAPHS_BUILTINS_CONFIG: &str = include_str!("../src/builtins.cfg");
24pub const STACK_GRAPHS_BUILTINS_PATH: &str = "src/builtins.js";
26pub const STACK_GRAPHS_BUILTINS_SOURCE: &str = include_str!("../src/builtins.js");
28
29pub const PROJECT_NAME_VAR: &str = "PROJECT_NAME";
31
32pub fn language_configuration(cancellation_flag: &dyn CancellationFlag) -> LanguageConfiguration {
33 try_language_configuration(cancellation_flag).unwrap_or_else(|err| panic!("{}", err))
34}
35
36pub fn try_language_configuration(
37 cancellation_flag: &dyn CancellationFlag,
38) -> Result<LanguageConfiguration, LoadError> {
39 let mut lc = LanguageConfiguration::from_sources(
40 tree_sitter_javascript::LANGUAGE.into(),
41 Some(String::from("source.js")),
42 None,
43 vec![String::from("js")],
44 STACK_GRAPHS_TSG_PATH.into(),
45 STACK_GRAPHS_TSG_SOURCE,
46 Some((
47 STACK_GRAPHS_BUILTINS_PATH.into(),
48 STACK_GRAPHS_BUILTINS_SOURCE,
49 )),
50 Some(STACK_GRAPHS_BUILTINS_CONFIG),
51 cancellation_flag,
52 )?;
53 lc.special_files
54 .add("package.json".to_string(), NpmPackageAnalyzer {});
55 Ok(lc)
56}