LIveWriter中使用插入代码块插件插入cpp代码的问题
安装完LiveWriter后我就下载了"代码插入插件" http://gallery.live.com/liveItemDetail.aspx?li=1f07e880-608e-4d26-b657-a1583de6200a&bt=9&pl=8
装上后第二次使用的时候就出现了意外错误,于是就在网上找解决方法,路过了这位大哥的博客http://m.cnblogs.com/67316/1680123.html终于找到了问题的原因及解决方法,引用如下:
下面是原始代码, 在Wilco.SyntaxHighlighting.HighlighterCollection中
public HighlighterBase this[string name] { get { HighlighterBase highlighter = null; for (int i = 0; i < this.List.Count; i++) { highlighter = (HighlighterBase)this.List[i]; if (highlighter.Name.ToLower() == name.ToLower()) return highlighter; } return null; } }
highlighter有两个属性与名字有关: Name和FullName
CPPHighlighter的Name是C++, FullName是CPP
而传进去的name是我们在第一次插入代码块时在下拉选项框中选择的语言 - cpp.
此时根据原始代码的判断,找不到这样的HighLighterBase对象, 系统因此崩溃.
我做了简单修改:
public HighlighterBase this[string name] { get { HighlighterBase highlighter = null; for (int i = 0; i < this.List.Count; i++) { highlighter = (HighlighterBase)this.List[i]; if (String.Compare(highlighter.Name, name, true) == 0 || String.Compare(highlighter.FullName, name, true) == 0) return highlighter; } return null; } }
重新编译后拷贝到\Windows Live\Writer\Plugins\中去, OK通过。
修正后的插件: