Ace: كيف أقوم بتمرير المحرر إلى موضع ، وليس مجرد سطر؟

تم إنشاؤها على ٣٠ أكتوبر ٢٠١٥  ·  4تعليقات  ·  مصدر: ajaxorg/ace

أنا أستخدم Ace للحصول على تجربة تحرير تعاونية وأريد أن أكون قادرًا على التمرير إلى موضع مؤشر مستخدم آخر.

أرى أن هناك طرقًا editor.scrollToRow() و editor.scrollToLine() ، لكن لا يمكنني العثور على أي طريقة تعمل مع كائن cursor يحتوي على position و selectionEnd خصائص.

ما أريده هو أن أكون قادرًا على التمرير إلى موضع ، وليس مجرد سطر. أو إذا كانت هناك طريقة لتحويل المركز إلى خط فسيكون ذلك مفيدًا أيضًا.

شكرا!

التعليق الأكثر فائدة

الموضع هو كائن مثل {row، column} لذا فإن الحصول على خط منه سهل باستخدام position.row.
تستطيع ايضا استخذام
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5) (0.5 يقوم بتوسيط الخط على الشاشة ، استخدم 1 للأسفل 0 للأعلى)

ال 4 كومينتر

الموضع هو كائن مثل {row، column} لذا فإن الحصول على خط منه سهل باستخدام position.row.
تستطيع ايضا استخذام
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5) (0.5 يقوم بتوسيط الخط على الشاشة ، استخدم 1 للأسفل 0 للأعلى)

أعتقد أنني أستخدم إصدارًا أقدم حيث يكون الموضع هو موضع الشخصية فقط ، لكن هذا سيكون رائعًا عندما يمكنني الترقية.

يجب أن يكون شيئًا آخر ، هذا الرمز لم يتغير كثيرًا منذ البداية.
إذا كان لديك مؤشر chracter في سلسلة القيمة ، فيمكن أن يساعدك editor.session.doc.indexToPosition(index) في الحصول على {row, column} لكن هذه وظيفة بطيئة نسبيًا.

شكرا للإستجابة! أنت محق بشأن واجهة برمجة تطبيقات مؤشر Ace. أعتقد الآن أن الأمر يتعلق بالمكوِّن الإضافي Firepad الخاص بي الذي يفعل شيئًا غريبًا به ، لذلك لا يوجد شيء خاطئ من جانب Ace.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات