سؤال

كيف يمكنك تنفيذ المناطق التي يراها Code Code ل JavaScript في Visual Studio؟

إذا كان هناك مئات الخطوط في جافا سكريبت، فسوف يكون أكثر فهم باستخدام رمز قابلة للطي مع المناطق كما في VB / C #.

#region My Code

#endregion
هل كانت مفيدة؟

المحلول

يشرح إدخال المدونة هنا وهذه 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. لا أعرف لماذا - دخلت ذلك لأول مرة واستخدمها الآن :)

نصائح أخرى

يوجد لدى Microsoft الآن امتدادا ل مقابل 2010. التي توفر هذه الوظيفة:

ملحقات محرر JScript

أخبار جيدة للمطورين الذين يعملون مع أحدث إصدار من Visual Studio

ال أساسيات الويب تأتي مع هذه الميزة.

تحقق من هذا

enter image description here

ملاحظة: لاستخدام VS 2017 مناطق جافا سكريبت: https://marketplace.visualstudio.com/items؟itemname=madskristensen.javascriptregions.

هذا سهل!

حدد القسم الذي تريد انهياره

Ctrl + M + H

وتوسيع استخدام علامة "+" على يسارها.

لأولئك حول لاستخدام Visual Studio 2012، موجود أساسيات الويب 2012.

لأولئك على استعداد لاستخدام Visual Studio 2015، موجود أساسيات الويب 2015.3.

الاستخدام هو بالضبط مثلprasad سأل

من خلال وضع علامة على قسم من التعليمات البرمجية (بغض النظر عن أي كتل منطقية) وضرب Ctrl + M + H، فستحدد الاختيار كمنطقة قابلة للطي وقابلة للتوسيع.

ال jsenhancings. البرنامج المساعد ل Visual Studio يعالج هذا بشكل جيد.

بفضل 0A0D. إجابة رائعة. لقد كان حظا سعيدا معها. دارين ديميتروف كما يجعل حجة جيدة حول الحد من تعقيد ملفات JS الخاصة بك. ومع ذلك، أجد مناسبات حيث تعمل الوظائف المنهولة على تعريفاتها على التصفح من خلال ملف أسهل بكثير.

فيما يتعلق # الإقليمية عموما، هذا حتى سؤال يغطيها جيدا.

لقد قمت ببعض التعديلات على الماكرو لدعم انهيار التعويضات الأكثر تقدما. تتيح لك هذه الطريقة وضع وصف بعد الكلمة الرئيسية // # ala c # وأظهر عليه في التعليمات البرمجية كما هو موضح:

رمز المثال:

//#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

تحديث ماكرو:

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

هذا الآن أصلا في VS2017:

//#region fold this up

//#endregion

بيضاء بين // و # لا يهم.

أنا لا أعرف ما هو الإصدار الذي تمت إضافته فيه، حيث لا يمكنني العثور على أي ذكر لها في سجل التغيير. أنا قادر على استخدامه في V15.7.3.

ON VS 2012 و VS 2015 قم بتثبيت البرنامج المساعد عبر الإنترنت وسوف يمكنك القيام بذلك.

http://vswebessentials.com/features/javascript.

إذا كنت تستخدم إعادة عرض

الباحة الخطوات في هذه الموافقة المسبقة عن علم

enter image description hereثم اكتب هذا في محرر القالب

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

وتسميته #region كما في هذه الصورةenter image description here

آمل أن يساعدك هذا

لم يكن أي من هذه الإجابات لم يعمل بالنسبة لي مع Visual Studio 2017.

أفضل مكون إضافي ل vs 2017: مناطق جافا سكريبت

مثال 1:

enter image description here

مثال 2:

enter image description here

اختبارها والموافقة عليها:

enter image description here

ل Visual Studio 2017.

    //#region Get Deactivation JS
    .
    .
    //#endregion Get Deactivation JS

هذا لم يعمل في وقت سابق لذلك قمت بتنزيل التمديد من هنا

يجب أن تعمل المنطقة دون تغيير الإعدادات

//#region Optional Naming
    var x = 5 -0; // Code runs inside #REGION
    /* Unnecessary code must be commented out */
//#endregion

لتمكين منطقة التعليق المنهارة / ** /

/* Collapse this

*/

الإعدادات -> بحث "قابل للطي" -> المحرر: استراتيجية قابلة للطي -> من "Auto" إلى "المسافة البادئة".

الكلمات الدليلية: node.js nodejs node js javascript es5 ecmascript تعليق للطي مختبئ المنطقة البصرية ستوديو كود vscode 2018 الإصدار 1.2+https:/code.visualstudio.com/updates/v1_17#_folding-Regions.

ليس فقط مقابل vs ولكن تقريبا لجميع المحررين.

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

تحذير: له عيوب مثل النطاق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top