Idea Plugin Dev-18-01-Custom Language Support
Custom Language Support
IntelliJ Platform 是一个强大的平台,用于构建针对任何语言的开发工具。
大多数 IDE 功能由语言无关(由平台提供)和语言特定部分组成。
支持一种新语言的特定功能可以通过少量的努力来实现:插件必须只实现特定于语言的部分。
参考
文档的这一部分解释了语言 API 的主要概念,并指导您完成开发自定义语言插件通常需要的一系列...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-17-01-Testing Overview
Testing Overview
IntelliJ 平台代码库中的大多数测试都是模型级功能测试。
这意味着以下内容:
测试在无头环境中运行,该环境对大多数组件(许多 UI 组件除外)使用实际生产实现。
这些测试通常将功能作为一个整体进行测试,而不是对构成其实现的各个功能进行测试。
这些测试不测试 Swing UI,而是直接使用底层模型(另请参阅 UI 测试)。
大多数测试将一个源...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-16-04-Build System
外部构建流程工作流程
当用户调用涉及执行外部构建(Make、Build Artifacts 等)的操作时,会发生以下步骤:
编译前任务在 IDE 进程中执行。
一些依赖于 PSI 的源代码生成任务(例如,UI 设计器表单到源代码编译)在 IDE 进程中执行。
调用 BuildTargetScopeProvider 扩展来计算外部构建的范围(根据要进行的目标模块和已知的更改集进行编译的...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-16-03-Project View
装饰项目视图节点-Decorating Project View Nodes
插件作者可以修改项目视图中节点的表示。
例如,这用于更改模块节点的图标以反映模块类型或将 URL 和服务器路径添加到 Python Jupyter 目录作为位置字符串。
要修改项目视图节点表示,请实施 ProjectViewNodeDecorator 并将其注册为 com.intellij.projectVi...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-16-02-Analyzing
Syntax Errors
IntelliJ 平台提供了一种用于分析 PSI 树和突出显示开箱即用的语法错误的机制。
在构建代码的 PSI 树时,解析器会尝试根据语言语法使用标记。
当它遇到语法错误时,如意外标记,将创建一个 PsiErrorElement 并将其添加到 PSI 树中,并附上适当的错误描述。
在代码分析守护进程中,IDE 访问树中的每个 PSI 元素,当遇到 PsiE...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-15-01-PsiMethod 中进一步学习
详细介绍一下 PsiCodeBlock
PsiCodeBlock 是 IDEA 插件开发中的一个接口,表示 Java 代码中的代码块,即由大括号 {} 包围的一组语句。
它是 PsiElement 接口的子接口之一,用于表示方法、构造函数、初始化块等中的代码块。
PsiCodeBlock 接口提供了许多方法来访问和处理代码块中的语句和元素。以下是一些常用的方法:
PsiCode...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-16-01-Editing
Postfix Completion
Postfix Completion 功能允许开发人员通过在要包装、扩展或修改的表达式后键入模板缩写来使用预定义模板包装代码片段。
它使开发人员免于键入重复或重要的代码,或者有助于更快地创建代码,例如,编写代码部分并用所需的块将其包围而不向后导航插入符号通常很方便。
考虑这样一种情况,开发人员对当前的 Java 项目 API 不是很熟悉,并且不知道...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-15-08-spi IntelliJ IDEA 插件开发指南
进入插件世界
类别
插件主要分为如下几类:
UI Themes(UI主题)
Custom language support (自定义编程语言支持,如Kotlin)
Framework integration (框架集成,例如Spring,T插件正属于此类)
Tool integration (工具集成,如Maven、Gradle、Git)
User interface add-ons ...
2017-10-13 02:24:52 |
Java