alibaba-cloud-toolkit / cosy

阿里云智能编码插件品牌升级为通义灵码,欢迎查看通义灵码帮助手册,同时也期待你在 IDE 客户端中将插件升级,我在通义灵码等你,一起开启智能编码之旅。
https://tongyi.aliyun.com/lingma
435 stars 28 forks source link

字符串索引越界异常 #204

Closed sdfsddqweqw closed 10 months ago

sdfsddqweqw commented 10 months ago

Describe the bug(描述您遇到的问题) java.lang.StringIndexOutOfBoundsException: begin 0, end 704, length 3 at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4602) at java.base/java.lang.String.substring(String.java:2705) at com.intellij.openapi.util.TextRange.substring(TextRange.java:103) at com.intellij.openapi.editor.Document.getText(Document.java:48) at com.alibabacloud.intellij.cosy.util.CompletionUtil.getCursorPrefix(CompletionUtil.java:29) at com.alibabacloud.intellij.cosy.completion.CosyCompletionContributor.createCompletionContext(CosyCompletionContributor.java:382) at com.alibabacloud.intellij.cosy.completion.CosyCompletionContributor.fillCompletionVariants(CosyCompletionContributor.java:88) at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributor(CompletionService.java:81) at com.intellij.codeInsight.completion.impl.CompletionServiceImpl.lambda$getVariantsFromContributor$0(CompletionServiceImpl.java:333) at com.intellij.diagnostic.telemetry.TraceKt.runWithSpan(trace.kt:74) at com.intellij.codeInsight.completion.impl.CompletionServiceImpl.getVariantsFromContributor(CompletionServiceImpl.java:332) at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:73) at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:152) at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:144) at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:140) at com.intellij.codeInsight.template.impl.LiveTemplateCompletionContributor$1.addCompletions(LiveTemplateCompletionContributor.java:87) at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:23) at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:155) at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributor(CompletionService.java:81) at com.intellij.codeInsight.completion.impl.CompletionServiceImpl.lambda$getVariantsFromContributor$0(CompletionServiceImpl.java:333) at com.intellij.diagnostic.telemetry.TraceKt.runWithSpan(trace.kt:74) at com.intellij.codeInsight.completion.impl.CompletionServiceImpl.getVariantsFromContributor(CompletionServiceImpl.java:332) at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:73) at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:56) at com.intellij.codeInsight.completion.CompletionService.performCompletion(CompletionService.java:132) at com.intellij.codeInsight.completion.BaseCompletionService.performCompletion(BaseCompletionService.java:48) at com.intellij.codeInsight.completion.impl.CompletionServiceImpl.lambda$performCompletion$1(CompletionServiceImpl.java:351) at com.intellij.diagnostic.telemetry.TraceKt.runWithSpan(trace.kt:74) at com.intellij.codeInsight.completion.impl.CompletionServiceImpl.performCompletion(CompletionServiceImpl.java:340) at com.intellij.codeInsight.completion.CompletionProgressIndicator.lambda$calculateItems$11(CompletionProgressIndicator.java:870) at com.intellij.util.indexing.FileBasedIndex.lambda$ignoreDumbMode$0(FileBasedIndex.java:199) at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:112) at com.intellij.util.indexing.FileBasedIndexEx.ignoreDumbMode(FileBasedIndexEx.java:719) at com.intellij.util.indexing.FileBasedIndex.ignoreDumbMode(FileBasedIndex.java:198) at com.intellij.util.indexing.DumbModeAccessType.ignoreDumbMode(DumbModeAccessType.java:43) at com.intellij.codeInsight.completion.CompletionProgressIndicator.calculateItems(CompletionProgressIndicator.java:866) at com.intellij.codeInsight.completion.CompletionProgressIndicator.runContributors(CompletionProgressIndicator.java:854) at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$startContributorThread$7(CodeCompletionHandlerBase.java:374) at io.opentelemetry.context.Context.lambda$wrap$1(Context.java:212) at com.intellij.codeInsight.completion.AsyncCompletion.lambda$tryReadOrCancel$5(CompletionThreading.java:169) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1102) at com.intellij.codeInsight.completion.AsyncCompletion.tryReadOrCancel(CompletionThreading.java:167) at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$startContributorThread$8(CodeCompletionHandlerBase.java:365) at io.opentelemetry.context.Context.lambda$wrap$1(Context.java:212) at com.intellij.codeInsight.completion.AsyncCompletion.lambda$startThread$0(CompletionThreading.java:92) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173) at com.intellij.codeInsight.completion.AsyncCompletion.lambda$startThread$1(CompletionThreading.java:88) at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:252) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699) at java.base/java.lang.Thread.run(Thread.java:833)

To Reproduce(复现步骤)

Screenshots(截图)

System(本地系统)

Contact Info(如愿意请留下联系方式,需求上线后,我们将第一时间联系您)

zxdxjtu commented 10 months ago

感谢反馈,请问下当前代码内容有做过大量删除之类的操作吗,看日志好像是当前代码内容长度只有3了,但是当前识别到的光标位置是700多,可能有个时间差

zxdxjtu commented 10 months ago

偶现问题,也无法干预IDEA机制,我们会尽量做下boundary check,感谢反馈,先关闭啦