سؤال

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

<div id="editor">some text</div>
<script src="src/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
window.onload = function() {
    var editor = ace.edit("editor");
};
</script>

هل هناك طريقة بسيطة للاتصال بواجهة برمجة التطبيقات (API) فقط تسليط الضوء النص دون إعداد المحرر؟ستستقبل واجهة برمجة التطبيقات المثالية بعض النصوص وتعيد HTML مع العلامات التي يمكن استخدامها للتمييز.أعلم أن هناك مكتبات تمييز متخصصة لـ JavaScript، ولكنني أرغب في تجربة استخدام نفس أداة التمييز لكل من النص الذي يتم عرضه والنص الذي يتم تحريره.

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

المحلول

هناك إصدار من جانب الخادم لأداة التمييز (التي تعمل في node.js) متاح ، فمن المحتمل أن يكون سهل النقل إلى جافا سكريبت المستندة إلى الويب.

نصائح أخرى

تسليط الضوء على الكلمة: Genacodicetagpre

أزل الكلمة المميزة: Genacodicetagpre

قم بتمييز الخط: Genacodicetagpre

أولاً تريد الإعلان عن رقم السطر الخاص بك كمتغير عام.

var erroneousLine;

هذه هي وظيفة HighlightError، والتي تأخذ رقم السطر (lineNumber) كمعلمة لها.والتي يمكن أن تنشأ من رسالة خطأ أو استخدام editor.selection.getCursor().row للحصول على الصف الحالي، أو أي شيء آخر.

function highlightError(lineNumber) {
  unhighlightError();
  var Range = ace.require("ace/range").Range
  erroneousLine = editor.session.addMarker(new Range(lineNumber, 0, lineNumber, 144), "errorHighlight", "fullLine");
}

لاحظ أنني أعلنت أ errorHighlight, ، وهذه هي الطريقة التي سيتم تسليط الضوء على هذا.في ملف CSS الخاص بك ضع ما يلي:

.errorHighlight{
  position:absolute;
  z-index:20;
  background-color:#F4B9B7;
}

تقوم هذه الوظيفة بإلغاء تمييز الخط المميز بالفعل

function unhighlightError(){
  editor.getSession().removeMarker(erroneousLine);
}

فكرة: Genacodicetagpre

يجب أن تبرز هذه الوظيفة بنية SQL (سمة ace-tomorrow) في النص المحدد دون تحميل المحرر بأكمله وبدون هامش التوثيق.

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