كيف يمكنني تمييز التعليمات البرمجية باستخدام محرر ACE؟
-
27-10-2019 - |
سؤال
أرغب في إبراز أكثر من اثنتي عشرة مقتطفات صغيرة من التعليمات البرمجية ثم جعلها قابلة للتحرير باستخدام محرر 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) في النص المحدد دون تحميل المحرر بأكمله وبدون هامش التوثيق.