文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>发布一个最新版Productivity Power Tools中的CopyAsHtml扩展的修改版(含工具和源码)

发布一个最新版Productivity Power Tools中的CopyAsHtml扩展的修改版(含工具和源码)

时间:2011-02-25  来源:木鱼

今天这个工具发布了最新的版本,其中CopyAsHtml组件进行了更新,加入了选项对话框,个人觉得这个比较实用,所以将原来的组件修改迁移到这个版本中。值得一提的,原来我发布的修改版存在一个BUG,就是当选择的内容存在不需要的缩进时,会导致缩进丢失,感谢之前mangohappy给我的反馈和在我发布的源码基础上进行的改进。

1.这个和官方的组件相比有和更改?

和官方组件相比,变更如下:

  1. 允许在生成最终代码时,忽略部分VS的文字编辑器样式(比如背景色,文字大小,文字样式等等)
  2. 使用OL来代替Pre显示代码区域,并允许加上class类名以便于在网页中进行代码样式的微调,支持显示行号(可以通过后期定义样式隐藏)
  3. 能在复制或剪切时自动移除公共缩进(见后说明,仅针对HTML)

2.什么是自动移除公共缩进?

这里指的公共缩进,就是指下面这个代码片段中所标注的区域:

如果要复制这个方法,修改后的扩展在复制后将会自动将红框中的缩进删除掉,于是复制出来的代码是这样的:

  1. public string GenerateHtml(NormalizedSnapshotSpanCollection spans, IWpfTextView textView)
  2. {
  3.     if ((spans == null) || (spans.Count == 0))
  4.     {
  5.         return "";
  6.     }
  7.     ((_DTE) this._serviceProvider.GetService(typeof(_DTE))).get_Properties("Productivity Power Tools", "HTML Copy");
  8.     IClassificationFormatMap classificationFormatMap = this._classificationFormatMappingService.GetClassificationFormatMap(textView);
  9.     IClassificationType classificationType = this._classificationTypeRegistry.GetClassificationType("text");
  10.     HtmlMarkupProvider htmlMarkupProvider = new HtmlMarkupProvider(classificationFormatMap, classificationType, textView);
  11.     IClassifier classifier = this._classifierAggregatorService.GetClassifier(textView.TextBuffer);
  12.     string str = new FormattedStringBuilder(htmlMarkupProvider, classifier, classificationType).AppendSnapshotSpans(spans);
  13.     IDisposable disposable = classifier as IDisposable;
  14.     if (disposable != null)
  15.     {
  16.         disposable.Dispose();
  17.     }
  18.     return str;
  19. }

3.选项对话框的说明

我对选项对话框进行了修改,删除了一个选项,添加了几个选项:

4.如何重定义代码块样式

建议在上述的选项对话框中设置CodeBlockClassName,这样通过ol.CodeBlockClassName既可以重新设置样式。比如我的博客中重定义的样式如下,需要的同学可以参考下:

  1. ol.codeBlock{
  2.     border: 1px dotted #6C93FF;
  3.     line-
  4.     word-break:break-word;
  5.     font-family: Consolas, Verdana !important;
  6.     border-radius:5px;
  7. }
  8. ol.codeBlock font{
  9.     font-size:12px!important;
  10. }
  11. ol.codeBlock{
  12.     background-color: #E3E3FF !important;
  13.     list-style-position: outside;
  14.     margin-left:0px;
  15. }
  16. ol.codeBlock li{
  17.     background-color: #fff;
  18.     padding-left: 5px;
  19.     border-left: 1px solid #8A8AFF;
  20.     margin-left:50px;
  21. }
  22. ol.codeBlock li:nth-child(even){
  23.     background-color: #f5f5f5;
  24. }

5.如何使用

下载附件,将解压后的 CopyAsHtml.dll 解压到 "%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\Productivity Power Tools\10.0.20214.15" 下并覆盖已有文件即可。

源码需要VS2010才能打开。

6.下载链接

DLL下载:http://www.u-tide.com/fish/Service.asmx/Download/30/25
源码下载:http://www.u-tide.com/fish/Service.asmx/Download/30/26
发布页面:http://www.u-tide.com/fish/soft/copyAsHtml_For_ProductiveTools2010/

最后发个疑问。为啥官方的扩展中这个dll只有25K,为啥我编译的会有40K呢?搞不明白。

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载