IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    ReWrite of Clickable.vim

    Rykka发表于 2014-10-08 23:36:00
    love 0

    国庆这几天在京城逛了逛,跟同学聚了聚,看了看书,解决了租房问题。 不过主要工作还是将 clickable.vim 进行了重写。

    Clickable.vim

    功能简介:

    主要的功能是将 Vim 里匹配特定样式(Pattern)的文字 转化为可点击对象(Clickable Object), 并赋予语法高亮(Syntax Highlighting)。

    当进行点击时,可根据上下文(Context)触发不同的动作。

    观众:说人话!

    Me:让vim里的文本可以点击!

    重写原因:

    之前写的版本基本是直接将 Riv.vim 里的相关代码复制了过去。 因此只有基本的功能,没有任何可扩展性。

    而这次我想让它拥有强大的可扩展性, 因此在 Vim 里利用 dict 以及 vim 的 dict function 实现了一个简单的 Class/Object 的模组。

    结构:

    ▾ after/
      ▾ plugin/
          clickable.vim
    ▾ autoload/
      ▾ clickable/
          class.vim
          config.vim
          highlight.vim
          pattern.vim
          syntax.vim
          test.vim
          util.vim
        clickable.vim
      README.rst
    

    其中

    plugin/clickalbe.vim 在载入每个新文件时进行加载

    autoload/clickable.vim 设置了初始化函数。

    autoload/clickable/ 里是主要模块。

    1. class.vim 这是最主要的模块,可能需要进一步分解。

      实现了一个简单的Class/Object Model, 定义了Class函数以生成类。

      定义了Basic, Syntax, File, Link 几个Clickable类, 分别指单独的一类可点击对象。 其拥有validate(), trigger(), tooltip()乃至 highlight()属性

      定义了 ConfigQue 类,其包含一个Clickable object 的队列 对不同的文件类型使用。 拥有 autocmd(), mapping() 等属性。

    2. config.vim 定义了一些普通的config, 比如http链接, file链接

      定制特定的config时可以参考

    3. highlight.vim/syntax.vim/pattern.vim/util.vim 基本的相关函数

    4. test.vim 测试模块

    还需要做的工作:

    1. 加载clickable的config file。 可能需要实现一个加载模块的方法(require), 或者简单的维系一个 global dict
    2. 写更多的config file, 比如针对 less/express/angular等
    3. 写文档(README/help doc/etc...)

    好吧,fix其中几个bug还是很花时间的,那么今天就到这。

    全文完。



沪ICP备19023445号-2号
友情链接