Syntax Highlighter


#1

Sziasztok,

Használok egy bővítményben egy CodeMirror syntax highlghter-t. Az lenne a kérdésem, hogy ez a WP részét képzi vagy pedig külön hozzá kellene adnom a CodeMirror fájljait a saját bővítmény fájljaihoz?

Előre is köszönöm a válaszokat!

Szerk.: Annyit már látok, hogy a wp-includes/js/codemirror/ tartalmazza ezeket a fájlokat az 5.3.2-es verzióban. Kérdés, hogy ez mióta van, és vajon mennyire stabilan marad benne a rendszerben.


#2

WordPress 4.9 óta van benne core-ba az általad említett syntax highlghte, a CodeMirror.

A következő verziókban benne lesz, nem szoktak kivenni semmit, esetleg deprecated lesz, de azt is jelzik, és működőképes marad, legalábbis a legtöbb esetben így fejlesztik a WordPress core-t.


#3

Ha pedig részletesebb leírást szeretnél a CodeMirror-ról, akkor azt itt találod:


#4

Nagyon szépen köszönöm! Így már bátrabban húzom be a pluginba a core-ból.

Ezzel kapcsolatban még van egy problémám, amire a CodeMirror dokumentációjában nem találtam meg a választ, de reménykedem benne, hogy csak vak vagyok:
Amikor a felhasználó egér nélkül próbál navigálni, akkor amint a CodeMirror-os beviteli mezőbe kerül a focus, képtelenség kijönni onnan billentyűzettel (TAB). Azt értem, hogy ott a tab-nak a behúzás a funkciója, de inkább buknám ezt a feature-t az acessibility érdekében. A space-eket lehetne így is nyomogatni az indentáláshoz, tab-bal meg menjen csak tovább a következő vezérlő elemre.
Erről van valakinek tapasztalata?


#5

Szerintem erre itt találsz megoldást:

Bár a tab behúzás szerintem fontos kódszerkesztésben, szóval én benne hagynám. Nem véletlenül rakták bele a CodeMirror fejlesztői, és hagyták benne a WordPress fejlesztői is.


#6

Köszönöm szépen, így sikerült megoldani:

window.wp.codeEditor.defaultSettings.codemirror.extraKeys = {
‘Tab’: false,
‘Shift-Tab’: false
};

Szerintem rosszul tették, hogy kihagyták ennek a poblémának a feloldását. A behúzás természetesen fontos, de a tab space-ekkel helyettesíthető. Viszont… ahogy látom alapértelmezetten működik az auto indentálás, szóval még azzal sem kell foglalkozni, mert magától berakja a tabot, mikor entert nyomunk. Ez jelen esetben egy CSS field, szóval nem lesznek túlbonyolítva a behúzások.

Lehet több helyes megoldást is megjelölni egy témán belül? Ha igen, megy rá a “pipa”, köszönöm még egyszer a segítségeteket.