使用FLEXFORMATTER自动整理代码结构

规范整洁的源代码是很赏心悦目的东西,但是要在开发中人为的做到完美的代码规范是不太现实的,总会有写代码写到忘我的时候,以至于忽略一些东西。

推荐给大家一个Flash Buidler(Eclipse)插件Flexformatter。相当的强悍。可以帮我们

  1. 自动对mxml文件节点进行属性换行对齐
  2. 自动从static到public标签排序,标签内字母排序
  3. 各种风格代码自动生成
  4. 自动生成注释
  5. 等等

总之是很强大的辅助工具,强烈推荐在开发中使用。

使用方法:

  1. Flash Builder或Eclipse中安装http://flexformatter.googlecode.com/svn/trunk/FlexFormatter/FlexPrettyPrintCommandUpdateSite
  2. 安装好后重启Flash Builder就可以了。
  3. 在preference里会多了一个Flex Formatting. 打开这里进行各种调整。调整时可以看到有预览区域及时预览自动格式后的效果
  4. 展开Flex Formatting节点,下面可以看到有Auto Format。这里可以是设置是否需要在保存文件时自动格式化。需要的话,勾上两个checkbox. 选项选择Format就可以
  5. 在Flash Builder的tool bar上可以看到多了几个按钮。其中是执行格式化。没有选择自动格式化的话,需要手动点击这里来规范文件。

到底有多给力,试试就知道

下面是我正在使用的一个配置,分享给大家吧。在 Flex Formatting里点击ActionScript。下面有个Import(2)点击,把下面东西全复制进去。最后Apply. 导入以后你可以在上面对导入的设计进行你希望的修改。

#FlexFormatter settings

#Sun Jun 12 18:49:01 BST 2011

ActionScript.metatagsOnSameLineAsTargetFunction=Bindable

Actionscript.advancedSpacesInsideParensInParameterLists=0

MXML.keepRelativeIndentInMultilineComments=true

MXML.attrsPerLine=1

MXML.blankLinesBeforeTags=0

ASRearr_GroupGettersAndSettersWithStaticProperties=false

Actionscript.keepBlankLines=true

MXML.tagsDoNotFormatInside=.*\:Model,.*\:XML,

Actionscript.blankLinesAtFunctionEnd=0

ASRearr_RemoveExistingCopyrightHeaders=false

ASRearr_ElementSortNamespaces=true

Actionscript.advancedCRBeforeBraceSettings=2047

ASRearr_SortGettersAndSettersWithAssociatedProperties=true

Actionscript.DocCommentKeepBlankLines=true

Actionscript.useGlobalSpacesAroundColons=true

Actionscript.newLineBeforeBindableFunction=true

ASRearr_UseElementPropertyVisibilityOrder=true

Actionscript.useGlobalSpacesInsideParens=true

MXML.KeepScriptCDataOnSameLine=false

Actionscript.wrapExpressionMode=2

Actionscript.blankLinesAtFunctionStart=0

MXML.spacesInsideAttributeBraces=0

Actionscript.breakLinesBeforeArithmeticOperator=false

ASRearr_ElementFunctionVisibilityOrder=public\:true,protected\:true,internal\:true,private\:true,

Actionscript.wrapMethodDeclMode=2

MXML.ScriptIndentTabs=1

ASRearr_ElementStaticPropertyVisibilityOrder=public\:true,protected\:true,internal\:true,private\:true,

Actionscript.useGlobalCRBeforeBrace=true

Actionscript.addBracesToCases=1

Actionscript.wrapArrayDeclMode=16

Actionscript.useGnuBraceIndent=false

MXML.sortAttrData=

ActionScript.keepRelativeIndentInDocComments=true

ASRearr_ElementOrder=Import,Include,Namespace Definition,Default Namespace,Namespace Use,Static Property,Static Function,Static Initializer,Property,Constructor,Function,

Actionscript.noNewCRsBeforeContinue=false

Actionscript.blankLinesBeforeFunctions=1

Actionscript.advancedWrappingAllArrayItems=false

Actionscript.useLineCommentWrapping=false

MXML.maxLineLength=200

ASRearr_MajorSectionHeader=style\=1|width\=60|blankLines\=4|fillChar\=-|text\=|linesBefore\=1|

ASRearr_ModifierOrder_Function=<Namespace>,override,native,public,private,protected,internal,static,dynamic,final

MXML.blankLinesAfterParentTags=0

Actionscript.wrapMethodCallMode=1

Actionscript.noNewCRsBeforeThrow=false

ASRearr_RemoveExistingSectionHeaders=false

Actionscript.MLCommentHeaderOnSeparateLine=false

ASRearr_UseElementFunctionVisibilityOrder=true

Actionscript.spacesBeforeControlOpenParen=1

Actionscript.noNewCRsBeforeBreak=false

MXML.attrsToKeepOnSameLine=1

ASRearr_UseModifierOrder_Function=true

Actionscript.putEmptyStatementsOnNewLine=true

Actionscript.spacesAroundBinarySymbolicOperator=1

Actionscript.useDocCommentWrapping=false

Flex.useTabs=true

Actionscript.doRearrangeWhileFormatting=true

MXML.sortAttrMode=0

ASRearr_UseGlobalModifierOrder=false

Actionscript.docCommentReflow=false

Actionscript.breakLinesBeforeLogicalOperator=false

ASRearr_ImportOrder=adobe,flash,mx,com,

Actionscript.advancedSpacesInsideParensInOtherPlaces=0

Actionscript.advancedWrappingGraceColumns=5

Actionscript.advancedSpacesInsideArrayRefBrackets=0

MXML.doRemoveNamespacesWhileFormatting=false

ActionScript.spacesBeforeFormalParameters=0

MXML.blankLinesBetweenSiblingTags=0

Actionscript.putElseOnNewLine=true

ASRearr_SectionHeaderMap=\#\n\#Sun Jun 12 18\:49\:01 BST 2011\n

Actionscript.alwaysGenerateIndent=true

Actionscript.advancedWrappingAllArgs=false

Actionscript.advancedWrappingFirstArrayItem=false

MXML.blankLinesAfterSpecificParentTags=0

ASRearr_SortGettersAndSettersWithAssociatedStaticProperties=true

Actionscript.blankLinesBeforeClasses=1

ASRearr_ElementStaticFunctionVisibilityOrder=public\:true,protected\:true,internal\:true,private\:true,

MXML.blankLinesBeforeClosingTags=0

Actionscript.putWhileOnNewLine=false

MXML.parentTagsToHaveBlankLinesAddedAfterThem=

Actionscript.maxLineLength=200

MXML.attrWrapMode=52

Actionscript.unindentExpressionTerminators=false

MXML.tagsCanFormat=mx\:List,fx\:List,

MXML.wrapIndentStyle=1000

ActionScript.metatagsOnSameLineAsTargetProperty=Bindable,

ASRearr_UseMetatagOrder=false

MXML.spacesAroundEquals=0

Actionscript.advancedSpacesAroundEqualsInOptionalParameters=0

ASRearr_CopyrightHeader=style\=1|width\=80|blankLines\=2|fillChar\=-|text\=   Copyright 2011\n   All rights reserved.|linesBefore\=1|

Actionscript.blankLinesBeforeProperties=1

Actionscript.putOpenBraceOnNewLine=true

Actionscript.advancedWrappingPreservePhrases=true

Actionscript.keepElseIfOnSameLine=true

ASRearr_ElementSortStaticFunctions=true

ASRearr_ElementSortIncludes=true

Actionscript.blankLinesBeforeImportBlock=0

Actionscript.newLineBeforeBindableProperty=true

ASRearr_ElementSortMetatags=false

MXML.blankLinesAtCDataStart=1

MXML.addNewlineAfterLastAttr=false

MXML.useFormattingOfBoundAttributes=false

Actionscript.advancedWrappingFirstParm=false

ASRearr_UseImportOrder=true

ASRearr_ElementSortStaticProperties=true

Actionscript.keepSpacesBeforeLineComments=false

Actionscript.advancedWrappingEnforceMax=false

ASRearr_BlankLinesBeforeElement=

Actionscript.advancedWrappingElements=165

Actionscript.keepSLCommentsOnColumn1=true

ASRearr_UseCopyrightGeneration=false

Actionscript.collapseSpacesForAdjacentParens=false

ASRearr_ModifierOrder_Property=<Namespace>,override,native,public,private,protected,internal,static,dynamic,final

Actionscript.useAdvancedWrapping=false

MXML.sortExtraAttrs=false

Actionscript.MLCommentReflowLines=false

Actionscript.blankLinesToKeep=0

Actionscript.spacesAfterLabel=1

ASRearr_ElementSortImports=true

Actionscript.MLCommentAsteriskMode=0

ASRearr_AddDefaultHeaderForProperties=1

Actionscript.blankLinesBeforeControlStatements=0

ASRearr_MoveImportsOutsideClass=true

Actionscript.advancedSpacesInsideLiteralBraces=1

Actionscript.alignDeclEqualsMode=1

Actionscript.putCatchOnNewLine=true

ASRearr_GroupGettersAndSettersWithProperties=false

Actionscript.breakLinesBeforeComma=false

Actionscript.wrapIndentStyle=1001

Actionscript.tabCountForHangingIndent=1

Actionscript.advancedWrappingAllObjectItems=false

ASRearr_UseElementStaticPropertyVisibilityOrder=true

Actionscript.spacesBeforeColonsInDeclarations=0

Actionscript.breakLinesBeforeAssignment=false

MXML.useSpacesInsideAttributeBraces=false

ASRearr_UseSectionHeadersInMXML=true

MXML.onlyFormatASIfCDATABlock=false

MXML.tagsWithASContent=.*\:add,.*\:added,.*\:activate,.*\:addedToStage,.*\:buttonDown,.*\:change,.*\:childAdd,.*\:childIndexChange,.*\:childRemove,.*\:clickHandler,.*\:clear,.*\:click,.*\:complete,.*\:contextMenu,.*\:copy,.*\:creationComplete,.*\:currentStateChange,.*\:currentStateChanging,.*\:cut,.*\:dataChange,.*\:deactivate,.*\:doubleClick,.*\:dragComplete,.*\:dragDrop,.*\:dragEnter,.*\:dragExit,.*\:dragOver,.*\:dragStart,.*\:effectEnd,.*\:effectStart,.*\:enterFrame,.*\:enterState,.*\:exitFrame,.*\:exitState,.*\:focusIn,.*\:focusOut,.*\:frameConstructed,.*\:hide,.*\:httpStatus,.*\:init,.*\:initialize,.*\:invalid,.*\:ioError,.*\:itemClick,.*\:itemRollOut,.*\:itemRollOver,.*\:keyDown,.*\:keyFocusChange,.*\:keyUp,.*\:menuHide,.*\:menuShow,.*\:middleClick,.*\:middleMouseDown,.*\:middleMouseUp,.*\:mouseDown,.*\:mouseUp,.*\:mouseOver,.*\:mouseMove,.*\:mouseOut,.*\:mouseFocusChange,.*\:mouseWheel,.*\:mouseDownOutside,.*\:mouseWheelOutside,.*\:move,.*\:nativeDragComplete,.*\:nativeDragDrop,.*\:nativeDragEnter,.*\:nativeDragExit,.*\:nativeDragOver,.*\:nativeDragStart,.*\:nativeDragUpdate,.*\:open,.*\:paste,.*\:preinitialize,.*\:progress,.*\:record,.*\:remove,.*\:removed,.*\:removedFromStage,.*\:render,.*\:resize,.*\:rightClick,.*\:rightMouseDown,.*\:rightMouseUp,.*\:rollOut,.*\:rollOver,.*\:scroll,.*\:securityError,.*\:selectAll,.*\:show,.*\:tabChildrenChange,.*\:tabEnabledChange,.*\:tabIndexChange,.*\:thumbDrag,.*\:thumbPress,.*\:thumbRelease,.*\:toolTipCreate,.*\:toolTipEnd,.*\:toolTipHide,.*\:toolTipShow,.*\:toolTipShown,.*\:toolTipStart,.*\:updateComplete,.*\:unload,.*\:valid,.*\:valueCommit,.*\:Script,

Actionscript.advancedSpacesInsideArrayDeclBrackets=1

ASRearr_UseModifierOrder_Property=true

Actionscript.advancedUseSpacesAroundEqualsInOptionalParameters=false

MXML.tagsCannotFormat=mx\:String,fx\:String,

MXML.useTagsDoNotFormatInside=false

Actionscript.wrapEmbeddedXMLMode=2

Actionscript.advancedSpacesInsideParensInArgumentLists=0

Actionscript.useMLCommentWrapping=false

Actionscript.spacesAfterColonsInFunctions=0

MXML.spacesBeforeEmptyTagEnd=1

MXML.alwaysUseMaxLineLength=false

Actionscript.MLCommentKeepBlankLines=true

Actionscript.advancedWrappingFirstObjectItem=false

ASRearr_UseElementOrder=true

ASRearr_UseSectionHeaders=true

Actionscript.addBracesToLoops=1

ActionScript.spacesBeforeArguments=0

ASRearr_ModifierOrder_Class=<Namespace>,override,native,public,private,protected,internal,static,dynamic,final

ASRearr_UseElementStaticFunctionVisibilityOrder=true

Actionscript.noNewCRsBeforeReturn=false

ASRearr_MetatagOrder=ArrayElementType,Bindable,DefaultProperty,Deprecated,Effect,Embed,Event,Exclude,ExcludeClass,IconFile,Inspectable,InstanceType,NonCommittingChangeEvent,RemoteClass,Style,SWF,Transient,

Actionscript.dontIndentPackageItems=false

MXML.tabCountForHangingIndent=2

MXML.tagsToHaveBlankLinesAddedBeforeThem=

Actionscript.advancedWrappingAlignArrayItems=false

ASRearr_UseModifierOrder_Class=true

Actionscript.alignDeclEquals=false

Actionscript.useBraceStyle=true

Actionscript.advancedWrappingAlignObjectItems=false

Actionscript.docCommentHangingIndentTabs=0

MXML.useAttrsToKeepOnSameLine=true

Actionscript.spacesBeforeComma=0

ASRearr_ElementPropertyVisibilityOrder=public\:true,protected\:true,internal\:true,private\:true,

Actionscript.advancedWrappingFirstArg=false

Actionscript.alignLineCommentsAtColumn=0

Actionscript.spacesBeforeColonsInFunctions=0

Actionscript.spacesAroundColons=1

Actionscript.spacesInsideParens=1

Actionscript.noNewCRsBeforeExpression=false

MXML.blankLinesBeforeComments=0

Actionscript.spacesAroundAssignment=1

Actionscript.spacesAfterComma=1

ASRearr_ElementSortFunctions=true

MXML.ScriptCDataIndentTabs=1

ASRearr_AddDefaultHeaderForStaticProperties=1

MXML.attrGroups=name\=properties|sort\=11|includeStates\=true|wrap\=54|attrs\=allowDisjointSelection,allowMultipleSelection,allowThumbOverlap,allowTrackClick,autoLayout,autoRepeat,automationName,cachePolicy,class,clipContent,condenseWhite,conversion,creationIndex,creationPolicy,currentState,data,dataDescriptor,dataProvider,dataTipFormatFunction,dayNames,defaultButton,direction,disabledDays,disabledRanges,displayedMonth,displayedYear,doubleClickEnabled,emphasized,enabled,explicitHeight,explicitMaxHeight,explicitMaxWidth,explicitMinHeight,explicitMinWidth,explicitWidth,firstDayOfWeek,focusEnabled,fontContext,height,horizontalLineScrollSize,horizontalPageScrollSize,horizontalScrollBar,horizontalScrollPolicy,horizontalScrollPosition,htmlText,icon,iconField,id,imeMode,includeInLayout,indeterminate,label,labelField,labelFunction,labelPlacement,labels,layout,lineScrollSize,listData,liveDragging,maxChars,maxHeight,maxScrollPosition,maxWidth,maxYear,maximum,measuredHeight,measuredMinHeight,measuredMinWidth,measuredWidth,menuBarItemRenderer,menuBarItems,menus,minHeight,minScrollPosition,minWidth,minYear,minimum,mode,monthNames,monthSymbol,mouseFocusEnabled,pageScrollSize,pageSize,percentHeight,percentWidth,scaleX,scaleY,scrollPosition,selectable,selectableRange,selected,selectedDate,selectedField,selectedIndex,selectedRanges,showDataTip,showRoot,showToday,sliderDataTipClass,sliderThumbClass,snapInterval,source,states,stepSize,stickyHighlighting,styleName,text,thumbCount,tickInterval,tickValues,toggle,toolTip,transitions,truncateToFit,validationSubField,value,verticalLineScrollSize,verticalPageScrollSize,verticalScrollBar,verticalScrollPolicy,verticalScrollPosition,width,x,y,yearNavigationEnabled,yearSymbol,|data\=-1|\nname\=xml_namespaces|sort\=11|includeStates\=true|wrap\=54|attrs\=xmlns,xmlns\:.*,|data\=-1|\nname\=events|sort\=11|includeStates\=true|wrap\=54|attrs\=add,added,activate,addedToStage,buttonDown,change,childAdd,childIndexChange,childRemove,clickHandler,clear,click,complete,contextMenu,copy,creationComplete,currentStateChange,currentStateChanging,cut,dataChange,deactivate,doubleClick,dragComplete,dragDrop,dragEnter,dragExit,dragOver,dragStart,effectEnd,effectStart,enterFrame,enterState,exitFrame,exitState,focusIn,focusOut,frameConstructed,hide,httpStatus,init,initialize,invalid,ioError,itemClick,itemRollOut,itemRollOver,keyDown,keyFocusChange,keyUp,menuHide,menuShow,middleClick,middleMouseDown,middleMouseUp,mouseDown,mouseUp,mouseOver,mouseMove,mouseOut,mouseFocusChange,mouseWheel,mouseDownOutside,mouseWheelOutside,move,nativeDragComplete,nativeDragDrop,nativeDragEnter,nativeDragExit,nativeDragOver,nativeDragStart,nativeDragUpdate,open,paste,preinitialize,progress,record,remove,removed,removedFromStage,render,resize,rightClick,rightMouseDown,rightMouseUp,rollOut,rollOver,scroll,securityError,selectAll,show,tabChildrenChange,tabEnabledChange,tabIndexChange,thumbDrag,thumbPress,thumbRelease,toolTipCreate,toolTipEnd,toolTipHide,toolTipShow,toolTipShown,toolTipStart,updateComplete,unload,valid,valueCommit,|data\=-1|\nname\=styles|sort\=11|includeStates\=true|wrap\=54|attrs\=backgroundAlpha,backgroundAttachment,backgroundColor,backgroundDisabledColor,backgroundImage,backgroundSize,backgroundSkin,barColor,barSkin,borderColor,borderSides,borderSkin,borderStyle,borderThickness,bottom,color,cornerRadius,dataTipOffset,dataTipPrecision,dataTipStyleName,disabledColor,disabledIcon,disabledIconColor,disabledSkin,disbledOverlayAlpha,downArrowDisabledSkin,downArrowDownSkin,downArrowOverSkin,downArrowUpSkin,downIcon,downSkin,dropShadowColor,dropShadowEnabled,errorColor,fillAlphas,fillColors,focusAlpha,focusBlendMode,focusRoundedCorners,focusSkin,focusThickness,fontAntiAliasType,fontFamily,fontGridFitType,fontSharpness,fontSize,fontStyle,fontThickness,fontWeight,fontfamily,headerColors,headerStyleName,highlightAlphas,horizontalAlign,horizontalCenter,horizontalGap,horizontalScrollBarStyleName,icon,iconColor,indeterminateMoveInterval,indeterminateSkin,itemDownSkin,itemOverSkin,itemUpSkin,kerning,labelOffset,labelStyleName,labelWidth,leading,left,letterSpacing,maskSkin,menuStyleName,nextMonthDisabledSkin,nextMonthDownSkin,nextMonthOverSkin,nextMonthSkin,nextMonthUpSkin,nextYearDisabledSkin,nextYearDownSkin,nextYearOverSkin,nextYearSkin,nextYearUpSkin,overIcon,overSkin,paddingBottom,paddingLeft,paddingRight,paddingTop,prevMonthDisabledSkin,prevMonthDownSkin,prevMonthOverSkin,prevMonthSkin,prevMonthUpSkin,prevYearDisabledSkin,prevYearDownSkin,prevYearOverSkin,prevYearSkin,prevYearUpSkin,repeatDelay,repeatInterval,right,rollOverColor,rollOverIndicatorSkin,selectedDisabledIcon,selectedDisabledSkin,selectedDownIcon,selectedDownSkin,selectedOverIcon,selectedOverSkin,selectedUpIcon,selectedUpSkin,selectionColor,selectionIndicatorSkin,shadowColor,shadowDirection,shadowDistance,showTrackHighlight,skin,slideDuration,slideEasingFunction,strokeColor,strokeWidth,textAlign,textDecoration,textIndent,textRollOverColor,textSelectedColor,themeColor,thumbDisabledSkin,thumbDownSkin,thumbIcon,thumbOffset,thumbOverSkin,thumbUpSkin,tickColor,tickLength,tickOffset,tickThickness,todayColor,todayIndicatorSkin,todayStyleName,top,tracHighlightSkin,trackColors,trackHeight,trackMargin,trackSkin,upArrowDisabledSkin,upArrowDownSkin,upArrowOverSkin,upArrowUpSkin,upIcon,upSkin,verticalAlign,verticalCenter,verticalGap,verticalScrollBarStyleName,weekDayStyleName,|data\=-1|\nname\=effects|sort\=11|includeStates\=true|wrap\=54|attrs\=addedEffect,completeEffect,creationCompleteEffect,focusInEffect,focusOutEffect,hideEffect,mouseDownEffect,mouseUpEffect,moveEffect,removedEffect,resizeEffect,rollOutEffect,rollOverEffect,showEffect,|data\=-1|\nname\=Special_Group–Other Attributes|sort\=11|includeStates\=true|wrap\=54|attrs\=|data\=-1|\n

Actionscript.leaveExtraWhitespaceAroundVarDecls=false

Actionscript.advancedWrappingAllParms=false

Actionscript.addBracesToConditionals=1

Actionscript.spacesAfterColonsInDeclarations=0

ASRearr_MinorSectionHeader=style\=1|width\=40|blankLines\=0|fillChar\=-|text\=|linesBefore\=1|

Actionscript.braceStyle=5

ASRearr_ElementSortProperties=true

MXML.keepBlankLines=false

转载:http://www.flextheworld.com/2011/06/flexformatter.html

转载于:https://my.oschina.net/bigyuan/blog/49590

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值