YAJS: Yet Another JavaScript Syntax for Vim

前陣子把我 fork 的 Enhanced Javascript syntax 大改後,乾脆改名上到 Vim Scripts 了,名字就叫做YAJS,全名是 Yet Another JavaScript Syntax for Vim(又一個 JS Syntax),當然也有github repo方便安裝,為什麼這次會自己大修呢,主要的原因是想要弄支援 ES6 的一些新語法,不過剛好有一些問題也已經很久了,就一口氣處理,大概整理一下和其他版的差異如下:

  • javascript做 group name 的 prefix,如此才符合 Vim doc 的規範,並且可以直接讓SyntaxComplete使用
  • 完整重新整理過的 Web API、DOM、JS 關鍵字
  • 可以完美的和 javascript-libraries-syntax.vim 共用
  • 把許多歷史遺跡的 syntax rule 都砍掉了
  • 當然最後就是支援許多的 ES6 syntax,像是 arrow function、 method definition 等

第一點這問題很久了,我好像之前也有說過,第二個一開始弄之前有點猶豫,因為關鍵字真的很多,目前整理了大概有 1800 個上下,不過後來看到 Vim 內建的 xs 的syntax我就釋懷了,這個檔案有三千多行,而定義關鍵字的每行都有數個關鍵字,1800 其實還只整理了一部份,除了 Global 物件都有加上外,很多新 Spec 是還沒整理的,例如 Mozilla 為了 Firefox OS 定的那些和硬體溝通的 API 等。

第三點是我重新整理的時候才注意到的,本來我的 javascript-libraries-syntax.vim 會把.的 group 取代掉,也就是原來的 syntax rule 裡面,和.有關的東西在套用過 libraries syntax 之後就會消失,只是不太容易注意到,這次修改就讓這個問題不會發生,不過 JS 僅限於 YAJS,,其他還有 CoffeeScript、LiveScript 其實不受影響,不過是因為他們本來在.之後就沒其他的 syntax highlight 了。

第四點就是把一些不明用途或是過時的東西砍掉,最後就是 ES6 的語法了,目前大概知道會有的都已經做上去了像是 block scope、let、const、class、新的 number literal 等都支援,如果有缺什麼歡迎報 bug 摟。

comments powered by Disqus