SharpDevelop浅析extEditor自动完成、代码折叠

SharpDevelop浅析extEditor自动完成、代码折叠

ID:37906049

大小:171.00 KB

页数:5页

时间:2019-06-02

SharpDevelop浅析extEditor自动完成、代码折叠_第1页
SharpDevelop浅析extEditor自动完成、代码折叠_第2页
SharpDevelop浅析extEditor自动完成、代码折叠_第3页
SharpDevelop浅析extEditor自动完成、代码折叠_第4页
SharpDevelop浅析extEditor自动完成、代码折叠_第5页
资源描述:

《SharpDevelop浅析extEditor自动完成、代码折叠》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SharpDevelop浅析_4_TextEditor_自动完成、代码折叠……Parser及其应用:CodeCompletion,MethodInsight,ClassScout...1、Demo界面及功能解释2、Parser实现概述3、Parser应用:MouseHoverTooltip4、Parser应用:CodeCompletion&MethodInsight5、Parser应用:QuickClassBrowserPanel6、Parser应用:Folding7、总结Demo下载1、Demo界面及功能解释启动并打开任一.cs文件后,界面如下:自动

2、完成界面如下:可见新增功能如下(仅支持.cs文件):a,鼠标停留在方法、属性等位置时,会显示出相关的文档描述tooltipb,输入时支持自动完成c,编辑窗口顶部有类列表和成员(方法、变量等)列表下拉框用以快速浏览、定位d,编辑窗口左侧有折叠线用以方法、类等的代码折叠相应的Demo工程中新增项目如下:a,SharpEditor:  包含扩展TextEditor的控件,Dom结构,ParserService,自动完成功能代码等b,NRefactor:   代码解析功能c,CSharpBinding:对应.cs文件的具体实现支持[题外话]: 关于代码解析(P

3、arser)相关的代码,我没看懂,所以在这里只说个大概,更多地谈谈Parser的使用;抛砖引玉,希望有相关经验的网友提供详尽的分析。前两周工作上的项目实施,每天都搞得比较累,所以这篇文章到现在才写了出来,明天是大年三十了,这个系列的文章也只剩下一篇WindowsFormDesigner,只能等过了年再放上来喽。另外,这个系列写完后,暂不打算深究一些没明白的细节,接下来想看下osworkflow或CommunityServer...2、Parser实现概述(1)首先,SharpEditor项目中的Dom下定义了以下重要类:a,IDecoration及其子

4、类:  代码表现的辅助对象,如IClass,IMethod,IProperty等b,ResolveResult及其子类:分析结果对象,如MethodResolveResult,TypeResolveResult等c,其它重要类:          IExpressionFinder,IParser,IResolve,ICompilationUnit等(2)重要服务类:ParserService:  提供GetExpressionFinder(),Resolve(),ParseFile()等重要方法,相关重要类:ProjectContentRegistr

5、y,DefaultProjectContent,ReflectionProjectContent等AmbienceService:提供IAmbience的实现类用以将分析结果转换为相应的字符描述(3)Parser分析步骤:以鼠标悬浮的Tooltip显示为例:DebuggerService根据文件类型返回对应的IExpressionFinder实现类,再根据鼠标位置找到并返回ExpressionResult对象,然后找到适当的IResolver实现类调用Resolve()方法返回结果ResolveResult对象,最后由相应的IAmbience实现类转换

6、成结果字符,并调用e.ShowToolTip(toolTipText);显示。(4)对于.NET默认类库的分析转换:默认引进的命名空间的类结构和文档说明一般可以在"C:WINDOWSMicrosoft.NETFrameworkv2.0.50727"目录下找到(如System.dll和System.xml),但是如果每次都要重新分析dll代码结构和xml注释显然是比较花费时间的,于是SharpDevelop采用的方式是将分析过的数据(Dom下的类结构表示数据?,二进制的.dat文件)存储到"C:DocumentsandSettingsmic

7、haelLocalSettingsTempSharpDevelop"下,代码结构存储到DomCacheDebug目录下,文档注释存储到DocumentationCacheDebug目录下。首先在ParserService的CreateDefaultProjectContent()中加载默认命名空间的引用:CreateDefaultProjectContent()其中ProjectContentRegistry的GetProjectContentForReference()方法如下:GetProjectContentForReference()可以

8、看到DomPersistence类的作用即在加载或保存dll的代码结构数据,如果尚未有分析过的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。