V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
P233
V2EX  ›  JavaScript

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

  •  2
     
  •   P233 · 2014-09-20 07:01:03 +08:00 · 6979 次点击
    这是一个创建于 3709 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前曾发帖子 ( /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
    * 支持 Doc​blockr 插件的 @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 已经有 Java​Script​Next 这个插件了一般不会再接受功能相同的插件,除非非常有特色。之前提交过的 Swift 高亮已经被拒绝了,等这个更完善的时候会提交给 package control 希望不会被拒绝。 Java​Script​Next 写法很繁复,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   ·   实用小工具   ·   3523 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:01 · PVG 13:01 · LAX 21:01 · JFK 00:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.