MCPcopy Create free account
hub / github.com/JaredStewart/coderlm / compute_non_code_ranges

Function compute_non_code_ranges

server/src/ops/content.rs:211–301  ·  view source on GitHub ↗

Compute byte ranges of comment and string nodes using tree-sitter.

(source: &str, language: Language)

Source from the content-addressed store, hash-verified

209
210/// Compute byte ranges of comment and string nodes using tree-sitter.
211fn compute_non_code_ranges(source: &str, language: Language) -> Vec<(usize, usize)> {
212 use tree_sitter::StreamingIterator;
213
214 let config = match queries::get_language_config(language) {
215 Some(c) => c,
216 None => return Vec::new(),
217 };
218
219 let mut parser = tree_sitter::Parser::new();
220 if parser.set_language(&config.language).is_err() {
221 return Vec::new();
222 }
223
224 let tree = match parser.parse(source, None) {
225 Some(t) => t,
226 None => return Vec::new(),
227 };
228
229 // Query for comment and string nodes
230 let query_str = match language {
231 Language::Rust => r#"
232 (line_comment) @skip
233 (block_comment) @skip
234 (string_literal) @skip
235 (raw_string_literal) @skip
236 "#,
237 Language::Python => r#"
238 (comment) @skip
239 (string) @skip
240 "#,
241 Language::TypeScript | Language::JavaScript => r#"
242 (comment) @skip
243 (string) @skip
244 (template_string) @skip
245 "#,
246 Language::Go => r#"
247 (comment) @skip
248 (raw_string_literal) @skip
249 (interpreted_string_literal) @skip
250 "#,
251 Language::Java => r#"
252 (line_comment) @skip
253 (block_comment) @skip
254 (string_literal) @skip
255 "#,
256 Language::Scala => r#"
257 (comment) @skip
258 (block_comment) @skip
259 (string) @skip
260 (interpolated_string_expression) @skip
261 "#,
262 Language::Ruby => r#"
263 (comment) @skip
264 (string) @skip
265 (heredoc_body) @skip
266 (regex) @skip
267 "#,
268 Language::Php => r#"

Callers 1

grep_with_scopeFunction · 0.85

Calls 1

get_language_configFunction · 0.85

Tested by

no test coverage detected