This patch allows defining external styles, which can be used exactly
like the embedded styles (llvm, google, mozilla...).
These styles are clang-format files installed either systemwide in
/usr/local/share/clang-format, or per-user in ~/.local/share/clang-
format. These can be specified by simply using the name of the file,
and clang-format will search the directories for the style:
clang-format -style=foo-1.0
The patch also allows loading specifying a file name directly, either
relative or absolute:
clang-format -style=/home/clang-format-styles/foo-1.0 clang-format -style=styles/foo-1.0
This works also in BaseOnStyle field, which allows defining compagny-
wide (and possibly versionned) clang-format styles, without having to
maintain many copies in each repository: each repository will simply
need to store a short .clang-format, which simply references the
compagny-wide style.
The drawback is that these style need to be installed on each computer,
but this may be automated through an OS package. In any case, the error
cannot be ignored, as the user will be presented with an error message
if he does not have the style.
I'm not sure these prefixes are a good idea - can you explain what the purpose is, and why the simpler model of just using the path doesn't work?
Certainly this needs some more thought about how it would work on windows etc. I'd suggest limiting this patch to filenames.