Currently the RunnerContext::Type is used by only very few runners in the actual match logic.
But it is used for the ignore types, this way a runner can for example specify that it should not be queried if the context type is a shell command. This brings a few issues:
- This is not available for the D-Bus runners
- We are required to do quite a lot of lookup/parsing logic and can't be sure if it is even needed
- The KIO library is only used for determining the context type (KProtocolInfo::classInfo)
- The types are vague, if we were to type "spell" KRunner would think that is an executable, but it is intended as a trigger word. Consequently the runners can only exclude very few types.
- The minimumLetterCount property which was recently introduced also allows the runners to prevent the match method from being called if the query would get rejected anyway. This is also implemented at a higher level and supports D-Bus runners.
- A match regex will also be implemented, so that runners with specific trigger words don't get queried unnecessarily.
So to conclude: This feature is not very beneficial and far better alternatives are implemented/will be implemented.