Need help with unformat?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

johnmcfarlane
247 Stars 15 Forks Apache License 2.0 30 Commits 7 Opened issues

Description

generates .clang-format file from example codebase

Services available

!
?

Need anything else?

Contributors list

# 129,307
multipr...
Shell
arithme...
Terrafo...
3 commits
# 430,693
Shell
D
CSS
interpo...
2 commits
# 430,366
Shell
c-plus-...
assert
type-sa...
1 commit
# 206,088
scienti...
coreclr
c-sharp
CSS
1 commit

Unformat

Python3 utility to generate a .clang-format file from example code-base.

Description

Given the path to a C, C++ or Objective-C project, attempts to generate the perfect .clang-format file. It does this by producing configuration files with random variations and measuring how much code they would change. Finally the configuration file with the least change is output.

Dependencies

Tested under Python 3.5 using clang-format 3.9 and clang-format 3.8.

Python modules you'll need to install:

To add dependencies to a Ubuntu or Debian system:

sudo apt install clang-format python3-levenshtein python3-yaml

Examples

If Unformat is cloned into /home/abc/unformat and C++ source code is in /home/abc/my_project,

python3 /home/abc/unformat --root /home/abc/my_project /home/abc/my_project/**/*.h /home/abc/my_project/**/*.cpp

will search for the best .clang-format file. It will start searching from /home/abc/my_project/.clang-format and will write new configurations to that location as they are found. (Note you must have globstar enabled to make use of recursive (

**
) wildcards.)

The search may continue indefinitely. Press Ctrl-C to stop early. Any intermediate results will be written out.

Links

To submit feedback and bug reports, please file an issue.
For another solution to this problem, check out whatstyle.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.