Κυριακή 11 Οκτωβρίου 2015

Χρωματισμός Κώδικα στο Διορθωτή (αν. 61)

Αναθεώρηση 61 (Έκδοση 8).
Αναβάθμισα τον ενσωματωμένο διορθωτή με δυνατότητα αυτόματου χρωματισμού. Τον διορθωτή τον είχα γράψει από πέρυσι για να εμφανίζει Uinicode χαρακτήρες και να κάνει διάφορες λειτουργίες. Είχα αφήσει εκτός το θέμα του χρωματισμού. Όμως επειδή είχα ξανακάνει κάτι παρόμοιο με άλλο όμως τρόπο, εύκολα έφτιαξα και αυτό.





Σχεδόν τελείωσα με τις αναθεωρήσεις. Χρειάζεται λίγη δουλειά στην φόρμα της βηματικής εκτέλεσης/ Στην διαμόρφωση που βλέπουμε το κώδικα, τώρα χρωματίζεται κανονικά αλλά ορισμένες φορές έχει αστοχία στο να δείξει επακριβώς στο κείμενο που είναι η εντολή που εκτελεί, ωστόσο πάντα την δείχνει σε ξεχωριστό πεδίο. Γενικά σε πολλά προγράμματα δεν θα φανεί το bug. όμως υπάρχει. Δεν είναι ουσιώδες πάντως αλλά σίγουρα θα πάρει καιρό να λυθεί. Ο κώδικας που μας δείχνει η φόρμα είναι αυτός που βλέπουμε στον διορθωτή, αλλά αυτός που εκτελείτε ανά πάσα στιγμή (και ίσως και σε νήματα) είναι μέρος από ένα αντίγραφο αυτού. Με δεδομένο ότι η Μ2000 δεν σπάει τον κώδικα σε τμήματα αλλά τρέχει απ΄ευθείας το κείμενο "καταναλώνοντάς" το...ο μόνος τρόπος να βρούμε που είμαστε είναι να συγκρίνουμε το "τελείωμα" του τρέχοντος με αυτό της "αποθήκης". Ασφαλώς κατά την εκτέλεση είναι γνωστά πάντα τρία πράγματα: το τμήμα (ή ο χώρος ονομάτων κατά μια έννοια), η εντολή ή η μεταβλητή (αν κάνουμε ανάθεση/αντικατάσταση τιμής) και το υπόλοιπο. Το οποίο υπόλοιπο δεν γνωρίζει τι είναι ο μεταφραστής,..αν δεν το καταναλώσει! Αυτά τα τρία στοιχεία βρίσκονται σε ένα αντικείμενο εκτέλεσης. Αν τρέχουν άλλα νήματα τότε και αυτά έχουν το δικό τους κώδικα, αλλά ανήκουν στο χώρο του τμήματος που τα δημιούργησε (δεν έχουν δικό τους όνομα, απλά έχουν έναν αριθμό αναφοράς ή χειρισμού, λεγόμενος και χειριστής).
Η Βηματική εκτέλεση έχει αποκλειστεί για τα νήματα. Η φόρμα της κρατάει μια σύνδεση με το αντικείμενο του τμήματος που τρέχει (και αλλάζει καθώς καλούμε άλλα τμήματα). Για την φόρμα αυτή, θα αναφερθώ σε άλλο άρθρο.

Για το χρωματισμό των προγραμμάτων αφήνω το πώς το έκανα γιατί είναι μια ωραία μεν ιστορία αλλά αδύνατον να την παρακολουθήσει κανείς αφού και εγώ ακολούθησα την διαισθητική οδό (κύρια έτσι εργάζομαι), η οποία λέει..ξεκίνα με τα βασικά και διόρθωνε. Τώρα λοιπόν ο κώδικας έχει δυο σετ χρωματισμού και το αλλάζουμε με το F11 (μπορούμε να τον βγάλουμε εκτός). Τα δυο σετ χρειάζονται ανάλογα με το αν το φόντο είναι φωτεινό ή όχι. Ο χρωματισμός γίνεται πάρα πολύ γρήγορα. Καθώς γράφουμε έχουμε άμεσο χρωματισμό. Μένει ακόμα μια περίπτωση που δεν έχω τελειοποιήσει, και αυτή είναι η διαχείριση των αλφαριθμητικών πολλαπλών γραμμών με χρήση των αγκυλών { }. Προς το παρόν χρωματίζεται με ενιαίο χρώμα μόνο η πρώτη γραμμή και οι άλλες αντιμετωπίζονται ως κώδικας. Το χρώμα δεν αλλάζει το κώδικα. Είναι πρόσθετος από τον διορθωτή. Όταν κλείνουμε το διορθωτή...δεν σώνεται το χρώμα. Ενώ παλιά είχα φτιάξει κάτι παρόμοιο με κείμενο που είχε μαζί και την πληροφορία του χρώματος, τώρα το κείμενο είναι χωριστό από το χρώμα. Το χρώμα είναι ένας πίνακας για κάθε παράγραφο που λέει από ποια θέση στη παράγραφο θα αλλάζει χρώμα. Κάθε φορά που "πειράζουμε" τη παράγραφο,  ένας νέος πίνακας δημιουργείται.  Με το F1 αλλάζουμε την αναδίπλωση λέξεων, και αυτή γίνεται αφενός γρήγορα, αφετέρου χωρίς να μπλέκεται με το χρώμα. Το χρώμα το βλέπει ο διορθωτής όταν εμφανίζει γραμμές (όταν το στοιχείο ελέγχου του ζητάει να γράψει..γραμμή κειμένου).





Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.