Git Product home page Git Product logo

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

Watchers

 avatar  avatar  avatar  avatar  avatar

paradox-language-support's Issues

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.

无法解析使用了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|
}

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.

新版本事件代码检测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.

stellaris颜色模板还是没法用

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

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.

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

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

插件报错, 文件无法加载

右下角报错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)

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)

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.

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

[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.

群星,新建目录

在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)

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

[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="

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)

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.

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.

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.

.${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

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)

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!

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.