Currently, all formatters use a static variable (or constant) to indicate support for specific languages.
This works, but has some performance penalties, because (in worst cases) all formatters are autoloaded at runtime just to check if a specific language is supported.
My suggestion would be some kind of mapping/config file.
Example:
formatters:
- formatter: ClangCodeFormatter
languages:
- c
- cpp
- csharp
- java
- objectivec