type script llamar insertar externo ejemplos desde cómo codigo archivo javascript visual-studio folding code-regions

insertar - llamar javascript desde html



cómo implementar colapso de regiones/código en javascript (12)

¡Eso es fácil!

Marque la sección que desea colapsar y,

Ctrl + M + H

Y para expandir use la marca ''+'' a su izquierda.

¿Cómo se pueden implementar regiones alias del colapso del código para JavaScript en Visual Studio?

Si hay cientos de líneas en javascript, será más comprensible utilizando el plegado de código con regiones como en vb / C #.

#region My Code #endregion


Al marcar una sección de código (independientemente de cualquier bloque lógico) y presionar CTRL + M + H, definirá la selección como una región que es plegable y ampliable.





Gracias a 0A0D por una gran respuesta. He tenido buena suerte con eso. Darin Dimitrov también hace una buena discusión sobre la limitación de la complejidad de sus archivos JS. Aún así, encuentro ocasiones en las que colapsar las funciones según sus definiciones hace que navegar por un archivo sea mucho más fácil.

Con respecto a #region en general, esta pregunta SO lo cubre bastante bien.

He hecho algunas modificaciones en Macro para soportar un colapso de código más avanzado. Este método le permite poner una descripción después de la // palabra clave de la región ala C # y lo muestra en el código como se muestra a continuación:

Código de ejemplo:

//#region InputHandler var InputHandler = { inputMode: ''simple'', //simple or advanced //#region filterKeys filterKeys: function(e) { var doSomething = true; if (doSomething) { alert(''something''); } }, //#endregion filterKeys //#region handleInput handleInput: function(input, specialKeys) { //blah blah blah } //#endregion handleInput }; //#endregion InputHandler

Macro actualizada:

Option Explicit On Option Strict On Imports System Imports EnvDTE Imports EnvDTE80 Imports EnvDTE90 Imports System.Diagnostics Imports System.Collections.Generic Public Module JsMacros Sub OutlineRegions() Dim selection As EnvDTE.TextSelection = CType(DTE.ActiveDocument.Selection, EnvDTE.TextSelection) 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 New Stack(Of Integer) 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 ... Dim tempStartIndex As Integer = CInt(startRegions.Pop()) selection.MoveToLineAndOffset(CalcLineNumber(text, tempStartIndex), CalcLineOffset(text, tempStartIndex)) 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) As Integer Dim lineNumber As Integer = 1 Dim i As Integer = 0 While i < index If text.Chars(i) = vbLf Then lineNumber += 1 i += 1 End If If text.Chars(i) = vbCr Then lineNumber += 1 i += 1 If text.Chars(i) = vbLf Then i += 1 ''Swallow the next vbLf End If End If i += 1 End While Return lineNumber End Function Private Function CalcLineOffset(ByVal text As String, ByVal index As Integer) As Integer Dim offset As Integer = 1 Dim i As Integer = index - 1 ''Count backwards from //#region to the previous line counting the white spaces Dim whiteSpaces = 1 While i >= 0 Dim chr As Char = text.Chars(i) If chr = vbCr Or chr = vbLf Then whiteSpaces = offset Exit While End If i -= 1 offset += 1 End While ''Count forwards from //#region to the end of the region line i = index offset = 0 Do Dim chr As Char = text.Chars(i) If chr = vbCr Or chr = vbLf Then Return whiteSpaces + offset End If offset += 1 i += 1 Loop Return whiteSpaces End Function End Module




No solo para VS, sino también para casi todos los editores.

(function /* RegionName */ () { ... })();

Advertencia: tiene desventajas tales como alcance.


Para aquellos a punto de usar Visual Studio 2012, existe la Web Essentials 2012

Para aquellos a punto de usar Visual Studio 2015, existe Web Essentials 2015.3

El uso es exactamente como @prasad preguntó


si estás usando Resharper

sigue los pasos en esta foto

luego escribe esto en el editor de plantillas

//#region $name$ $END$$SELECTION$ //#endregion $name$

y #region nombre #region como en esta imagen

espero que esto te ayude


La entrada del blog aquí lo explica y esta pregunta de MSDN .

Tienes que usar las macros de Visual Studio 2003/2005/2008.

Copiar + Pegar desde la entrada del blog por fidelidad:

  1. Abre Macro Explorer
  2. Crear una nueva macro
  3. OutlineRegions
  4. Haga clic en Editar macro y pegue el siguiente código 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. Guarde la macro y cierre el editor
  2. Ahora asignemos un atajo a la macro. Vaya a Herramientas-> Opciones-> Entorno-> Teclado y busque su macro en el cuadro de texto "mostrar comandos que contienen"
  3. ahora en el cuadro de texto bajo "Presionar teclas de atajo" puede ingresar el atajo deseado. Yo uso Ctrl + M + E. No sé por qué, acabo de ingresarlo por primera vez y usarlo ahora :)