讓Visual Studio 也支援JS程式碼摺疊功能 —— 續 [ Visual Studio | Js | ScriptOutline | SmallOutline ]

來源:互聯網
上載者:User

 

前言

      上文讓JS程式碼摺疊功能的功能能用了,本文將對代碼繼續改進以期更好用、更實用,隨後有介紹Visual Studio JS方面的幾個外掛程式。

 

文章

      1.      VS2003摺疊代碼的Micro

      2.      MSDN

      3.      Document Outline for Client Script in Visual Studio 2005

 

本文

      一、繼續上文改造,主要是支援region 後面跟注釋和顯示注釋

    1.1  ,這裡就不貼步驟了,上文有詳細的步驟。

    

    1.2  宏代碼,修改上文使用的宏即可。

Option Strict Off
Option Explicit Off

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports System.Collections

Public Module JsMacros

    Sub OutlineRegions()

        Const REGION_START As String = "//region"
        Const REGION_END As String = "//endregion"

        Dim selection As EnvDTE.TextSelection = DTE.ActiveDocument.Selection
        Dim startRegions As Stack = New Stack()         '堆棧
        Dim intCollapseStart As Integer = 0
        Dim intCollapseNum As Integer = 0
        Dim strLines() As String

        selection.StartOfDocument(True)
        selection.SelectAll()
        strLines = selection.Text.Split(vbCrLf)         '擷取所有行

        For i = 0 To strLines.Length - 1
            If strLines(i).TrimStart.StartsWith(REGION_START) Then
                startRegions.Push(i + 1)                            '儲存行號   
            End If
            If strLines(i).TrimStart.StartsWith(REGION_END) Then
                intCollapseStart = startRegions.Pop() + 1           '返回行號   
                intCollapseNum = (i + 1) - intCollapseStart + 1     '返回要摺疊的行數
                selection.GotoLine(intCollapseStart)
                selection.LineDown(True, intCollapseNum)
                selection.SwapAnchor()
                selection.OutlineSection()
            End If
        Next

        selection.StartOfDocument()
    End Sub

End Module

     1.3  注意

      1.3.1.  由上文的"//#region" 、"//#endregion"修改成了本文的"//region"和"//endregion" 。

      1.3.2   如果想把"//region"這一行也隱藏掉只剩下"...",只需要將宏代碼"intCollapseStart = startRegions.Pop() + 1"後面的"+1"去掉即可。遺憾的是沒能弄出C# 摺疊的那種效果出來。

      1.3.3  如果還想支援if for 等關鍵字的摺疊,強烈推薦文章1,本文也是在此文的基礎上修改的,改正了"//region"後面不能接注釋的缺陷。

 

  二、支援JS的Visual Studio外掛程式

            2.1      ScriptOutline      從試用的情況看來並沒有摺疊,但是他顯示了方法大綱,且無需設定快速鍵,作為外掛程式和VS整合,同樣能達到快速找到方法的目的。參照文章3。

                  2.1.1      下載外掛程式:      http://www.geocities.com/evgenypages/ScriptOutline.zip

                  2.1.2      拷貝壓縮檔中的ScriptOutline.AddIn、ScriptOutline.dll到目錄 C:\Documents and Settings\<username>\My Documents\Visual Studio 2005\Addins

                        如果Addins目錄沒有的話自己建一個就行。

                  2.1.3      工具(Tools) -> 外部程式管理器(Add-in Manager...),勾上ScriptOutline外掛程式,確定即可顯示Script Outline視窗。

                  2.1.4      編寫測試代碼,效果

                  

                  藉此我們可以在方法間快速切換!注意這裡使用的環境是Microsoft Visual Studio 2005。

                  

            2.2      SmartOutline

                  2.2.1  下載 http://submain.com/download/smartoutline/ 輸入郵箱地址點下載即可。

                  2.2.2      安裝外掛程式 SmartOutline_v1.1.msi ,下一步下一步就行。工具列會出現SmallOutline,可能需要重啟VS。

                  2.2.3      編寫測試代碼,依次按步驟:

                        2.2.3.1      選中要摺疊的函數,出現如下提示

        

                        2.2.3.2      點擊提示或輸入組合快速鍵 Alt+S、Alt+C ,彈出如下對話方塊,輸入JS程式碼摺疊功能後顯示的注釋名

         

                        2.2.3.3      最終效果

         

      2.2.4  總結

        比較之下還是這個最好用,如下優點:

        a).  不汙染原始碼,和C#裡面寫#region的效果一樣。

        b).  摺疊效果好,能顯示摺疊後代碼塊的注釋,不需要像宏那樣關掉之後重新啟用。

        c).  此外掛程式同時支援VS2005和VS2008,不僅如此,還支援C#、HTML、CSS等,可以從SmallOutline -> General -> Enable SmallOutline for the following files下面的列表裡看到支援的其他檔案。

 

            2.3      JavaScript Function Outliner外掛程式 也請大家關注和支援此園友的外掛程式 : )

 

結束      

  宏是個好東東,雖然有現成的外掛程式用,仍然假借這個機會來學習一翻,甚至有想法通過宏來輔助ORM工具產生一些代碼,以及對代碼產生均有參考價值:)

 

 

 

本博Visual Studio相關文章

  1.  Visual Studio 讓JS也支援程式碼摺疊功能 [ Visual Studio | #region | #endregion ]

  2.  Visual Studio 模板 —— 自訂WebForm模板

  3.  用Visual Studio 2005/2008提取EXE檔案中的資源[圖片|htm|游標檔案]

  4.  Microsoft Visual Studio 2005 KeyTip

  5.  Visual Studio 在根目錄下運行檔案系統網站 [ Visual Studio | 檔案系統 | WebDev.WebServer.EXE ]

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.