1+++
2repository_url = "git@github.com:tree-sitter/tree-sitter"
3revision = "24007727d42b4caceda3095ac685c463fae1ba1a"
4+++
5
6## Edit History
7
8```diff
9--- a/tree-sitter/crates/loader/src/loader.rs
10+++ b/tree-sitter/crates/loader/src/loader.rs
11@@ -604,7 +604,7 @@
12
13 pub struct Loader {
14 pub parser_lib_path: PathBuf,
15- languages_by_id: Vec<(PathBuf, OnceCell<Language>, Option<Vec<PathBuf>>)>,
16+ languages_by_id: Vec<LanguageEntry>,
17 language_configurations: Vec<LanguageConfiguration<'static>>,
18 language_configuration_ids_by_file_type: HashMap<String, Vec<usize>>,
19 language_configuration_in_current_path: Option<usize>,
20@@ -619,6 +619,12 @@
21
22 #[cfg(feature = "wasm")]
23 wasm_store: Mutex<Option<tree_sitter::WasmStore>>,
24 }
25+
26+struct LanguageEntry {
27+ path: PathBuf,
28+ language: OnceCell<Language>,
29+ external_files: Option<Vec<PathBuf>>,
30+}
31
32 pub struct CompileConfig<'a> {
33```
34
35## Cursor Position
36
37```tree-sitter/crates/loader/src/loader.rs
38 #[must_use]
39 pub fn get_all_language_configurations(&self) -> Vec<(&LanguageConfiguration, &Path)> {
40 self.language_configurations
41 .iter()
42 .map(|c| (c, self.languages_by_id[c.language_id].0.as_ref()))
43 // ^[CURSOR_POSITION]
44 .collect()
45 }
46```
47
48## Expected Patch
49
50```diff
51--- a/tree-sitter/crates/loader/src/loader.rs
52+++ b/tree-sitter/crates/loader/src/loader.rs
53@@ -773,7 +773,7 @@
54 pub fn get_all_language_configurations(&self) -> Vec<(&LanguageConfiguration, &Path)> {
55 self.language_configurations
56 .iter()
57- .map(|c| (c, self.languages_by_id[c.language_id].0.as_ref()))
58+ .map(|c| (c, self.languages_by_id[c.language_id].path.as_ref()))
59 .collect()
60 }
61
62```