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
