Linuxコードフォーマットツールindent

7383 ワード

linux kernelにはスクリプトLindentがあり、自分のコードを良いコードスタイルにフォーマットするのに役立ちます.例:/usr/src/linux-headers-2.6.22-14/scripts/lindent
一般的な設定:indent-npro-kr-i 4-ts 4-sob-l 80-ss-bl-bli 0
(このスタイルが好きです)
パラメータの説明:-nproまたは--ignore-profile indentのプロファイルを読み込まないでください.indent.pro. -krはKernighan&Ritchieを使用するフォーマットを指定します.-origに変更できます.BSDスタイル-i 4--indent-levelでは、縮小されたグリッド数を4に設定します.-ts 4 tabの長さ-sobまたは--swallow-optional-blank-linesを設定して余分な空白行を削除します.-l 80コードが80行を超える-ssまたは--space-special-semicolon forセグメントに1行しかない場合は、セミコロンの前にスペースを追加します.-ncsまたは--no-space-after-castsはcastの後に1つ空けないでください.-bl{行表示-bli 0カッコインデント0
私がよく使うのは、
indent-npro-nip-nlp-npsl-i 4-ts 4-sob-l 200-ss-bl-bli 0コードファイル名
機能説明:C元のコードファイルのフォーマットを調整します.文法:indent[パラメータ][ソースファイル]またはindent[パラメータ][ソースファイル][-oターゲットファイル]補足説明:indentはCの元のコードファイルを認識し、フォーマットしてプログラムデザイナーが読むのを便利にします.パラメータ:-badまたは--blank-lines-after-declarations宣言セグメントまたは空白行を追加します.-bapまたは--blank-lines-after-proceduresプログラムまたは空白行を追加します.-bbbまたは--blank-lines-after-block-commentsは、注釈セグメントの後に空白の行を追加します.-bcまたは--blank-lines-after-commas宣言セグメントでカンマが表示されたら改行します.-blまたは--braces-after-if-line if(またはelse,forなど)は、後続の実行セグメントの「{」と同行せず、「}」は1行になる.-bli<縮退格子数>または--brace-indent<縮退格子数>{}縮退格子数を設定します.-brまたは--braces-on-if-line if(またはelse,forなど)は、後で跛行を実行する「{」と同行せず、「}」は自作する.-bsまたは--blank-before-sizeofはsizeofの後に空の1つです.-c<欄数>または--comment-indentation<欄数>プログラムコードの右側に指定された欄にコメントを置きます.-cd<列数>または--declaration-comment-column<列数>コメントを宣言の右側に指定した列に配置します.-cdbまたは--comment-delimiters-on-blank-lines注釈記号は1行から作成されます.-Ceまたは--cuddle-elseはelseを「}」(if実行セグメントの最後)の後に配置します.-ci<縮退格数>または--continuation-indentation<縮退格数>叙述が長すぎて改行した場合、改行後に縮退する格数を指定します.-cli<縮退格子数>または--case-indentation-<縮退格子数>caseを使用する場合、switch縮退格子数.-cp<欄数>または-else-endif-column<欄数>elseとelseif記述の右側にコメントを置く欄.-csまたは--space-after-castはcastの後に空の1つです.-d<縮尺数>または-line-comments-indentation<縮尺数>プログラムコードの右側に置かれていないコメントに対して、縮尺数を設定します.-di<列数>または--declaration-indentation<列数>宣言セグメントの変数を指定した列に配置します.-fc 1または--format-first-column-commentsは、各行の一番前に置かれたコメントに対してフォーマットを設定します.-fcaまたは--format-all-commentsは、すべてのコメントのフォーマットを設定します.-gnuまたは--gnu-style.GNUを使用するフォーマットを指定します.これはプリセット値です.-i<格数>または--indent-level<格数>縮小された格数を設定します.-ip<格子数>または--parameter-indentation<格子数>パラメータの縮小格子数を設定します.-krまたは--k-and-r-style.Kernighan&Ritchieを使用するフォーマットを指定します.-lpまたは--continue-at-parenthesesの記述が長すぎて改行され、記述に括弧が含まれている場合は、括弧の各行の開始欄の内容を垂直に並べます.-nbadまたは--no-blank-lines-after-declarationsは、セグメントを宣言した後、空白の行を付けないでください.-nbapまたは--no-blank-lines-after-proceduresプログラムの後に空白の行を付けないでください.-nbbbまたは--no-blank-lines-after-block-comments注釈セグメントの後に空白の行を付けないでください.-nbcまたは--no-blank-lines-after-commas宣言セグメントでは、カンマが発生しても改行しないでください.-ncdbまたは--no-comment-delimiters-on-blank-linesコメント記号は1行にしないでください.-nceまたは--dont-cuddle-else elseはelseを"}"の後に置かないでください.-ncsまたは--no-space-after-castsはcastの後に1つ空けないでください.-nfc 1または--dont-format-first-column-comments各行の最前線に配置されたコメントはフォーマットしないでください.-nfcaまたは--dont-format-commentsコメントはフォーマットしないでください.-Nipまたは--no-parameter-indentationパラメータは縮小しないでください.-nlpまたは--dont-line-up-parenthesesの記述が長すぎて改行され、記述に括弧が含まれている場合は、括弧の各行の開始欄を垂直に並べなくてもよい.-npcsまたは--no-space-after-function-call-names呼び出した関数名の後にスペースを付けないでください.-nproまたは--ignore-profileはindentのプロファイルを読み込まないでください.indent.pro. -npslまたは--dont-break-procedure-typeプログラムタイプは、プログラム名と同じ行に配置されます.-nscまたは--dont-star-comments注記左側にアスタリスク(*)を付けないでください.-nsobまたは--leave-optional-semicolonは、余分な空白行を処理する必要はありません.-nssまたは--dont-space-special-semicolon forまたはwhileセグメントに1行しかない場合は、セミコロンの前にスペースを追加しません.-nvまたは--no-verbosityには詳細は表示されません.-origまたは--originalはBerkeleyのフォーマットを使用します.-pcsまたは--space-after-procedure-calls呼び出した関数名と「{」の間にスペースを追加します.-pslまたは--procnames-start-linesプログラムタイプは、プログラム名の前の行に配置されます.-scまたは--start-left-side-of-commentsは、各行の注釈の左側にアスタリスク(*)を追加します.. -sobまたは--swallow-optional-blank-lines余分な空白行を削除します.-ssまたは--space-special-semicolon forまたはswileセグメントに行がある場合は、セミコロンの前にスペースを追加します.-stまたは--standard-outputは結果を標準出力装置に表示します.-Tデータ型名の縮小.-ts<グリッド数>または--tab-size<グリッド数>tabの長さを設定します.-vまたは--verboseの実行時に詳細が表示されます.-バージョン情報が表示されます.
alias myindent='indent -npro -kr -bl -nce -bli0 -i2 -ts2 -sob -l80 -nfc1 -ss -ncs'
Common styles
There are several common styles of C code, including the GNU style, the Kernighan & Ritchie style, and the original Berkeley style. A style may be selected with a single background option, which specifies a set of values for all other options. However, explicitly specified options always override options implied by a background option.
As of version 1.2, the default style of GNU indent is the GNU style. Thus, it is no longer necessary to specify the option ‘-gnu’ to obtain this format, although doing so will not cause an error. Option settings which correspond to the GNU style are:
 
-nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2 -ndj -nfc1 -nfca -hnl -i2 -ip5 -lp -pcs -nprs -psl -saf -sai -saw -nsc -nsob 

The GNU coding style is that preferred by the GNU project. It is the style that the GNU Emacs C mode encourages and which is used in the C portions of GNU Emacs. (People interested in writing programs for Project GNU should get a copy of The GNU Coding Standards, which also covers semantic and portability issues such as memory usage, the size of integers, etc.)
The Kernighan & Ritchie style is used throughout their well-known book The C Programming Language. It is enabled with the ‘-kr’ option. The Kernighan & Ritchie style corresponds to the following set of options:
 
-nbad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -nprs -npsl -saf -sai -saw -nsc -nsob -nss

Kernighan & Ritchie style does not put comments to the right of code in the same column at all times (nor does it use only one space to the right of the code), so for this style indent has arbitrarily chosen column 33.
The style of the original Berkeley indent may be obtained by specifying ‘-orig’ (or by specifying ‘--original’, using the long option name). This style is equivalent to the following settings:
 
-nbad -nbap -bbo -bc -br -brs -c33 -cd33 -cdb -ce -ci4 -cli0 -cp33 -di16 -fc1 -fca -hnl -i4 -ip4 -l75 -lp -npcs -nprs -psl -saf -sai -saw -sc -nsob -nss -ts8 

The Linux style is used in the linux kernel code and drivers. Code generally has to follow the Linux coding style to be accepted. This style is equivalent to the following settings:
 
-nbad -bap -nbc -bbo -hnl -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -d0 -di1 -nfc1 -i8 -ip0 -l80 -lp -npcs -nprs -npsl -sai -saf -saw -ncs -nsc -sob -nfca -cp33 -ss -ts8 -il1