Closed zxstrive closed 8 months ago
怎么复现呢
不知道什么时候会出现,之前用的时候 webstorm会卡死,要通过任务管理器结束进程才行,然后向 intellij 反应了这个问题,他们建议禁用 unocss 插件,没问题,后来 webstorm 更新后我又启用了插件,现在不会卡死了,但报上面那样的错误;另外在使用的时,建议在class属性中提示,现在不管写什么属性都会有 unocss 的提示,没必要,而且会有卡顿现象。
我的插件,时不时报这个错误: java.lang.RuntimeException: Cannot overwrite a zero-length range – use appendLeft or prependRight instead at me.rerere.unocssintellij.UnocssService$resolveAnnotations$$inlined$sendCommand$1.invoke(UnocssProcess.kt:138) at me.rerere.unocssintellij.UnocssService$resolveAnnotations$$inlined$sendCommand$1.invoke(UnocssProcess.kt:135) at me.rerere.unocssintellij.UnocssProcess$1$1.invoke(UnocssProcess.kt:74) at me.rerere.unocssintellij.UnocssProcess$1$1.invoke(UnocssProcess.kt:58) at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
我的插件,时不时报这个错误: java.lang.RuntimeException: Cannot overwrite a zero-length range – use appendLeft or prependRight instead at me.rerere.unocssintellij.UnocssService$resolveAnnotations$$inlined$sendCommand$1.invoke(UnocssProcess.kt:138) at me.rerere.unocssintellij.UnocssService$resolveAnnotations$$inlined$sendCommand$1.invoke(UnocssProcess.kt:135) at me.rerere.unocssintellij.UnocssProcess$1$1.invoke(UnocssProcess.kt:74) at me.rerere.unocssintellij.UnocssProcess$1$1.invoke(UnocssProcess.kt:58) at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
什么环境?什么配置?
unocss: 0.58.3 操作系统: MacOS 13.6.3 webstorm: 2023.3.2 webstorm unocss 插件: 1.3.10
uno.config.js
import presetIcons from "@unocss/preset-icons";
import presetUno from "@unocss/preset-uno";
import transformerCompileClass from "@unocss/transformer-compile-class";
import transformerDirectives from "@unocss/transformer-directives";
import transformerVariantGroup from "@unocss/transformer-variant-group";
import { presetApplet } from "@unocss-applet/preset-applet";
import { defineConfig } from "unocss";
import presetAnimations from "unocss-preset-animations";
import presetWeapp from "unocss-preset-weapp";
export default defineConfig({
presets: [
presetUno(),
presetIcons({
prefix: "i-",
scale: 1.2,
warn: true,
extraProperties: {
display: "inline-block",
},
}),
presetAnimations(),
// 做单位转换处理,将默认单位转为rpx
presetWeapp({
platform: "uni-app",
transform: false,
isH5: false,
whRpx: true,
}),
// 做类名特殊字符转换处理
presetApplet({
preflight: false,
unsupportedChars: ["?"],
}),
],
transformers: [
transformerVariantGroup(),
transformerDirectives({
enforce: "pre",
}),
transformerCompileClass(),
],
shortcuts: [
{
"flex-center": "flex items-center justify-center",
"flex-row-center": "flex flex-row justify-center",
"flex-col-center": "flex flex-col justify-center",
"flex-column": "flex flex-col items-center justify-center",
"flex-between": "flex items-center justify-between",
"card-container": "flex flex-col gap-normal px-large py-normal",
card: "rounded-normal bg-white overflow-hidden",
"card-padding": "pt-small pb-huge",
},
[/^size-(.*)$/, ([, n]) => `w-${n} h-${n}`],
],
rules: [
// 移动端专属
[
"p-safe",
{
padding:
"env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)",
},
],
["pt-safe", { "padding-top": "env(safe-area-inset-top)" }],
["pb-safe", { "padding-bottom": "env(safe-area-inset-bottom)" }],
["px-safe", { "padding-left": "env(safe-area-inset-left)", "padding-right": "env(safe-area-inset-right)" }],
["py-safe", { "padding-top": "env(safe-area-inset-top)", "padding-bottom": "env(safe-area-inset-bottom)" }],
[
/^([pm])([trblxy])?-(tiny|small|normal|large|huge)$/,
([, property, mode, size]) => {
const name = property === "p" ? "padding" : "margin";
const values = {
tiny: `var(--${name}-tiny)`,
small: `var(--${name}-small)`,
normal: `var(--${name}-normal)`,
large: `var(--${name}-large)`,
huge: `var(--${name}-huge)`,
};
const value = values[size];
switch (mode) {
case "t":
return {
[`${name}-top`]: value,
};
case "r":
return {
[`${name}-right`]: value,
};
case "b":
return {
[`${name}-bottom`]: value,
};
case "l":
return {
[`${name}-left`]: value,
};
case "x":
return {
[`${name}-left`]: value,
[`${name}-right`]: value,
};
case "y":
return {
[`${name}-top`]: value,
[`${name}-bottom`]: value,
};
default: {
return {
[`${name}`]: value,
};
}
}
},
],
[
/^gap(-[xy])?-(small|normal|large|huge)$/,
([, mode, size]) => {
const values = {
tiny: "var(--gap-tiny)",
small: "var(--gap-small)",
normal: "var(--gap-normal)",
large: "var(--gap-large)",
huge: "var(--gap-huge)",
};
const value = values[size];
switch (mode) {
case "-x":
return {
"column-gap": value,
};
case "-y":
return {
"row-gap": value,
};
default: {
return {
gap: value,
};
}
}
},
],
[
/^bg-gradient-(theme|success|warning|error|blue|green|orange|purple|red|pink)$/,
([, color]) => {
return {
"background-image": `var(--color-${color}-gradient)`,
};
},
],
],
theme: {
colors: {
theme: "var(--color-theme)",
"theme-lighter": "var(--color-theme-lighter)",
success: "var(--color-success)",
"success-lighter": "var(--color-success-lighter)",
warning: "var(--color-warning)",
"warning-lighter": "var(--color-warning-lighter)",
error: "var(--color-error)",
"error-lighter": "var(--color-error-lighter)",
blue: "var(--color-blue)",
"blue-lighter": "var(--color-blue-lighter)",
green: "var(--color-green)",
"green-lighter": "var(--color-green-lighter)",
orange: "var(--color-orange)",
"orange-lighter": "var(--color-orange-lighter)",
purple: "var(--color-purple)",
"purple-lighter": "var(--color-purple-lighter)",
red: "var(--color-red)",
"red-lighter": "var(--color-red-lighter)",
pink: "var(--color-pink)",
"pink-lighter": "var(--color-pink-lighter)",
link: "var(--color-link)",
black: "var(--color-black)",
white: "var(--color-white)",
"gray-lighter": "var(--color-gray-lighter)",
},
backgroundColor: {
gray: "var(--background-color-gray)",
grayHover: "var(--background-color-gray-hover)",
mask: "var(--background-color-mask)",
},
borderColor: {
normal: "var(--border-color-normal)",
lighter: "var(--border-color-lighter)",
darker: "var(--border-color-darker)",
},
borderRadius: {
tiny: "var(--border-radius-tiny)",
small: "var(--border-radius-small)",
normal: "var(--border-radius-normal)",
large: "var(--border-radius-large)",
circle: "var(--border-radius-circle)",
},
textColor: {
primary: "var(--text-color-primary)",
secondary: "var(--text-color-secondary)",
gray: "var(--text-color-gray)",
placeholder: "var(--text-color-placeholder)",
disabled: "var(--text-color-disabled)",
},
fontSize: {
tiny: "var(--font-size-tiny)",
small: "var(--font-size-small)",
normal: "var(--font-size-normal)",
large: "var(--font-size-large)",
huge: "var(--font-size-huge)",
title: "var(--font-size-title)",
},
},
});
建议大神可以给插件加个上报错误的功能,一有错误,我们就直接点击 Report 那个按钮就像Jetbrains IDE内部和一些插件报错一样给你报告错误,同时你也能收集到更多的环境信息和错误堆栈信息帮助你排查问题。
一直渴求WebStorm版本的unocss插件,感谢作者让我得以尝愿🙏🙏🙏
性能问题已经改进(1.4.0)
我也遇到这个问题了 更新之后开始的 不知道和我开始用attributify mode有没有关系🤣, 反正就 出现的挺随机的
java.lang.IndexOutOfBoundsException: Index 11 out of bounds for length 2
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.base/java.util.Objects.checkIndex(Objects.java:361)
at java.base/java.util.ArrayList.get(ArrayList.java:427)
at me.rerere.unocssintellij.documentation.UnocssDocumentTargetProvider.getOffsetValue(UnocssDocument.kt:104)
at me.rerere.unocssintellij.documentation.UnocssDocumentTargetProvider.documentationTargets(UnocssDocument.kt:61)
at com.intellij.lang.documentation.impl.TargetsKt.documentationTargets(targets.kt:20)
at com.intellij.lang.documentation.ide.impl.IdeDocumentationTargetProviderImpl.documentationTargets(IdeDocumentationTargetProviderImpl.kt:36)
at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$requests$1$targets$1.invoke(DocumentationTargetHoverInfo.kt:39)
at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$requests$1$targets$1.invoke(DocumentationTargetHoverInfo.kt:39)
at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.injectedThenHost(DocumentationTargetHoverInfo.kt:76)
at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$requests$1.invoke(DocumentationTargetHoverInfo.kt:37)
at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$requests$1.invoke(DocumentationTargetHoverInfo.kt:36)
at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:108)
at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:16)
at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:95)
at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:94)
at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1$lambda$0(cancellableReadAction.kt:38)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1075)
at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1(cancellableReadAction.kt:36)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:73)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:128)
at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke(cancellableReadAction.kt:34)
at com.intellij.openapi.progress.CoroutinesKt.blockingContextInner(coroutines.kt:321)
at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:310)
at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:31)
at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:94)
at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:78)
at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:65)
at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:16)
at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invokeSuspend(InternalReadAction.kt:44)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
我也遇到这个问题了 更新之后开始的 不知道和我开始用attributify mode有没有关系🤣, 反正就 出现的挺随机的
java.lang.IndexOutOfBoundsException: Index 11 out of bounds for length 2 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) at java.base/java.util.Objects.checkIndex(Objects.java:361) at java.base/java.util.ArrayList.get(ArrayList.java:427) at me.rerere.unocssintellij.documentation.UnocssDocumentTargetProvider.getOffsetValue(UnocssDocument.kt:104) at me.rerere.unocssintellij.documentation.UnocssDocumentTargetProvider.documentationTargets(UnocssDocument.kt:61) at com.intellij.lang.documentation.impl.TargetsKt.documentationTargets(targets.kt:20) at com.intellij.lang.documentation.ide.impl.IdeDocumentationTargetProviderImpl.documentationTargets(IdeDocumentationTargetProviderImpl.kt:36) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$requests$1$targets$1.invoke(DocumentationTargetHoverInfo.kt:39) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$requests$1$targets$1.invoke(DocumentationTargetHoverInfo.kt:39) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.injectedThenHost(DocumentationTargetHoverInfo.kt:76) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$requests$1.invoke(DocumentationTargetHoverInfo.kt:37) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$requests$1.invoke(DocumentationTargetHoverInfo.kt:36) at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:108) at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:16) at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:95) at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:94) at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1$lambda$0(cancellableReadAction.kt:38) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1075) at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1(cancellableReadAction.kt:36) at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:73) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:128) at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke(cancellableReadAction.kt:34) at com.intellij.openapi.progress.CoroutinesKt.blockingContextInner(coroutines.kt:321) at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:310) at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:31) at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:94) at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:78) at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:65) at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:16) at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invokeSuspend(InternalReadAction.kt:44) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
确实,检查了下,那个根据索引找class name的函数写的有问题
unocss-intellij-1.4.0.zip 测试下看看 @xsjcTony 应该是文档功能在可变组上的问题
xx:(xxx xxxx) 这种
暂时没法测现在,但是我没有用variant group。可能attributify mode也会影响到