كيفية تنفيذ المناطق / الانهيار رمز في جافا سكريبت
-
20-09-2019 - |
سؤال
كيف يمكنك تنفيذ المناطق التي يراها Code Code ل JavaScript في Visual Studio؟
إذا كان هناك مئات الخطوط في جافا سكريبت، فسوف يكون أكثر فهم باستخدام رمز قابلة للطي مع المناطق كما في VB / C #.
#region My Code
#endregion
المحلول
يشرح إدخال المدونة هنا وهذه MSDN السؤال.
يجب عليك استخدام وحدات الماكرو Visual Studio 2003/2005/2008.
نسخ + لصق من دخول المدونة من أجل الإخلاص:
- فتح مستكشف ماكرو
- إنشاء ماكرو جديد
- أطلق عليه اسما
OutlineRegions
- انقر فوق تحرير ماكرو ولصق رمز 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
- احفظ الماكرو وإغلاق المحرر
- الآن دعونا تعيين اختصار إلى الماكرو. انتقل إلى الأدوات-> خيارات-> البيئة-> لوحة المفاتيح والبحث عن ماكرو الخاص بك في "إظهار الأوامر التي تحتوي على" مربع نص
- الآن في مربع النص ضمن "مفاتيح الاختصار اضغط على"، يمكنك إدخال الاختصار المطلوب. أنا استخدم CTRL + M + E. لا أعرف لماذا - دخلت ذلك لأول مرة واستخدمها الآن :)
نصائح أخرى
يوجد لدى Microsoft الآن امتدادا ل مقابل 2010. التي توفر هذه الوظيفة:
أخبار جيدة للمطورين الذين يعملون مع أحدث إصدار من Visual Studio
ال أساسيات الويب تأتي مع هذه الميزة.
ملاحظة: لاستخدام 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 قم بتثبيت البرنامج المساعد عبر الإنترنت وسوف يمكنك القيام بذلك.
إذا كنت تستخدم إعادة عرض
الباحة الخطوات في هذه الموافقة المسبقة عن علم
//#region $name$
$END$$SELECTION$
//#endregion $name$
وتسميته #region
كما في هذه الصورة
آمل أن يساعدك هذا
لم يكن أي من هذه الإجابات لم يعمل بالنسبة لي مع Visual Studio 2017.
أفضل مكون إضافي ل vs 2017: مناطق جافا سكريبت
مثال 1:
مثال 2:
اختبارها والموافقة عليها:
ل 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 */ () { ... })();
تحذير: له عيوب مثل النطاق.