距离上一个版本的释出已经有三个月了,这次新版并没有增加多少功能性的内容,主要是代码的重构和对在MacVim下稳定性的改进。
对依赖关系检查的不细致导致了一些麻烦,抛出的错误信息有时与实际原因相距甚远。由于开始时是以实现功能为主,所以都是直接用函数实现的,之后修修补补,代码冗余而且维护麻烦。于是著手重构主要功能的源码,面向对象,把所有检查逻辑放到父类中去实现,子类只关注自身逻辑,最后新版减少了二百多行的代码量。
在重构的过程中偶然发现,在MacVim中,程序抛出任何异常,即便是有捕获逻辑,也会导致编辑器崩溃。在这里简略地提到:
the failure was actual a crash, through some strange combination of threading, matplotlib pyplot backend, and ssh X11 forwarding, sys.stderr had somehow been assigned to something which python complained wasn't a file-like object
于是将所有标准输出与标准错误输出语句换成另一种形式:
```python # 原形式 sys.stdout.write('xxx') sys.stderr.write('xxx') # 新形式 print >> sys.stdout, 'xxx' print >> sys.stderr, 'xxx' ```以上是新版主要变更的内容,此外,也顺便解决了开发过程中发现的个别Bug和做了其它一些改动:
- Change: The key "xmlrpc" of the settings list is dropped, a new one with the name "url" is added, you should set its value to the blog url.
- Change: Source code refactorings.
- Change: Solve the crash problem existing in MacVim only.
- Change: :UBConv can be used in any buffer.
- Change: :UBThis now has a third parameter, which enables convertions between syntaxes.
- Bugfix: The second parameter of :UBThis cannot take effect.
这也是将源码从Google Code迁移到GitHub后发布的第一个新版本,更详细的信息请移步插件主页或GitHub上的代码仓库。
Posted via UltraBlog.vim.