AuthoringSink 类
该分析器用于此类收集分析的数据源的信息。
此 API 不兼容 CLS。
继承层次结构
System.Object
Microsoft.VisualStudio.Package.AuthoringSink
命名空间: Microsoft.VisualStudio.Package
程序集: Microsoft.VisualStudio.Package.LanguageService.9.0(在 Microsoft.VisualStudio.Package.LanguageService.9.0.dll 中)
Microsoft.VisualStudio.Package.LanguageService(在 Microsoft.VisualStudio.Package.LanguageService.dll 中)
Microsoft.VisualStudio.Package.LanguageService.11.0(在 Microsoft.VisualStudio.Package.LanguageService.11.0.dll 中)
Microsoft.VisualStudio.Package.LanguageService.10.0(在 Microsoft.VisualStudio.Package.LanguageService.10.0.dll 中)
语法
声明
<CLSCompliantAttribute(False)> _
Public Class AuthoringSink
[CLSCompliantAttribute(false)]
public class AuthoringSink
AuthoringSink 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
AuthoringSink | 初始化 AuthoringSink 类。 |
页首
属性
名称 | 说明 | |
---|---|---|
BraceMatching | 指示括号匹配是否应为分析操作完成。 | |
Column | 将列分析开动。 | |
FindNames | 指示标识符是否将查找。 | |
FoundMatchingBrace | 跟踪,如果相对大括号被添加到内部列表。 | |
HiddenRegions | 指示是否应在分析操作时被隐藏的区域。 | |
Line | 返回分析操作开头的行。 | |
MethodParameters | 指示是否在分析操作时处理方法参数。 | |
ProcessHiddenRegions | 指示是否更新隐藏的区域。 | |
Reason | 返回分析操作开始的原因。 |
页首
方法
名称 | 说明 | |
---|---|---|
AddError | 添加在分析消息的错误最新报告的。 | |
AddHiddenRegion(NewHiddenRegion) | 向内部隐藏的区域的指定 NewHiddenRegion 对象的列表。 | |
AddHiddenRegion(TextSpan) | 添加新的隐藏区域到内部列表基于特定 TextSpan 对象。 | |
AddHiddenRegion(TextSpan, String) | ||
AutoExpression | 添加表达式的大小到内部列表。 | |
CodeSpan | 这将可执行代码大小到内部列表。 | |
EndParameters | 指示调用方法的末尾的参数列表。 | |
Equals | 确定指定的对象是否等于当前对象。 (继承自 Object。) | |
Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) | |
GetHashCode | 用作特定类型的哈希函数。 (继承自 Object。) | |
GetType | 获取当前实例的 Type。 (继承自 Object。) | |
MatchMultiple | ||
MatchPair | 调用将两个匹配的元素的大小内部的列表。 | |
MatchTriple | 调用将与设置三个元素内部列表。 | |
MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) | |
NextParameter | 调用,在分析方法时参数和参数,分隔符分析。 | |
QualifyName | 调用注意成员的位置引用。 | |
StartName | 调用,如果标识符分析。 | |
StartParameters | 调用方法开始参数列表。 | |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
页首
备注
该分析器广泛使用此类的实例化帮助确保具有以下特点的各种语言元素:
错误报告。
括号匹配。
IntelliSense 成员选择,完成单词、快速信息和方法提示。
隐藏的区域。
汽车 窗口的内容的管理在调试器中。
断点验证。
基类为所有,除前两个功能的支持。
错误
基类使用调用 errors 的内部 ArrayList 包含在分析期间找到的错误。此列表显示在完整的分析操作结束时通过将每个错误消息转换为通过调用 CreateErrorTaskItem 并将其添加任务列表项 错误表 任务。这些错误在源文件还显示为错误的代码下的曲线。这是通过 MPF 类自动处理。AuthoringSink 类构造函数带有指定的最大错误数可由类保留的参数。
括号匹配
基类使用调用 Braces 的内部 ArrayList 包含相对语言元素 (如 “{”和 “} ") 和匹配的三倍 (如 “for()”, “{”和 “}")。,在调用 TripleMatch 的派生类添加第三个语言元素时,有关调用 BraceMatch 的基类为使用相对。调用 MatchPair 和 MatchTriple 方法执行,仅当分析的原因是与大括号时 (请参见 BraceMatching 属性有关具体原因的详细信息)。为 BraceMatch 的说明 MatchPair参见的 " 示例 " 部分。 TripleMatch 类的声明类别和查看 MatchTriple的 " 示例 " 部分。
IntelliSense
IntelliSense 具有可由语言服务支持至少有四个不同的架构。这些是:
成员选项:此选项在用户类型之后为当前范围提供成员列表,通常会提供的特定字符。例如,在中,如果用户输入按照中的变量名 “”。然后是成员为该变量的类型列表中选择显示。
完成单词:此选项可能存在的完成列表用户所输入的单词的。
快速信息:此选项提供有关标识符的信息。将触发悬停在该标识符的用户鼠标光标或通过确定编辑器插入符号位于标识符并选择 快速信息 从 IntelliSense 菜单。
方法提示:此选项存在参数信息帮助用户,在输入方法及其参数时。显示演示一种可能方法的几个重载形式工具提示与参数。由于用户输入每个参数,更新工具提示显示类型化的参数。
所有这些模式由方法 StartName 支持,并且 QualifyName 和内部列表 MethodCalls、 Names和 SourceLocations。,对其进行分析,MethodCalls 用于跟踪方法签名。Names 和 SourceLocations 用于跟踪方法参数,在分析方法时参数列表。请注意,在 Names 的每个名称的列表,在 SourceLocations 中的相应 TextSpan 对象的列表。
隐藏的区域
隐藏区域是可以从视图可以选择是隐藏由用户代码的一部分。这些区域通常用作一部分进行概述了支持每个方法和类可以折叠到单个行的位置,使整个类结构更清晰。某些语言通过特殊关键字支持特定隐藏的区域。例如, C# 使用 #region/#endregion 带用户通常希望隐藏的区域。一个隐藏区域为 NewHiddenRegion 对象被包装在调用 hiddenRegions的内部数组又存储的 TextSpan 对象表示的。隐藏的区域通过调用 AddHiddenRegion添加。
Autos
在调试时, 汽车 窗口可以显示所有局部变量和参数可在堆栈帧的特定范围。在分析过程中,语言服务可以通过定位它们支持这些变量。允许 汽车 窗口会动态更新,当在调试期间。基类 AuthoringSink 不支持汽车,因此必须从 AuthoringSink 类派生类并实现 AutoExpression 方法。
断点验证
在放置断点时,断点位置进行验证,直到实际调试开始和调试引擎加载的。如果语言服务支持标识可以将断点代码中的有效部分,则此信息可用于验证断点的位置,而不加载调试引擎。请注意调试引擎始终是最终法官验证时,断点位置,但语言服务可以提供快速反馈给用户。基类 AuthoringSink 不支持断点验证,因此必须从 AuthoringSink 类派生类并实现 CodeSpan 方法。
对实现者的说明
如果语言服务支持在 汽车 窗口的表达式或代码范围的验证断点,需要从 AuthoringSink 类派生类并重写相应的方法 (AutoExpression 和 CodeSpan)。然后重写在 Source 类的 CreateAuthoringSink 方法实例化 AuthoringSink 类的版本。,在分析操作中调用为时, AuthoringSink 类实例化。
对调用者的说明
此类在 Source 类以处理括号匹配, IntelliSense 和报告错误的若干位置访问。
提示:在实现类从 AuthoringScope派生的,请添加字段以类存储为 ParseRequest 对象创建的 AuthoringSink 对象。这样, AuthoringScope 对象可以访问 AuthoringSink 对象中存储的所有信息。
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。