Highlighty μόνο πλήρη λέξεις codemirror

ψήφοι
0

Είμαι προσπαθεί να γράψει ένα απλό highlighter σύνταξη για αρχεία δέσμης για τον επεξεργαστή codemirror. Αλλά έχω κολλήσει στην ανάδειξη των εντολών. Θέλω μόνο πλήρη λέξεις που πρέπει να επισημανθεί. Ωστόσο, σε ορισμένες περιπτώσεις, επίσης, τμήματα μιας μεταβλητής όνομα ή μια διαδρομή επισημαίνεται επίσης.

Αυτό είναι το πώς η ανάδειξη μοιάζει με:

εισάγετε

Χρησιμοποιώ \b(commands)\bσε κανονική έκφραση μου, έτσι ώστε μόνο η πλήρης λέξεις ταιριάζουν. Αλλά δεν περάσει- φαίνεται να λειτουργεί. Είναι ίσως ένα bug codemirror;

Αυτός είναι ο κωδικός του τρόπου codemirror για απλά τονίζοντας τις εντολές

CodeMirror.defineSimpleMode(batch, {
    start: [
        {   //commands
            regex: /\b(?:assoc|aux|break|call|cd|chcp|chdir|choice|cls|cmdextversion|color|com1|com2|com3|com4|com|con|copy|country|ctty|date|defined|del|dir|do|dpath|else|endlocal|erase|errorlevel|exist|exit|for|ftype|goto|if|in|loadfix|loadhigh|lpt|lpt1|lpt2|lpt3|lpt4|md|mkdir|move|not|nul|path|pause|popd|prn|prompt|pushd|rd|rename|ren|rmdir|setlocal|set|shift|start|time|title|type|verify|ver|vol)\b/i,
            token: builtin
        }
    ]
});
Δημοσιεύθηκε 27/11/2018 στις 17:40
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Βρήκα επιτέλους μια λύση για αυτό.

Αντί \b(commands)\bνα χρησιμοποιήσω (?:\s|^)(commands)(?:\s|$)όπως προτείνεται John Smith. Με αυτό, μόνο οι εντολές επισημαίνονται με ένα κενό ή αρχή της γραμμής πριν από την εντολή και κενά ή στο τέλος της γραμμής μετά την εντολή.

Απαντήθηκε 28/11/2018 στις 10:27
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more