如何在javascript中实现区域/代码折叠

IT技术 javascript visual-studio folding code-regions
2021-02-22 00:45:38

如何在 Visual Studio 中为 JavaScript 实现区域又名代码折叠?

如果 javascript 中有数百行,那么在 vb/C# 中使用带有区域的代码折叠会更容易理解。

#region My Code

#endregion
6个回答

对于正在使用最新版本的 Visual Studio 的开发人员来说是个好消息

网站要点都具有此功能的到来。

看一下这个

在此处输入图片说明

注意:对于 VS 2017 使用JavaScript 区域: https : //marketplace.visualstudio.com/items?itemName=MadsKristensen.JavaScriptRegions

这也适用于 VS2019,而且我没有安装 Web Essentials。
2021-04-18 00:45:38
随着时间的推移,这将是事实上接受的答案。
2021-04-26 00:45:38
@William 有一天人们肯定会需要这个;)
2021-04-27 00:45:38
与 2019 年 6 月 10 日的最新版本 VSCode - Typescript 完美配合。
2021-05-05 00:45:38
@LukeVo 然后似乎 vs2019 内置支持这个,
2021-05-14 00:45:38

Microsoft 现在为VS 2010提供了一个扩展,可以提供以下功能:

JScript 编辑器扩展

VS 2012 和 2013 会发生这种情况吗?
2021-04-18 00:45:38
这是太棒了!我希望他们将其包含在下一次 VS 更新中。感谢分享!
2021-05-12 00:45:38
真的很棒的扩展,甚至比第三方大纲扩展还要好。
2021-05-15 00:45:38
这很棒!VS 2012 或 2013 是否有任何版本?
2021-05-15 00:45:38

这很容易!

标记要折叠的部分,然后,

Ctrl+M+H

并扩展使用其左侧的“+”标记。

有效!。救了我,因为它使我的代码看起来更苗条,因为我在单个 ajax 调用下有很多 ajax 调用。
2021-04-30 00:45:38
这是一个临时解决方案。如果关闭并重新打开文件,所选区域将消失。
2021-05-07 00:45:38

对于那些即将使用 Visual Studio 2012 的人,存在Web Essentials 2012

对于那些即将使用 Visual Studio 2015 的人,存在Web Essentials 2015.3

用法与@prasad 所问的完全一样

+1 - 这应该是答案,因为大多数人现在将使用 2012/2013!(它也适用于 2013 年)
2021-05-07 00:45:38

此处的博客条目解释了它和这个MSDN 问题

您必须使用 Visual Studio 2003/2005/2008 宏。

为了保真,从博客条目中复制 + 粘贴:

  1. 打开宏资源管理器
  2. 创建新宏
  3. 命名 OutlineRegions
  4. 单击编辑宏并粘贴以下 VB 代码:
Option Strict Off
Option Explicit Off

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

Public Module JsMacros

    Sub OutlineRegions()
        Dim selection As EnvDTE.TextSelection = DTE.ActiveDocument.Selection

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

        selection.SelectAll()
        Dim text As String = selection.Text
        selection.StartOfDocument(True)

        Dim startIndex As Integer
        Dim endIndex As Integer
        Dim lastIndex As Integer = 0
        Dim startRegions As Stack = New Stack()

        Do
            startIndex = text.IndexOf(REGION_START, lastIndex)
            endIndex = text.IndexOf(REGION_END, lastIndex)

            If startIndex = -1 AndAlso endIndex = -1 Then
                Exit Do
            End If

            If startIndex <> -1 AndAlso startIndex < endIndex Then
                startRegions.Push(startIndex)
                lastIndex = startIndex + 1
            Else
                ' Outline region ...
                selection.MoveToLineAndOffset(CalcLineNumber(text, CInt(startRegions.Pop())), 1)
                selection.MoveToLineAndOffset(CalcLineNumber(text, endIndex) + 1, 1, True)
                selection.OutlineSection()

                lastIndex = endIndex + 1
            End If
        Loop

        selection.StartOfDocument()
    End Sub

    Private Function CalcLineNumber(ByVal text As String, ByVal index As Integer)
        Dim lineNumber As Integer = 1
        Dim i As Integer = 0

        While i < index
            If text.Chars(i) = vbCr Then
                lineNumber += 1
                i += 1
            End If

            i += 1
        End While

        Return lineNumber
    End Function

End Module
  1. 保存宏并关闭编辑器
  2. 现在让我们为宏指定快捷方式。转到工具->选项->环境->键盘并在“显示命令包含”文本框中搜索您的宏
  3. 现在在“按快捷键”下的文本框中,您可以输入所需的快捷方式。我使用 Ctrl+M+E。我不知道为什么 - 我只是第一次输入并现在使用它:)
这在 VS2010 上有效吗?我上不去 宏在搜索时不显示。
2021-04-17 00:45:38
@先生。Flibble:不确定.. 我只有 VS2005。
2021-04-24 00:45:38
这个很有用,并且从站点的评论中要注意的重点是“您必须检查上述代码中module的名称和新宏的名称。两个名称必须匹配!”
2021-05-03 00:45:38
行。我在这里提出了一个新问题:stackoverflow.com/questions/2923177/...
2021-05-05 00:45:38
微软现在有一个 VS2010 的扩展来提供这个功能(请参阅下面的链接)。
2021-05-11 00:45:38