js2-mode: JavaScript fejlesztés Emacsban
Steve Yegge (előbb Amazon, majd Google mérnök) js2-mode-ját egy blogmark erejéig már érintettem, akkor idő hiányában nem tudtam részletesebben bemutatni, így ezt most pótolnám. JavaScript fejlesztéshez Emacs-felhasználók számára a java-mode-tól kezdve a Karl Landström-féle javascript.el-en át több megoldás kínálkozott, de azok tudásukban messze elmaradtak egy komolyabb fejlesztő eszközzel szemben támasztott elvárásoktól.
Az eszköz természetesen bír nyelvtankiemeléssel, kódolási stílustól függően több típusú behúzással (indent), kódelrejtéssel (folding) satöbbi, legvonzóbb eleme azonban a szintaktikai hibák intelligens jelzése. A flymake-js-sel ellentétben – amely a Rhino-ra támaszkodik a háttérben – a js2-mode képes soron belül is jelezni egy kifejezésben vétett hibát. Az nxml-mode-hoz hasonlóan a js2-mode-ban Steve Yegge a Rhino-t alapul véve implementált egy JavaScript parsert Emacs Lispben, amellyel egészen precíz helyesség ellenőrzés valósítható meg. Jelzi, ha: függvényen belül egy változót újrainicializáljuk; függvényargumentumot lokális változóval elfedjük; utasítást nem zárjuk le pontosvesszővel; felesleges vesszőt hagyunk tömb és objektum literál végén; feltétel ellenőrzéskör szimpla egyenlőséget írunk; stb. A saját parserével megpróbál segíteni a kód írásában is: idézőjelek közé írt idézőjelet automatikusan kivédi; idézőjelek közötti sortörésnél string konkatenációval egészíti ki a kifejezést (Eclipse-től kölcsönözve); stb.
Jelenleg a legmagasabb támogatott JavaScript verzió az 1.7, tervek között szerepel az 1.8-as bedolgozása, a JSON támogatása, valamint további mode-okkal (pl. html-mode) való együttműködés biztosítása.
Steve Yegge állítása szerint az egyik legjobb IDE az IntellIJ IDEA – the gold standard for JavaScript editing today –, innen merít sok ötletet, amivel a js2-mode-ot is tovább viheti.
■ Az eszköz természetesen bír nyelvtankiemeléssel, kódolási stílustól függően több típusú behúzással (indent), kódelrejtéssel (folding) satöbbi, legvonzóbb eleme azonban a szintaktikai hibák intelligens jelzése. A flymake-js-sel ellentétben – amely a Rhino-ra támaszkodik a háttérben – a js2-mode képes soron belül is jelezni egy kifejezésben vétett hibát. Az nxml-mode-hoz hasonlóan a js2-mode-ban Steve Yegge a Rhino-t alapul véve implementált egy JavaScript parsert Emacs Lispben, amellyel egészen precíz helyesség ellenőrzés valósítható meg. Jelzi, ha: függvényen belül egy változót újrainicializáljuk; függvényargumentumot lokális változóval elfedjük; utasítást nem zárjuk le pontosvesszővel; felesleges vesszőt hagyunk tömb és objektum literál végén; feltétel ellenőrzéskör szimpla egyenlőséget írunk; stb. A saját parserével megpróbál segíteni a kód írásában is: idézőjelek közé írt idézőjelet automatikusan kivédi; idézőjelek közötti sortörésnél string konkatenációval egészíti ki a kifejezést (Eclipse-től kölcsönözve); stb.
A js2-mode naracssárga aláhúzással jelöli a problémás kifejezéseket
Steve Yegge állítása szerint az egyik legjobb IDE az IntellIJ IDEA – the gold standard for JavaScript editing today –, innen merít sok ötletet, amivel a js2-mode-ot is tovább viheti.