- 3 Posts
- 3 Comments
Joined 1 year ago
Cake day: May 9th, 2024
You are not logged in. If you use a Fediverse account that is able to follow users, you can follow this user.
You can use backreferences
\1 \2
etc. but you can also give them names explicitly.
it looks like this:(?<name>inner-regex)
Some flavors support it, kotlins doesn’t apparently.
I don’t actually know whether POSIX grep would support named groups :o
You could wrap the entirety of your file in a monster macro but you’d still have to assign the macro result to a variable you need to register, which doesn’t sound viable to me at least.
Maybe you can use a script that would extract all the trait implementations and create the boilerplate glue code for you, something like this:
grep --recursive --only-matching "impl PluginFunction for \w*" functions/ | sed --quiet "s/functions\/\(.*\)\.rs:impl PluginFunction for \(\w*\)/crate::functions::\1::\2{}.register(\&mut functions_map)/p"
I tried to recreate your situation locally but it may not match perfectly, maybe you’ll have to adjust it a little. When I run it on my file tree which looks like this
functions ├── attr.rs ├── export.rs └── render.rs 1 directory, 3 files
where every file has a content like this
// comment pub struct MyAttrStructName {} impl PluginFunction for MyAttrStructName { }
Then I receive the following output:
crate::functions::attr::MyAttrStructName{}.register(&mut functions_map) crate::functions::export::MyExportStructName{}.register(&mut functions_map) crate::functions::render::MyRenderStructName{}.register(&mut functions_map)