WLW Plugins: Code Formatter

2008/03/08 .NET 作品集

最近常常貼一些需要附上程式碼的文章, 我都借助 [c# code format] 這網站幫忙轉, 轉成好看一點的 HTML code.. 然後 Live Writer 切到原始碼的模式去改 HTML, 然後再切回來際續編...

人果然是懶惰的動物, 之前久久寫一篇還好, 最近就開始不耐煩了... 試了一套 Syntax Highlight 的 WLW plugins, 畫面不錯, 不過中文會亂掉.. 想說 c# code format 這網站的主人有 share source code, 我就把它拿來包成 Windows Live Writer Plugins 好了...

就是這念頭開始寫這個 project, 蠻好寫的, 兩三個小時過去就堪用了, 經過幾天試用慢慢改成現在的樣子, 先現寶一下, 放幾張圖:

 

[圖 1] 編輯畫面
image

 

[圖 2] 預覽畫面 (底下當然要加點廣告... )
image

 

結果就不用貼圖了, 底下這段就是用這 plugins 貼進來的...

 

[程式 1] 這是測試程式

   1:  using System;
   2:  using System.IO;
   3:  using System.Threading;
   4:   
   5:  public class Program {
   6:    public static void Main(string[] args) {
   7:      Console.WriteLine("Hello!!" );
   8:    }
   9:  }

 

看起來效果還不錯, 雖然跟之前差不多, 不過手工的部份少很多, 貼上, 按 OK, 就收工了! 這個 c# code format 提供的 library 還不賴, 效果也是我試用幾種 lib 後比較滿意的, 滿意的地方是:

  1. Pure C# 開發的, 程式很短, 不過看的出作者功力不錯, 架構啥都棒.
  2. 用習慣了, 之前都用它網站版本的. 很熟悉它轉出來的格式.
  3. 轉出來的 code 比較乾淨. 不過它需要另外搭配它的 CSS.
  4. Unicode, 沒有什麼中文亂碼的問題.

當初最主要用它的原因就是 (3), 其它捨棄 CSS 的結果, 就是產生出來的 HTML 參著一大堆 color code, 老實說這種 HTML code 看起來就很痛苦. 我是不想看啦, 不過我必需切到 HTML view 去貼上這堆字啊...  c# code format 雖然要另外補上 .css, 不過看起來就清爽多了. 我直接把它附的 CSS 貼到我用的 community server 的 custom themes 裡 (部落格管理裡面就可以直接加, 不用改檔案), 用起來就很輕鬆愉快了 :D

要來看 code 嗎? 其實 code 就沒什麼好看的了, 需要的直接抓回去看吧. 倒是不常寫 WinForm 的我, 竟然被內建的 ComboBox 小整了一下... WinForm 內建的 ComboBox 功能很完整, Items 可以放 object, 然後再指定 ValueMember, DisplayMember... blah blah. 當然也有直接提供最簡單的 Text Editor, 一行字就是一個 Item ...

image

不過, 我要的是很簡單的 Value / Display 分別指定就好, 就是這個 plugins 讓 user 選擇格式的地方 (如上圖), 我希望第一項的 Value 是 "HTML", 而顯示的是 "HTML / XML / ASP.NET", 這樣簡單的要求, 我心裡想... 這麼簡單, 一定可以直接用 Designer 填一填就搞定, 不用再去寫 code, 就可以 init 完成..

沒想到找了半天還真的找不到! :@ 翻了 MSDN, Microsoft community 等等技術支援網站通通都沒有. 教的都是一堆我覺的拖褲子放屁的作法... 不過是五個固定的選單而以啊...

到最後, 宣告放棄, 妥協了... 我這個功能最後是用這幾行 code 搞定的... ㄨ!!! 本來一行 code 都不想寫的...

 

替 ComboBox 設定初始值的程式碼片段:
   1: comboBox1.DisplayMember = "Value";
   2: comboBox1.ValueMember = "Key";
   3: comboBox1.Items.Add(new KeyValuePair<string, string>("HTML",  "HTML / XML / ASP.NET"));
   4: comboBox1.Items.Add(new KeyValuePair<string, string>("CS",    "C#"));
   5: comboBox1.Items.Add(new KeyValuePair<string, string>("VB",    "Visual Basic.NET"));
   6: comboBox1.Items.Add(new KeyValuePair<string, string>("MSH",   "MSH (PowerShell)"));
   7: comboBox1.Items.Add(new KeyValuePair<string, string>("SQL",   "T-SQL"));
   8: comboBox1.SelectedIndex = 1;

 

哈, 最後這邊收的不大漂亮, 不過不管了, 還好沒幾行. 這個 plugins 需要的就自己抓去用吧, 以後可能會不定時更新. 有啥改進意見可以留話給我, 不過嘛, 當然是有空 & 想改才有動力去開 visual studio .. [H]

 

--
下載: code formatter plugins






Facebook Pages

Edit Post (Pull Request)

Post Directory