让Visual Studio 也支持JS代码折叠 —— 续 [ Visual Studio | Js | ScriptOutline | SmallOutline ]...

前言

      上文让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 快捷键提示

  5.  Visual Studio 在根目录下运行文件系统站点 [ Visual Studio | 文件系统 | WebDev.WebServer.EXE ]

 

'******vs实现js格式化和代码折叠****** '* 版权所有(C) sksmks 2009 '* 文件名称 : JsFormat '* 当前版本 : 1.0.0.1 '* 作 者 : 黄会攀 (@@:272302281) '* 设计日期 : 2009年10月31日 '* 内容摘要 : VS2008 JsFormat Macro '*******************************************************************************/ 一. 目的 在程序的开发中,javascript脚本的扩大,代码折叠,格式化是必不可少的一部分。对于大多数注释,代码折叠,格式化,都有着相似的样子,另外,在团队开发的过程,脚本太大,太长。为了提高在开发过程中,代码的可读性和开发效率,可以利用VS提供的Macro扩展功能,实现一套Macro模板。在使用的过程中,只需要使用相应的快捷键,便可格式化脚本和查看代码结构。 二. 实现 (打开宏资源管理器:视图 -> 其他窗口 -> 宏资源管理器 或者按 Alt+F8) 1. 新建Macro工程 打开 菜单 --> 工具 --> 宏(Macro) --> 新建宏(New Macro Project...),或者(宏资源管理器Alt+F8 )根据向导提示建立工程。 2. 编辑Macro工程 打开 菜单 --> 工具 --> 宏(Macro) --> 宏资源管理器(Macro Explorer) ,在Explorer中选择新建的工程,修改Module名(右键),在Module名上双击,在打开的Macro IDE中进行编辑。 3. 在Module下,添加要实现的MacroForJs,并实现(内容为向Active Document中添加注释)。 4. 保存 5.在VS2008中,双击添加的Macro,将执行对应的Macro代码(使用VBScript在Macro IDE中实现的)。 6. 建立快捷键 打开 菜单 --> 工具 --> 选项 --> 键盘 ,在列表框中选择刚才添加的MacroForJsPro里的OutlineFun (作用:注释),然后在 Press shortcuts keys中输入快捷键,点击Assign 。 打开 菜单 --> 工具 --> 选项 --> 键盘 ,在列表框中选择刚才添加的MacroForJsPro里的FormatForJsChar (作用:格式化),然后在 Press shortcuts keys中输入快捷键,点击Assign 。 7. 这时候,就可以直接使用快捷键来执行MacroForJs 。 三. 使用附件 1. 加载 打开 菜单 --> 工具(Tools) --> 宏(Macro) --> 加载宏项目(Load Macro Project... ),选择附件里的工程。 2. 配置快捷键 3. 完成 具体的实现代码见附件工程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值