أنا أستخدم 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 للأعلى)
أعتقد أنني أستخدم إصدارًا أقدم حيث يكون الموضع هو موضع الشخصية فقط ، لكن هذا سيكون رائعًا عندما يمكنني الترقية.
يجب أن يكون شيئًا آخر ، هذا الرمز لم يتغير كثيرًا منذ البداية.
إذا كان لديك مؤشر chracter في سلسلة القيمة ، فيمكن أن يساعدك editor.session.doc.indexToPosition(index)
في الحصول على {row, column}
لكن هذه وظيفة بطيئة نسبيًا.
شكرا للإستجابة! أنت محق بشأن واجهة برمجة تطبيقات مؤشر Ace. أعتقد الآن أن الأمر يتعلق بالمكوِّن الإضافي Firepad الخاص بي الذي يفعل شيئًا غريبًا به ، لذلك لا يوجد شيء خاطئ من جانب Ace.
التعليق الأكثر فائدة
الموضع هو كائن مثل {row، column} لذا فإن الحصول على خط منه سهل باستخدام position.row.
تستطيع ايضا استخذام
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5)
(0.5 يقوم بتوسيط الخط على الشاشة ، استخدم 1 للأسفل 0 للأعلى)