idea插件开发-开发属于自己的IDE开发平台
IntelliJ 平台本身并不是一个产品,而是提供了一个用于构建 IDE 的平台。这个平台本身是开源的,源码可从intellij-community源码,任何人都可以使用。但基于此平台开发的软件比如idea、phpStorem可能是收费的。
基于此是可以开发属于自己的idea软件的,最佳实践是修改runIde任务以使用本地安装的targetIDE作为IDE 开发实例。将该属性设置为目标 IDErunIde.ideDir应用程序的(用户特定的)绝对路径,确切的路径格式因操作系统而异。
一、如何开发
build.gradle.kts配置
intellij {//type.set("CUSTOM")// Define IntelliJ Platform against which to build the plugin project.type.set("IU")// Use the IntelliJ Platform BRANCH.BUILD version matching// "targetIDE" (PhpStorm):version.set("192.7142.36") // baseIntelliJPlatformVersion// Require the targetIDE plugin or library. Use the stable version// compatible with intellij.version and intellij.type specified above:plugins.set(listOf("com.jetbrains.php:192.6603.42"))
}runIde {// Absolute path to the installed targetIDE to use as IDE Development// Instance (the "Contents" directory is macOS specific):ideDir.set(file("/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/PhpStorm/ch-0/192.7142.41/PhpStorm.app/Contents"))
}
配置plugin.xml
使用特定于目标产品的功能 (API) 时,必须声明对目标产品模块的依赖性,比如以PhpStorm 开发插件,就需要如下配置:
声明模块依赖
<!-- Targeting PhpStorm, so is dependent on the PHP plugin -->
<depends>com.jetbrains.php</depends>
<depends>com.intellij.modules.platform</depends>
兼容可用列表如下:
Module for <depends> Element |
Functionality |
---|---|
|
Messaging, Themes, UI Components, Files, Documents, Actions, Components, Services, Extensions, Editors |
|
File Type, Lexer, Parser, Highlighting, References, Code Completion, Find, Rename, Formatter, Code Navigation |
|
XML, XML DOM, XSD/DTD, DOM Model |
|
VCS Revision Numbers, File Status, Change Lists, File History, Annotations |
|
Debug Session, Stack Frames, Break Points, Source Positions, Memory Views, Tracked Instances |
有针对性的兼容列表如下:
Module or Plugin for <depends> Element |
Functionality |
Product Compatibility |
---|---|---|
See Java below. |
Java language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework |
IntelliJ IDEA, Android Studio |
|
Android SDK Platform, Build Tools, Platform Tools, SDK Tools |
Android Studio |
|
C, C++, Objective-C/C++ language PSI Model, Swift/Objective-C Interaction, Inspections, Intentions, Completion, Refactoring, Test Framework |
AppCode, CLion |
|
Debugger Watches, Evaluations, Breakpoints, Inline Debugging |
AppCode, CLion, RubyMine |
See AppCode/CLion below. |
Xcode Project Model, CocoaPods, Core Data Objects, Device & Simulator Support |
AppCode |
See AppCode/CLion below. |
CMake, Profiler, Embedded Development, Remote Development, Remote Debug, Disassembly |
CLion |
|
Native Debugger Integration, Utility Classes, C/C++ Project Model/Workspace Support (OCWorkspace, CidrWorkspace, etc.), C/C++ Build and Run Support |
AppCode, CLion |
|
Database Tools and SQL language PSI Model, Inspections, Completion, Refactoring, Queries |
DataGrip, IntelliJ IDEA Ultimate, AppCode, PhpStorm, PyCharm Professional, RubyMine, CLion, GoLand, Rider, and WebStorm if the Database Tools and SQL plugin is installed. |
|
Go language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework |
GoLand |
|
Python language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework |
PyCharm, and other products if the Python plugin is installed. |
|
Connection to ReSharper Process in Background |
Rider |
|
Ruby language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework |
RubyMine, and IntelliJ IDEA Ultimate if the Ruby plugin is installed. |
|
Licensing |
All commercial IDEs (IntelliJ IDEA Ultimate, PhpStorm, DataGrip, ...) |
|
Swift language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework |
AppCode, CLion |
|
PHP language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework |
PhpStorm, and other products if the PHP plugin is installed. |
|
JavaScript language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework |
WebStorm, and other products if the JavaScript plugin is installed. |
Intellij platform所有公开的扩展点
- IDEA平台提供:IntelliJ Platform Extension Point and Listener List
- 开源插件提供:Open Source Plugins Extension Point and Listener List
- Spring插件提供:Spring API Extension Point and Listener List
idea插件开发-开发属于自己的IDE开发平台相关推荐
- 天猫精灵 python_利用天猫精灵控制ESP8266(NodeMCU开发板)arduino ide开发
第一 下载demo例程 下载地址: 点击下载 本demo 是利用arduino IDE开发,关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转 第二 修改demo例程 需 ...
- Java SE 9:使用Eclipse和IntelliJ IDEA IDE开发和测试HelloWorld模块(第4部分)
I have already discuss about "Java Module System" Basics in my previous posts. I'm going t ...
- 3000门徒内部训练绝密视频(泄密版)第8课:彻底实战详解使用IDE开发Spark程序
彻底实战详解使用IDE开发Spark程序 使用IDE开发Spark分析 使用IDE开发Spark实战 使用IDE开发Spark的Local和Cluster 开发两种选择:IDEA.Eclipse 下载 ...
- 使用NetBeans IDE开发C程序
使用NetBeans IDE开发C程序 在windows下开发调试linux环境的代码,同时还可以拷贝到Linux环境. 其实是NetBeans可以连接到远程Linux服务器,使用其中的GNU编译环境 ...
- 搭建Cocos Code IDE开发环境
搭建Cocos Code IDE开发环境 Cocos Code IDE是Cocos2d-x团队开发的,用于开发Cocos2d-JS和Cocos2d-x Lua绑定的游戏工具,它是基于Eclipse[ ...
- 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序...
GitHub:https://github.com/iccb1013/Sheng.Winform.IDE SailingEase WinForm Framework WinForm开发框架开发手册:h ...
- qt creator:一款能够在windows/linux/mac系统上开发c程序的IDE
qt creator:一款能够在windows/linux/mac系统上开发c程序的IDE 下面是下载地址:http://download.qt.io/official_releases/qtcrea ...
- 【软件使用】Windows下的Objective-C集成开发环境搭建(IDE)
Objective-C是苹果软件的编程语言,想要上机学习.调试,有一个集成开发环境(IDE)方便很多.有三类方法搭建Objective-C的集成开发环境: 1) 使用苹果的平台,集成开发环境使用X ...
- VS2019正确创建C++步骤以及扩展插件美化你的VS2019的IDE开发环境
使用扩展插件来美化你的IDE开发环境 前言 vs2019创建c++的步骤 1.错误分析 2.解决方法 拓展插件 附件 结语 前言 在安装了Visual Studio 2019社区版后,有的小伙伴会觉得 ...
最新文章
- 工业4.0技术路线图 - OPC UA
- UNIX环境高级编程 文件I/O
- centos7配置haproxy
- windows10 python2.7 opencv3
- python 写txt 换行_python中写入txt文件需要换行,以及\r 和\n
- hive数据去重测试
- 研究生小菜简谈“如何做研究”
- python 数据文件上传到ftp服务器
- ubuntu SecureCRT 下载并破解
- 我的世界java边境之地_我的世界边境之地是否存在 我的世界边境之地大揭秘
- EditPlus 5.0 激活+汉化
- python 调用easydl接口
- 数据分析笔记--matplotlib(五)绘制条形图
- 【CN精品系统】《 Ghost_Win7 SP1 电脑公司通用版 v4.0 》 装机版
- USB学习笔记(5)STM32 USB库移植步骤
- oracle闪回能保存多长时间,Oracle闪回
- flash版vista主题RealVista Desktop Mobile for s60v3
- steam一直显示更新登陆不上服务器失败,steam上WARFRAME一直登不上去,随后显示更新失败, 此更新将在短期内重启,之前玩都还好好的...
- 内网安全:Cobalt Strike 工具 渗透多层内网主机.(正向 || 反向)
- css中的定位以及绝对定位和相对定位的区别