LibNVim
文章平均质量分 65
lethwei
这个作者很懒,什么都没留下…
展开
-
一个简单的 .Net Vim 引擎 LibNVim 开发记录 (一)
<br />(代码地址: https://github.com/joycode/LibNVim )<br /> <br />动力来自 VsVim, 原因有: <br />1) 一些常用功能没有实现或者并不好用(Ver.0.93) <br />2) 对设计有一些自己的想法 <br />3) VS 2010 基于 MEF 的插件系统为开发新的插件提供了很大的便利(顺便了解下 MEF) <br />4) 最后, 也最重要的是, 可以参考 VsVim 中与 VS 交互的代码部分, 否则, 我自己恐怕没有原创 2010-12-30 15:14:00 · 992 阅读 · 0 评论 -
一个简单的 .Net Vim 引擎 LibNVim 开发记录 (二)
<br />之前介绍了开发的起因, 目标, 下面将转入实际的设计过程.<br /> <br />初始架构<br /> <br />设计一个可移植的插件引擎, 有一个思路比较好:<br />预先定义一个抽象的目标环境(IVimHost), 这个环境中包含了一组行为明确的操作接口(即 API).<br />引擎通过访问这些接口与外界环境交互, 从而避免对某个具体环境的依赖.<br /> <br />LibNVim 的整体架构, 即是按照这个原则组织.<br /> <br />模块划分<br /> <br />程原创 2011-01-06 15:41:00 · 844 阅读 · 0 评论 -
一个简单的 .Net Vim 引擎 LibNVim 开发记录 (三)
<br />几个问题:<br />Edition 对 Motion 类型的依赖通过接口来识别是否多此一举?<br />'f' 类的移动与 'j', 'w' 的移动是否需要区分开来?<br /> <br />状态机越来越复杂, 怎么维护?<br />尽量用 if { } else if { } else { } 结构, 提供清晰的逻辑划分, 当然, 层数多了, 阅读与查找会不方便, 需要权量一下(这个时候, LibNVim 体现了它的价值 ;)<br /> <br />项目改名<br /> 还是尊重人家的命原创 2011-01-10 17:49:00 · 602 阅读 · 0 评论