Qoder的IDEA插件不能补全代码

Issue Description

0.7.0 版本, 手动代码补全只会替换掉{}行,预测应该要插入的代码,不会进行插入,而是会替换本应保留的代码。

升级到 0.8.0 版本后, 直接没法补全,虽然会提示,但是按tab没有接受补全代码。

Steps to Reproduce

输入字符,提示预测代码,按tab键,预测代码消失,没有补全。

Expected Behavior

能够正确的插入补全代码,不要只会替换,该插入的时候进行插入操作。

Actual Behavior

预测内容没有补全到代码中。

Screenshots / Screen Recordings

Operating System

win11 24H2

Current Qoder Version (Menu → About Qoder → Copy)

0.8.0

辛苦上报下 我们看看日志

问题反馈码:77f2e946-0270-49f6-9500-f586b3ac8081

好的 看到了您的提交,我们分析下日志;您当前是在什么文件代码中触发的,另外换个不同类型的代码文件,看下是否还有类似问题呢?

xml文件(mapper.xml)中,按tab没有补全相应代码,试了下java中可以补全,但是不会触发主动预测?tab补全一次之后就没了,需要再输入一个字符再触发一次补全提示

您好,这是 IntelliJ IDEA 平台限制导致的问题:

  • XML 文件中的某些特殊语法区域(如 MyBatis 的动态 SQL 表达式)会被 IDE 识别为 injected language fragment

  • IntelliJ 的 Inlay API 明确不支持在 injected editors 中操作

同样的操作在0.7.0版本可以呢?同一个项目同一个文件同一个代码处同样的提示,0.8.0按tab没接受补全提示,0.7.0能够接受并自动补全代码

这个我们刚才又排查了下 补全 XML 文件(MyBatis Mapper 文件) 这类文件的时候有渲染问题 java这些文件是没问题的 这个近期会发版本修复 感谢反馈 :saluting_face:

更新到0.9.0版本,mapper.xml中补全依旧没用,不过好像是在<if text=”xxxx”>and t.name 情况下失效,在<select>里面能够补全,但是代码插入位置不对,补全left join,代码插入到下面几行的<if>里面去了

IDEA 2025.3.1.1

错误信息:
```
java.lang.Throwable: Inlay operations are not supported for injected editors
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:375)
at com.intellij.psi.impl.source.tree.injected.InlayModelWindow.logUnsupported(InlayModelWindow.java:147)
at com.intellij.psi.impl.source.tree.injected.InlayModelWindow.getInlineElementsInRange(InlayModelWindow.java:78)
at com.alibabacloud.intellij.qoder.util.EditorUtil.collectInlays(EditorUtil.java:697)
at com.alibabacloud.intellij.qoder.editor.CosyInlineEditManagerImpl.disposeInlineEdits(CosyInlineEditManagerImpl.java:254)
at com.alibabacloud.intellij.qoder.editor.CosyInlineEditManagerImpl.applyInlineEdit(CosyInlineEditManagerImpl.java:128)
at com.alibabacloud.intellij.qoder.completion.action.CosyApplyInlayAction$ApplyInlaysHandler.doExecute(CosyApplyInlayAction.java:64)
at com.intellij.openapi.editor.actionSystem.DynamicEditorActionHandler.doExecute(DynamicEditorActionHandler.java:68)
at com.intellij.openapi.editor.actionSystem.EditorActionHandler.lambda$execute$4(EditorActionHandler.java:215)
at com.intellij.openapi.editor.actionSystem.EditorActionHandler.doIfEnabled(EditorActionHandler.java:90)
at com.intellij.openapi.editor.actionSystem.EditorActionHandler.execute(EditorActionHandler.java:214)
at com.intellij.openapi.editor.actionSystem.EditorAction.executeHandler(EditorAction.java:175)
at com.intellij.openapi.editor.actionSystem.EditorAction.actionPerformed(EditorAction.java:104)
at com.intellij.openapi.editor.actionSystem.EditorAction.actionPerformed(EditorAction.java:90)
at com.intellij.openapi.actionSystem.ex.ActionUtil.doPerformActionOrShowPopup(ActionUtil.kt:437)
at com.intellij.openapi.keymap.impl.ActionProcessor.performAction(ActionProcessor.kt:26)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$actionProcessor$1.performAction(IdeKeyEventDispatcher.kt:499)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcherKt.doPerformActionInner$lambda$0$0(IdeKeyEventDispatcher.kt:824)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:109)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:98)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcherKt.doPerformActionInner$lambda$0(IdeKeyEventDispatcher.kt:823)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks$lambda$0(ActionManagerImpl.kt:1164)
at com.intellij.concurrency.ThreadContext.installThreadContext(threadContext.kt:305)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks(ActionManagerImpl.kt:1162)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcherKt.doPerformActionInner(IdeKeyEventDispatcher.kt:821)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcherKt.access$doPerformActionInner(IdeKeyEventDispatcher.kt:1)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.kt:554)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.kt:512)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processActionOrWaitSecondStroke(IdeKeyEventDispatcher.kt:451)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.kt:444)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.kt:306)
at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.kt:555)
at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$3(IdeEventQueue.kt:509)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.doRunWriteIntentReadAction(NestedLocksThreadingSupport.kt:737)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.runPreventiveWriteIntentReadAction(NestedLocksThreadingSupport.kt:711)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:509)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0$0(IdeEventQueue.kt:337)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:901)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0(IdeEventQueue.kt:336)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1065)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:117)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1065)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0(IdeEventQueue.kt:331)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:371)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
```

辛苦再上报下 我们看看

+1,mapper 完全用不了,已反馈

8bf39d37-cd54-4a28-acea-be63c163111c

好的,感谢反馈,我们分析下您的提交,有进展第一时间同步这里

我也是同样遇到了这个问题,在xml文件里面代码预测会有提示,但是按快捷键补全代码时会报错,报错java.lang.Throwable: Inlay operations are not supported for injected editors

0.9.1版本还是一样的问题,mapper.xml无法补全

辛苦上报下问题 帮忙简短的视频我们看下 :saluting_face:

我的0.9.1 mapper 可以补全了

1 Like

又不行了

d56ad3f8-71bb-4b8a-8131-ac4527d3a500

动画

idea中qoder插件 alt p 代码提示快捷键不好使了 没反应 也不是快捷键冲突 还重新安装了插件 还是不好使 问题反馈代码 15f75c92-4211-4f7c-b163-c2a58086529b ; 你们这产品好多问题 规则也不合理

非常同意,自从0.8.0升级了NEXT预测,自动补全就没有0.7.0好用了

感谢反馈,当前这个问题已经在内部加急修复处理中了,下个版本会优化解决。