第1章 功能简介 1
1.1 SharpDevelop的设计理念 1
1.2 SharpDevelop软件要求 2
1.3 SharpDevelop的面板和视图 2
1.4 SharpDevelop的局限性 5
1.5 定制SharpDevelop 5
1.5.1 国际化支持 5
1.5.2 定义外观 6
1.6 定制编码 7
1.6.1 使用模板 7
1.6.2 语法醒目显示 7
1.6.3 代码自动完成和方法识别 7
1.6.4 书签 8
1.6.5 查找和替换功能 9
1.6.6 编译代码 9
1.7 管理项目 9
1.7.1 项目组和项目 10
1.7.2 项目导航 10
1.8 创建Windows Forms 11
1.8.1 向Windows Forms添加控件 11
1.8.2 控件的属性和格式 11
1.9 小结 12
第2章 体系结构设计 13
2.1 体系结构设计决策史 13
2.1.1 开发早期 13
2.1.2 用SharpDevelop进行SharpDevelop开发 13
2.1.3 更正错误的设计决策 15
2.2 设计决策 16
2.3 最佳惯例 19
2.3.1 设计模式 19
2.3.2 编码样式指导原则 27
2.3.3 故障跟踪和测试 28
2.3.4 屡次重构 30
2.4 小结 36
第3章 实现核心功能 37
3.1 AddIn树 37
3.1.1 使用AddIn树的优点 38
3.1.2 AddIn树的上层结构 41
3.1.3 插件定义 42
3.1.4 从树节点到运行对象 45
3.1.5 创建密码子 47
3.1.6 条件 49
3.2 插件管理 50
3.3 SharpDevelop的属性管理 54
3.3.1 IXmlConvertable接口的开发理念 55
3.3.2 IProperties接口简介 56
3.3.3 默认实现方式 57
3.3.4 属性的作用 59
3.3.5 属性的持久性 60
3.4 小结 63
第4章 用插件创建应用程序 64
4.1 使用密码子 64
4.1.1 ICommand接口 65
4.1.2 激活菜单 68
4.1.3 密码子简介 75
4.2 通过条件接合插件 78
4.2.1 条件结构 78
4.2.2 定义条件 80
4.2.3 可用条件简介 81
4.3 小结 86
第5章 通过工作区服务提供功能 87
5.1 实现考虑事项 87
5.1.1 对服务的要求 87
5.1.2 ServiceManager类 88
5.1.3 定义服务 91
5.2 服务中的通用服务 91
5.2.1 文件实用程序服务 92
5.2.2 属性服务 97
5.2.3 资源服务 98
5.2.4 字符串分析器服务 98
5.2.5 环境服务 99
5.2.6 类浏览器图标服务 102
5.2.7 文件服务 103
5.2.8 项目服务 104
5.2.9 分析器服务 109
5.2.10 其他服务 110
5.3 小结 110
第6章 用户界面 111
6.1 显示管理工具 111
6.1.1 工作台窗口 112
6.1.2 视图 113
6.1.3 面板 115
6.1.4 视图和面板的应用——一个集成的HTML帮助查看器 116
6.1.5 布局管理器 128
6.2 当前和未来的实现方式 142
6.3 小结 143
第7章 国际化 144
7.1 在SharpDevelop中处理国际化 145
7.1.1 重绘事件 147
7.1.2 资源访问 150
7.2 管理转换 154
7.2.1 转换Web应用程序 155
7.2.2 编译为资源文件 156
7.3 小结 160
第8章 文档管理 161
8.1 文本表示 161
8.1.1 基本顺序数据结构 161
8.1.2 间隙缓冲区方法 164
8.1.3 未来的数据表示结构——接合表 169
8.2 行的表示 170
8.3 插入符和选择管理 177
8.4 文本模型 182
8.5 内容组合 184
8.6 小结 188
第9章 语法醒目显示 189
9.1 语法醒目显示定义 189
9.1.1 增强XML使用的便捷性 190
9.1.2 实现语法醒目显示 195
9.2 小结 203
第10章 查找和替换 204
10.1 查找策略 204
10.2 深入分析查找和替换 218
10.2.1 基本的查找和替换实现 219
10.2.2 使用算法 222
10.2.3 通配符查找策略 227
10.3 小结 231
第11章 编写编辑器控件 232
11.1 编辑器简介 232
11.2 TextArea控件 233
11.2.1 理论 234
11.2.2 开始构建编辑器控件 234
11.2.3 事件处理 241
11.2.4 更新 245
11.3 TextAreaPainter 248
11.4 鼠标管理 254
11.5 折叠 255
11.6 SharpPad 256
11.7 小结 258
第12章 编写分析器 259
12.1 分析器需求 259
12.2 分析器和语言原理 259
12.3 SharpDevelop分析器 265
12.3.1 设计决策 265
12.3.2 实现 265
12.4 小结 296
第13章 代码自动完成以及方法识别 297
13.1 分解内容 297
13.2 代码自动完成 308
13.3 方法识别 327
13.4 小结 337
第14章 利用类搜索和程序集搜索导航代码 338
14.1 类搜索 338
14.2 程序集搜索 353
14.2.1 使用程序集搜索浏览引用 353
14.2.2 编写程序集搜索 355
14.3 小结 384
第15章 设计器基础结构 385
15.1 窗体设计器概述 385
15.1.1 实现考虑 386
15.1.2 设计概述 386
15.2 .NET组件模型 388
15.2.1 服务接口 389
15.2.2 .NET设计器 390
15.2.3 根设计器 391
15.3 设计器主机实现 392
15.3.1 设计器主机服务 402
15.3.2 设计面板 405
15.4 小结 406
第16章 实现Windows Forms设计器 407
16.1 设计器服务 407
16.1.1 工具箱服务 407
16.1.2 菜单命令服务 411
16.1.3 选取服务 420
16.1.4 其他重要服务 425
16.2 小结 433
第17章 代码生成 434
17.1 永久保存组件 434
17.1.1 XML窗体永久格式 434
17.1.2 生成XML 436
17.1.3 加载XML 439
17.1.4 设计器串行化服务 443
17.2 生成C#/VB.NET代码 445
17.3 回递 455
17.4 小结 467