r181617 - Reformat clang-format help strings, filter out irrelevant options.
Daniel Jasper
djasper at google.com
Mon May 13 03:53:11 PDT 2013
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 <alexfh at google.com>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" <djasper at google.com> 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 <djasper at google.com>wrote:
>>
>>>
>>>
>>>
>>> On Fri, May 10, 2013 at 8:12 PM, Alexander Kornienko <alexfh at google.com>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
>>>> cfe-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>>
>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130513/518b68d7/attachment.html>
More information about the cfe-commits
mailing list