ملحق Eclipse JavaEditor:كيفية إضافة سطر بمسافة بادئة بشكل صحيح؟
-
22-08-2019 - |
سؤال
ما هو المطلوب؟
نحن نكتب امتداد إلى محرر 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
:-(.ولا تزال هناك حاجة لذلك.