tree-sitter--if-let-to-match.md

  1+++
  2repository_url = "git@github.com:tree-sitter/tree-sitter"
  3revision = "17e3c7a5c56527a179fa6e37ce7ee934493e5047"
  4+++
  5
  6## Edit History
  7
  8```diff
  9--- a/crates/loader/src/loader.rs
 10+++ b/crates/loader/src/loader.rs
 11@@ -729,15 +729,16 @@
 12             ));
 13         }
 14         for parser_container_dir in &config.parser_directories {
 15-            if let Ok(entries) = fs::read_dir(parser_container_dir) {
 16-                for entry in entries {
 17-                    let entry = entry.map_err(|e| LoaderError::IO(IoError::new(e, None)))?;
 18-                    if let Some(parser_dir_name) = entry.file_name().to_str() {
 19-                        if parser_dir_name.starts_with("tree-sitter-") {
 20-                            self.find_language_configurations_at_path(
 21-                                &parser_container_dir.join(parser_dir_name),
 22-                                false,
 23-                            )
 24+            match fs::read_dir(parser_container_dir) {
 25+                Ok(entries) => {
 26+                    for entry in entries {
 27+                        let entry = entry.map_err(|e| LoaderError::IO(IoError::new(e, None)))?;
 28+                        if let Some(parser_dir_name) = entry.file_name().to_str() {
 29+                            if parser_dir_name.starts_with("tree-sitter-") {
 30+                                self.find_language_configurations_at_path(
 31+                                    &parser_container_dir.join(parser_dir_name),
 32+                                    false,
 33+                                )
 34                             .ok();
 35                         }
 36                     }
 37--- a/crates/loader/src/loader.rs
 38+++ b/crates/loader/src/loader.rs
 39@@ -739,7 +739,8 @@
 40                                     &parser_container_dir.join(parser_dir_name),
 41                                     false,
 42                                 )
 43-                            .ok();
 44+                                .ok();
 45+                            }
 46                         }
 47                     }
 48                 }
 49```
 50
 51## Cursor Position
 52
 53```crates/loader/src/loader.rs
 54                        if let Some(parser_dir_name) = entry.file_name().to_str() {
 55                            if parser_dir_name.starts_with("tree-sitter-") {
 56                                self.find_language_configurations_at_path(
 57                                    &parser_container_dir.join(parser_dir_name),
 58                                    false,
 59                                )
 60                                .ok();
 61                            }
 62//                           ^[CURSOR_POSITION]
 63                        }
 64                    }
 65                }
 66            }
 67        }
 68```
 69
 70## Expected Patch
 71
 72```diff
 73--- a/crates/loader/src/loader.rs
 74+++ b/crates/loader/src/loader.rs
 75@@ -736,13 +736,13 @@
 76                         if let Some(parser_dir_name) = entry.file_name().to_str() {
 77                             if parser_dir_name.starts_with("tree-sitter-") {
 78                                 self.find_language_configurations_at_path(
 79                                     &parser_container_dir.join(parser_dir_name),
 80                                     false,
 81                                 )
 82                                 .ok();
 83                             }
 84                         }
 85                     }
 86                 }
 87+                Err(error) => {}
 88#                               ^[CURSOR_POSITION]
 89             }
 90         }
 91```
 92
 93```diff
 94--- a/crates/loader/src/loader.rs
 95+++ b/crates/loader/src/loader.rs
 96@@ -736,13 +736,13 @@
 97                         if let Some(parser_dir_name) = entry.file_name().to_str() {
 98                             if parser_dir_name.starts_with("tree-sitter-") {
 99                                 self.find_language_configurations_at_path(
100                                     &parser_container_dir.join(parser_dir_name),
101                                     false,
102                                 )
103                                 .ok();
104                             }
105                         }
106                     }
107                 }
108+                Err(_) => {}
109#                           ^[CURSOR_POSITION]
110             }
111         }
112```
113
114
115```diff
116--- a/crates/loader/src/loader.rs
117+++ b/crates/loader/src/loader.rs
118@@ -736,13 +736,13 @@
119                         if let Some(parser_dir_name) = entry.file_name().to_str() {
120                             if parser_dir_name.starts_with("tree-sitter-") {
121                                 self.find_language_configurations_at_path(
122                                     &parser_container_dir.join(parser_dir_name),
123                                     false,
124                                 )
125                                 .ok();
126                             }
127                         }
128                     }
129                 }
130+                Err(e) => {
131+                    
132#                    ^[CURSOR_POSITION]
133+                }
134             }
135         }
136```