在ColdFusion中管理线宽

mwc*_*wcz 1 vim coldfusion whitespace coding-style

如果你使用ColdFusion,你可能已经习惯了换行或水平滚动.不常见,这并不是那么糟糕,但是当现有代码库中的四行中有三行被包装时,有时两次,这就成了一个巨大的可读性障碍.

像......这样的一条线

<cffunction name="v_multiple_item" access="public" output="false" returntype="query">
Run Code Online (Sandbox Code Playgroud)

很容易被HTML分解成

<cffunction name       = "v_multiple_item" 
            access     = "public" 
            output     = "false"
            returntype = "query" 
            >
Run Code Online (Sandbox Code Playgroud)

在良好的编辑器中使用宏自动化相当容易.我更关心的是穿插ColdFusion和HTML,如下所示:

<cffunction..>
    <cfif..>
        <cfif..>
            <form..>
                <div..>
                    <table..>
                        <tr..>
                            <td..>
                                <cfif..>
                                    <select..>
                                        <cfoutput>
                                            <option>#stuff#</option>
                                        </cfoutput>
Run Code Online (Sandbox Code Playgroud)

我看到在空白区域内换行的8-sp选项卡的代码行并不少见.

减少标签宽度还不够.代码库太大,无法重写/框架化.左倾齐射一切?

是否有一个简单的,成功的策略,可以将线宽减小到可管理的水平,而不会进一步损害可读性?

Sha*_*son 6

我不想在这里遇到"标签与空格"问题,但您可以做的一件事就是在IDE中调整标签.如果使用Tab键,则总是可以将制表符设置为2或3个空格而不是8个(或更多).这将减少不必要的空白,至少在视觉上.

在Eclipse中,您可以在Preferences> General> Editors> Text Editors下执行此操作.有一个"显示标签宽度",您可以减少心脏的内容.

然而,真正的答案是,这只是野兽的本质.如果您要将CF与HTML混合,并且想要清晰,那么您将缩进代码.

编辑:想想看,CFInclude刚刚浮现在脑海中.当然,这也可以导致意大利面条代码,但是这样的事情通常是通过CFInclude处理的.您可以将CF代码的可重用部分分解为cfm模板并包含这些部分.对于带有标题的情况,有许多嵌套的div和CF逻辑混合在一起,你最好还是使用cfinclude.因此,看起来像您的示例的index.cfm页面可能看起来更像是这样:

<cfinclude template="header.cfm">

<div>Some Content Here</div>

<cfinclude template="footer.cfm">
Run Code Online (Sandbox Code Playgroud)

你的所有包装都包含在header.cfm或footer.cfm中.您甚至可以在这些模板中包含这些模板,同时将导航内容保持在单独的cfm页面中.

我不是主张你使用包含hogwild,但它是在ColdFusion中处理可重复使用的HTML/CFML片段的标准方法,并将其分解为概念块,以便更容易找到您正在寻找的内容.

  • Cfinclude将提供一种相当简洁的方法来分离代码块,而无需使用全面的重构.这对于块html来说是理想的,并且可以让你开始使用MVC重构.您还可以将函数内部的条件分离到其他函数中 (2认同)