Real parsing, 19 languages
Tree-sitter parses Python, JS/TS/TSX, Go, Java, Rust, C/C++, C#, Ruby, PHP, Kotlin, Scala, Lua, Elixir, Perl, R and Bash into an AST. Functions, classes, branching nodes and imports come out of the syntax tree, not out of a regex guess - and a file in any other language still reaches the walk as text.