Η δυναμική επισήμανση σύνταξης είναι η επισήμανση κώδικα που ο χρήστης μπορεί να αλλάξει. Υπάρχει μόνο ένα σημείο όπου συμβαίνει αυτό, και αυτό είναι ο online editor.
Τα αποσπάσματα κώδικα, οι επαναλήψεις και τα παρόμοια είναι στατικά, αφού ο χρήστης δε μπορεί να αλλάξει τον κώδικά του επί τόπου. Αν θέλεις να μάθεις περισσότερα για το πώς χειριζόμαστε τη στατική επισήμανση σύνταξης, δες την τεκμηρίωση για τη στατική επισήμανση σύνταξης.
Η δυναμική επισήμανση σύνταξης γίνεται με τη βιβλιοθήκη CodeMirror.
Όταν προσθέτεις υποστήριξη για τη γλώσσα σου, υπάρχουν τρεις επιλογές:
Για να ενεργοποιήσεις την υποστήριξη του CodeMirror για τη γλώσσα σου, ξεκίνα ένα θέμα στο φόρουμ. Εμείς (το Exercism) θα δημιουργήσουμε τότε ένα Pull Request που ενεργοποιεί την υποστήριξη του CodeMirror για τη γλώσσα σου στον ιστότοπο.
Για να χρησιμοποιήσεις ένα υπάρχον plugin, πρέπει να είναι δημοσιευμένο στο NPM.
Αν το plugin δεν είναι δημοσιευμένο στο NPM, μπορείς είτε:
Η ιστοσελίδα του CodeMirror έχει μια λίστα με plugins γλωσσών φτιαγμένα από την κοινότητα.
Το επόμενο βήμα είναι να ενεργοποιήσεις τη γλώσσα.
Αυτά είναι τα βήματα για να ξεκινήσεις:
codemirror-lang-... για να βεβαιωθείς ότι δεν υπάρχει ήδη κάποιο.Για να σε βοηθήσουμε να ξεκινήσεις, το αποθετήριο που δημιουργήθηκε για σένα περιέχει ένα ελάχιστο δείγμα γραμματικής πάνω στο οποίο μπορείς να χτίσεις και να το πειράξεις.
Έχουμε μια απίστευτα φιλική και υποστηρικτική κοινότητα που θα χαρεί να σε βοηθήσει καθώς δουλεύεις πάνω σε αυτό! Αν κολλήσεις, ξεκίνα ένα νέο θέμα στο φόρουμ του Exercism ή δημιούργησε νέα issues στο exercism/exercism όπως χρειάζεται 🙂
Θα χρειαστεί επίσης να δημοσιεύσεις το plugin στο NPM. Το επόμενο βήμα είναι να ενεργοποιήσεις τη γλώσσα.
Η σύνταξη της γλώσσας σου μοιάζει (πολύ) με τη σύνταξη μιας άλλης γλώσσας, οπότε θα μπορούσες να σκεφτείς να χρησιμοποιήσεις την επισήμανση σύνταξης εκείνης της γλώσσας για τη δική σου. Για να το κάνεις, ρύθμισε το track χρησιμοποιώντας το plugin του CodeMirror της άλλης γλώσσας. Δες την ενότητα Ενεργοποίηση γλώσσας για περισσότερες πληροφορίες.