كيفية إظهار أخطاء بناء الجملة في البرنامج المساعد Eclipse Eclipse

StackOverflow https://stackoverflow.com/questions/392775

سؤال

كيف يمكنني الإشارة إلى أخطاء بناء الجملة (مثل تسلسل غير قانوني للرموز) في برنامج تشغيل محرر Eclipse تماما مثل Eclipse Java Editor، أي بواسطة Red Wriggly Underlines، علامة حمراء على شريط التمرير الذي يمكنك القفز إليه، ورسالة توضيحية عند أنت تحوم أكثر من واحد؟

أنا أكتب البرنامج المساعد Eclipse Editor لتنسيق ملف مخصص (على وجه التحديد، "تنسيق ملف الأفعى" لمحرك لعبة Shark3D). لقد قمت بتنفيذ ماسح ضوئي للحصول على تسليط الضوء على بناء الجملة، ومخطط تفصيلي.

  • للمؤكد، هل لدي ببساطة عودة الماسحة الضوئية IToken مع "تسطير whriggly" TextAttribute بدلا من المعتاد، أم أن هناك آلية محددة لوضع علامات على أخطاء بناء الجملة؟
  • كيف يمكنني تنفيذ علامات التمرير؟ يكون IAnnotationModel الواجهة ذات الصلة هنا؟ إذا كان الأمر كذلك، فأين قمت بتسجيل التنفيذ بحيث تظهر العلامات؟
  • لقد وجدت فقط SourceViewerConfiguration.getAnnotationHover(), ، والذي من شأنه أن يسمح لي بتنفيذ سلوك التحويم، ولكن فقط بالنسبة ل "الشرح"، الذي أفترض أنه يعني علامات التمرير - كيف يمكنني تطبيق سلوك التحويم للنص نفسه؟

سأكون سعيدا للحصول على نصائح محددة بالإضافة إلى عنوان URL من البرنامج التعليمي الذي يغطي هذا - لا يبدو أن وثائق مساعدة الكسوف والأمثلة.

يحرر:علامات هي أفضل الحلول لهذا. مثال عمل حول كيفية استخدامها يمكن العثور عليها في رمز مثال البرنامج المساعد في org.eclipse.ui.examples.readmetool.AddReadmeMarkerAction

هل كانت مفيدة؟

المحلول

يجب أن تستخدم علامات.

مثال مشتق من "دليل مطور Java To Eclipse" التالي:

<extension point="org.eclipse.core.resources.markers"  
            id="snakesyntax"  
            name="Snake syntax error">  
    <super type="org.eclipse.core.resources.problemmarker" />  
    <super type="org.eclipse.core.resources.textmarker" />  
    <persistent value="true" />
<extension>

IMarker marker = res.createMarker("com.ibm.tool.resources.snakesyntax");

marker.setAttribute(IMarker.SEVERITY, 0);
marker.setAttribute(IMarker.CHAR_START, startOfSyntaxError);
marker.setAttribute(IMarker.CHAR_END, endOfSyntaxError);
marker.setAttribute(IMarker.LOCATION, "Snake file");
marker.setAttribute(IMarker.MESSAGE, "Syntax error");

نصائح أخرى

الطريقة الصحيحة تستخدم واجهة العلامة.

تعد العلامات في الأساس نموذجا يقوم بخرائط كائنات علامة على المواقع في التعليمات البرمجية المصدرية، لذلك من المنطقي في المواقف التي يمكنك فيها وجود أخطاء في ملفات متعددة. (انظر واجهة imarker)

خيار أرخص إذا كنت ترغب في إضافة علامة إلى المحرر الحالي، ولكن ليس لجميع المشروع يستخدم التعليقات التوضيحية، والتي يمكنك إضافة نفسك.

يتم تمثيل علامات في واجهة المستخدم كشروح ولكن Eclipse يضيف ويزيل التعليقات التوضيحية نفسها. مع التعليقات التوضيحية المباشرة، أنت في السيطرة.

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