Skip to content

iFlyCode plugin.xml 完整注册表分析

版本: 3.4.2-222 插件 ID: com.iflytek插件名称: iFlyCode 供应商: Anhui Zhuojian Technology Co., Ltd 最低 IDE 版本: 222.3345.118 (2022.2+) 资源 Bundle: messages.BasicActionsBundle


1. 依赖声明

依赖模块可选配置文件说明
com.intellij.modules.platform平台基础模块
com.intellij.modules.lang语言基础模块
Git4IdeaGit 集成
com.intellij.modules.javacode-java.xmlJava 支持
com.intellij.modules.pythoncode-python.xmlPython 支持
com.intellij.modules.webstormcode-javascript.xmlJavaScript 支持

code-java.xml 额外依赖: JUnit, Coverage, com.intellij.modules.coverage


2. Action 注册

2.1 独立 Action

Action IDClassText快捷键来源
AICode.LogoutActioncom.aicode.action.LogoutActionDisable Completions(继承自自身 use-shortcut-of)plugin.xml
AICode.userInfocom.aicode.action.UserInfoActionUserInfoplugin.xml
AICode.enableAutoTriggercom.aicode.action.EnableAutoTriggerCodeGenerateActionEnable Auto Trigger Completionsplugin.xml
AICode.settingcom.aicode.action.PluginSettingActionPlugin Settingplugin.xml
AICode.cyclePrevInlayscom.aicode.action.CyclePreviousEditorInlaysShow Previous Completions$default: Alt+[ / Ctrl+,; Mac OS X: Alt+[ / Ctrl+,; Mac OS X 10.5+: Alt+[ / Ctrl+,plugin.xml
AICode.cycleNextInlayscom.aicode.action.CycleNextEditorInlaysShow Next Completions$default: Alt+] / Ctrl+.; Mac OS X: Alt+] / Ctrl+.; Mac OS X 10.5+: Alt+] / Ctrl+.plugin.xml
AICode.applyInlayscom.aicode.action.AcceptInlaysActionApply Completions to Editor$default: Tabplugin.xml
AICode.applyWordInlayscom.aicode.action.AcceptWordInlaysActionApply Word Completions to Editor$default: Ctrl+Rightplugin.xml
AICode.applyLineCodeInlayscom.aicode.action.AcceptLineCodeInlaysActionApply Line Code Completions to Editor$default: Ctrl+Downplugin.xml
AICode.disposeInlayscom.aicode.action.DisposeInlaysActionHide Completions in Editor$default: Escapeplugin.xml
AICode.requestCompletionscom.aicode.action.RequestCodeGenerateActionShow Completions$default: Alt+\ / Alt+Cplugin.xml
AICode.openWindowcom.aicode.action.OpenWindowActionOpen Window$default: Ctrl+Qplugin.xml
TriggerCodeProblemsTreePopupActioncom.aicode.action.CodeProblemsTreePopupAction星火飞码iFlyCode一键修复plugin.xml

2.2 InlineChat 操作 Action(组 AICode.InlineChat 内)

Action IDClassText快捷键来源
AICode.InlineChat.InlineChatStopActioncom.aicode.inline.action.operate.InlineChatStopActionStop Edit$default: Alt+Zplugin.xml
AICode.InlineChat.InlineChatUndoActioncom.aicode.inline.action.operate.InlineChatUndoActionReject Edit By Undo$default: Ctrl+Z; Mac OS X 10.5+: Meta+Zplugin.xml
AICode.InlineChat.AcceptActioncom.aicode.inline.action.operate.InlineChatAcceptActionAccept Edit$default: Alt+Yplugin.xml
AICode.InlineChat.RejectActioncom.aicode.inline.action.operate.InlineChatRejectActionReject Edit$default: Alt+Xplugin.xml
AICode.InlineChat.RetryActioncom.aicode.inline.action.operate.InlineChatRetryActionRetry Edit$default: Alt+Dplugin.xml

2.3 Action Group

Group ID类型属性子项来源
AICode.inlayContextMenuGroupAICode.applyInlays, separator, AICode.applyWordInlays, separatorplugin.xml
AICode.statusBarPopupGroupAICode.userInfo, AICode.enableAutoTrigger, AICode.setting, AICode.LogoutActionplugin.xml
AICode.InlineChatGroup (popup)searchable=false, text="Operate Actions"InlineChatStopAction, InlineChatUndoAction, AcceptAction, RejectAction, RetryActionplugin.xml
AICodeEditorPopupGroupaicode.EditorActionGroup, 添加到 EditorPopupMenu (anchor=first)plugin.xml
aicode.EditorActionGroupDefaultActionGroup (popup)text="iFlyCode", icon=Icons.ToolWindowIcon(子项由代码动态添加)plugin.xml

2.4 Action 添加到外部 Group

Action/Group ID目标 GroupAnchorRelative To来源
TriggerCodeProblemsTreePopupActionProblemsView.ToolWindow.TreePopupafterProblemsView.QuickFixesplugin.xml
AICodeEditorPopup (group)EditorPopupMenufirstplugin.xml

2.5 快捷键汇总表

功能快捷键 (Windows/Linux)快捷键 (macOS)
接受补全 (Accept)TabTab
拒绝补全 (Dispose)EscapeEscape
触发代码补全Alt+\ 或 Alt+CAlt+\ 或 Alt+C
上一个补全Alt+[ 或 Ctrl+,Alt+[ 或 Ctrl+,
下一个补全Alt+] 或 Ctrl+.Alt+] 或 Ctrl+.
逐词采纳Ctrl+RightCtrl+Right
逐行采纳Ctrl+DownCtrl+Down
打开窗口Ctrl+QCtrl+Q
InlineChat 停止Alt+ZAlt+Z
InlineChat 撤销Ctrl+ZMeta+Z
InlineChat 接受Alt+YAlt+Y
InlineChat 拒绝Alt+XAlt+X
InlineChat 重试Alt+DAlt+D

3. Service 注册

3.1 Application Service

接口实现类Test 实现来源
com.aicode.settings.AICodeSettingsStateplugin.xml
com.aicode.settings.UnitTestSettingsStateplugin.xml
com.aicode.settings.BatchUnitTestSettingsStateplugin.xml
com.aicode.apm.OpenTelemetryServiceplugin.xml
com.aicode.settings.AICodeRequestSettingsplugin.xml
com.aicode.status.AICodeStatusServiceplugin.xml
com.aicode.service.editor.DocumentActionTrackerplugin.xml
com.aicode.service.EditorManagerServicecom.aicode.service.editor.EditorManagerServiceImplai.code.plugin.editor.AICodeEditorTestManagerplugin.xml
com.aicode.service.RequestTipServicecom.aicode.service.editor.RequestTipServiceImplai.code.plugin.generate.AICodeCompletionTestServiceplugin.xml
com.aicode.agent.service.PluginAgentProcessServicecom.aicode.agent.service.RestartableAgentProcessServiceplugin.xml
com.aicode.inline.InlineChatServiceplugin.xml

3.2 Project Service

接口实现类Test 实现来源
com.aicode.action.batch.ResultTreeplugin.xml

4. Extension 注册

4.1 com.intellij 命名空间

postStartupActivity

实现类来源
com.aicode.PluginStartupActivityplugin.xml

applicationService

(见第 3 节 Service 注册表)

projectService

(见第 3 节 Service 注册表)

toolWindow

IDAnchorIconFactory Class来源
星火飞码 iFlyCoderightcom.aicode.icons.Icons.PluginIconcom.aicode.toolwindow.ProjectToolWindowFactoryplugin.xml

jvm.exceptionFilter

实现类来源
com.aicode.error.search.DebuggerFilterplugin.xml

intentionAction

Class Name来源
com.aicode.action.CodeProblemsIntentionActionplugin.xml

statusBarWidgetFactory

ID实现类来源
ai.code.plugincom.aicode.statusBar.StatusBarWidgetFactoryplugin.xml

typedHandler

实现类Order来源
com.aicode.service.editor.TipTypedHandlerDelegatefirst, before completionAutoPopupplugin.xml

actionPromoter

实现类Order来源
com.aicode.action.CodePromoterActionlastplugin.xml
com.aicode.action.TipPromoterActionlastplugin.xml

notificationGroup

IDDisplay Type来源
aicode.noticeBALLOONplugin.xml

checkinHandlerFactory

实现类来源
com.aicode.listener.CommitHandlerFactoryplugin.xml

codeInsight.inlayProvider(可选配置文件)

Language实现类来源
JAVAcom.aicode.toolwindow.PluginEditorInlayHintsProvidercode-java.xml
Pythoncom.aicode.toolwindow.PluginEditorInlayHintsProvidercode-python.xml
JavaScriptcom.aicode.toolwindow.PluginEditorInlayHintsProvidercode-javascript.xml

4.2 ai.code.plugin 命名空间

languageIdSupport

实现类Order来源
com.aicode.language.AICodeExtendedLanguageSupportplugin.xml
com.aicode.language.CodeLanguageInfoSupportlastplugin.xml

5. Listener 注册

5.1 Application Listeners

TopicClassactiveInTestModeactiveInHeadlessMode来源
com.intellij.openapi.actionSystem.ex.AnActionListenercom.aicode.service.editor.DocumentActionTracker$ActionListenertruetrueplugin.xml
com.intellij.ide.plugins.DynamicPluginListenercom.aicode.listener.AICodeUnloadPluginListenerplugin.xml
com.intellij.ide.AppLifecycleListenercom.aicode.listener.ApplicationStartupListenerplugin.xml
com.intellij.openapi.project.ProjectManagerListenercom.aicode.listener.PluginManagerListenerplugin.xml

注:com.aicode.complete.InlayListener / com.aicode.complete.InlayGotItListener 已被注释掉,未注册。

5.2 Project Listeners

TopicClass来源
com.intellij.codeInsight.lookup.LookupManagerListenercom.aicode.listener.CodeLookupManagerListenerplugin.xml
com.intellij.openapi.command.CommandListenercom.aicode.listener.AutoCodeGenerateListenerplugin.xml
com.intellij.openapi.fileEditor.FileEditorManagerListenercom.aicode.listener.CodeFileEditorManagerListenerplugin.xml
com.aicode.agent.SocketMessageListenercom.aicode.agent.SocketMessageHandleListenerplugin.xml

6. ExtensionPoint 声明

Qualified NameInterfaceDynamic来源
ai.code.plugin.languageIdSupportcom.aicode.service.LanguageInfoSupporttrueplugin.xml
ai.code.plugin.editorSupportcom.aicode.service.EditorSupporttrueplugin.xml

7. Component 声明

7.1 Project Components

实现类来源
com.aicode.listener.PluginDocumentListenerplugin.xml

7.2 Application Components

实现类来源
com.aicode.listener.ThemeChangeListenerplugin.xml

8. 可选配置文件详情

8.1 code-java.xml

触发条件: 加载 com.intellij.modules.java 模块时生效 额外依赖: JUnit, Coverage, com.intellij.modules.coverage

Extension PointLanguage实现类
codeInsight.inlayProviderJAVAcom.aicode.toolwindow.PluginEditorInlayHintsProvider

8.2 code-python.xml

触发条件: 加载 com.intellij.modules.python 模块时生效

Extension PointLanguage实现类
codeInsight.inlayProviderPythoncom.aicode.toolwindow.PluginEditorInlayHintsProvider

8.3 code-javascript.xml

触发条件: 加载 com.intellij.modules.webstorm 模块时生效

Extension PointLanguage实现类
codeInsight.inlayProviderJavaScriptcom.aicode.toolwindow.PluginEditorInlayHintsProvider

9. 注册统计汇总

类别数量
Action(独立)13
Action(InlineChat 内)5
Action Group5
Application Service11
Project Service1
Extension (com.intellij)12
Extension (ai.code.plugin)2
Extension (可选配置文件)3
Application Listener4
Project Listener4
ExtensionPoint2
Project Component1
Application Component1
总计注册项53

10. 注释掉的注册项(未生效)

类型内容来源
Listenercom.aicode.complete.InlayListener / com.aicode.complete.InlayGotItListenerplugin.xml (注释)
ExtensioncodeInsight.inlayProvider language=JAVA, com.aicode.toolwindow.JavaPluginEditorInlayHintsProviderplugin.xml (注释)

注:JAVA 的 inlayProvider 在 plugin.xml 中被注释,但通过 code-java.xml 可选配置文件以 PluginEditorInlayHintsProvider 类名重新注册。

本项目仅供学习研究,逆向分析内容归原厂商所有。