Productivity Power Tools是微軟官方發布的一個用于VS2010的擴展,功能是在Visual Studio的文本編輯器中按下Ctrl+C或通過其它方式執行“復制”或者“剪切”功能的時候,生成一份HTML格式的源碼放到剪貼板中,此時可以在網頁編輯器、網頁中的可視化編輯器中直接粘貼出和VS中格式相同的源碼。

今天這個工具發布了最新的版本,其中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. }
  20. ?
3.選項對話框的說明 [導航]

我對選項對話框進行了修改,刪除了一個選項,添加了幾個選項:

4.如何重定義代碼塊樣式 [導航]

建議在上述的選項對話框中設置CodeBlockClassName,這樣通過ol.CodeBlockClassName既可以重新設置樣式。比如我的博客中重定義的樣式如下,需要的同學可以參考下:

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

下載附件,將解壓后的 CopyAsHtml.dll 解壓到 "%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\Productivity Power Tools\10.0.20214.15" 下并覆蓋已有文件即可。

源碼需要VS2010才能打開。

6.下載 [導航]
本地下載

已有 次下載

更新時間:2011-05-10 21:22:24
下載大小:12.53 KB
適用于最新版Productivity Power Tools,支持以下版本: · 10.0.20318.4 · 10.0.20427.10
源碼下載

已有 次下載

更新時間:2011-05-10 21:27:24
下載大小:10.62 KB
最新版源碼
所有可供下載的版本提供了所有可供下載的版本

?

7.更新日志 [導航]
更新日志版本: 10.0.20427.10,更新時間: 2011-05-10 12:00:00
  • ·更新到最新版
  • ·修改pkgdef以支持選項對話框
  • ·部分BUG改進
更新日志版本: 10.0.20214.15,更新時間: 2011-02-25 12:00:00
  • 允許在生成最終代碼時,忽略部分VS的文字編輯器樣式(比如背景色,文字大小,文字樣式等等)
  • 使用OL來代替Pre顯示代碼區域,并允許加上class類名以便于在網頁中進行代碼樣式的微調,支持顯示行號(可以通過后期定義樣式隱藏)
  • 能在復制或剪切時自動移除公共縮進(見后說明,僅針對HTML)

?

性惑美女捕鱼 王者荣耀新皮肤 星空棋牌游戏大厅下载 2012年香港赛马会96期 秒速时时彩是正规的吗 福建十一选五 捕鱼大富翁3d 山西快乐10分基础走势图 快速赛车是真是假 腾游游戏中心下载 双色球17130大奖多少注 围棋网页游戏 利记即时指数 体彩p3 26选5超级大底 重庆时时彩个位选号公式 中国足球新浪体育竞技风暴