UltraBlog.vim v3.1释出:代码重构与MacVim支持   2011-11-05


距离上一个版本的释出已经有三个月了,这次新版并没有增加多少功能性的内容,主要是代码的重构和对在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

于是将所有标准输出与标准错误输出语句换成另一种形式:

1
2
3
4
5
6
7
# 原形式
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.


本文基于署名4.0国际许可协议发布,转载请保留本文署名和文章链接。 如您有任何授权方面的协商,请联系我。