نقطة التمديد لتوفير معالجات مساعدة المحتوى المخصصة في Eclipse
-
22-09-2019 - |
سؤال
أنا أكتب المكون الإضافي Eclipse لإضافة دعم أفضل لملفات الخصائص. واحدة من القطعة المفقودة هي تحصيل المحتوى ... أود أن أعرض مفاتيح خصائص مطابقة عندما يبدأ المستخدم في كتابة بعض السلسلة ويضغط على مفتاح مساعدة المحتوى.
على سبيل المثال ، عندما يكون لدي خاصية hello = world
في أحد ملفات الخصائص الخاصة بي ، وأبدأ في الكتابة format("hel
وضرب كنترول+الفراغ الآن ، أود أن أرى متاحًا hello
منشأه.
مشكلتي هي أنه لا يمكنني العثور على نقطة تمديد صحيحة لتوفير معالج مساعدة المحتوى المخصص. كيف يمكنني توفير معالج مساعدة المحتوى الخاص بي للملفات النصية؟ أرغب في جعلها تعمل بشكل رئيسي في ملفات Java و JSP و XML.
المحلول
لقد بحثت عن نقطة التمديد هذه من قبل دون أي نجاح. بقدر ما أعرف أنه من غير الممكن إضافة أنواع جديدة من مساعدة المحتوى للمحررين في Eclipse بهذه الطريقة.
نصائح أخرى
يمكنك القيام بذلك عن طريق إعلان تمديد إلى:
org.eclipse.jdt.ui.javaCompletionProposalComputer
ها هو الصفحه المرجعيه لتبدأ.
يمكنك العثور على مشروع تجريبي هنا
يمكنك إنشاء مشروع إضافي ، الخيار ، "المكون الإضافي مع محرر" ، يوجد محرر لغة XML صغير مع تلوين بناء الجملة (سيساعدك هذه الفئة على معرفة الفصول الدراسية للتمديد). لم يتم استخدام مساعدة المحتوى ، ولكن يمكنك إضافتها تبحث هذه الأسئلة الشائعة
الشيء الوحيد الذي أحاول العثور عليه هو إضافة معلومات مثل Javadoc إلى اقتراح المساعد المحدد. في الأسئلة الشائعة ، قل شيئًا ولكني لا أفهمه حقًا.
أتمنى أن يساعد ذلك.
إذا كانت ملفات الخصائص يمكن أن تتبع EBNF القواعد, ، ثم يمكنك إعطاء الكسوف xtext لقطة
Xtext هو إطار لتطوير لغات محددة للمجال النصي (DSLS).
ما عليك سوى وصف DSL الخاص بك باستخدام لغة قواعد EBNF البسيطة من XText وسيقوم المولد بإنشاء محلل ، ونموذج AST-Meta (تم تنفيذه في EMF) بالإضافة إلى محرر نصوص Eclipse بالكامل من ذلك.
alt text http://www.eclipse.org/xtext/images/screenshot-title.png
يتكامل الإطار مع التكنولوجيا من نمذجة Eclipse مثل EMF و GMF و M2T وأجزاء من EMFT.
تم تحسين التطوير باستخدام Xtext للدوران القصيرة ، بحيث يكون إضافة ميزات جديدة إلى DSL موجودًا على بعد دقائق. لا تزال لغات البرمجة المتطورة يمكن تنفيذها.
خلاف ذلك ، يمكنك العثور على بعض مثال على مساعدة المحتوى في هذا الموضوع, ، أو هذا (JSDT - JavaScript)
يبدو أن IcontentProposalProvider قد يكون ما أبحث عنه ، ولكن لا يوجد أي نقطة تمديد.
انظر الى هذا: http://www.vogella.de/articles/richclientplatform/article.html#fieldassist
هذا ليس حلًا قائمًا على التمديد ، ولكن قد لا يزال يفيدك.
القي نظرة على
للحصول على أفكار لمحرر WST XML وأنواع أخرى من المحررين