之前说要为 Sublime Text 写 Javascript 语法高亮,现在邀请大家测试 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
P233
2D
V2EX    Javascript

之前说要为 Sublime Text 写 Javascript 语法高亮,现在邀请大家测试

  •  2
     
  •   P233 2014-09-20 07:01:03 +08:00 7421 次点击
    这是一个创建于 4107 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前曾发帖子 ( /111809 ) 表示要写 Sublime Text 的 Javascript 语法高亮,经过一段时间的折腾感觉差不多可以邀请大家测试一番了,请查看 https://github.com/P233/Syntax-highlighting-for-Javascript

    需要禁用内置的或者第三方 Javascript 语法高亮,然后设置语言为 `JS`

    无法配合所有的 color scheme,推荐使用自己修改过的 Birds of Paradise 主题( https://github.com/P233/Birds-of-Paradise-for-TextMate )或者 tomorrow 及 Monokai, 当然也可以根据 scopes list 修改自己喜欢的主题。

    主要功能包括:
    * 更好的高亮效果
    * 函数名支持 Goto Symbol 以及 Goto Symbol in Project
    * 支持 Docblockr 插件的 @rule
    * JSON 格式 key value 双色高亮,错误提示
    * 一些基础的 snippets

    需要改进地方:
    * 继续改进高亮效果
    * 更多的自动补完

    关于自动补完,fork 了 Sublime Text 的 jQuery 插件 ( https://github.com/P233/jQuery ),配合这个语法高亮包使用时提示比较智能,比如 .show() 只有按下 . 之后才会提示,不会出现在其他地方。

    希望大家能帮忙测试一番,并提出改进建议,感谢
    第 1 条附言    2014-09-20 16:35:21 +08:00
    刚刚修复了一处问题,请大家 pull 一下

    拿 jQuery 源码做对比,两张截图,左侧是 Syntax highlighting for Javascript 右侧是 Sublime Text 原生的



    主要处理的部分是 属性 与 方法,还没处理的部分是参数,原生的高亮包中只有出现 function 这个关键字时才高亮参数。另外还在想要不要对 true false this 这几个做特殊处理



    JSON 方面双色高亮,看起来舒服多了
    26 条回复    2014-10-19 05:30:10 +08:00
    wuliao49
        1
    wuliao49  
       2014-09-20 08:27:30 +08:00 via Android
    赞一个
    coolicer
        2
    coolicer  
       2014-09-20 08:52:22 +08:00
    我同时有st2,st3,弄哪个
    Ricky123
        3
    Ricky123  
       2014-09-20 09:01:12 +08:00
    必须要弄了才知道?
    没有截图吗
    P233
        4
    P233  
    OP
       2014-09-20 16:36:19 +08:00
    @coolicer 2 3 一样的,2 在高亮方面有几个 bug 应该避开了,3 效率更高

    @Ricky123 已经补图 :)
    coolicer
        5
    coolicer  
       2014-09-20 17:30:25 +08:00
    @P233 用上了,确实比较智能。
    coolicer
        6
    coolicer  
       2014-09-20 17:32:33 +08:00
    @P233 不知道在哪禁用,好像有点混乱啊。st3的packages好像是空的
    P233
        7
    P233  
    OP
       2014-09-20 17:42:36 +08:00
    @coolicer 禁用可以通过 package control 的 disable package 选项,或者在 Settings - User 文件的 “ignored_packages” 部分添加一条 “Javascript”

    ST3 的插件以 zip 文件的形式存在其他地方,也可以像 ST2 那样在 packages 文件夹下添加内容
    coolicer
        8
    coolicer  
       2014-09-20 19:40:31 +08:00
    @P233 谢谢,有空试试。
    coolicer
        9
    coolicer  
       2014-09-22 08:26:47 +08:00   1
    @P233 好像有bug,到了7000多行,就不会高亮了。

    coolicer
        10
    coolicer  
       2014-09-22 08:29:03 +08:00
    好像不一定是7000多行,我打开一个只有400多行的JS,到100多行后面就不会高亮了。
    otakustay
        11
    otakustay  
       2014-09-22 12:41:55 +08:00
    有打算发布到Package Control吗?
    P233
        12
    P233  
    OP
       2014-09-22 14:44:59 +08:00
    @coolicer 感谢反馈,这个是附言中提过的 bug 应该已经修复了,请 git pull 后再试试

    @otakustay Package Control 已经有 JavascriptNext 这个插件了一般不会再接受功能相同的插件,除非非常有特色。之前提交过的 Swift 高亮已经被拒绝了,等这个更完善的时候会提交给 package control 希望不会被拒绝。 JavascriptNext 写法很繁复,1900 行,很难修改,从头开始写只用了不到 150 行 :)
    coolicer
        13
    coolicer  
       2014-09-22 16:18:31 +08:00
    @P233 你看我文件夹丢这里可以吗?

    coolicer
        14
    coolicer  
       2014-09-22 16:24:57 +08:00
    好像是我放得有问题,我改成像主题一样,独立放一个文件夹就可以了。 =。=
    P233
        15
    P233  
    OP
       2014-09-22 16:27:07 +08:00
    @coolicer 可以的,不过最好新建个文件夹把 Preferences,Snippets,Syntaxes 等包裹起来,以后更新的时候只需要覆盖最外层的文件夹。截图中这样很不方便管理,过段时间可能都忘记这几个文件夹是什么了
    P233
        16
    P233  
    OP
       2014-09-22 16:28:05 +08:00
    @coolicer 呃,打字太慢了 哈哈
    coolicer
        17
    coolicer  
       2014-09-22 16:37:06 +08:00
    @P233 可以用了 :)。
    momou
        18
    momou  
       2014-09-30 15:17:16 +08:00
    没看明白到底怎么安装啊。。。
    emric
        19
    emric  
       2014-10-03 02:25:22 +08:00   1


    正则的中的引号会有些问题呢..
    emric
        20
    emric  
       2014-10-03 02:37:11 +08:00   1


    第二个参数的小冒号..
    P233
        21
    P233  
    OP
       2014-10-03 07:20:02 +08:00 via Android   1
    @emric 非常感谢,周末修复好
    P233
        22
    P233  
    OP
       2014-10-06 15:42:46 +08:00
    @emric 应该都修复了,请 pull 后再试试,如果还有其他问题请不要客气提出来,再次感谢
    zerosyn
        23
    zerosyn  
       2014-10-19 04:23:41 +08:00   1
    逗号的 scope 为啥是 comment.punctuation.comma.js
    原生的除了参数以外的情况是 meta.delimiter.object.comma.js

    还有感觉 true false 和 this 不分离出来确实挺不习惯的
    P233
        24
    P233  
    OP
       2014-10-19 04:41:51 +08:00
    @zerosyn 想让逗号的颜色变淡一点,所以设定为注释的颜色,如果不习惯,可以通过修改 color scheme 文件改成默认的颜色,或者 fork 一份,删除针对逗号的高亮

    true false this 目前都是作为关键字高亮的,其实也想 换个方式呈现,只是还没想好,以后这部分会修改的

    感谢反馈!
    zerosyn
        25
    zerosyn  
       2014-10-19 05:10:27 +08:00
    变淡属于个人喜好吧,tmLanguage + tmTheme 这套机制不就是像 html + css 一样把语义和表现分离开么,混着用就违背初衷了啊

    嘛,总之我先 fork 一份有空改改看了
    P233
        26
    P233  
    OP
       2014-10-19 05:30:10 +08:00
    @zerosyn 由于各个 Color Scheme 的设计差异很大,如果完全语义化恐怕达不到最好的效果。比如,目前将 properties 高亮为 variable,不是语义化的,但是可以保证很多 Color Scheme 支持,而且可以保证高亮的颜色与其他部分有明显的区分。所以把 Scope 都列出来了,方便大家修改自己喜欢的 color scheme

    非常欢迎贡献代码 :)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4909 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 62ms UTC 09:41 PVG 17:41 LAX 01:41 JFK 04:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86