As discussed in
this phoenix issue the current formatter configuration interface for a mix project forces its users to apply the configured style across the whole formatted codebase.
While this behavior should be fine for simple settings like line_length, when we introduced the :import_deps option, this behavior may be getting in our way.
Consider a library module specifying a DSL, like Phoenix.Router. It may export a locals_without_parens configuration with a list of functions like options/3 or get/3. A user of such library may want to apply these settings only for his project's source files that use this DSL in order to keep the usual formatting for other options/3 and get/3 functions which may be present in his project.
Additionally, I would propose to extend the export and import_deps options to allow exporting/importing only a part of library's formatter configuration, like {:phoenix, :router_dsl} etc.