關於SharpDevelop代碼分析的文章

前 言

最近在網上有很多關於SharpDevelop代碼分析的文章,但對SharpDevelop插件和核心服務開發的文章確很少。這份文檔我想應該會對大家有幫助。爲了不浪費大家的時間和網絡流量,我不打算給大家講SharpDevelop的基本概念和內部的代碼分析。各位可以參閱清華大學出版的一本紅皮書《C#軟件項目開發全程剖析-全面透視SharpDevelop軟件的開發內幕》(我真的不是清華的書託J),雖然翻譯的一般、但有總比沒有的好,各位也可以參閱博客園(www.cnblogs.com)另外幾位的文章,其中古月春秋的《SharpDevelop代碼分析》系列是個人認爲寫的很不錯的,很見作者的功底。(題外話:古月春秋的文章中提到了對codon的翻譯的問題,英文中電子、中子、光子、質子分別譯爲electron neutronphotonproton,此處大家會對-on後綴發出會心的微笑。Codon翻譯成“代碼子”意思應該是很到位的,清華那本書中的“密碼子”就遜色些了,但也還將就。)

這文章大家可以任意閱讀轉載,但請保持文檔的完整轉載。由於在工作的中午休息期間所寫,十分匆忙,難免有勿,請各位斧正。

爲了方便起見,我在文章中都把SharpDevelop簡稱爲SD

 

第一章    Pad

                     Pad(面板)就是SD中的停靠窗口。有這些特點:Pad不能關閉,但可以隱藏或顯示。每種類型的Pad只能打開一個,不能在運行時添加,標題唯一。可以顯示圖標,由SD中的佈局管理器負責管理。通常不顯示文件內容,而是輔助用戶完成任務。

下面進入我們的實戰流程,先新建一個類庫型的項目,命名爲CSPadDemoPlug,把Class1.cs改名爲Main.cs,修改爲如下內容:

 

 1

using System;

 2

using System.Drawing;

 3

using System.Windows.Forms;

 4

 5

using ICSharpCode.SharpDevelop.Gui;

 6

 7

namespace SDPadDemoPlug

 8

{

 9

    public

 

class SDPad : AbstractPadContent

10

    

{

11

        SDPadControl control=new SDPadControl();

12

        public SDPad(): base("TestPanel")

13

        

{

14

        }

15

16

        public

 

override Control Control 

17

        

{

18

            get

 

19

            

{

20

                return

 

this.control;

21

            }

22

        }        

23

24

    }

25

}

26

記得要在項目中加入SD中的ICSharpCode.Core.dllSharpDevelop.Base.dll引用。這兩個文件在SD下的Bin目錄下。寫SD的插件需要包含。

 

     在項目中添加新建項à用戶控件。改名爲CSPadControl各位可以在CSPadControl上添加一些相關的內容。

 

     在工程中添加一個DemoPlug.addin文件,這是插件配置文件,很重要,內容如下:

 

<AddIn name        = "SharpDevelop Plug Demo"

       author      = "SongYuanWu"

       copyright   = "GPL"

       url         = "http://www.cnblogs.com/CBuilder"

       description = "SharpDevelop "

       version     = "1.0.0">

    

    <Runtime>

        <Import assembly="SDPadDemo.dll"/>

    </Runtime>

    <Extension path = "/SharpDevelop/Workbench/Views">

        <Class id    = "SDPadDemo"

 

              class = "SDPadDemoPlug.SDPad"/>

    </Extension>

</AddIn>

       OK!把編譯後的SDPadDemo.dllDemoPlug.addin文件拷貝到SD/AddIns/目錄下,運行SD就可以看到我們創建的Pad了(如下圖),同時在SD的菜單【查看】-【工具】下也出現了TestPanel菜單項。

如果需要指定pad的圖標時,可以改更改base("TestPanel") base("TestPanel", "IconID")

InconID爲圖標的資源號,作爲演示你可以用Class的圖標“Icons.16x16.Class”來替代。

 

要點分析:

       製作Pad的時候要從AbstractPadContent繼承。所以要using ICSharpCode.SharpDevelop.Gui;

     .addin文件中不要用中文,否則會出現錯誤,那如果需要用到中文怎麼辦呢?可以使用SD的字符串分析服務,把字符串改爲如下形式${res:StringID},StringIDSD中的資源IDSDResourceService的使用,我將會在後面的內容中講述。

 

源文檔 <http://cbuilder.cnblogs.com/archive/2005/08/06/209046.aspx>

 

 
發佈了3 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章