前言

上文让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 ]

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

  1. 让Visual Studio 也支持JS代码折叠 [ Visual Studio | #region | #endregion ]

    前言 Visual Studio的代码折叠功能非常好用,#region #endregion 这个词连搜狗的词库里面都出现了(不含'#'号),可见使用频率很高,但是他不支持js的代码折叠 : ( 最近 ...

  2. 压缩过的js代码怎么还原_Fundebug 前端 JS插件更新至 1.7.0,拆分录屏代码,还原部分 Script error....

    摘要: BUG 监控插件压缩至 18K. 1.7.0拆分了录屏代码,BUG 监控插件压缩至18K,另外我们还原了部分 Script error,帮助用户更方便地 Debug.请大家及时更新哈~ 拆分录 ...

  3. 一个好玩的东西,纯JS代码实现增强现实(AR.js)

    增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像.视频.3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动.这 ...

  4. html region 折叠,js代码折叠的方法//#region 代码 //#endregion

    //#region zTree配置数据 var setting = { async: { enable: true, url: GetUrl('/Dept/GetDeptTree'), dataFil ...

  5. 用js代码判断质数_在 JS 中判断,并不是都要用 ===

    我们知道现在的开发人员都使用 === 来代替 ==,为什么呢? 我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===. 这些都导致许多程序 ...

  6. eclipse 新建java无scr_解决eclipse中没有js代码提示的问题

    自学js,发现eclipse中不管js文件.html文件.jsp文件没有都没js代码的提示,对于js代码也不报错,有时候就因为单词敲错却查了很久没查出来,很烦很难受. 在网上找了很多方法,都没有解决, ...

  7. 运用Rhino,在Android上运行js代码

    简单记录如何运用Rhino 在这里不过多赘述rhino,百度以及官网到处都是介绍,本文只提供我自己封装的工具类,用于处理运行js代码(字符串形式),返回js对象或者String.支持es5语法,支持部 ...

  8. 如何才能优雅地书写JS代码

    第一:关于匿名函数的使用 要避免全局变量泛滥, 可以考虑使用匿名函数, 把不需要在外部访问的变量或者函数限制在一个比较小的范围内. 例如以下代码: <script> function fu ...

  9. html调用js页面显示不出来了,JS代码文件调用显示乱码,直接写在html页面的里可以调用,但是单独放在js文件里不能调用...

    最近遇到了一个很奇怪的问题,就是在HTML网页代码里直接写JS代码可以正常运行的代码,使用JS文件调用就不行. var cities = [ { "name" : "北京 ...

最新文章

  1. Linux-DNS服务器的配置与管理(上)
  2. boundingRectWithSize 的使用
  3. 今年大事:年终汇算清缴,你是退还是补?惊喜还是惊吓?
  4. 机器学习 —— 概率图模型(学习:贝叶斯估计)
  5. tkinter连接数据库实现班级点名系统
  6. 第四篇 SpringBoot 2 x整合MyBatis
  7. Android 使用手机向手表安装任意.apk
  8. Scrapy框架爬取豆瓣电影top250信息
  9. Windows中如何对电脑硬盘进行分区
  10. 边缘计算的架构、挑战与应用
  11. https请求百度share分享报错问题
  12. 2017年全国计算机软件水平考试报名入口网址V1.0(小虎整理)
  13. ch9200 usb网卡驱动_21包邮的PCMCIA无线网卡开箱+对比测评
  14. 安装arm_qt交叉编译环境(亲测有效)
  15. 区块链技术如何赋能公共资源招采管理服务?
  16. DELL服务器 R740的风扇设置
  17. 给我一段《巫师3》的核心代码
  18. VMware虚拟机安装win10系统教程(巨细)
  19. Sublime Text 设置成中文版(完整教程)
  20. Population and carrying capacity 的第二阶段 :Crowding affects lifetime.

热门文章

  1. Python(13)-函数,lambda语句
  2. qt triggered信号_Qt之网络编程UDP通信
  3. 英语口语海报演讲--东软
  4. 新研究:长寿又健康的秘诀
  5. 用面粉和醋洗头 让你的头发黑亮又浓密
  6. C++ 标准库 vector list map使用方法
  7. weblogic jprofile配置
  8. 【转载】DRuid 大数据分析之查询
  9. 列出一个目录中所有文件及大小
  10. EF架构~codeFirst从初始化到数据库迁移