Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
456 changes: 456 additions & 0 deletions crates/codegraph-core/src/complexity.rs

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions crates/codegraph-core/src/extractors/csharp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
extract_csharp_base_types(node, &class_name, source, symbols);
}
Expand All @@ -55,6 +56,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
extract_csharp_base_types(node, &name, source, symbols);
}
Expand All @@ -69,6 +71,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
extract_csharp_base_types(node, &name, source, symbols);
}
Expand All @@ -83,6 +86,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
if let Some(body) = node.child_by_field_name("body") {
for i in 0..body.child_count() {
Expand All @@ -99,6 +103,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(&child),
end_line: Some(end_line(&child)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -116,6 +121,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -134,6 +140,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -152,6 +159,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -170,6 +178,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand Down
6 changes: 6 additions & 0 deletions crates/codegraph-core/src/extractors/go.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand Down Expand Up @@ -58,6 +59,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -80,6 +82,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
"interface_type" => {
Expand All @@ -89,6 +92,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
// Extract interface methods
for j in 0..type_node.child_count() {
Expand All @@ -107,6 +111,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(&member),
end_line: Some(end_line(&member)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -120,6 +125,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand Down
1 change: 1 addition & 0 deletions crates/codegraph-core/src/extractors/hcl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});

// Module source imports
Expand Down
6 changes: 6 additions & 0 deletions crates/codegraph-core/src/extractors/java.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});

// Superclass
Expand Down Expand Up @@ -91,6 +92,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
if let Some(body) = node.child_by_field_name("body") {
for i in 0..body.child_count() {
Expand All @@ -107,6 +109,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(&child),
end_line: Some(end_line(&child)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -124,6 +127,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -142,6 +146,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -160,6 +165,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand Down
11 changes: 11 additions & 0 deletions crates/codegraph-core/src/extractors/javascript.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use tree_sitter::{Node, Tree};
use crate::complexity::compute_function_complexity;
use crate::types::*;
use super::helpers::*;
use super::SymbolExtractor;
Expand All @@ -23,6 +24,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: Some(compute_function_complexity(node)),
});
}
}
Expand All @@ -36,6 +38,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});

// Heritage: extends + implements
Expand Down Expand Up @@ -77,6 +80,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: Some(compute_function_complexity(node)),
});
}
}
Expand All @@ -90,6 +94,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
// Extract interface methods
let body = node
Expand All @@ -110,6 +115,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -132,6 +138,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(&value_n)),
decorators: None,
complexity: Some(compute_function_complexity(&value_n)),
});
}
}
Expand Down Expand Up @@ -340,6 +347,7 @@ fn extract_interface_methods(
line: start_line(&child),
end_line: Some(end_line(&child)),
decorators: None,
complexity: None,
});
}
}
Expand Down Expand Up @@ -554,6 +562,7 @@ fn extract_callback_definition(call_node: &Node, source: &[u8]) -> Option<Defini
line: start_line(&cb),
end_line: Some(end_line(&cb)),
decorators: None,
complexity: Some(compute_function_complexity(&cb)),
});
}

Expand All @@ -570,6 +579,7 @@ fn extract_callback_definition(call_node: &Node, source: &[u8]) -> Option<Defini
line: start_line(&cb),
end_line: Some(end_line(&cb)),
decorators: None,
complexity: Some(compute_function_complexity(&cb)),
});
}

Expand All @@ -583,6 +593,7 @@ fn extract_callback_definition(call_node: &Node, source: &[u8]) -> Option<Defini
line: start_line(&cb),
end_line: Some(end_line(&cb)),
decorators: None,
complexity: Some(compute_function_complexity(&cb)),
});
}

Expand Down
7 changes: 7 additions & 0 deletions crates/codegraph-core/src/extractors/php.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -52,6 +53,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});

// Extends
Expand Down Expand Up @@ -102,6 +104,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
if let Some(body) = node.child_by_field_name("body") {
for i in 0..body.child_count() {
Expand All @@ -118,6 +121,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(&child),
end_line: Some(end_line(&child)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -135,6 +139,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -147,6 +152,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -165,6 +171,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand Down
2 changes: 2 additions & 0 deletions crates/codegraph-core/src/extractors/python.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
} else {
Some(decorators)
},
complexity: None,
});
}
}
Expand All @@ -52,6 +53,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
let superclasses = node
.child_by_field_name("superclasses")
Expand Down
4 changes: 4 additions & 0 deletions crates/codegraph-core/src/extractors/ruby.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
if let Some(superclass) = node.child_by_field_name("superclass") {
// Walk superclass node to find the constant
Expand All @@ -56,6 +57,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -74,6 +76,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand All @@ -92,6 +95,7 @@ fn walk_node(node: &Node, source: &[u8], symbols: &mut FileSymbols) {
line: start_line(node),
end_line: Some(end_line(node)),
decorators: None,
complexity: None,
});
}
}
Expand Down
Loading