CodeLite Plugin Internal(2)-Load: 插件加载分析

hat_dll_load 上回书说到接口和众插件之间的关系,这里讲讲插件加载的过程。加载点在系统初始化时Framezhong 调用,上次也说过。这里主要是从PluginManager::Load() 说起。首先读取插件配置文件 config/plugins.xml,并将信息保存到std::map<wxString, PluginInfo> m_pluginsInfo中,这个成员m_pluginsInfo是属于PluginManager,这个map保存了插件名称和Pluginfo的映射关系。接着TagManagerST和LanguageST互相赋值。

现在进入重点循环,针对插件目录下的每个.dll/.so文件,会进行1)加载动态库;2)读插件信息;3)加载插件;4)调用插件相关创建toolbar和menu的函数。下面一一详述:

Continue reading CodeLite Plugin Internal(2)-Load: 插件加载分析 - 全文阅读

CodeLite Plugin Internal(1) – IPlugin interface

icosahedronFeather 所有的CodeLite插件都以动态库的形式(.dll or .so)保存在/plugins下,通过程序初始化时调用Frame::LoadPlugins加载[CodeLite的初始化分析在另外一篇文章中已有详述,请在ide.cbforge.com站内参阅]。插件相关的配置保存在/config/plugins.xml文件。文件为XML格式,每一插件项都保存有以下几项:SerializedObject Name, Name,Author,Description and Version。关于插件的实现我们会分几篇文章分析,这个第一篇主要关注接口的实现。

is the interface that defines a for CodeLite. Each must implement the pure virtual methods of this interface. The gains access to CodeLite data by using the m_mgr member.

Continue reading CodeLite Plugin Internal(1) – IPlugin interface - 全文阅读

Contact us

Admin: Bryan Wu