ملحق Eclipse JavaEditor:كيفية إضافة سطر بمسافة بادئة بشكل صحيح؟

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

سؤال

ما هو المطلوب؟

نحن نكتب امتداد إلى محرر Java الخاص بـ Eclipse.نحتاج إلى طريقة لإضافة سطر قبل وبعد السطر الذي يوجد فيه المؤشر.

يجب أن يكون المؤشر الموجود على السطر الجديد في الموضع الصحيح (تم حذفه بشكل صحيح).

العينة (# هو المؤشر):

قبل (I):

public class Test {
    public static void main#(String[] args) {
        System.out.println("Test!");
    }
}

بعد مطلوب (II):

public class Test {
    #
    public static void main(String[] args) {
        System.out.println("Test!");
    }

بعد غير مرغوب فيه (الملقب ب.الوضع الحالي)(III):

public class Test {
#
    public static void main(String[] args) {
        System.out.println("Test!");
    }

الحالة الحالية:

التحول من I ل III يمكن أن يتم عن طريق IDocument.replace(), ، ان InsertEdit أو عبر IDocumentExtension4إعادة كتابة الجلسات.

تكمن المشكلة في كيفية استدعاء وظيفة المسافة البادئة لـ JavaEditor بعد إدراج السطر الجديد من الامتداد.أم أنه من الممكن حتى وضع مسافة بادئة للخط بشكل صحيح (I ل II)؟(يجب أن يكون طول المسافة البادئة لا يكون دائمًا هو السطر الحالي، ولكن هو الصحيح. internal ولا ينبغي استخدام الحزم إن أمكن، وإلا IndentUtil سيكون الحل.)

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

المحلول

يبدو أن أحد الحلول هو عدم الاستخدام IDocument.replace(), ، على سبيل المثال.

myTextViewer.getDocument().replace(...)

لكن insert(), ، على سبيل المثال.

textViewer.getTextWidget().insert(...)

يعمل هذا ولكنه ليس حلاً كاملاً بعد لاستدعاء وظيفة المسافة البادئة دون إنشاء تبعيات لها org.eclipse.jdt :-(.ولا تزال هناك حاجة لذلك.

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