📄 pgindent
字号:
-TVacRUsage \-TVacuumStmt \-TValue \-TVar \-TVarBit \-TVarChar \-TVariableCache \-TVariableCacheData \-TVariableResetStmt \-TVariableSetStmt \-TVariableShowStmt \-TVariableSpace \-TVfd \-TViewStmt \-TVisual \-TVisualID \-TWAIT_ORDER \-TWindow \-TWriteBufPtr \-TWriteBytePtr \-TWriteDataPtr \-TWriteExtraTocPtr \-TX509 \-TX509_ALGOR \-TX509_ATTRIBUTE \-TX509_CERT_AUX \-TX509_CERT_FILE_CTX \-TX509_CINF \-TX509_CRL \-TX509_CRL_INFO \-TX509_EXTENSION \-TX509_HASH_DIR_CTX \-TX509_INFO \-TX509_LOOKUP \-TX509_LOOKUP_METHOD \-TX509_NAME \-TX509_NAME_ENTRY \-TX509_OBJECT \-TX509_OBJECTS \-TX509_PKEY \-TX509_PUBKEY \-TX509_REQ \-TX509_REQ_INFO \-TX509_REVOKED \-TX509_SIG \-TX509_STORE \-TX509_STORE_CTX \-TX509_TRUST \-TX509_VAL \-TXActivateDeactivateEvent \-TXActivateEvent \-TXAnyEvent \-TXArc \-TXButtonEvent \-TXButtonPressedEvent \-TXButtonReleasedEvent \-TXChar2b \-TXCharStruct \-TXCirculateEvent \-TXCirculateRequestEvent \-TXClientMessageEvent \-TXColor \-TXColormapEvent \-TXConfigureEvent \-TXConfigureRequestEvent \-TXConnectionWatchProc \-TXCreateWindowEvent \-TXCrossingEvent \-TXDeactivateEvent \-TXDestroyWindowEvent \-TXEDataObject \-TXEnterWindowEvent \-TXErrorEvent \-TXErrorHandler \-TXEvent \-TXExposeEvent \-TXExtCodes \-TXExtData \-TXFocusChangeEvent \-TXFocusInEvent \-TXFocusOutEvent \-TXFontProp \-TXFontSet \-TXFontSetExtents \-TXFontStruct \-TXGCValues \-TXGraphicsExposeEvent \-TXGravityEvent \-TXHostAddress \-TXIC \-TXICCallback \-TXICProc \-TXID \-TXIDProc \-TXIM \-TXIMCallback \-TXIMCaretDirection \-TXIMCaretStyle \-TXIMFeedback \-TXIMHotKeyState \-TXIMHotKeyTrigger \-TXIMHotKeyTriggers \-TXIMPreeditCaretCallbackStruct \-TXIMPreeditDrawCallbackStruct \-TXIMPreeditState \-TXIMPreeditStateNotifyCallbackStruct \-TXIMProc \-TXIMResetState \-TXIMStatusDataType \-TXIMStatusDrawCallbackStruct \-TXIMStringConversionCallbackStruct \-TXIMStringConversionFeedback \-TXIMStringConversionOperation \-TXIMStringConversionPosition \-TXIMStringConversionText \-TXIMStringConversionType \-TXIMStyle \-TXIMStyles \-TXIMText \-TXIMValuesList \-TXIOErrorHandler \-TXImage \-TXKeyEvent \-TXKeyPressedEvent \-TXKeyReleasedEvent \-TXKeyboardControl \-TXKeyboardState \-TXKeymapEvent \-TXLeaveWindowEvent \-TXLogContRecord \-TXLogCtlData \-TXLogCtlInsert \-TXLogCtlWrite \-TXLogPageHeader \-TXLogPageHeaderData \-TXLogRecData \-TXLogRecPtr \-TXLogRecord \-TXLogRelCacheEntry \-TXLogRelDesc \-TXLogwrtResult \-TXLogwrtRqst \-TXMapEvent \-TXMapRequestEvent \-TXMappingEvent \-TXModifierKeymap \-TXMotionEvent \-TXNoExposeEvent \-TXOC \-TXOM \-TXOMCharSetList \-TXOMFontInfo \-TXOMOrientation \-TXOrientation \-TXPixmapFormatValues \-TXPoint \-TXPointer \-TXPointerMovedEvent \-TXPropertyEvent \-TXRectangle \-TXReparentEvent \-TXResizeRequestEvent \-TXSegment \-TXSelectionClearEvent \-TXSelectionEvent \-TXSelectionRequestEvent \-TXSetWindowAttributes \-TXTextItem \-TXTextItem16 \-TXTimeCoord \-TXUnmapEvent \-TXVaNestedList \-TXVirtualEvent \-TXVisibilityEvent \-TXWindowAttributes \-TXWindowChanges \-TXidStatus \-TXmbTextItem \-TXwcTextItem \-TYYSTYPE \-TYY_BUFFER_STATE \-TYY_CHAR \-T_LIB_VERSION_TYPE \-T_RuneEntry \-T_RuneLocale \-T_RuneRange \-T_SPI_connection \-T_SPI_plan \-T_XPrivDisplay \-Tac_extra \-Taclitem \-Tadjust_inherited_attrs_context \-Talc_extra \-Talloc_func \-Tam_extra \-Tanyarray \-Tassoc_list \-Tatc_extra \-Tattribute_used_context \-TbackslashResult \-Tbio_info_cb \-Tbit_64 \-Tbitmapword \-Tbits16 \-Tbits32 \-Tbits8 \-Tbool \-Tbool16 \-Tbool32 \-Tbool8 \-Tbt_incomplete_split \-Tbytea \-Tcached_re_str \-Tcaddr_t \-Tcc_t \-Tcelt \-Tchar \-Tcharf \-TcheckExprHasAggs_context \-Tcheck_parameter_resolution_context \-Tcheck_ungrouped_columns_context \-Tchr \-Tclock_t \-Tclockid_t \-Tcolor \-Tconst_des_cblock \-Tcontain_var_reference_context \-Tcrc64 \-Tdaddr_t \-Tdatetkn \-Tdeparse_context \-Tdeparse_namespace \-Tdes_cblock \-Tdes_key_schedule \-Tdev_t \-Tdiv_t \-Tdouble \-TevalPlanQual \-TexecRowMark \-Texecution_state \-Tf_smgr \-Tfd_mask \-Tfd_set \-Tfinalize_primnode_context \-Tfind_expr_references_context \-Tfind_minimum_var_level_context \-Tfixpt_t \-Tflatten_join_alias_vars_context \-Tfloat \-Tfloat32 \-Tfloat32data \-Tfloat4 \-Tfloat64 \-Tfloat64data \-Tfloat8 \-Tfp_except \-Tfp_rnd \-Tfpclass_t \-Tfpos_t \-Tfree_func \-Tfsec_t \-Tfunc_ptr \-Tgid_t \-TgzFile \-Thashnode \-ThbaPort \-Thelp_handler \-Tin_addr_t \-Tin_port_t \-Tinet \-Tinet_struct \-Tino_t \-Tint \-Tint16 \-Tint16_t \-Tint16m_t \-Tint2 \-Tint2vector \-Tint32 \-Tint32_t \-Tint32m_t \-Tint4 \-Tint64 \-Tint64_t \-Tint64m_t \-Tint8 \-Tint8_t \-Tint8m_t \-Tintf \-Tjmp_buf \-Tjoin_references_context \-Tkey_t \-TlclContext \-TlclTocEntry \-Tldiv_t \-Tmacaddr \-Tmb2wchar_with_len_converter \-Tmblen_converter \-TmixedStruct \-Tmode_t \-Tnlink_t \-Toff_t \-Toidvector \-ToptType \-Tpcolor \-Tpem_password_cb \-Tpg_enc \-Tpg_enc2name \-Tpg_encname \-Tpg_local_to_utf \-Tpg_utf_to_local \-Tpg_wchar \-Tpg_wchar_tbl \-Tpgsql_thing_t \-Tpid_t \-Tpqbool \-Tpqsigfunc \-TprintQueryOpt \-TprintTableOpt \-TpromptStatus_t \-Tpthread_attr_t \-Tpthread_cond_t \-Tpthread_condattr_t \-Tpthread_key_t \-Tpthread_mutex_t \-Tpthread_mutexattr_t \-Tpthread_once_t \-Tpthread_t \-Tptrdiff_t \-Tpull_var_clause_context \-Tpull_varnos_context \-Tq128_t \-Tqaddr_t \-Tquad_t \-TrangeTableEntry_used_context \-Treduce_outer_joins_state \-Tregex_t \-Tregister_t \-Tregmatch_t \-Tregoff_t \-Tregproc \-Treplace_vars_with_subplan_refs_context \-Trewrite_event \-Trm_detail_t \-Trune_t \-Tsa_family_t \-Tsegsz_t \-Tsequence_magic \-Tsig_atomic_t \-Tsig_t \-Tsighandler_cxt \-Tsigjmp_buf \-Tsignedbitmapword \-Tsigset_t \-Tsize_t \-Tslock_t \-Tsmgrid \-Tsocklen_t \-Tspeed_t \-TsqlparseInfo \-TsqlparseState \-Tssize_t \-Tssl_crock_st \-Tstack_t \-Tsubstitute_actual_parameters_context \-Tswblk_t \-Ttcflag_t \-Ttcp_seq \-TteReqs \-Ttext \-Ttime_t \-TuInt \-TuIntf \-TuLong \-TuLongf \-Tu_char \-Tu_int \-Tu_int16_t \-Tu_int16m_t \-Tu_int32_t \-Tu_int32m_t \-Tu_int64_t \-Tu_int64m_t \-Tu_int8_t \-Tu_int8m_t \-Tu_long \-Tu_quad_t \-Tu_short \-Tuchr \-Tuid_t \-Tuint \-Tuint16 \-Tuint32 \-Tuint64 \-Tuint8 \-Tunknown \-Tushort \-Tva_list \-Tvarattrib \-Tvm_offset_t \-Tvm_size_t \-Tvoid \-Tvoidp \-Tvoidpf \-Twchar_t \-Tword16 \-Tword32 \-Tword8 \-Txl_btree_delete \-Txl_btree_delete_page \-Txl_btree_insert \-Txl_btree_metadata \-Txl_btree_newmeta \-Txl_btree_newpage \-Txl_btree_newroot \-Txl_btree_split \-Txl_btreetid \-Txl_heap_clean \-Txl_heap_delete \-Txl_heap_header \-Txl_heap_insert \-Txl_heap_update \-Txl_heaptid \-Txl_seq_rec \-Txl_xact_abort \-Txl_xact_commit \-Tyy_size_t \-Tyy_state_type \-Tyysigned_char \-Tz_stream \-Tz_streamp \/tmp/$$a >/tmp/$$ 2>&1 if [ "$?" -ne 0 -o -s /tmp/$$ ] then echo echo "$FILE" cat /tmp/$$ fi cat /tmp/$$a |# restore DATA/CATALOG lines sed 's;^/\*\(DATA(.*\)\*/$;\1;' | sed 's;^/\*\(CATALOG(.*\)\*/$;\1;' |# remove tabs and retab with four spaces detab -t8 -qc | entab -t4 -qc | sed 's;^/\* Open extern \"C\" \*/$;{;' | sed 's;^/\* Close extern \"C\" \*/$;};' | sed 's;/\*---X_X;/* ---;g' |# workaround indent bug sed 's;^static[ ][ ]*;static ;g' | sed 's;^} [ ]*;} ;' |# pull in #endif comments sed 's;^#endif[ ][ ]*/\*;#endif /*;' |# work around #else indenting next line if #ifdef defines variables at top# work around misindenting of function with no variables defined awk ' { if ($0 ~ "^[ ]*int[ ]*pgindent_func_no_var_fix;") { if (getline && $0 != "") print $0; } else print $0; }' |# add space after comments that start on tab stops sed 's;\([^ ]\)\(/\*.*\*/\)$;\1 \2;' |# move trailing * in function return type sed 's;^\([A-Za-z_][^ ]*\)[ ][ ]*\*$;\1 *;' |# remove un-needed braces around single statements awk ' { line3 = $0; if (skips > 0) skips--; if (line1 ~ " *{$" && line2 ~ " *[^;{}]*;$" && line3 ~ " *}$") { print line2; line2 = ""; line3 = ""; skips = 3; } else if (skips == 0 && NR >= 3) print line1; line1 = line2; line2 = line3; } END { if (NR >= 2 && skips <= 1) print line1; if (NR >= 1 && skips <= 2) print line2; }' |# remove blank line between opening brace and block comment awk ' { line3 = $0; if (skips > 0) skips--; if (line1 ~ " *{$" && line2 ~ "^$" && line3 ~ " */\\*$") { print line1; print line3; line2 = ""; line3 = ""; skips = 3; } else if (skips == 0 && NR >= 3) print line1; line1 = line2; line2 = line3; } END { if (NR >= 2 && skips <= 1) print line1; if (NR >= 1 && skips <= 2) print line2; }' |# remove trailing blank lines, helps with adding blank before trailing #endif awk ' BEGIN {blank_lines = 0;} { line1 = $0; if (line1 ~ /^$/) blank_lines++; else { for (; blank_lines > 0; blank_lines--) printf "\n"; print line1; } }' |# remove blank line before #endif awk ' BEGIN {line1 = ""; line2 = ""; skips = 0} { line2 = $0; if (skips > 0) skips--; if (line1 ~ "^$" && line2 ~ "^#endif") { print line2; line2 = ""; skips = 2; } else if (skips == 0 && NR >= 2) print line1; line1 = line2; } END { if (NR >= 1 && skips <= 1) print line1; }' |# add blank line before #endif if it is the last line in the file awk ' BEGIN {line1 = ""; line2 = ""} { line2 = $0; if (NR >= 2) print line1; line1 = line2; } END { if (NR >= 1 && line2 ~ "^#endif") printf "\n"; print line1; }' |# Move prototype names to the same line as return type. Useful for ctags. # Indent should do this, but it does not. It formats prototypes just# like real functions. awk ' BEGIN {paren_level = 0} { if ($0 ~ /^[a-zA-Z_][a-zA-Z_0-9]*[^\(]*$/) { saved_len = 0; saved_lines[++saved_len] = $0; if ((getline saved_lines[++saved_len]) == 0) print saved_lines[1]; else if (saved_lines[saved_len] !~ /^[a-zA-Z_][a-zA-Z_0-9]*\(/ || saved_lines[saved_len] ~ /^[a-zA-Z_][a-zA-Z_0-9]*\(.*\)$/ || saved_lines[saved_len] ~ /^[a-zA-Z_][a-zA-Z_0-9]*\(.*\);$/) { print saved_lines[1]; print saved_lines[2]; } else { while (1) { if ((getline saved_lines[++saved_len]) == 0) break; if (saved_lines[saved_len] ~ /^[^ ]/ || saved_lines[saved_len] !~ /,$/) break; } for (i=1; i <= saved_len; i++) { if (i == 1 && saved_lines[saved_len] ~ /\);$/) { printf "%s", saved_lines[i]; if (substr(saved_lines[i], length(saved_lines[i]),1) != "*") printf " "; } else print saved_lines[i]; } } } else print $0; }' | cat >/tmp/$$ && cat /tmp/$$ >"$FILE"done# The 'for' loop makes these backup files useless so delete themrm -f *a.BAK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -