سؤال

ما هي أسهل طريقة لفرض الكتابة بالأحرف الكبيرة للكلمات الأساسية برمجيًا في Visual Studio 2008؟

نحن نعمل باستخدام لغة خاصة محددة بالأوامر (مثل HTML).نحن نحاول الترحيل من محرر أقدم إلى Visual Studio 2008.معايير الترميز لدينا هي تكبير الأوامر.تم تخصيص المحرر القديم للتعرف على محدد بداية الأمر وفرض الكتابة بالأحرف الكبيرة حتى تتم كتابة محدد النهاية أو الضغط على مفتاح الهروب.

ما هي أفضل طريقة للقيام بذلك في Visual Studio 2008؟هل يمكن القيام بذلك باستخدام ماكرو أو وظيفة إضافية؟

(تحرير 1-12-2009)

شكرا لك على الاقتراحات حتى الآن.لا أعتقد أنهم يجيبون على سؤالي.

توضيحات:

  • المحرر السابق كان CodeWright لذا فإن التخصيصات الموجودة هناك غير قابلة للنقل إلى الاستوديو المرئي.
  • الكود المصدري ليس C#.يبدو أن StyleCop مخصص خصيصًا لـ C#.تشبه لغتنا اللغات الترميزية مثل HTML ولكن مع أحرف وأوامر محددة مختلفة.
  • أحاول الاستفادة فعليًا من أنواع المطورين، وليس تذكيرهم بالرسملة المناسبة.نظرًا لأن جميع الأوامر محددة، يقوم محررنا الحالي بتشغيل Caps Lock عند كتابة محدد البداية.عند الضغط على محدد النهاية أو مفتاح الهروب، يتم إيقاف تشغيل مفتاح caps lock مرة أخرى.وهذا مستقل عن حالة Caps Lock على لوحة المفاتيح.
هل كانت مفيدة؟

المحلول 3

قد لا يكون هذا هو الحل الأفضل ولكن هذا ما توصلت إليه.

استخدم وحدات الماكرو لالتقاط أحداث الضغط على المفاتيح.

إليك الطريقة:

  1. في Visual Studio، انتقل إلى أدوات->وحدات الماكرو->وحدات الماكرو IDE قائمة طعام
  2. انقر نقرًا مزدوجًا على "MyMacros" لرؤية الأجزاء المختلفة
  3. انقر مرتين على "أحداث البيئة"
  4. قم بإضافة التعليمة البرمجية التالية داخل وحدة أحداث البيئة.
  5. احفظ الملف وارجع إلى VS IDE العادي للاختبار.

    Private My_AutoCaps As Boolean = False
    Private Sub TextDocumentKeyPressEvents_BeforeKeyPress(ByVal Keypress _
      As String, ByVal Selection As EnvDTE.TextSelection, _
      ByVal InStatementCompletion As Boolean, ByRef CancelKeyPress As Boolean) _
      Handles TextDocumentKeyPressEvents.BeforeKeyPress
         Dim fileName As String = UCase(Selection.DTE.ActiveDocument.Name)
         If ( fileName.EndsWith(".CPI") ) Then
             If (My_AutoCaps) Then
                 'MsgBox(Keypress)
                 If (Keypress = "(" Or Keypress = ":") Then
                     'MsgBox("End of command character pressed.")
                     My_AutoCaps = False
                     Return
                 ElseIf (Keypress >= "a" And Keypress <= "z") Then
                     'MsgBox("Letter pressed.")
                     Selection.Text = UCase(Keypress)
                     CancelKeyPress = True
                 End If
             Else 'AutoCap is not on yet
                 If (Keypress = "^") Then
                     'MsgBox("You pressed the Start Command character.")
                     My_AutoCaps = True
                     Return
                 End If
             End If
         End If
    End Sub
    

يقتصر هذا الماكرو على ملفات *.CPI.

لم أكتشف كيفية التقاط مفتاح Esc بعد ولكن هذا سيعمل في الوقت الحالي.

نصائح أخرى

جرِّب أو حاول StyleCop, ، متاح من موقع مايكروسوفت على شبكة الإنترنت.قد يتعين عليك ضبط مجموعة القواعد وفقًا لمعايير الترميز المحددة الخاصة بك.بالنسبة لمعايير الترميز التي نستخدمها، كانت مثالية تقريبًا.

في حين تستغرق وقتا طويلا، هذا يوضح لك منشور SO كيفية إضافة علامات إلى إعداد التحقق من الصحة في VS2005.لا أعتقد أن الطريقة تغيرت في عام 2008.

إذا كنت تنتقل من إصدار أقدم من Visual Studio، فقد تتمكن فقط من استيراد الإعدادات القديمة والعلامات المخصصة.

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