🌚

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

Posted at — Nov 05, 2011
#Plugin #Python #UltraBlog.vim #Vim #博客 #编程

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

这也是将源码从Google Code迁移到GitHub后发布的第一个新版本,更详细的信息请移步插件主页或GitHub上的代码仓库

Posted via UltraBlog.vim.