前端人开发intellij插件,一边哭一边学java…
API
PSI
PSI
(Program Structure Interface) 文件是表示一个文件的内容作为在一个特定的编程语言元素的层次结构的结构的根。
PsiFile 类是所有PSI文件共同的基类, 在特定语言中的文件通常使用它的子类表示。比如,PsiJavaFile 类表示一个java文件, XmlFile 类表示xml文件。
和 VirtualFile
以及 Document
的应用作用域不同(即使打开多个projects,仍然只有一个对应的实例),PSI的作用域是项目级(多个projects中同时打开同一个文件,会有多个实例)。
如何获取PSI文件?
e.getData(PlatformDataKeys.VIRTUAL_FILE)
,如果是多选,使用e.getData(PlatformDataKeys.VIRTUAL_FILE_ARRAY)LocalFileSystem.getInstance().findFileByIoFile()
psiFile.getVirtualFile()
,如果PSI FILE仅存在内存中,则返回空FileDocumentManager.getInstance().getFile()
监听文件改变
PsiTreeChangeListener
BulkFileListener 批量文件监听
1.添加
1 | beforeChildrenChange |
2.删除
1 | beforeChildrenChange |
3.修改名称
propertyChanged
childrenChanged
1 | System.out.println("------"+e.getPropertyName()); |
1 | <psi.treeChangeListener implementation="com.theblind.test5"/> |
监听文件打开
FileEditorManagerListener
1 | <projectListeners> |
配置
右键菜单
1 | <!-- plugin.xml --> |
tools工具栏
1 | <!-- plugin.xml --> |
快捷键
1 | <!-- plugin.xml --> |
action分组
1 | <actions> |
获取选中文本
1 | public class PopupAction extends AnAction { |
用户选择文档生成目录
1 | createBtn.addActionListener(new ActionListener() { |
行标记
1 | <extensions defaultExtensionNs="com.intellij"> |
1 | public class HaloLineMarker implements LineMarkerProvider { |
生成文档
1 | public interface Processor{ |
粘贴
1 | CopyPasteManager.getInstance().setContents(new StringSelection(xml)); |
界面
下拉框
1 | private JComboBox<SelectedTypeModel> kind; |
通知
1 | NotificationGroup notificationGroup = new NotificationGroup("testid", NotificationDisplayType.BALLOON, false); |
非模态框式通知
1 | NotificationGroup notificationGroup = new NotificationGroup("notificationGroup", NotificationDisplayType.BALLOON, true); |
高版本不兼容NotificationGroup 直接采用 new Notification
1 | Notification notification = new Notification("PNGroup", "Private Notes Message", content, type); |
其中,NotificationDisplayType
可以是以下几种:
NONE
:无弹框,不展示BALLOON
:自动消失STICKY_BALLOON
:用户点击关闭按钮消失TOOL_WINDOW
:实例效果同STICKY_BALLOON
Toast
1 | import com.intellij.openapi.project.Project; |
持久化
ApplicationSettingsConfigurable
是settins配置页面
1 | <!-- plugin.xml --> |
1 | // ConfigPersistence |
1 | public class MyPersistenceConfiguration { |
实战
开发了一个idea 小插件,可以在编辑器里面输入yapi文档接口详情的链接自动生成所需要的请求体ts类型或者返回数据的ts类型,提高前端开发者的工具效率。
安装
Using IDE built-in plugin system:
Settings/Preferences > Plugins > Marketplace > Search for "yapi2ts" >
Install Plugin
使用前注意
!!!务必先配置项目token: settings -> tools -> yapi2ts
使用
配置yapi文档项目的token
在需要生成类型文件的js/ts/jsx/tsx文件中打开tools -> yapi2ts 或者 右键文件打开菜单,选中yapi2ts打开工具弹窗
输入接口详情链接地址,选择生成请求体类型还是返回数据类型
- 本文链接:https://cong1223.github.io/2021/11/15/webstorm%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub IssuesGitHub Discussions