V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
rebornix
V2EX  ›  分享创造

将 VS Code 打造成 Ruby IDE

  •  2
     
  •   rebornix ·
    rebornix · 2016-03-05 20:56:59 +08:00 · 17036 次点击
    这是一个创建于 3177 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Visual Studio Code 在支持了插件开发之后,提供了扩展调试器( Debugger )的 API 。也就是说,我们可以通过写插件,给 VS Code 提供调试各种语言、框架的功能。现在 VS Code 的 Marketplace 已经有了 Go 、 PHP 、 Python 、 Mono 等 Debugger 插件。

    研习 TypeScript 和 Ruby 有一段时间了,我一直琢磨写点什么试试手。惊讶滴发现 VS Code 居然还没有人写过 Ruby 的 Debugger ,而隔壁 Atom 已经有可以用的 Ruby Debugger 原型了,于是我果断开始造这个轮子。

    为了和 Ruby scripts 进行通讯,我使用了 ruby-debug-ide 并实现了对应的 protocol 。而这也是 RubyMine 、 NetBeans 这几个 Ruby IDE 的做法,也就是,我们完全可以实现一样的功能,把 VS Code 变成一个功能完备的 Ruby IDE !

    刚刚撸了一个礼拜,完成了以下功能,代码在 GitHub 上:

    • Ruby scripts debugging
      • Line breakpoints (add, delete, disable, enable)
      • Step over, step in, step out, continue
      • Multiple, parallel threads
      • Call stack
      • Scope variables
      • Debug console
      • Watch window
      • Variables evaluate/inspect

    还有以下很多功能需要实现:

    • Ruby remote debug
    • Unit/Integration tests debugging
    • Rack
    • Rails
    • Rake
    • Gem
    • IRB console
    • IntelliSense and autocomplete
    • Linting

    虽然完成了基本的 ruby scripts 的调试功能,限于时间和人力,但是还有很多 corner case 和功能没完成。如果你

    • 想尝试一下 TypeScript
    • 想试试写桌面应用
    • 想试试写 Debugger

    欢迎一起来撸这个插件

    如果你对撸这串代码没兴趣,也欢迎大家试用,提一提意见、爆一些八阿哥;或者给它一个 star !

    22 条回复    2017-08-05 13:35:16 +08:00
    sneezry
        1
    sneezry  
       2016-03-05 21:12:13 +08:00
    老师翻译完 Angular 那本书之后再写本 Ruby 的书吧😃
    rebornix
        2
    rebornix  
    OP
       2016-03-05 21:31:43 +08:00
    @sneezry 那本书黄了,图灵的老师。。。。我不说了。。。
    sneezry
        3
    sneezry  
       2016-03-05 21:35:15 +08:00
    @rebornix 估计是被 2.0 搞的,那老师继续要 2.0 的书啊,老师本来就是想搞 2.0 嘛,或者干脆你自己写一本,如果是原创我更容易帮你联系编辑了
    rebornix
        4
    rebornix  
    OP
       2016-03-05 21:46:56 +08:00
    @sneezry 他们怕了...让我撸完这个代码就来搞!
    sneezry
        5
    sneezry  
       2016-03-05 21:49:31 +08:00
    @rebornix 哈哈,赞!
    hbkdsm
        6
    hbkdsm  
       2016-03-05 22:04:51 +08:00 via Android
    Ruby 社区几乎没人用 VSCode 吧,没有 Ruby debugger 也不奇怪。 RubyMine 太强大, Vim ST 插件生态很完善, TextMate 还有很多老用户。而且写 Rails 的基本不会使用 Windows 作为开发机,为啥要换编辑器?

    VSCode 要吸引 ruby 程序员,光这一个插件不够啊

    CoffeeScript, ERB, Slim, Haml, SCSS, Ember.js 都得跟上。
    bdbai
        7
    bdbai  
       2016-03-05 22:07:37 +08:00 via iPhone
    @hbkdsm VSCode 可以跨平台呀
    rebornix
        8
    rebornix  
    OP
       2016-03-05 22:21:27 +08:00
    @hbkdsm

    首先说编辑器, VS Code 跨平台,性能也很很好。应该讲,是多一个不错的选择。否则,大家有了 Vim/Emacs ,干嘛还要开发别的编辑器呢。

    其次谈 IDE , RubyMine 是很强大,但是是收费的; Vim 加上插件自然是无敌的,但是曲线这么高,我不做太多的讨论了,毕竟我日常也是使用 Vim ; ST 的话,对 Ruby 的支持都是基于插件,那么二者的比较,就回到上一条了。

    最后, VS Code 开源且支持插件,就是让大家想怎么玩怎么玩,没有什么“ VSCode 要吸引 Ruby 程序员”。

    至于 Ruby 社区有没有人用 VS Code ,咱们就看着这个插件的下载数量会变成啥样吧
    hbkdsm
        9
    hbkdsm  
       2016-03-05 22:42:56 +08:00 via Android
    @rebornix 嗯 VS Code 支持插件确实是件大好事
    Mireas
        10
    Mireas  
       2016-03-06 16:07:29 +08:00
    一直在用 VSC...比 N++好看,比 Atom 流畅,比 SublimeText 有信仰,就是插件不够多=。=平时也就开开单文件改改小地方了。
    chmlai
        11
    chmlai  
       2016-03-06 16:36:16 +08:00
    VSC 现在的 vim mode 能用了吗?
    rebornix
        12
    rebornix  
    OP
       2016-03-06 16:51:47 +08:00 via Android
    rebornix
        13
    rebornix  
    OP
       2016-03-06 16:52:55 +08:00 via Android
    @Mireas 你平时写什么代码呀? debugger 已经有蛮多了,不过你说的对,现在插件还太少了。团队人少,所以工程推进也不够快。
    Mireas
        14
    Mireas  
       2016-03-06 17:00:57 +08:00
    @rebornix 前端,没找到自动补全来着
    Delbert
        15
    Delbert  
       2016-03-06 22:08:08 +08:00 via Android
    @hbkdsm VSCode 是跨平台的,不是只有 Windows
    msg7086
        16
    msg7086  
       2016-03-08 02:04:57 +08:00
    @hbkdsm Rails 为啥不能用 Windows 做开发机?
    hbkdsm
        17
    hbkdsm  
       2016-03-08 02:35:15 +08:00 via Android
    @msg7086 明知故问。。。
    msg7086
        18
    msg7086  
       2016-03-08 02:42:53 +08:00
    @hbkdsm 我用 Windows 写了很久的 Rails 了。所以还请赐教为什么不能用。
    rebornix
        19
    rebornix  
    OP
       2016-03-08 09:03:19 +08:00 via Android
    @msg7086 ruby-china 上非常醒目地写着不要用 Windows 我觉得可能和早年配置麻烦,严重不兼容有关,现在已经好多了。

    不过,我的这个插件对 Windows 平台上的 六个 Ruby 版本都进行了测试,力争人人能用。
    hbkdsm
        20
    hbkdsm  
       2016-03-08 09:23:25 +08:00
    @msg7086

    赐教不敢当,"写 Rails 的基本不会使用 Windows 作为开发机",我没说“不能用”,你在 Windows 上面用 Virtualbox/Vagrant 或 VMWare 装虚拟机,当然可以开发 Rails 啊,一点问题没有。

    我说“基本不会使用”,只是基于自己有限的认知,接触身边的开发者得出的观察结果:“大多数人不会选择 Windows 作为开发机”。

    这应该不是我一个人的结论,你还记得下面这句话是谁说的吗?

    “好像用 Windows 开发 Rails 的人好少啊……”

    出处在 https://ruby-china.org/topics/27020 第 43 楼
    msg7086
        21
    msg7086  
       2016-03-08 11:03:12 +08:00
    @hbkdsm 好少和基本不会还是有点差距吧。
    好少听上去只是数量多寡,「基本不会」则变成不正常群体了,听着怪怪的。
    倒是说来我周围的人用 Linux 写 Rails 的并不算很多啊。
    用 Mac 的话最后还是要部署 Vagrant 我觉得并没差多少。
    ZellaD
        22
    ZellaD  
       2017-08-05 13:35:16 +08:00
    楼主你好!我请教你问题,我初次用 vscode,编译 rb 时,出现
    Uncaught exception: cannot load such file -- /Users/antonio/Documents/program/RUBY/main.rb
    我不懂这个 main.rb 是什么。。。
    我这两个已经装了 gem install ruby-debug-ide -v 0.6.0
    gem install debase -v 0.2.2.beta10 or higher versions
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2845 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:27 · PVG 16:27 · LAX 00:27 · JFK 03:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.