[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/09/14 10:50, Ian Campbell wrote: 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 I am not able to just use it: [root@localhost xen]# xen/tools/xen-indent xen/arch/x86/numa.c YAML:39:49: error: unknown key 'SpaceBeforeParens' SpaceBeforeParens: ControlStatements ^~~~~~~~~~~~~~~~~ Error reading /root/xen/xen/arch/x86/.clang-format: Invalid argument Can't find usable .clang-format, using LLVM style Also clang_format is not available in older distros. -Don Slutz 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 |