জাভাস্ক্রিপ্টে অঞ্চল / কোড পতন কীভাবে কার্যকর করা যায়


131

কীভাবে আপনি ভিজ্যুয়াল স্টুডিওতে জাভাস্ক্রিপ্টের জন্য অঞ্চলগুলির ওরফে কোড ধসের প্রয়োগ করতে পারেন?

জাভাস্ক্রিপ্টে যদি কয়েকশ লাইন থাকে তবে ভিবি / সি # এর মতো অঞ্চলগুলির সাথে কোড ফোল্ডিং ব্যবহার করে এটি আরও বোধগম্য হবে।

#region My Code

#endregion

1
এই সমাধানগুলির কোনওটিই আমার পক্ষে এটির মতো কার্যকর হয়নি। stackoverflow.com/questions/46267908/…
মাইকেল ড্রাম

উত্তর:


25

এখানে ব্লগ এন্ট্রি এটি এবং এই এমএসডিএন প্রশ্নের ব্যাখ্যা করে

আপনাকে ভিজ্যুয়াল স্টুডিও 2003/2005/2008 ম্যাক্রো ব্যবহার করতে হবে।

বিশ্বস্ততার জন্য ব্লগ এন্ট্রি থেকে অনুলিপি করুন + আটকান:

  1. ম্যাক্রো এক্সপ্লোরার খুলুন
  2. একটি নতুন ম্যাক্রো তৈরি করুন
  3. নাম OutlineRegions
  4. ম্যাক্রো সম্পাদনা ক্লিক করুন এবং নিম্নলিখিত ভিবি কোডটি পেস্ট করুন:
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 ব্যবহার করি। আমি জানি না কেন - আমি কেবল এটি প্রথমবার প্রবেশ করেছি এবং এখনই এটি ব্যবহার করছি :)

এটি একটি দরকারী এবং সাইটের মন্তব্যগুলি থেকে লক্ষ্য করার গুরুত্বপূর্ণ বিষয়টি হ'ল "আপনাকে অবশ্যই নতুন ম্যাক্রোর নামের সাথে উপরের কোডটিতে মডিউলটির নাম পরীক্ষা করতে হবে both উভয় নাম অবশ্যই মিলবে!"
প্রসাদ

এটি VS2010 এ কাজ করে? আমি যেতে পারি না। ম্যাক্রো এটি অনুসন্ধান করার সময় প্রদর্শিত হবে না।
মিঃ ফ্লিবল

@জনাব. ফ্লিবল: নিশ্চিত নয় .. আমার কাছে কেবল ভিএস ২০০৫ আছে।

ঠিক আছে. : আমি একটি নতুন প্রশ্ন এখানে জিজ্ঞাসা করেছি stackoverflow.com/questions/2923177/...
জনাব Flibble

মাইক্রোসফ্টের এখন ভিএস 2010 এর জন্য একটি এক্সটেনশন রয়েছে যা এই কার্যকারিতা সরবরাহ করে (লিঙ্কের জন্য নীচে আমার উত্তর দেখুন)।
ব্রায়ানফিন্কেল

52

মাইক্রোসফ্টের এখন ভিএস ২০১০-এর জন্য একটি এক্সটেনশন রয়েছে যা এই কার্যকারিতা সরবরাহ করে:

জেএসক্রিপ্ট সম্পাদক এক্সটেনশানস


এটি চমৎকার! আমি আশা করি তারা এটি পরবর্তী ভিএস আপডেটের সাথে অন্তর্ভুক্ত করবে। ভাগ করে নেওয়ার জন্য ধন্যবাদ!
উইলিয়াম নিু

সত্যই দুর্দান্ত এক্সটেনশন, তৃতীয় পক্ষের বাহ্যরেখা এক্সটেনশনের চেয়েও ভাল।
হোভিস বিডল

2
ভিএস 2012 এবং 2013 এর জন্য এর কোনটি ঘটছে?
জ্যাক

1
এটা অসাধারণ! ভিএস 2012 বা 2013 এর জন্য কি কোনও সংস্করণ রয়েছে?
অ্যাক্সেল

50

বিকাশকারীদের জন্য সুসংবাদ যা ভিজ্যুয়াল স্টুডিওর সর্বশেষ সংস্করণ নিয়ে কাজ করছে

ওয়েব এসেনশিয়ালস এই বৈশিষ্ট্য সঙ্গে আসছে।

এটা দেখ

এখানে চিত্র বর্ণনা লিখুন

দ্রষ্টব্য: ভিএস 2017 এর জন্য জাভাস্ক্রিপ্ট অঞ্চলগুলি ব্যবহার করুন : https://marketplace.visualstudio.com/items?itemName=MadsKristensen.JavaScriptRegions


@ উইলিয়াম কোনও দিন লোকেরা অবশ্যই এটির প্রয়োজন হবে;)
কৌশিক থানকি

2
সময় যেমন চলছে, ততক্ষণ এই উত্তর গৃহীত হবে।
হাকান ফাস্টিক

ভিএসকোডের সর্বশেষ সংস্করণ - 6/10/2019 অনুসারে টাইপস্ক্রিপ্টের সাথে নিখুঁত কাজ করে।
এডি হাওয়ার্ড

40

এটা সহজ!

আপনি যে অংশটি ধসে যেতে চান তা চিহ্নিত করুন এবং,

জন্য Ctrl + এম + + এইচ

এবং এর বাম দিকে '+' চিহ্নটি প্রসারিত করতে।


3
এটা কাজ করেছে!. আমার কোডটি স্লিমার করে দেওয়ার কারণে আমাকে সংরক্ষণ করা হয়েছে কারণ আমার একক এজাক্স কলের আওতায় প্রচুর এজ্যাক্স কল রয়েছে।
সুরঙ্গওয়ালা আব্বাসালি

3
এটি একটি অস্থায়ী সমাধান। আপনি যদি ফাইলটি বন্ধ এবং পুনরায় খোলেন, নির্বাচিত অঞ্চলটি অদৃশ্য হয়ে যাবে।
ওয়াননিস্টফ্রেন্ড

32

যারা ভিজ্যুয়াল স্টুডিও 2012 ব্যবহার করছেন তাদের জন্য ওয়েব এসেন্সিয়ালস 2012 রয়েছে

যারা ভিজ্যুয়াল স্টুডিও 2015 ব্যবহার করছেন তাদের জন্য ওয়েব এসেসেন্টিয়াল 2015.3 উপস্থিত রয়েছে

ব্যবহার ঠিক @ প্রসাদ জিজ্ঞাসা করা মত


4
+1 - এটির উত্তর হওয়া উচিত, যেহেতু বেশিরভাগ লোকেরা 2012/2013 ব্যবহার করবে! (এটি 2013 এর জন্যও কাজ করে)
পিটার আলবার্ট

26

কোডের একটি বিভাগ চিহ্নিত করুন (যেকোন যৌক্তিক ব্লক নির্বিশেষে) এবং সিটিআরএল + এম + এইচ টিপুন এবং আপনি এই অঞ্চলটি সংযোগযোগ্য এবং প্রসারণযোগ্য এমন অঞ্চল হিসাবে নির্বাচনটিকে সংজ্ঞায়িত করবেন।


ধন্যবাদ! আপনি কি আমাকে বলতে পারেন যে আমি যদি দুর্ঘটনাক্রমে এমন একটি অঞ্চল তৈরি করতে চাই যা আমি মুছে ফেলতে বা পরিবর্তন করতে চাই?
টিঙ্গো

3
আপনি Ctrl + M + + তোমার সাথে পূর্বাবস্থা করতে পারেন - আরো শর্টকাট: msdn.microsoft.com/en-us/library/td6a5x4s.aspx
laurian


9

একটি দুর্দান্ত উত্তরের জন্য 0A0D ধন্যবাদ । আমি এটি দিয়ে ভাগ্য ভালো ছিল। ডারিন দিমিত্রভ আপনার জেএস ফাইলগুলির জটিলতা সীমাবদ্ধ করার বিষয়েও একটি ভাল যুক্তি তৈরি করে। তবুও, আমি এমন অনুষ্ঠানগুলি খুঁজে পাই যেখানে তাদের সংজ্ঞাগুলিতে ফাংশনগুলি সঙ্কুচিত করা কোনও ফাইলের মাধ্যমে ব্রাউজিংকে আরও সহজ করে তোলে।

সাধারণভাবে #region সম্পর্কিত, এই এসও প্রশ্নটি এটি বেশ ভালভাবে কভার করে।

আরও উন্নত কোড ধসকে সমর্থন করার জন্য আমি ম্যাক্রোতে কয়েকটি পরিবর্তন করেছি। এই পদ্ধতিটি আপনাকে // # অঞ্চলের কীওয়ার্ড আলা সি # এর পরে একটি বিবরণ রাখতে দেয় এবং প্রদর্শিত কোড অনুসারে কোডটিতে প্রদর্শন করে:

উদাহরণ কোড:

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

6
ভিএস 2010 এর একটি আপডেট এক্সটেনশনের কাঠামো রয়েছে এবং কেউ এখানে "ভিজ্যুয়াল স্টুডিও 2010 জাভাস্ক্রিপ্ট আউটলাইনিং" নামে একটি কোড-ফোল্ডিং প্লাগইন তৈরি করতে যথেষ্ট ভাল ছিলেন: jsoutlining.codeplex.com
মাইকেল লা

2
আমরা কি ভিবি এর পরিবর্তে সি # তে ম্যাক্রো লিখতে পারি?
xport

6

এটি এখন VS2017 এ স্থানীয়ভাবে:

//#region fold this up

//#endregion

// এবং # এর মধ্যে শ্বেত স্পেস কোনও বিষয় নয়।

এটি কী সংস্করণে যুক্ত হয়েছিল তা আমি জানি না, কারণ আমি চেজলগগুলিতে এর কোনও উল্লেখ পাই না। আমি এটি v15.7.3 এ ব্যবহার করতে সক্ষম।



0

যদি আপনি পুনঃভাগ ব্যবহার করে থাকেন

এই ছবিতে পদক্ষেপগুলি পতন করুন

এখানে চিত্র বর্ণনা লিখুন তারপরে এটি টেম্পলেট সম্পাদকটিতে লিখুন

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

এবং #regionএই ছবি হিসাবে নাম দিনএখানে চিত্র বর্ণনা লিখুন

আশা করি এটি আপনাকে সাহায্য করবে


0

ভিজ্যুয়াল স্টুডিও 2017 এর সাথে এই উত্তরগুলির কোনওটিই আমার পক্ষে কার্যকর হয়নি।

ভিএস 2017 এর জন্য সেরা প্লাগইন: জাভাস্ক্রিপ্ট অঞ্চলগুলি

উদাহরণ 1:

এখানে চিত্র বর্ণনা লিখুন

উদাহরণ 2:

এখানে চিত্র বর্ণনা লিখুন

পরীক্ষিত এবং অনুমোদিত:

এখানে চিত্র বর্ণনা লিখুন


আপনার উত্তরটি কেবল
এটির

আমি সম্পাদনার ইতিহাসে যেমন দেখছি,
২০১

0

ভিজ্যুয়াল স্টুডিও 2017 এর জন্য।

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

এটি আগে কাজ করছে না তাই আমি এখান থেকে এক্সটেনশন ডাউনলোড করেছি ed


-2

অঞ্চলটি সেটিংস পরিবর্তন না করেই কাজ করা উচিত

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

ভাঙ্গা মন্তব্য অঞ্চল / ** / সক্ষম করতে

/* Collapse this

*/

সেটিংস -> অনুসন্ধান "ভাঁজ" -> সম্পাদক: ভাঁজ কৌশল -> "অটো" থেকে "ইন্ডেন্টেশন" পর্যন্ত।

TAGS: নোড.জেএস নোডেজ নোস জে জাভাস্ক্রিপ্ট ইএস 5 এসসিএমএস স্ক্রিপ্ট মন্তব্য ভাঁজ করে লুকিয়ে থাকা অঞ্চল ভিজ্যুয়াল স্টুডিও কোড vscode 2018 সংস্করণ 1.2+ https://code.visualstudio.com/updates/v1_17#_folding-regions


-3

কেবল ভিএসের জন্য নয় প্রায় সকল সম্পাদকের জন্য।

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

সতর্কতা: সুযোগের মতো অসুবিধাগুলি রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.