in reply to paren formatter for function calls?

For because?

Syntax hilighting editors (scite) usually highlight the matching parens, ... programmers usually add newlines ...

ppi_dumper knows everything, PPI easily gets you a neat tree, and you can easily adjust the whitespace to your liking ( ppix_regexp_strip_comments )

PPI::Statement PPI::Structure::List ( ... ) PPI::Statement::Expression PPI::Token::Word 'ab' PPI::Token::Whitespace ' ' PPI::Token::Operator '+' PPI::Token::Whitespace ' ' PPI::Structure::List ( ... ) PPI::Statement::Expression PPI::Token::Word 'fun1' PPI::Structure::List ( ... ) PPI::Statement::Expression PPI::Token::Word 'fun2' PPI::Structure::List ( ... ) PPI::Statement::Expression PPI::Token::Number '3' PPI::Token::Whitespace ' ' PPI::Token::Operator '+' PPI::Token::Whitespace ' ' PPI::Token::Word 'fun3' PPI::Structure::List ( ... ) PPI::Statement::Expression PPI::Token::Number '4' PPI::Token::Whitespace ' ' PPI::Token::Operator '+' PPI::Token::Whitespace ' ' PPI::Structure::List ( ... ) PPI::Statement::Expression PPI::Token::Number '5' PPI::Token::Whitespace ' ' PPI::Token::Operator '+' PPI::Token::Whitespace ' ' PPI::Token::Number '6' PPI::Token::Structure ';'