Temat: SuperJS! Rewolucja w JavaScript! Nowy dialekt z...
Andrzej W.:
Wtyczka do webstorma powiadasz, buuu a ja uzywam notepad++ i juz po ptakach... ;)
Myślę raczej w tej chwili nad przerobieniem edytora scripted albo Eclipse Orion. Ale projekt jest open source więc każdy może sobie napisać wtyczkę do własnego programu.
Dariusz P.:
Prawda. Chęci dobre ale efekt warty świeczki ? Po kiego mi coś takiego kiedy chyba każdy normalny edytor takie rzeczy jak function, return i metody odpowiada mniej i więcej już w tym momencie wpisania re lub fu, literka mniej lub więcej + tab.
Po to że zapis (x)=>{ this.print(x) } jest bardziej czytelny niż: (function(x) { this.print(x) }).bind(this) a jeśli programujesz funkcyjnie w JS to tworzą się takie krzaki że oczy bolą.
Jak pisałem wyżej, do szybszego pisania mam makra, ale one nie poprawiają czytelności kodu.
Co do samego kompilatora to można. Np w phpStorm można sobie ustawić skrypty do przetwarzania plików które się odpalają przy ich zapisaniu. Mam tam podpięte np wszelakiego rodzaju kompresory, lessa i parę innych drobiazgów. Więc samo zastosowanie mogło by być transparentne.
Można tak samo jak z Lessem, ale jest to średnio wygodne, o wiele wygodniej było by dekompilować JS przy wczytywaniu pliku JS, i kompilować przy zapisywaniu.
Na razie projekt się ogranicza do tych 4 ulepszeń:
(x)=>{ this.print(x) } (function(x) { this.print(x) }).bind(this)
(x)=>( x*2 ) (function(x) { return x*2 }).bind(this)
(x)->{ this.print(x) } function(x) { this.print(x) }
(x)->( x*2 ) function(x) { return x*2 }
Myślałem nad kilkoma innymi, ale jestem mocno ograniczony z wprowadzaniem zmian, bo operacje dekompilacji i kompilacji nie mogą zmieniać za mocno kodu.
No i muszę zimplementować to od nowa na AST, bo aktualna implementacja na tokenach ma kilka problemów.