فرض الكتابة بالأحرف الكبيرة برمجياً في Visual Studio 2008؟
-
06-07-2019 - |
سؤال
ما هي أسهل طريقة لفرض الكتابة بالأحرف الكبيرة للكلمات الأساسية برمجيًا في 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
قد لا يكون هذا هو الحل الأفضل ولكن هذا ما توصلت إليه.
استخدم وحدات الماكرو لالتقاط أحداث الضغط على المفاتيح.
إليك الطريقة:
- في Visual Studio، انتقل إلى أدوات->وحدات الماكرو->وحدات الماكرو IDE قائمة طعام
- انقر نقرًا مزدوجًا على "MyMacros" لرؤية الأجزاء المختلفة
- انقر مرتين على "أحداث البيئة"
- قم بإضافة التعليمة البرمجية التالية داخل وحدة أحداث البيئة.
احفظ الملف وارجع إلى 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، فقد تتمكن فقط من استيراد الإعدادات القديمة والعلامات المخصصة.