This system is formed by the combination of XML and related classes.
The XML file is sharpdevelopcore. Addin (this file is unique once searched)
Related classes are: Core/addins
Logically, sharpdevelop has a plug-in tree addintree, which has many nodes addintreenode. The XML file sharpdevelopcore. Addin is used externally.
Each addin plugin consists of codon and conditional. For example:
<Addin name = "sharpdevelop core"
Author = "Mike"
Copyright = "GPL"
Url = "http://www.icsharpcode.net"
Description = "NCVS core module"
Version = "1.0.0">
<Runtime>
<Import Assembly = "sharpdevelop. Base. dll"/>
<Import Assembly = "csharpparser. dll"/>
</Runtime>
<Extension path = "/sharpdevelop/workbench/ambiences">
<Class id = "Net"
Class = "icsharpcode. sharpdevelop. Services. netambience"/>
<Class id = "CSHARP"
Class = "icsharpcode. sharpdevelop. Services. csharpambience"/>
<Class id = "VB. NET"
Class = "icsharpcode. sharpdevelop. Services. vbambience"/>
</Extension>
</Addin>
Each extension node is a codon object, abstracted as icodon in the program:
The attribute of icodon is the entity ing in XML. The abstractcodon abstract class provides the attribute implementation (the bucket item () method is implemented at the lowest layer)
The bucket item () method is very important and the signature is:
Public override object builditem (Object owner, arraylist subitems, conditionfailedaction action)
Codon generation is completed by codonbuilder and codonfactory.