[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/3] xen/tools: script for automatically adjusting the coding style to xen style
On Tue, 2014-09-09 at 05:32 +0300, Mihai DonÈu wrote: > This is a clang-format wrapper script that can be used to do the bulk of the > coding style work on a foreign source file. It is not yet complete, but it's > sufficient for 98% of the cases. I think a lot of people would like to have something along these lines available. Don also proposed something recently, see [0]. Not sure what the hypervisor maintainers opinion is though, I've CCd a few for input. I've no prior experience with either clang-format or astyle so I don't know which is better, but I do like that clang-format doesn't need a second pass in emacs (despite being an emacs user). Ian. [0] http://lists.xen.org/archives/html/xen-devel/2014-09/msg00918.html > > Signed-off-by: Mihai DonÈu <mdontu@xxxxxxxxxxxxxxx> > --- > xen/tools/xen-indent | 77 > ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 77 insertions(+) > create mode 100755 xen/tools/xen-indent > > diff --git a/xen/tools/xen-indent b/xen/tools/xen-indent > new file mode 100755 > index 0000000..6be507c > --- /dev/null > +++ b/xen/tools/xen-indent > @@ -0,0 +1,77 @@ > +#!/bin/sh > + > +CLANG_FORMAT=`which clang-format 2>/dev/null` > + > +if [ "x$CLANG_FORMAT" = "x" ]; then > + printf "Error: \`clang-format' is not installed. It is usually part of > clang (3.4 and newer)\n" >&2 > + exit 1 > +fi > + > +if [ "x$1" = "x" ]; then > + printf "Usage: $0 <file[s]>\n" > + exit 2 > +fi > + > +for i in $@; do > + DN=`dirname "$i"` > + cat >"$DN/.clang-format" <<EOF > +--- > +AccessModifierOffset: -8 > +IndentWidth: 4 > +TabWidth: 4 > +ConstructorInitializerIndentWidth: 4 > +AlignEscapedNewlinesLeft: true > +AlignTrailingComments: true > +AllowAllParametersOfDeclarationOnNextLine: true > +AllowShortIfStatementsOnASingleLine: false > +AllowShortLoopsOnASingleLine: false > +AllowShortFunctionsOnASingleLine: false > +AlwaysBreakTemplateDeclarations: false > +AlwaysBreakBeforeMultilineStrings: false > +BreakBeforeBinaryOperators: false > +BreakBeforeTernaryOperators: true > +BreakConstructorInitializersBeforeComma: false > +BinPackParameters: true > +ColumnLimit: 80 > +ConstructorInitializerAllOnOneLineOrOnePerLine: false > +DerivePointerBinding: false > +ExperimentalAutoDetectBinPacking: false > +IndentCaseLabels: false > +MaxEmptyLinesToKeep: 1 > +NamespaceIndentation: All > +ObjCSpaceBeforeProtocolList: true > +PenaltyBreakBeforeFirstCallParameter: 19 > +PenaltyBreakComment: 60 > +PenaltyBreakString: 1000 > +PenaltyBreakFirstLessLess: 120 > +PenaltyExcessCharacter: 1000000 > +PenaltyReturnTypeOnItsOwnLine: 60 > +PointerBindsToType: false > +SpacesBeforeTrailingComments: 1 > +Cpp11BracedListStyle: false > +Standard: Cpp11 > +UseTab: Never > +BreakBeforeBraces: Allman > +IndentFunctionDeclarationAfterType: false > +SpaceBeforeParens: ControlStatements > +SpacesInParentheses: false > +SpacesInAngles: false > +SpaceInEmptyParentheses: false > +SpacesInCStyleCastParentheses: false > +SpaceAfterControlStatementKeyword: true > +SpaceBeforeAssignmentOperators: true > +ContinuationIndentWidth: 4 > +EOF > + ERR=0 > + $CLANG_FORMAT "$i" >"${i}.clang-tmp" || ERR=1 > + rm -f "$DN/.clang-format" > + if [ $ERR -ne 0 ]; then > + rm -f "${i}.clang-tmp" > + exit 3 > + fi > + sed 's#if\s*(\(.*\))#if ( \1 )#m' "${i}.clang-tmp" >"${i}.clang-tmp.1" > + sed 's#switch\s*(\(.*\))#switch ( \1 )#m' "${i}.clang-tmp.1" > >"${i}.clang-tmp.2" > + sed 's#while\s*(\(.*\))#while ( \1 )#m' "${i}.clang-tmp.2" > >"${i}.clang-tmp.3" > + mv -f "${i}.clang-tmp.3" "${i}" > + rm -f "${i}.clang-tmp" "${i}.clang-tmp.1" "${i}.clang-tmp.2" > +done _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |