GithubHelp home page GithubHelp logo

dragonknightofbreeze / paradox-language-support Goto Github PK

View Code? Open in Web Editor NEW
33.0 7.0 4.0 51.42 MB

IDEA Plugin: Paradox Language Support.

Home Page: https://windea.icu/Paradox-Language-Support

License: MIT License

Kotlin 93.46% Lex 1.24% HTML 0.66% Java 4.56% Shell 0.08%
paradox intellij-plugin idea-plugin stellaris cwt cwtools

paradox-language-support's Introduction

Paradox Language Support

概述

中文文档 | English Documentation

GitHub | Reference Documentation | Plugin Marketplace Page | Discord | QQ群:653824651

IDEA插件:Paradox语言支持。

特性:

  • 支持脚本语言与本地化语言,以及规则文件所使用的CWT语言。
  • 为脚本语言与本地化语言提供诸多较为完备的语言功能,包括代码高亮、代码导航、代码补全、代码检查、代码重构、快速文档、内嵌提示、动态模版、代码层级、图表、差异比较等。
  • 为CWT语言提供基础的语言功能,包括代码高亮、代码导航、快速文档等。
  • 支持通过快速文档与内嵌提示等方式,渲染作用域上下文、本地化文本、DDS图片以及其他有用的信息。
  • 支持脚本语言与本地化语言的多数高级特性(例如参数、作用域、内联脚本和各种复杂表达式)。
  • 支持自定义扩展的规则文件,从而允许插件提供更加完善的语言功能(例如代码导航、代码补全、快速文档和内嵌提示)。
  • 自动识别游戏目录(包含启动器配置文件launcher-settings.json)和模组目录(包含模组描述符文件descriptor.mod)。

此插件基于由CWT规则文件组成的规则分组,实现了诸多语言功能。 插件已经内置了最新版本的规则文件,以便开箱即用。 除此之外,插件也支持自定义导入本地的规则文件。

如果同时安装了 Translation ,此插件可以提供一些额外的功能

快速开始

使用:

  • 通过IDE打开你的模组根目录。(需要直接包含模组描述符文件descriptor.mod
  • 打开模组描述符文件,点击位于编辑器右上角的悬浮工具栏中的模组配置按钮。
  • 配置模组的游戏类型、游戏目录以及额外的模组依赖。
  • 点击确定按钮完成配置,然后等待IDE索引完成。
  • 开始你的模组编程之旅吧!

提示:

  • 如果需要进行全局搜索,请参考以下方式:
    • 点击Ctrl Shift R或者Ctrl Shift F在当前项目、目录或者指定作用域中搜索。
    • 点击Shift Shift查找文件、定义、封装变量(scripted_variable)以及其他各种符号。
  • 如果需要进行代码导航,请参考以下方式:
    • 按住Ctrl并点击目标位置,从而导航到目标的声明或使用处。
    • 按住Ctrl Shift并点击目标位置,从而导航到目标的类型声明处。
    • 按住Alt并点击目标位置,从而导航到目标对应的CWT规则的声明处。
    • 按住Shift Alt并点击目标位置,从而导航到目标定义的相关本地化的声明处。
    • 按住Ctrl Shift Alt并点击目标位置,从而导航到目标定义的相关图片的声明处。
    • 点击Navigate或者编辑器右键菜单中的Go To,选择要导航到的目标。
    • 点击Navigate > Definition Hierarchy,打开定义层级窗口,从而查看某一类型的定义的实现关系。
    • 点击Navigate > Call Hierarchy,打开调用层级窗口,从而查看定义、本地化、封装变量(scripted_variable)等的调用关系。
    • 点击Alt 1或者Project工具窗口,打开项目视图面板,然后点击左上角的Project > Paradox Files,从而查看汇总后的游戏与模组文件。
    • 点击Alt 1或者Project工具窗口,打开项目视图面板,然后点击左上角的Project > CWT Config Files,从而查看汇总后的CWT规则文件。
  • 如果需要进行全局代码检查,请参考以下方式:
    • 点击Alt 6或者Problems工具窗口,打开问题面板,然后查看当前文件存在的问题,或者进行整个项目的全局代码检查。
    • 点击Code > Inspect Code...,进行整个项目的全局代码检查。
    • 完成代码检查后,IDE将会在问题面板中显示详细的检查结果。
  • 如果需要更改插件的全局配置,请参考以下方式:
    • 点击Settings > Languages & Frameworks > Paradox Language Support,打开插件的配置页面。
  • 如果需要更改模组类型、游戏目录、模组依赖等配置,请通过以下方式之一打开模组配置对话框:
    • 点击Settings > Languages & Frameworks > Paradox Language Support,可配置默认的游戏目录。
    • 点击位于页面右上方的编辑器悬浮工具栏中的蓝色齿轮图标。
    • 在编辑器中打开右键菜单,点击Paradox Language Support > Open Mod Settings...
    • 点击Tools > Paradox Language Support > Open Mod Settings...
  • 如果在使用过程中遇到意外问题,请尝试通过以下方式解决:
    • 更新IDE和插件到最新版本。
    • 如果可能与IDE索引有关,请尝试重建索引并重启IDE。(点击File -> Invalidate Caches... -> Invalidate and Restart
    • 如果可能与插件内置的规则有关,请尝试编写自定义的规则文件
    • 如果可能与插件的配置有关,请尝试删除插件的配置文件。(paradox-language-support.xml,如果不知道具体位置,请使用Everything
    • 通过GitHub、Discord等渠道进行反馈。

已知问题:

  • 对Stellaris以外的游戏的支持尚不完善。

参考

参考手册:

工具和插件:

Wiki:

paradox-language-support's People

Contributors

dragonknightofbreeze avatar huangchenguang123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

paradox-language-support's Issues

[Bug][0.9.8] 读取dds时,对于同类型的dds,有些成功有些失败。

本质上的原因时因为p社憨批dds文件导致的,dds文件头不对,虽然都带了DDSD_LINEARSIZE代表压缩,但是有些文件的dwPitchOrLinearSize是行大小,有些是整个文件的大小。

case:
1.读取D:\game\steam\steamapps\common\Stellaris\gfx\interface\icons\ship_parts\ship_part_archaeo_armor.dds失败
2.读取D:\game\steam\steamapps\common\Stellaris\gfx\interface\icons\ship_parts\ship_part_armor_1.dds成功

这两个文件都带了DDSD_LINEARSIZE,dwPitchOrLinearSize的值一个代表了行的大小,一个是全量的大小

DdsHeader{dwSize=124, dwFlags=[DDSD_CAPS, DDSD_HEIGHT, DDSD_WIDTH, DDSD_PIXELFORMAT, DDSD_LINEARSIZE], dwHeight=58, dwWidth=58, dwPitchOrLinearSize=13456, dwDepth=N/A, dwMipMapCount=N/A, dwReserved1=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ddspf=DdsPixelFormat{dwSize=32, dwFlags=[DDPF_ALPHAPIXELS, DDPF_RGB], dwFourCC="

DdsHeader{dwSize=124, dwFlags=[DDSD_CAPS, DDSD_HEIGHT, DDSD_WIDTH, DDSD_PIXELFORMAT, DDSD_LINEARSIZE], dwHeight=58, dwWidth=58, dwPitchOrLinearSize=232, dwDepth=N/A, dwMipMapCount=N/A, dwReserved1=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ddspf=DdsPixelFormat{dwSize=32, dwFlags=[DDPF_ALPHAPIXELS, DDPF_RGB], dwFourCC="

[1.1.5] Cannot finish indexing when using this plugin for EU4 modding

Hello, I have been corresponding with you already regarding this issue, but I wanted to post it here, so it does not go missing.

The indexing in pycharm/IntelliJ never finishes after adding the directory of the EU4 game. Probably there are too many files in that game compared to Stellaris. Indexing for Stellaris works fine, but not for EU4.

I even left it overnight, and it did not finish. CPU and RAM pegged at 100% used. I've got a Ryzen 5950X and 32 GB 3800mhz RAM, so I guess it should be enough?

I've checked it on a different machine and it's the same. Files are getting indexed, but very slowly.

奇怪报错,暂不知效果为何

java.lang.NoClassDefFoundError: com/intellij/codeInspection/SuppressManager
at icu.windea.pls.core.inspections.ParadoxInspectionExtensionsFactory.getSuppressedInspectionIdsIn(ParadoxInspectionExtensionsFactory.kt:29)
at com.intellij.codeInspection.ex.EditInspectionToolsSettingsInSuppressedPlaceIntention.getSuppressedId(EditInspectionToolsSettingsInSuppressedPlaceIntention.java:41)
at com.intellij.codeInspection.ex.EditInspectionToolsSettingsInSuppressedPlaceIntention.isAvailable(EditInspectionToolsSettingsInSuppressedPlaceIntention.java:64)
at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.availableFor(ShowIntentionActionsHandler.java:182)
at com.intellij.codeInsight.daemon.impl.ShowIntentionsPass.lambda$getActionsToShow$3(ShowIntentionsPass.java:332)
at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.chooseBetweenHostAndInjected(ShowIntentionActionsHandler.java:223)
at com.intellij.codeInsight.daemon.impl.ShowIntentionsPass.getActionsToShow(ShowIntentionsPass.java:331)
at com.intellij.codeInsight.daemon.impl.ShowIntentionsPass.doCollectInformation(ShowIntentionsPass.java:236)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:57)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:382)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1102)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:374)
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.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:373)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:349)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:229)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:187)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:347)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:181)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.ClassNotFoundException: com.intellij.codeInspection.SuppressManager PluginClassLoader(plugin=PluginDescriptor(name=Paradox Language Support, id=icu.windea.pls, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\IdeaIC2023.1\plugins\Paradox Language Support, version=0.9.4, package=null, isBundled=false), packagePrefix=null, instanceId=2, state=active)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:150)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 28 more

Passing parameter with defaults to script values results in syntax error highlight

Usually parameters can be given default values with $PARAM|default$ syntax, however when this is done with script values results in syntax error highlighting.

add = value:tec_districts_value|SCOPE|$SCOPE|this$|TYPE|district_farming|FREE|$FREE|no$|
image

Also hope I am not pestering with these, hah! They are not that bad of an error, just bringing them up since out code base is using a lot of script values and inlines.

Exception on project load

Stacktrace showed by IntelliJ
version: IntelliJ IDEA Ultimate 2022.3.2

java.lang.Throwable: Write-unsafe context! Model changes are allowed from write-safe contexts only. Please ensure you're using invokeLater/invokeAndWait with a correct modality state (not "any"). See TransactionGuard documentation for details.
  current modality=ModalityState.NON_MODAL
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:202)
	at com.intellij.openapi.application.TransactionGuardImpl.assertWriteActionAllowed(TransactionGuardImpl.java:135)
	at com.intellij.psi.impl.PsiModificationTrackerImpl.fireEvent(PsiModificationTrackerImpl.java:80)
	at com.intellij.psi.impl.PsiModificationTrackerImpl.incCountersInner(PsiModificationTrackerImpl.java:86)
	at com.intellij.psi.impl.PsiModificationTrackerImpl.treeChanged(PsiModificationTrackerImpl.java:96)
	at com.intellij.psi.impl.PsiManagerImpl.fireEvent(PsiManagerImpl.java:340)
	at com.intellij.psi.impl.PsiManagerImpl.propertyChanged(PsiManagerImpl.java:314)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.lambda$processFileTypesChanged$3(FileManagerImpl.java:290)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:980)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.lambda$processFileTypesChanged$4(FileManagerImpl.java:280)
	at com.intellij.psi.impl.DebugUtil.performPsiModification(DebugUtil.java:481)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.processFileTypesChanged(FileManagerImpl.java:278)
	at com.intellij.psi.impl.file.impl.PsiVFSListener$MyStartUpActivity$1.fileTypesChanged(PsiVFSListener.java:96)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:655)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:625)
	at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:395)
	at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:364)
	at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:433)
	at jdk.proxy2/jdk.proxy2.$Proxy95.rootsChanged(Unknown Source)
	at com.intellij.openapi.roots.impl.ProjectRootManagerComponent.fireRootsChangedEvent(ProjectRootManagerComponent.kt:244)
	at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.fireRootsChanged(ProjectRootManagerImpl.java:483)
	at com.intellij.openapi.roots.impl.ProjectRootManagerImpl$2.fireRootsChanged(ProjectRootManagerImpl.java:160)
	at com.intellij.openapi.roots.impl.ProjectRootManagerImpl$2.fireRootsChanged(ProjectRootManagerImpl.java:157)
	at com.intellij.openapi.roots.impl.ProjectRootManagerImpl$BatchSession.rootsChanged(ProjectRootManagerImpl.java:107)
	at com.intellij.openapi.roots.impl.ProjectRootManagerImpl$BatchSession.rootsChanged(ProjectRootManagerImpl.java:115)
	at com.intellij.openapi.roots.impl.ProjectRootManagerComponent$registerListeners$2.fileTypesChanged(ProjectRootManagerComponent.kt:152)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:655)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:625)
	at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:395)
	at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:374)
	at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:433)
	at jdk.proxy2/jdk.proxy2.$Proxy138.fileTypesChanged(Unknown Source)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.fireFileTypesChanged(FileTypeManagerImpl.java:1041)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.fireFileTypesChanged(FileTypeManagerImpl.java:1022)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.makeFileTypesChange(FileTypeManagerImpl.java:1034)
	at icu.windea.pls.core.handler.ParadoxCoreHandler.reparseFilesInRoot(ParadoxCoreHandler.kt:141)
	at icu.windea.pls.core.DescriptorOrMarkerFileListener.doReparse(DescriptorOrMarkerFileListener.kt:94)
	at icu.windea.pls.core.DescriptorOrMarkerFileListener.access$doReparse(DescriptorOrMarkerFileListener.kt:13)
	at icu.windea.pls.core.DescriptorOrMarkerFileListener$prepareChange$1.afterVfsChange(DescriptorOrMarkerFileListener.kt:18)
	at com.intellij.openapi.vfs.newvfs.AsyncEventSupport.afterVfsChange(AsyncEventSupport.java:133)
	at com.intellij.openapi.vfs.newvfs.AsyncEventSupport$1.after(AsyncEventSupport.java:65)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:655)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:625)
	at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:466)
	at com.intellij.util.messages.impl.ToDirectChildrenMessagePublisher.publish$intellij_platform_core(CompositeMessageBus.kt:262)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:421)
	at jdk.proxy2/jdk.proxy2.$Proxy137.after(Unknown Source)
	at com.intellij.util.FileContentUtilCore.lambda$reparseFiles$0(FileContentUtilCore.java:47)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:980)
	at com.intellij.util.FileContentUtilCore.reparseFiles(FileContentUtilCore.java:35)
	at com.intellij.openapi.file.exclude.PersistentFileSetManager.lambda$onFileSettingsChanged$1(PersistentFileSetManager.java:64)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:194)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:838)
	at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:454)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:74)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:114)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:36)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:756)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:838)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
	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)

群星,新建目录

在0.9.8版本中,我记得似乎是可以在新建目录的时候弹出提示在插件中尚未创建的,但是原版中存在的目录提示框,但是在0.9.9的版本中似乎失去了这个功能。。

另外存在的报错(诊断功能?)
com.intellij.diagnostic.PluginException: action specified by reference isn't registered (ID=UML.Group) (module=PluginDescriptor(name=Paradox Language Support, id=icu.windea.pls, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\IdeaIC2023.1\plugins\Paradox Language Support, version=0.9.9, package=null, isBundled=false))
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.reportActionError(ActionManagerImpl.java:360)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.processReferenceElement(ActionManagerImpl.java:1150)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.processGroupElement(ActionManagerImpl.java:871)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.registerPluginActions(ActionManagerImpl.java:515)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.registerActions(ActionManagerImpl.java:168)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.(ActionManagerImpl.java:135)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:54)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:1041)
at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:43)
at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:39)
at com.intellij.serviceContainer.BaseComponentAdapter.doCreateInstance(BaseComponentAdapter.kt:154)
at com.intellij.serviceContainer.BaseComponentAdapter.createInstance$lambda$1(BaseComponentAdapter.kt:133)
at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:99)
at com.intellij.serviceContainer.BaseComponentAdapter.createInstance(BaseComponentAdapter.kt:132)
at com.intellij.serviceContainer.BaseComponentAdapter.access$createInstance(BaseComponentAdapter.kt:19)
at com.intellij.serviceContainer.BaseComponentAdapter$getInstanceAsync$2.invokeSuspend(BaseComponentAdapter.kt:181)
at com.intellij.serviceContainer.BaseComponentAdapter$getInstanceAsync$2.invoke(BaseComponentAdapter.kt)
at com.intellij.serviceContainer.BaseComponentAdapter$getInstanceAsync$2.invoke(BaseComponentAdapter.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceAsync(BaseComponentAdapter.kt:176)
at com.intellij.serviceContainer.ComponentManagerImpl.preloadService$suspendImpl(ComponentManagerImpl.kt:1185)
at com.intellij.serviceContainer.ComponentManagerImpl.preloadService(ComponentManagerImpl.kt)
at com.intellij.serviceContainer.ComponentManagerImpl$preloadServices$1.invokeSuspend(ComponentManagerImpl.kt:1161)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

插件报错, 文件无法加载

右下角报错AssertionError, 打开群星mod和群星本体均无法成功加载, Project栏只显示loading

环境:
IntelliJ IDEA 2022.3.3 (Community Edition)
Build #IC-223.8836.41, built on March 10, 2023
Runtime version: 17.0.6+1-b653.34 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 2024M
Cores: 8
Non-Bundled Plugins:
icu.windea.pls (0.9.1)
com.xstudio.com.xstudio.plugin.idea (1.0.17)
Kotlin: 223-1.8.0-release-345-IJ8836.41

插件版本: Paradox Language Support 0.9.1

报错stacktrace:
java.lang.AssertionError
at com.intellij.util.xmlb.MapBinding.deserializeKeyOrValue(MapBinding.java:325)
at com.intellij.util.xmlb.MapBinding.deserialize(MapBinding.java:241)
at com.intellij.util.xmlb.MapBinding.deserializeList(MapBinding.java:168)
at com.intellij.util.xmlb.Binding.deserializeList(Binding.java:25)
at com.intellij.util.xmlb.AccessorBindingWrapper.deserializeList(AccessorBindingWrapper.java:141)
at com.intellij.util.xmlb.BeanBinding.deserializeInto(BeanBinding.java:264)
at com.intellij.util.xmlb.BeanBinding.deserializeInto(BeanBinding.java:200)
at com.intellij.util.xmlb.BeanBinding.deserialize(BeanBinding.java:143)
at com.intellij.configurationStore.JdomSerializerImpl.deserialize(xmlSerializer.kt:93)
at com.intellij.configurationStore.DefaultStateSerializerKt.deserializeState(DefaultStateSerializer.kt:29)
at com.intellij.configurationStore.StateStorageBase.deserializeState(StateStorageBase.kt:34)
at com.intellij.configurationStore.StateGetterImpl.getState(StorageBaseEx.kt:56)
at com.intellij.configurationStore.ComponentStoreImpl.doInitComponent(ComponentStoreImpl.kt:417)
at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:368)
at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:119)
at com.intellij.configurationStore.ComponentStoreWithExtraComponents.initComponent(ComponentStoreWithExtraComponents.kt:46)
at com.intellij.serviceContainer.ComponentManagerImpl.initializeComponent$intellij_platform_serviceContainer(ComponentManagerImpl.kt:581)
at com.intellij.serviceContainer.ComponentManagerImpl.createLightService(ComponentManagerImpl.kt:934)
at com.intellij.serviceContainer.ComponentManagerImpl.getOrCreateLightService$lambda$9$lambda$7(ComponentManagerImpl.kt:737)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:222)
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.lambda$computeInNonCancelableSection$4(CoreProgressManager.java:230)
at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:99)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:230)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:221)
at com.intellij.serviceContainer.ComponentManagerImpl.getOrCreateLightService(ComponentManagerImpl.kt:736)
at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:685)
at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:629)
at icu.windea.pls.PlsExtensionsKt.getProfilesSettings(PlsExtensions.kt:504)
at icu.windea.pls.core.listeners.ParadoxUpdateSettingsOnRootInfoChangedListener.addModSettings(ParadoxUpdateSettingsOnRootInfoChangedListener.kt:41)
at icu.windea.pls.core.listeners.ParadoxUpdateSettingsOnRootInfoChangedListener.onAdd(ParadoxUpdateSettingsOnRootInfoChangedListener.kt:15)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:655)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:621)
at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:466)
at com.intellij.util.messages.impl.MessagePublisher.publish$intellij_platform_core(MessageBusImpl.kt:444)
at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:421)
at jdk.proxy6/jdk.proxy6.$Proxy116.onAdd(Unknown Source)
at icu.windea.pls.lang.ParadoxCoreHandler.onAddRootInfo(ParadoxCoreHandler.kt:88)
at icu.windea.pls.lang.ParadoxCoreHandler.resolveRootInfo(ParadoxCoreHandler.kt:79)
at icu.windea.pls.core.ParadoxProjectViewDecorator.decorate(ParadoxProjectViewDecorator.kt:16)
at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.lambda$decorate$0(CompoundProjectViewNodeDecorator.java:45)
at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.forEach(CompoundProjectViewNodeDecorator.java:51)
at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.decorate(CompoundProjectViewNodeDecorator.java:45)
at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.lambda$doUpdate$1(AbstractPsiBasedNode.java:197)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:872)
at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.doUpdate(AbstractPsiBasedNode.java:148)
at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.lambda$update$0(AbstractPsiBasedNode.java:144)
at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:172)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:130)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:119)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:109)
at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.update(AbstractPsiBasedNode.java:144)
at com.intellij.ide.util.treeView.PresentableNodeDescriptor.getUpdatedPresentation(PresentableNodeDescriptor.java:78)
at com.intellij.ide.util.treeView.PresentableNodeDescriptor.update(PresentableNodeDescriptor.java:30)
at com.intellij.ui.tree.StructureTreeModel$Node.update(StructureTreeModel.java:487)
at com.intellij.ui.tree.StructureTreeModel$Node.(StructureTreeModel.java:468)
at com.intellij.ui.tree.StructureTreeModel$Node.(StructureTreeModel.java:461)
at com.intellij.ui.tree.StructureTreeModel.getValidChildren(StructureTreeModel.java:419)
at com.intellij.ui.tree.StructureTreeModel.validateChildren(StructureTreeModel.java:330)
at com.intellij.ui.tree.StructureTreeModel.getNode(StructureTreeModel.java:324)
at com.intellij.ui.tree.StructureTreeModel.getChildren(StructureTreeModel.java:344)
at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.getNode(AsyncTreeModel.java:548)
at com.intellij.ui.tree.AsyncTreeModel$Command.get(AsyncTreeModel.java:443)
at com.intellij.ui.tree.AsyncTreeModel$Command.get(AsyncTreeModel.java:409)
at com.intellij.util.concurrency.Invoker$Task.run(Invoker.java:305)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1111)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:71)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:128)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:109)
at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:68)
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.openapi.progress.ProgressManager.runProcess(ProgressManager.java:68)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:106)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:71)
at com.intellij.util.concurrency.Invoker.invokeSafely(Invoker.java:187)
at com.intellij.util.concurrency.Invoker.lambda$offerSafely$0(Invoker.java:165)
at com.intellij.util.concurrency.Invoker$Background.lambda$offer$0(Invoker.java:475)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:243)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:29)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.executeFirstTaskAndHelpQueue(BoundedTaskExecutor.java:216)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:205)
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)

Bugs in translation

When I try to translate a sentence which contains the last letter of the file , it doesn't work.

screenshot.mp4

群星文本颜色插件失效(没有弹出选框),同时报错

颜色插件报错:
Following exceptions happened soon after this one, most probably they are induced.

2023-04-03T20:13:20.686
java.lang.NoClassDefFoundError: cn/yiiguxing/plugin/translate/util/PSIKt
at icu.windea.pls.localisation.ui.floating.FloatingToolbar.canBeShownAtCurrentSelection(FloatingToolbar.kt:133)
at icu.windea.pls.localisation.ui.floating.FloatingToolbar.showIfHidden(FloatingToolbar.kt:52)
at icu.windea.pls.localisation.ui.floating.FloatingToolbar$MouseMotionListener.mouseMoved(FloatingToolbar.kt:201)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:4477)
at java.desktop/java.awt.Component.processMouseMotionEvent(Component.java:6701)
at java.desktop/javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3403)
at java.desktop/java.awt.Component.processEvent(Component.java:6425)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4588)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2804)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:790)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:763)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:761)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:760)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:666)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:614)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:569)
at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385)
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)
Caused by: java.lang.ClassNotFoundException: cn.yiiguxing.plugin.translate.util.PSIKt PluginClassLoader(plugin=PluginDescriptor(name=Paradox Language Support, id=icu.windea.pls, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\IdeaIC2023.1\plugins\Paradox Language Support, version=0.9.6, package=null, isBundled=false), packagePrefix=null, instanceId=2, state=active)
... 49 more

---------------------------------------------------------------分割-------------------------------------------------------------------------------

加载即报错:
java.lang.NoClassDefFoundError: cn/yiiguxing/plugin/translate/util/PSIKt
at icu.windea.pls.localisation.ui.floating.FloatingToolbar.canBeShownAtCurrentSelection(FloatingToolbar.kt:133)
at icu.windea.pls.localisation.ui.floating.FloatingToolbar.showIfHidden(FloatingToolbar.kt:52)
at icu.windea.pls.localisation.ui.floating.FloatingToolbar$MouseListener$mouseReleased$1.invoke(FloatingToolbar.kt:168)
at icu.windea.pls.localisation.ui.floating.FloatingToolbar$MouseListener$mouseReleased$1.invoke(FloatingToolbar.kt:164)
at icu.windea.pls.localisation.ui.floating.FloatingToolbar.updateOnProbablyChangedSelection(FloatingToolbar.kt:154)
at icu.windea.pls.localisation.ui.floating.FloatingToolbar.access$updateOnProbablyChangedSelection(FloatingToolbar.kt:32)
at icu.windea.pls.localisation.ui.floating.FloatingToolbar$MouseListener.mouseReleased(FloatingToolbar.kt:164)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.runMouseReleasedCommand(EditorImpl.java:3965)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.mouseReleased(EditorImpl.java:3861)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6656)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3385)
at java.desktop/java.awt.Component.processEvent(Component.java:6421)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2804)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:790)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:763)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:761)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:760)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:666)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:614)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:569)
at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385)
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)
Caused by: java.lang.ClassNotFoundException: cn.yiiguxing.plugin.translate.util.PSIKt PluginClassLoader(plugin=PluginDescriptor(name=Paradox Language Support, id=icu.windea.pls, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\IdeaIC2023.1\plugins\Paradox Language Support, version=0.9.6, package=null, isBundled=false), packagePrefix=null, instanceId=2, state=active)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:150)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 54 more

Inline script syntax highlighting inside parameter values for triggers/modifiers etc.

Would it be possible to enhance inline scripts support to syntax highlight inside parameters?

If not automatically, would be neat if some kind of convention could be used to highlight type of parameter, something along the lines (just pseudocode of comment annotations inside the inline):

# $param1$ - trigger
# $param2$ - effect
# $param3$ - boolean (aka yes/no)
# $param4$ - number
# $param5$ - enum[value1, value2, ...]

Perhaps, if somehow could hint at other datatypes the plugin recognized scripted_trigger modifier resource etc would be a big boon in the use of inlines.

Some examples on how i use inlines, where triggers might be passed to the underlying inline:

inline_script = {
  script = jobs/inline_evolved_politician
  count = 1
  mult = 1
  display = with_desc
  trigger = "
     owner = { has_active_tradition = tr_my_tradition }
  "
}

where the $trigger$ is used as such in the inline itself (warning nested inlines):

# jobs/inline_evolved_politician

inline_script = { # Politician
	script = jobs/inline_evolved_job
	trigger = "
		exists = owner

		$trigger$

		owner = {
			is_regular_empire = yes
			is_megacorp = no
		}

		
	"
	job = politician
	count = $count$
	mult = $mult$
	display = $display$
}
... # vastly longer inline switching for executives etc

Another example for passing modifiers (and an ai_weight sections, if we can hint it is an script_value like section) to the inside of an inline:

inline_script = {
  script = policies/inline_evolved_ethic_option
  ethic = capitalism
  option = tec_competitive_A
  flag = tec_competitive_A
  potential = ""
  valid = "tec_is_dystopian_empire = no"
  modifier = "tec_competitive_A_modifier" 
  extra_modifier = "
	  tec_hired_job_trade_add = 1
	  pop_lifestyle_trade_mult = 0.25
  "
  extra_modifier_fanatic = "
	  tec_hired_job_trade_add = 2
	  pop_lifestyle_trade_mult = 0.50				
  "
  ai_weight = "
	  factor = 1
	  modifier = {
		  factor = 10
		  OR = {
			  has_valid_civic = civic_tec_regular_corporate_politics
		  }
	  }
  "
}

PS: Found recently the plugin and it is amazing compared to the VSCode one. Kudos!

Conflicting scopes for inline scripts disables autocompletion inside.

As the title says, conflicting usage scopes disables auto completion inside inline scripts.

There are some usecases where an inline might be used in multiple scopes (ie. used in buildings and districts and deposits) which is almost similar scopes. Would it be possible to generate the common set of supported features and blocks in such cases instead of disabling fully?

For example, triggered_planet_modifier will work on both districts, buildings or deposits, while if an inline is used in all those 3 scopes, triggered_desc should probably error since it is not supported on deposits.

Or going the opposite and combing the scopes and allowed stuff, in case it would be easier and developer discretion should be used in such cases.

Error on generating Technology Tree Diagram

Generating the Technology Tree Diagram (on Windows) errors with the following (and a few other, but seems to be cause by the path looking at the error).

java.nio.file.InvalidPathException: Illegal char <:> at index 26: Stellaris.TechnologyTree/C:/Users/MrRoAdd/Documents/Paradox Interactive/Stellaris/mod/stellaris_evolved
	at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:177)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
	at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
	at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232)
	at java.base/java.nio.file.Path.of(Path.java:147)
	at icu.windea.pls.core.StdlibExtensionsKt.toPath(StdlibExtensions.kt:613)
	at icu.windea.pls.lang.ParadoxCoreHandler.resolveFileInfo(ParadoxCoreHandler.kt:173)
	at icu.windea.pls.core.ParadoxFileTypeOverrider.getOverriddenFileType(ParadoxFileTypeOverrider.kt:22)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.lambda$isFileOfType$15(FileTypeManagerImpl.java:697)
	at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.kt:57)
	at com.intellij.openapi.extensions.ExtensionPointName.computeSafeIfAny(ExtensionPointName.kt:57)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.isFileOfType(FileTypeManagerImpl.java:697)
	at org.editorconfig.configmanagement.editor.EditorConfigEditorProvider.accept(EditorConfigEditorProvider.java:52)
	at com.intellij.openapi.fileEditor.impl.FileEditorProviderManagerImpl.checkProvider(FileEditorProviderManagerImpl.kt:77)
	at com.intellij.openapi.fileEditor.impl.FileEditorProviderManagerImpl.getProviderList$lambda$2$lambda$1(FileEditorProviderManagerImpl.kt:94)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:891)
	at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:69)
	at com.intellij.openapi.fileEditor.impl.FileEditorProviderManagerImpl.getProviderList(FileEditorProviderManagerImpl.kt:93)
	at com.intellij.openapi.fileEditor.ex.FileEditorManagerEx.canOpenFile(FileEditorManagerEx.kt:99)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl4$intellij_platform_ide_impl(FileEditorManagerImpl.kt:958)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2$lambda$22(FileEditorManagerImpl.kt:900)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:219)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:174)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:164)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:150)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2(FileEditorManagerImpl.kt:899)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFile(FileEditorManagerImpl.kt:798)
	at com.intellij.openapi.fileEditor.ex.FileEditorManagerEx.openFile(FileEditorManagerEx.kt:131)
	at com.intellij.uml.core.actions.ShowDiagram.lambda$showReadyDiagram$0(ShowDiagram.java:62)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:958)
	at com.intellij.util.Futures$inWriteAction$1$1.invoke(Futures.kt:62)
	at com.intellij.util.Futures$inWriteAction$1$1.invoke(Futures.kt:61)
	at com.intellij.openapi.application.ActionsKt.invokeLater$lambda$5(actions.kt:58)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:456)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:122)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:41)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:788)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:758)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:667)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$7(IdeEventQueue.kt:571)
	at com.intellij.openapi.application.impl.ApplicationImpl.withoutImplicitRead(ApplicationImpl.java:1446)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:571)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:995)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:995)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385)
	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)

无法解析使用了scripted_variables的参数预设值

script_valuescripted_effect里使用scripted_variables作为参数的预设值会报错

Snipaste_2023-09-21_17-25-11

其中@GF_zion_project_energy_cost_1为定义在scripted_variables里的常量,值为5000

经测试,游戏内使用如下代码会将变量的值设为5000,所以代码是有效的

set_variable = {
    which = v_test
    value = value:GF_test|VALUE|7500|
}

stellaris颜色模板还是没法用

即便在意图中的change color已经是打了√,但是在本地化中还是不会弹出选框,不知道是我的问题,还是什么,我尝试重装一遍

NullPointerException when opening project

java.lang.NullPointerException
	at icu.windea.pls.PlsExtensionsKt.getConfig(PlsExtensions.kt:36)
	at icu.windea.pls.core.ParadoxFileTypeOverrider.getOverriddenFileType(ParadoxFileTypeOverrider.kt:32)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.lambda$getFileTypeByFile$13(FileTypeManagerImpl.java:601)
	at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.java:56)
	at com.intellij.openapi.extensions.ExtensionPointName.computeSafeIfAny(ExtensionPointName.java:54)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.getFileTypeByFile(FileTypeManagerImpl.java:601)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.getFileTypeByFile(FileTypeManagerImpl.java:595)
	at org.jetbrains.kotlin.scripting.definitions.DefinitionsKt.isKotlinFileType(definitions.kt:66)
	at org.jetbrains.kotlin.scripting.definitions.DefinitionsKt.isNonScript(definitions.kt:60)
	at org.jetbrains.kotlin.idea.core.script.configuration.listener.DefaultScriptChangeListener.isApplicable(DefaultScriptChangeListener.kt:23)
	at org.jetbrains.kotlin.idea.core.script.configuration.listener.ScriptChangesNotifier.getListener(ScriptChangesNotifier.kt:98)
	at org.jetbrains.kotlin.idea.core.script.configuration.listener.ScriptChangesNotifier.access$getListener(ScriptChangesNotifier.kt:25)
	at org.jetbrains.kotlin.idea.core.script.configuration.listener.ScriptChangesNotifier$listenForChangesInScripts$1.runScriptDependenciesUpdateIfNeeded$lambda-1(ScriptChangesNotifier.kt:53)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:829)

Diagrams are broken permanently after changing scope/scope type

Tried generating the tech diagram and it worked, however after i changed the scope both it and the event diagrams were generated empty, with no error message and nothing happening if I refresh the Data Model or clear caches etc.

Looked into IDE logs and nothing was erroring either there. And can't seem to be able to make it generate again anymore, so can't try to reproduce the steps besides what i did above to break it.

Support for HoI4 is almost completely broken

  • Cannot resolve if-statement
  • Cannot resolve floating-point number
  • Cannot resolve divison template in oob file
  • Cannot resolve String literal

version: IntelliJ IDEA Ultimate 2022.3.2

I invalidated cache and reloaded but error still happened.

image
image
image
image

  • HoI4 file is loaded
    image

Inference for inline_script parameters from usages

As we expand the use of inline scripts in Gigastructural Engineering, it has become useful in several places to pass whole blocks of code as parameters. It would be very helpful if the parameters could be evaluated, much like how the scripts themselves infer context from where they are used.

image
image

I understand that this might be a tricky request to fulfill, but being able to catch typos in these situations without making mock-ups first would be super useful.

Thank you, once again, for all of your hard work.

Extreme CPU use when (I think) resolving very large localisation files

Hi there, I've been investigating switching over to using this plugin for the development of Gigastructural Engineering & More, but the scale of the mod is causing some issues.

The sheer amount of localisation entries that we have, particularly in our largest file mean that when resolving loc entries the plugin can push my Ryzen 7 7700X to 100% usage across all cores and well over 90C temperature for upwards of 5 minutes!

The plugin works great, and seems far more stable than cwtools is in vscode, but I would gladly sacrifice its ability to cross-reference loc entries if it meant that it was kinder to my pc.

The easiest way to address this would probably be an option to disable that cross referencing, but if it turns out there's a way to make it more efficient, that would be even better.

Our public repository can be found here if you wish to test things under the same conditions.

Thank you for your hard work.

新版本事件代码检测BUG

群星(新版本,上个版本没有这个问题)
在event的文件中,不管哪个event,在有了hide_window = yes后,title是不必要的,同时也不是每个event都需要base =
但是却在定义中会存在报错
Missing key expression 'base' (expecting at least 1, actual 0)
Reports expressions that are missing in definition declarations.

Missing key expression 'title' (expecting at least 1, actual 0)
Reports expressions that are missing in definition declarations.

Plugin is breaking and throwing exceptions

This is what I am getting:

java.lang.AssertionError
	at com.intellij.util.xmlb.MapBinding.deserializeKeyOrValue(MapBinding.java:325)
	at com.intellij.util.xmlb.MapBinding.deserialize(MapBinding.java:241)
	at com.intellij.util.xmlb.MapBinding.deserializeList(MapBinding.java:168)
	at com.intellij.util.xmlb.Binding.deserializeList(Binding.java:25)
	at com.intellij.util.xmlb.AccessorBindingWrapper.deserializeList(AccessorBindingWrapper.java:141)
	at com.intellij.util.xmlb.BeanBinding.deserializeInto(BeanBinding.java:259)
	at com.intellij.util.xmlb.BeanBinding.deserializeInto(BeanBinding.java:199)
	at com.intellij.util.xmlb.BeanBinding.deserialize(BeanBinding.java:142)
	at com.intellij.configurationStore.JdomSerializerImpl.deserialize(xmlSerializer.kt:93)
	at com.intellij.configurationStore.DefaultStateSerializerKt.deserializeState(DefaultStateSerializer.kt:29)
	at com.intellij.configurationStore.StateStorageBase.deserializeState(StateStorageBase.kt:32)
	at com.intellij.configurationStore.StateGetterImpl.getState(StorageBaseEx.kt:56)
	at com.intellij.configurationStore.ComponentStoreImpl.doInitComponent(ComponentStoreImpl.kt:470)
	at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:415)
	at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:121)
	at com.intellij.configurationStore.ComponentStoreWithExtraComponents.initComponent(ComponentStoreWithExtraComponents.kt:48)
	at com.intellij.serviceContainer.ComponentManagerImpl.initializeComponent$intellij_platform_serviceContainer(ComponentManagerImpl.kt:577)
	at com.intellij.serviceContainer.ComponentManagerImpl.createLightService(ComponentManagerImpl.kt:939)
	at com.intellij.serviceContainer.ComponentManagerImpl.getOrCreateLightService$lambda$10$lambda$8(ComponentManagerImpl.kt:740)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:222)
	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.lambda$computeInNonCancelableSection$4(CoreProgressManager.java:230)
	at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:64)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:230)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:221)
	at com.intellij.serviceContainer.ComponentManagerImpl.getOrCreateLightService(ComponentManagerImpl.kt:739)
	at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:688)
	at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:630)
	at icu.windea.pls.core.PluginExtensionsKt.getProfilesSettings(PluginExtensions.kt:393)
	at icu.windea.pls.model.ParadoxModRootInfo.getGameType(ParadoxRootInfo.kt:80)
	at icu.windea.pls.lang.ParadoxDefinitionHandler.doGetInfo(ParadoxDefinitionHandler.kt:72)
	at icu.windea.pls.lang.ParadoxDefinitionHandler.doGetInfoFromCache$lambda$1(ParadoxDefinitionHandler.kt:51)
	at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:158)
	at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:37)
	at com.intellij.util.CachedValueBase.lambda$getValueWithLock$3(CachedValueBase.java:240)
	at com.intellij.util.CachedValueBase.computeData(CachedValueBase.java:43)
	at com.intellij.util.CachedValueBase.lambda$getValueWithLock$4(CachedValueBase.java:240)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:110)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:27)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:65)
	at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:241)
	at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:27)
	at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:69)
	at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:155)
	at icu.windea.pls.lang.ParadoxDefinitionHandler.doGetInfoFromCache(ParadoxDefinitionHandler.kt:48)
	at icu.windea.pls.lang.ParadoxDefinitionHandler.getInfo(ParadoxDefinitionHandler.kt:44)
	at icu.windea.pls.core.PluginExtensionsKt.getDefinitionInfo(PluginExtensions.kt:214)
	at icu.windea.pls.script.psi.impl.ParadoxScriptPsiImplUtil.getIcon(ParadoxScriptPsiImplUtil.kt:149)
	at icu.windea.pls.script.psi.impl.ParadoxScriptPropertyImpl.getIcon(ParadoxScriptPropertyImpl.java:56)
	at icu.windea.pls.core.PlatformExtensionsKt.getIcon(PlatformExtensions.kt:823)
	at icu.windea.pls.cwt.navigation.CwtNavBar.getIcon(CwtNavBar.kt:16)
	at com.intellij.ide.navbar.impl.DefaultNavBarItem$presentation$icon$1.invoke(DefaultNavBarItem.kt:53)
	at com.intellij.ide.navbar.impl.DefaultNavBarItem$presentation$icon$1.invoke(DefaultNavBarItem.kt:53)
	at com.intellij.ide.navbar.impl.DefaultNavBarItemProviderKt.fromOldExtensions(DefaultNavBarItemProvider.kt:156)
	at com.intellij.ide.navbar.impl.DefaultNavBarItem.presentation(DefaultNavBarItem.kt:53)
	at com.intellij.ide.navbar.ide.NavBarVmItemKt.toVmItems(NavBarVmItem.kt:50)
	at com.intellij.ide.navbar.ide.NavBarServiceKt.contextModelInner(NavBarService.kt:159)
	at com.intellij.ide.navbar.ide.NavBarServiceKt.access$contextModelInner(NavBarService.kt:1)
	at com.intellij.ide.navbar.ide.NavBarServiceKt$contextModel$2.invoke(NavBarService.kt:137)
	at com.intellij.ide.navbar.ide.NavBarServiceKt$contextModel$2.invoke(NavBarService.kt:136)
	at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:105)
	at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:14)
	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:41)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1(cancellableReadAction.kt:39)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:133)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke(cancellableReadAction.kt:37)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:248)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:34)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:94)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:76)
	at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:63)
	at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:14)
	at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invokeSuspend(InternalReadAction.kt:42)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	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)

Please let me know if you need more details on this.

Job modifiers inherit icons in game, but are marked as missing by plugin

A possible enhancement:

Some modifiers such as job_<x>_add, where the corresponding job has an icon field set, use the icon corresponding to the name set in the field instead of the job's name.

Currently, the plugin will complain that the icon matching the modifier's name is missing, but this relation could potentially be inferred.

An example:

Here, the Iodizium Mining Drone has its icon set to the Iodizium Miner job, and in game the drone modifier uses the icon for job_giga_iodizium_miner_add.
The plugin warns that the icon matching the modifier name is missing, which is true, but that's not the icon which the game ultimately uses. It could potentially infer the relation from the job and use the other icon like it does in game.

image
image

As always, great work with the plugin, it helps our development work tremendously. Thank you for your efforts.

.${gameType} file is ignored

I'm doing HoI4 modding with this plugin, however, the plugin mark the mod as Stellaris's one.

Project Directory
image
Project is recognized as Stellaris mod
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.