In this particular case yes. But even when it's not clean it doesn't mean it's intentionally hand-formatted. So the idea to automate the process of self-formatting is still valid. On May 13, 2013 12:53 PM, "Daniel Jasper" <[email protected]> wrote:
> As mentioned above, I had used clang-format with incorrect parameters, the > file is indeed "clean". > > > On Mon, May 13, 2013 at 12:43 PM, Alexander Kornienko > <[email protected]>wrote: > >> I'm pretty sure I don't intentionally hand-format code after >> clang-format. But I also don't specially clang-format everything before >> commit. So assume that anything not clang-formatted you find in my commits >> is purely unintentional. If you want to avoid this, we should probably >> think of an automated way to run clang-format over itself as a part of >> tests or something. >> On May 13, 2013 12:22 PM, "Daniel Jasper" <[email protected]> wrote: >> >>> Sorry, turns out, I was just not able to use clang-format with the right >>> parameters .. :-/ >>> >>> >>> On Mon, May 13, 2013 at 12:20 PM, Daniel Jasper <[email protected]>wrote: >>> >>>> >>>> >>>> >>>> On Fri, May 10, 2013 at 8:12 PM, Alexander Kornienko <[email protected] >>>> > wrote: >>>> >>>>> Author: alexfh >>>>> Date: Fri May 10 13:12:00 2013 >>>>> New Revision: 181617 >>>>> >>>>> URL: http://llvm.org/viewvc/llvm-project?rev=181617&view=rev >>>>> Log: >>>>> Reformat clang-format help strings, filter out irrelevant options. >>>>> >>>>> Summary: +updated ClangFormat.rst >>>>> >>>>> Reviewers: djasper, klimek >>>>> >>>>> Reviewed By: klimek >>>>> >>>>> CC: cfe-commits >>>>> >>>>> Differential Revision: http://llvm-reviews.chandlerc.com/D780 >>>>> >>>>> Modified: >>>>> cfe/trunk/docs/ClangFormat.rst >>>>> cfe/trunk/tools/clang-format/ClangFormat.cpp >>>>> >>>>> Modified: cfe/trunk/docs/ClangFormat.rst >>>>> URL: >>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/ClangFormat.rst?rev=181617&r1=181616&r2=181617&view=diff >>>>> >>>>> ============================================================================== >>>>> --- cfe/trunk/docs/ClangFormat.rst (original) >>>>> +++ cfe/trunk/docs/ClangFormat.rst Fri May 10 13:12:00 2013 >>>>> @@ -20,21 +20,43 @@ to format C/C++/Obj-C code. >>>>> >>>>> If no arguments are specified, it formats the code from standard >>>>> input >>>>> and writes the result to the standard output. >>>>> - If <file> is given, it reformats the file. If -i is specified >>>>> together >>>>> - with <file>, the file is edited in-place. Otherwise, the result is >>>>> - written to the standard output. >>>>> + If <file>s are given, it reformats the files. If -i is specified >>>>> + together with <file>s, the files are edited in-place. Otherwise, the >>>>> + result is written to the standard output. >>>>> >>>>> - USAGE: clang-format [options] [<file>] >>>>> + USAGE: clang-format [options] [<file> ...] >>>>> >>>>> OPTIONS: >>>>> - -fatal-assembler-warnings - Consider warnings as error >>>>> - -help - Display available options >>>>> (-help-hidden for more) >>>>> - -i - Inplace edit <file>, if specified. >>>>> - -length=<int> - Format a range of this length, -1 for >>>>> end of file. >>>>> - -offset=<int> - Format a range starting at this file >>>>> offset. >>>>> - -stats - Enable statistics output from program >>>>> - -style=<string> - Coding style, currently supports: >>>>> LLVM, Google, Chromium. >>>>> - -version - Display the version of this program >>>>> + >>>>> + Clang-format options: >>>>> + >>>>> + -dump-config - Dump configuration options to stdout >>>>> and exit. >>>>> + Can be used with -style option. >>>>> + -i - Inplace edit <file>s, if specified. >>>>> + -length=<uint> - Format a range of this length (in >>>>> bytes). >>>>> + Multiple ranges can be formatted by >>>>> specifying >>>>> + several -offset and -length pairs. >>>>> + When only a single -offset is >>>>> specified without >>>>> + -length, clang-format will format up >>>>> to the end >>>>> + of the file. >>>>> + Can only be used with one input file. >>>>> + -offset=<uint> - Format a range starting at this byte >>>>> offset. >>>>> + Multiple ranges can be formatted by >>>>> specifying >>>>> + several -offset and -length pairs. >>>>> + Can only be used with one input file. >>>>> + -output-replacements-xml - Output replacements as XML. >>>>> + -style=<string> - Coding style, currently supports: >>>>> + LLVM, Google, Chromium, Mozilla. >>>>> + Use '-style file' to load style >>>>> configuration from >>>>> + .clang-format file located in one of >>>>> the parent >>>>> + directories of the source file (or >>>>> current >>>>> + directory for stdin). >>>>> + >>>>> + General options: >>>>> + >>>>> + -help - Display available options >>>>> (-help-hidden for more) >>>>> + -help-list - Display list of available options >>>>> (-help-list-hidden for more) >>>>> + -version - Display the version of this program >>>>> >>>>> >>>>> Vim Integration >>>>> >>>>> Modified: cfe/trunk/tools/clang-format/ClangFormat.cpp >>>>> URL: >>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/ClangFormat.cpp?rev=181617&r1=181616&r2=181617&view=diff >>>>> >>>>> ============================================================================== >>>>> --- cfe/trunk/tools/clang-format/ClangFormat.cpp (original) >>>>> +++ cfe/trunk/tools/clang-format/ClangFormat.cpp Fri May 10 13:12:00 >>>>> 2013 >>>>> @@ -23,43 +23,57 @@ >>>>> #include "llvm/Support/Debug.h" >>>>> #include "llvm/Support/FileSystem.h" >>>>> #include "llvm/Support/Signals.h" >>>>> +#include "llvm/ADT/StringMap.h" >>>>> >>>>> using namespace llvm; >>>>> >>>>> static cl::opt<bool> Help("h", cl::desc("Alias for -help"), >>>>> cl::Hidden); >>>>> >>>>> -static cl::list<unsigned> Offsets( >>>>> - "offset", >>>>> - cl::desc( >>>>> - "Format a range starting at this byte offset. Multiple ranges >>>>> can be " >>>>> - "formatted by specifying several -offset and -length pairs. >>>>> Can " >>>>> - "only be used with one input file.")); >>>>> -static cl::list<unsigned> Lengths( >>>>> - "length", >>>>> - cl::desc("Format a range of this length (in bytes). Multiple >>>>> ranges can be " >>>>> - "formatted by specifying several -offset and -length >>>>> pairs. When " >>>>> - "only a single -offset is specified without -length, >>>>> clang-format " >>>>> - "will format up to the end of the file. Can only be used >>>>> with one " >>>>> - "input file.")); >>>>> -static cl::opt<std::string> Style( >>>>> - "style", >>>>> - cl::desc( >>>>> - "Coding style, currently supports: LLVM, Google, Chromium, >>>>> Mozilla. " >>>>> - "Use '-style file' to load style configuration from >>>>> .clang-format file " >>>>> - "located in one of the parent directories of the source file >>>>> (or " >>>>> - "current directory for stdin)."), >>>>> - cl::init("LLVM")); >>>>> +// Mark all our options with this category, everything else (except >>>>> for -version >>>>> +// and -help) will be hidden. >>>>> +cl::OptionCategory ClangFormatCategory("Clang-format options"); >>>>> + >>>>> +static cl::list<unsigned> >>>>> + Offsets("offset", >>>>> + cl::desc("Format a range starting at this byte offset.\n" >>>>> + "Multiple ranges can be formatted by >>>>> specifying\n" >>>>> + "several -offset and -length pairs.\n" >>>>> + "Can only be used with one input file."), >>>>> + cl::cat(ClangFormatCategory)); >>>>> >>>> >>>> I think we should try to keep clang-format's files "clang-format >>>> clean". Is there something you found particularly bad about the way >>>> clang-format formats this? Can we fix it? >>>> >>>> >>>>> +static cl::list<unsigned> >>>>> + Lengths("length", >>>>> + cl::desc("Format a range of this length (in bytes).\n" >>>>> + "Multiple ranges can be formatted by >>>>> specifying\n" >>>>> + "several -offset and -length pairs.\n" >>>>> + "When only a single -offset is specified >>>>> without\n" >>>>> + "-length, clang-format will format up to the >>>>> end\n" >>>>> + "of the file.\n" >>>>> + "Can only be used with one input file."), >>>>> + cl::cat(ClangFormatCategory)); >>>>> +static cl::opt<std::string> >>>>> + Style("style", >>>>> + cl::desc("Coding style, currently supports:\n" >>>>> + " LLVM, Google, Chromium, Mozilla.\n" >>>>> + "Use '-style file' to load style configuration >>>>> from\n" >>>>> + ".clang-format file located in one of the parent\n" >>>>> + "directories of the source file (or current\n" >>>>> + "directory for stdin)."), >>>>> + cl::init("LLVM"), cl::cat(ClangFormatCategory)); >>>>> static cl::opt<bool> Inplace("i", >>>>> - cl::desc("Inplace edit <file>s, if >>>>> specified.")); >>>>> + cl::desc("Inplace edit <file>s, if >>>>> specified."), >>>>> + cl::cat(ClangFormatCategory)); >>>>> >>>>> -static cl::opt<bool> OutputXML( >>>>> - "output-replacements-xml", cl::desc("Output replacements as >>>>> XML.")); >>>>> +static cl::opt<bool> OutputXML("output-replacements-xml", >>>>> + cl::desc("Output replacements as >>>>> XML."), >>>>> + cl::cat(ClangFormatCategory)); >>>>> static cl::opt<bool> >>>>> DumpConfig("dump-config", >>>>> - cl::desc("Dump configuration options to stdout and >>>>> exit. Can be used with -style option.")); >>>>> + cl::desc("Dump configuration options to stdout and >>>>> exit.\n" >>>>> + "Can be used with -style option."), >>>>> + cl::cat(ClangFormatCategory)); >>>>> >>>>> -static cl::list<std::string> FileNames(cl::Positional, >>>>> - cl::desc("[<file> ...]")); >>>>> +static cl::list<std::string> FileNames(cl::Positional, >>>>> cl::desc("[<file> ...]"), >>>>> + cl::cat(ClangFormatCategory)); >>>>> >>>>> namespace clang { >>>>> namespace format { >>>>> @@ -196,6 +210,17 @@ static bool format(std::string FileName) >>>>> >>>>> int main(int argc, const char **argv) { >>>>> llvm::sys::PrintStackTraceOnErrorSignal(); >>>>> + >>>>> + // Hide unrelated options. >>>>> + StringMap<cl::Option*> Options; >>>>> + cl::getRegisteredOptions(Options); >>>>> + for (StringMap<cl::Option *>::iterator I = Options.begin(), E = >>>>> Options.end(); >>>>> + I != E; ++I) { >>>>> + if (I->second->Category != &ClangFormatCategory && I->first() != >>>>> "help" && >>>>> + I->first() != "version") >>>>> + I->second->setHiddenFlag(cl::ReallyHidden); >>>>> + } >>>>> + >>>>> cl::ParseCommandLineOptions( >>>>> argc, argv, >>>>> "A tool to format C/C++/Obj-C code.\n\n" >>>>> >>>>> >>>>> _______________________________________________ >>>>> cfe-commits mailing list >>>>> [email protected] >>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >>>>> >>>> >>>> >>> >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
