元素格式(Element Patterns)
大约 2 分钟
元素格式(Element Patterns)
像正则检查一样,插件开发者需要检查PSI元素是否符合特定的结构,所以PSI元素的嵌套结构里设置元素格式 。元素格式在IntelliJ Platform里主要2下面2个应用场景:
当为编程语言实现自动补全功能时,指定补全提示的位置
用 PSI reference contributor 提供的列表为PSI元素提供自动补全选项
插件开发者基本不需要直接实现ElementPattern 接口。推荐使用 IntelliJ Platform 封装好的元素格式类,列表如下:
类 | 功能 | 示例 |
---|---|---|
StandardPatterns | 字符和字符串的格式;and,or,not之类的逻辑操作的格式 | LogbackReferenceContributor RegExpCompletionContributor |
PlatformPatterns | Factory for PSI-, IElement-, and VirtualFile-patterns | FxmlReferencesContributor PyDataclassCompletionContributor |
PsiElementPattern | PSI的父子兄弟格式 | XmlCompletionContributor |
CollectionPattern | 过滤和检查collection的格式;Mainly used to provide functionality for other high-level pattern classes | PsiElementPattern |
TreeElementPattern | 检查PSI tree的结构格式 | PyMetaClassCompletionContributor |
StringPattern | 检查String的格式,长度,beginWith,endWith,one of collection | AbstractGradleCompletionContributor |
CharPattern | 检查字符是空格,数字或java标识符 | CompletionUtil |
Some built-in languages in the IntelliJ Platform implement their own pattern classes and can provide additional examples:
IntelliJ Platform 上构建的编程语言实现了一些格式类,如下:
XmlPatterns 为 XML attributes, values, entities, and texts提供校验格式
PythonPatterns 为 Python中的 literals, strings, arguments, and function/method arguments 提供校验格式
DomPatterns 包装了 XmlPatterns ,为 DOM-API 提供更多格式。
示例
--------省略,需要idea支持新编程语言时才需要
Loading...