Open DamienCassou opened 3 years ago
I have another similar problem: some classes have rendering methods whose name contains "render". A rendering method can be either public or private. I want this order:
[initialize-methods]
[public-non-rendering-methods]
[public-rendering-methods]
[private-rendering-methods]
[private-non-rendering-methods]
From what I understand, I can't implement this scheme for the same reason as the one explained in the issue description message.
I think that what I need is ordering between groups to specify which ones match more precisely in case of conflict. For example:
{
groups: {
"public-methods": [
{
name: "/^[^_].+/",
type: "method",
static: false,
order: 2
},
],
"public-rendering-methods": [
{
name: "/^[^_].+render.+/",
type: "method",
static: false,
order: 1
},
]
}
}
This means that, if a method matches "public-rendering-methods", then this method is not considered a member of "public-methods" because "public-rendering-methods" has a smaller order
. Said differently, the order
is used to sort the groups and the first one matching wins.
ping
Hi @DamienCassou, I'd be happy to review a PR if you know the change you'd like to make.
Here is a typical sorting we want:
More explicitely:
_initialize()
should always come first (this is a kind of constructor)_initialize()
I don't know how to specify that private methods but
_initialize()
should come last. Whatever I try, I always get an error message saying thatdoSomething()
should arrive before_initialize()
. Here is an example configuration that doesn't work: