visual-studio - with - visual studio code



কিভাবে স্বয়ংক্রিয়ভাবে ভিজুয়াল স্টুডিও 2008 সালে পিছনে হোয়াইটস্পেস অপসারণ? (11)

একটি ফাইল সংরক্ষণ করার সময় প্রতিটি লাইনের শেষে স্বয়ংক্রিয়ভাবে হোয়াইটস্পেস অক্ষরগুলি সরাতে ভিজ্যুয়াল স্টুডিও 2008 কনফিগার করা সম্ভব? একটি অন্তর্নির্মিত বিকল্প বলে মনে হচ্ছে না, তাই এটি করার জন্য কোন এক্সটেনশন উপলব্ধ আছে?

https://code.i-harness.com


CodeMaid একটি খুব জনপ্রিয় ভিজ্যুয়াল স্টুডিও এক্সটেনশন এবং এটি স্বয়ংক্রিয়ভাবে অন্যান্য দরকারী ক্লিনআপগুলির সাথে এটি করে।

আমি এটি সংরক্ষণ করার জন্য একটি ফাইল পরিষ্কার করতে সেট করেছি, যা আমি বিশ্বাস করি ডিফল্ট।


Dyaus এর উত্তর এবং একটি সংযোগ প্রতিবেদন থেকে নিয়মিত অভিব্যক্তি তৈরি করা, এখানে একটি ম্যাক্রো যা সমস্ত সংরক্ষণ করে পরিচালনা করে, স্থানগুলির সাথে ট্যাব প্রতিস্থাপন করে না এবং স্ট্যাটিক পরিবর্তনশীল প্রয়োজন হয় না। এর সম্ভাব্য ক্ষতি? এটি একটি সামান্য ধীর মনে হচ্ছে, সম্ভবত FindReplace একাধিক কল করার FindReplace

Private Sub DocumentEvents_DocumentSaved(ByVal document As EnvDTE.Document) _
                                         Handles DocumentEvents.DocumentSaved
    Try
        ' Remove all the trailing whitespaces.
        If vsFindResult.vsFindResultReplaced = DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, _
                             "{:b}+$", _
                             vsFindOptions.vsFindOptionsRegularExpression, _
                             String.Empty, _
                             vsFindTarget.vsFindTargetFiles, _
                             document.FullName, , _
                             vsFindResultsLocation.vsFindResultsNone) Then
            document.Save()
        End If
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Trim White Space exception")
    End Try
End Sub

অন্য যে কেউ অন্যের জন্য ভিজ্যুয়াল স্টুডিও ২01২ এড-ইন ব্যবহার করার চেষ্টা করছেন, আমি ব্যবহার করে শেষ হওয়া নিয়মিত অভিব্যক্তিটি [ \t]+(?=\r?$) (প্রয়োজন হলে ব্যাকস্ল্যাশগুলি থেকে পালাতে ভুলবেন না)। আমি {:b}+$ ক্যোয়ারী রিটার্নের সাথে মেলে না এমন একটি কাঁচা রূপান্তর নিয়ে সমস্যার সমাধান করার জন্য কয়েকটি নিরর্থক প্রচেষ্টা করার পরে এখানে পৌঁছলাম।


আপনি এই তিনটি ক্রিয়া দিয়ে সহজেই এটি করতে পারেন:

  • Ctrl + A (সমস্ত পাঠ্য নির্বাচন করুন)

  • সম্পাদনা -> উন্নত -> অনুভূমিক হোয়াইটস্পেস মুছে দিন

  • সম্পাদনা -> উন্নত -> বিন্যাস নির্বাচন করুন

কয়েক সেকেন্ড অপেক্ষা করুন এবং সম্পন্ন।

এটি Ctrl + Z 'কিছু সমস্যা হলেই সক্ষম।


আপনি একটি ম্যাক্রো তৈরি করতে পারেন যা আপনার জন্য এটি করার জন্য সঞ্চালনের পরে সঞ্চালিত হয়।

আপনার ম্যাক্রোগুলির জন্য EnvironmentEvents মডিউলটিতে নিম্নলিখিতটি যোগ করুন।

Private saved As Boolean = False
Private Sub DocumentEvents_DocumentSaved(ByVal document As EnvDTE.Document) _
                                         Handles DocumentEvents.DocumentSaved
    If Not saved Then
        Try
            DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, _
                                 "\t", _
                                 vsFindOptions.vsFindOptionsRegularExpression, _
                                 "  ", _
                                 vsFindTarget.vsFindTargetCurrentDocument, , , _
                                 vsFindResultsLocation.vsFindResultsNone)

            ' Remove all the trailing whitespaces.
            DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, _
                                 ":Zs+$", _
                                 vsFindOptions.vsFindOptionsRegularExpression, _
                                 String.Empty, _
                                 vsFindTarget.vsFindTargetCurrentDocument, , , _
                                 vsFindResultsLocation.vsFindResultsNone)

            saved = True
            document.Save()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Trim White Space exception")
        End Try
    Else
        saved = False
    End If
End Sub

আমি কিছু সমস্যা ছাড়াই এখন কিছু সময়ের জন্য এই ব্যবহার করা হয়েছে। আমি ম্যাক্রো তৈরি করি নি, তবে এটি ace_guidelines.vsmacros এর মধ্যে থেকে সংশোধন করে যা দ্রুত গুগল অনুসন্ধানের সাথে পাওয়া যায়।


আমার মনে হয় যে জেফ মুইর সংস্করণটি একটু উন্নত হতে পারে যদি এটি শুধুমাত্র সোর্স কোড ফাইলগুলি (আমার ক্ষেত্রে C #, তবে আরও এক্সটেনশান যোগ করা সহজ)। এছাড়াও আমি দস্তাবেজ উইন্ডো দৃশ্যমান কিনা তা যাচাই করার জন্য একটি চেক যোগ করেছি কারণ চেক ছাড়া কিছু পরিস্থিতি আমাকে অদ্ভুত ত্রুটি দেখায় (উদাহরণস্বরূপ LINQ থেকে SQL ফাইল '* .dbml')।

Private Sub DocumentEvents_DocumentSaved(ByVal document As EnvDTE.Document) Handles DocumentEvents.DocumentSaved
    Dim result As vsFindResult
    Try
        If (document.ActiveWindow Is Nothing) Then
            Return
        End If
        If (document.Name.ToLower().EndsWith(".cs")) Then
            document.Activate()
            result = DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, ":Zs+$", vsFindOptions.vsFindOptionsRegularExpression, String.Empty, vsFindTarget.vsFindTargetCurrentDocument, , , vsFindResultsLocation.vsFindResultsNone)
            If result = vsFindResult.vsFindResultReplaced Then
                document.Save()
            End If
        End If
    Catch ex As Exception
        MsgBox(ex.Message & Chr(13) & "Document: " & document.FullName, MsgBoxStyle.OkOnly, "Trim White Space exception")
    End Try
End Sub

আমি ArtisticStyle (সি ++) ব্যবহার করতে এবং আমার কোডটি পুনর্বিন্যাস করার জন্য। যাইহোক, আমাকে এটি একটি বহিরাগত হাতিয়ার হিসাবে যোগ করতে হয়েছিল এবং আপনাকে এটি নিজে ট্রিগার করতে হবে যাতে আপনি এটি পছন্দ নাও করতে পারেন।

যাইহোক, আমি এটি চমৎকার মনে করি যে আমি কোডটি আরও কাস্টম ভাবে পুনর্বিন্যাস করতে পারি (উদাহরণস্বরূপ, মাল্টিলাইন ফাংশন প্যারামিটারগুলি) যা আমি নিজে চালানোর জন্য মূল্য দিতে পারি। টুল বিনামূল্যে।



ইতিমধ্যে দেওয়া সমস্ত উত্তর থেকে উপাদান গ্রহণ, এখানে আমি কোড শেষ পর্যন্ত। (আমি প্রধানত সি ++ কোড লিখি, তবে প্রয়োজন অনুসারে বিভিন্ন ফাইল এক্সটেনশানগুলি পরীক্ষা করা সহজ।)

ধন্যবাদ যারা সবাই ধন্যবাদ!

Private Sub DocumentEvents_DocumentSaved(ByVal document As EnvDTE.Document) _
    Handles DocumentEvents.DocumentSaved
    Dim fileName As String
    Dim result As vsFindResult

    Try
        fileName = document.Name.ToLower()

        If fileName.EndsWith(".cs") _
        Or fileName.EndsWith(".cpp") _
        Or fileName.EndsWith(".c") _
        Or fileName.EndsWith(".h") Then
            ' Remove trailing whitespace
            result = DTE.Find.FindReplace( _
                vsFindAction.vsFindActionReplaceAll, _
                "{:b}+$", _
                vsFindOptions.vsFindOptionsRegularExpression, _
                String.Empty, _
                vsFindTarget.vsFindTargetFiles, _
                document.FullName, _
                "", _
                vsFindResultsLocation.vsFindResultsNone)

            If result = vsFindResult.vsFindResultReplaced Then
                ' Triggers DocumentEvents_DocumentSaved event again
                document.Save()
            End If
        End If
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Trim White Space exception")
    End Try
End Sub

এটি যদি এক-ব্যক্তি প্রকল্প না হয় তবে তা করবেন না। আপনার স্থানীয় কোডগুলি আপনার সোর্স কোড সংগ্রহস্থলের বিরুদ্ধে ছড়িয়ে দেওয়ার জন্য ক্ষুদ্র হতে হবে এবং হোয়াইট স্পেস সাফ করার জন্য আপনাকে যে লাইনে পরিবর্তন করতে হবে তা পরিবর্তন করবে। আমি সম্পূর্ণরূপে বুঝতে; আমি আমার হোয়াইটস্পেস সব ইউনিফর্ম পেতে ভালোবাসি - তবে ক্লিনার সহযোগিতার জন্য আপনাকে ছেড়ে দিতে হবে এমন কিছু।


নিয়মিত এক্সপ্রেশন ব্যবহার করে খুঁজুন / প্রতিস্থাপন করুন

খুঁজুন এবং প্রতিস্থাপন ডায়ালগে, অনুসন্ধানের বিকল্পগুলি প্রসারিত করুন , ব্যবহার চেক করুন , নিয়মিত এক্সপ্রেশন চয়ন করুন

কি খুঁজুন : " :Zs#$ "

প্রতিস্থাপন করুন : ""

সব প্রতিস্থাপন ক্লিক করুন

অন্যান্য সম্পাদকদের (একটি স্বাভাবিক নিয়মিত এক্সপ্রেশন :Zs#$ ) " :Zs#$ " হবে " \s*$ "।


সংরক্ষণ করার আগে আপনি স্বয়ং-বিন্যাস শর্টকাট CTRL + K + D ব্যবহার করতে সক্ষম হতে পারেন।






visual-studio-2008