[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 09/08/14 22:32, 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. 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" This is missing "for". And last I knew sed does not handle multiple lines. And what about the "do {" exception? -Don Slutz + 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 |