📄 pgindent
字号:
-TThread \-TTidPath \-TTidScan \-TTidScanState \-TTimeADT \-TTimeInterval \-TTimeIntervalData \-TTimeLineID \-TTimeTzADT \-TTimestamp \-TTimestampTz \-TTimevalStruct \-TTmFromChar \-TTmToChar \-TTocEntry \-TTrackItem \-TTransInvalidationInfo \-TTransState \-TTransactionId \-TTransactionState \-TTransactionStateData \-TTransactionStmt \-TTransactionStmtKind \-TTrigger \-TTriggerData \-TTriggerDesc \-TTriggerEvent \-TTriggerInfo \-TTruncateStmt \-TTupOutputState \-TTupSortStatus \-TTupStoreStatus \-TTupleConstr \-TTupleDesc \-TTupleHashEntry \-TTupleHashEntryData \-TTupleHashIterator \-TTupleHashTable \-TTupleHashTableData \-TTupleTable \-TTupleTableData \-TTupleTableSlot \-TTuplesortstate \-TTuplestorestate \-TTwoPhaseCallback \-TTwoPhaseFileHeader \-TTwoPhaseLockRecord \-TTwoPhaseRecordOnDisk \-TTwoPhaseRmgrId \-TTwoPhaseStateData \-TType \-TTypeCacheEntry \-TTypeCast \-TTypeFuncClass \-TTypeInfo \-TTypeName \-TU16 \-TU32 \-TU8 \-TUI \-TUI_METHOD \-TUI_STRING \-TUNDO_LIST \-TUNOP \-TUV \-TUnique \-TUniquePath \-TUniquePathMethod \-TUniqueState \-TUnlistenStmt \-TUpdateStmt \-TUserAuth \-TVFunction \-TVRelStats \-TVTupleLink \-TVTupleLinkData \-TVTupleMove \-TVTupleMoveData \-TVacAttrStats \-TVacAttrStatsP \-TVacPage \-TVacPageData \-TVacPageList \-TVacPageListData \-TVacuumStmt \-TValue \-TVar \-TVarBit \-TVarChar \-TVariableCache \-TVariableCacheData \-TVariableResetStmt \-TVariableSetStmt \-TVariableShowStmt \-TVariableSpace \-TVariableStatData \-TVfd \-TViewStmt \-TWAIT_ORDER \-TWorking_State \-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 \-TXLogContRecord \-TXLogCtlData \-TXLogCtlInsert \-TXLogCtlWrite \-TXLogLongPageHeader \-TXLogLongPageHeaderData \-TXLogPageHeader \-TXLogPageHeaderData \-TXLogRecData \-TXLogRecPtr \-TXLogRecord \-TXLogRelCacheEntry \-TXLogRelDesc \-TXLogwrtResult \-TXLogwrtRqst \-TXPV \-TXPVAV \-TXPVBM \-TXPVCV \-TXPVFM \-TXPVGV \-TXPVHV \-TXPVIO \-TXPVIV \-TXPVLV \-TXPVMG \-TXPVNV \-TXPVUV \-TXRV \-TXactCallback \-TXactCallbackItem \-TXactEvent \-TXidStatus \-TYYSTYPE \-TYY_BUFFER_STATE \-TYY_CHAR \-T_LIB_VERSION_TYPE \-T_RuneEntry \-T_RuneLocale \-T_RuneRange \-T_SPI_connection \-T_SPI_plan \-T_ossl_old_des_cblock \-T_ossl_old_des_key_schedule \-Taclitem \-Tadjust_inherited_attrs_context \-Talc_extra \-Talloc_func \-Tanyarray \-Tassoc_list \-Tatc_extra \-Tattribute_used_context \-Tauth_entry \-Tauthmem_entry \-Tautovac_dbase \-Tautovac_table \-TbackslashResult \-Tbio_info_cb \-Tbitmapword \-Tbits16 \-Tbits32 \-Tbits8 \-Tbool \-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 \-Tcodes_t \-Tcolor \-Tcomment_t \-Tconst_DES_cblock \-Tcontain_var_reference_context \-Tcv_flags_t \-Tdaddr_t \-Tdatetkn \-Tdecimal \-Tdeparse_context \-Tdeparse_namespace \-Tdev_t \-Tdirectory_fctx \-Tdiv_t \-Tdouble \-TevalPlanQual \-Teval_const_expressions_context \-TexecRowMark \-Texecution_state \-Texpectation \-Tf_smgr \-Tfd_mask \-Tfd_set \-Tfilter_t \-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 \-TfmNodePtr \-Tfp_except \-Tfp_rnd \-Tfpclass_t \-Tfpos_t \-Tfree_func \-Tfsec_t \-Tfunc_ptr \-Tgenerate_series_fctx \-Tgid_t \-TgistIncompleteInsert \-TgistxlogEntryUpdate \-TgistxlogInsertComplete \-TgistxlogPage \-TgistxlogPageSplit \-TgzFile \-Thashnode \-ThbaPort \-Thelp_handler \-Tin_addr_t \-Tin_port_t \-Tindexed_tlist \-Tinet \-Tinet_struct \-Tino_t \-Tinstr_time \-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 \-TitemIdSort \-TitemIdSortData \-Tjmp_buf \-Tjoin_references_context \-Tkey_t \-TlclContext \-TlclTocEntry \-Tldiv_t \-Tline_t \-TmXactCacheEnt \-Tmacaddr \-Tmb2wchar_with_len_converter \-Tmbdisplaylen_converter \-Tmblen_converter \-TmixedStruct \-Tmode_t \-Tnlink_t \-Tnls_uint32 \-Tnumeric \-TobjectType \-Toff_t \-Toidvector \-Top_tr_array \-Topcode \-Topindex \-ToptType \-Tpcolor \-Tpem_password_cb \-TpgParameterStatus \-Tpg_conv_map \-Tpg_crc32 \-Tpg_enc \-Tpg_enc2name \-Tpg_encname \-Tpg_local_to_utf \-Tpg_time_t \-Tpg_tz \-Tpg_utf_to_local \-Tpg_wchar \-Tpg_wchar_tbl \-Tpgpid_t \-Tpgsql_thing_t \-Tpgthreadlock_t \-Tpid_t \-Tplperl_proc_desc \-Tplpgsql_HashEnt \-Tplpgsql_yysigned_char \-Tpltcl_proc_desc \-Tpltcl_query_desc \-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 \-Tpvcontents \-Tq128_t \-Tqaddr_t \-Tquad_t \-TrangeTableEntry_used_context \-Treduce_outer_joins_state \-Tregcomp_t \-Tregex_t \-Tregexec_t \-Tregexp \-Tregister_t \-Tregmatch_t \-Tregnode \-Tregoff_t \-Tregproc \-TremoteDep \-Treplace_vars_with_subplan_refs_context \-Trewrite_event \-Trm_detail_t \-Trune_t \-Trunops_proc_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 \-Tstrconst \-Tsubstitute_actual_parameters_context \-Tsvindex \-Tsvtype \-Tswblk_t \-Ttcflag_t \-Ttcp_seq \-TteReqs \-Ttext \-Ttime_t \-Ttlist_vinfo \-Tts_db_fctx \-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 \-Twctype_t \-Twint_t \-Txl_btree_delete \-Txl_btree_delete_page \-Txl_btree_insert \-Txl_btree_metadata \-Txl_btree_newmeta \-Txl_btree_newroot \-Txl_btree_split \-Txl_btreetid \-Txl_dbase_create_rec \-Txl_dbase_create_rec_old \-Txl_dbase_drop_rec \-Txl_dbase_drop_rec_old \-Txl_heap_clean \-Txl_heap_delete \-Txl_heap_header \-Txl_heap_insert \-Txl_heap_lock \-Txl_heap_newpage \-Txl_heap_update \-Txl_heaptid \-Txl_multixact_create \-Txl_seq_rec \-Txl_smgr_create \-Txl_smgr_truncate \-Txl_tblspc_create_rec \-Txl_tblspc_drop_rec \-Txl_xact_abort \-Txl_xact_abort_prepared \-Txl_xact_commit \-Txl_xact_commit_prepared \-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# Do not use because it uglifies PG_TRY/PG_CATCH blocks and probably# isn't needed for general use.# 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 #else, #elif, and #endif awk ' BEGIN {line1 = ""; line2 = ""; skips = 0} { line2 = $0; if (skips > 0) skips--; if (line1 ~ /^$/ && (line2 ~ /^#else/ || line2 ~ /^#elif/ || 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 + -