Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use separate settings for custom icons for Windows/Linux/MacOS #451

Open
mallowigi opened this issue May 11, 2024 Discussed in #254 · 0 comments
Open

Use separate settings for custom icons for Windows/Linux/MacOS #451

mallowigi opened this issue May 11, 2024 Discussed in #254 · 0 comments

Comments

@mallowigi
Copy link
Owner

Discussed in #254

Originally posted by SergeyMaltsev December 23, 2021
Describe the bug

When I use shared JetBains configuration via git settings repository I have problems with custom Associations for my icons paths.
For Windows icon path is something like C:\Users\User\icons\... for Mac it could be ~/icons/..., same for Linux.
It resolves in IDE plugin crash.

To Reproduce

  1. Create a shared settings repository and setup custom icons in Windows (for example)
  2. Launch IDE on MacOS or Linux
  3. Receive an error on IDE start
java.io.FileNotFoundException: C:\Users\User\icons\idea-types\js.svg (No such file or directory)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)
	at icons.AtomIcons.loadSVGIcon(AtomIcons.kt:107)
	at icons.AtomIcons.loadIconWithFallback(AtomIcons.kt:111)
	at com.mallowigi.icons.providers.DefaultFileIconProvider.getIcon(DefaultFileIconProvider.kt:53)
	at com.mallowigi.icons.providers.AbstractFileIconProvider.loadIcon(AbstractFileIconProvider.kt:96)
	at com.mallowigi.icons.providers.AbstractFileIconProvider.getIconForAssociation$lambda-0(AbstractFileIconProvider.kt:88)
	at java.base/java.util.Optional.map(Optional.java:265)
	at com.mallowigi.icons.providers.AbstractFileIconProvider.getIconForAssociation(AbstractFileIconProvider.kt:88)
	at com.mallowigi.icons.providers.AbstractFileIconProvider.findIcon(AbstractFileIconProvider.kt:69)
	at com.mallowigi.icons.providers.AbstractFileIconProvider.getIcon(AbstractFileIconProvider.kt:52)
	at com.intellij.util.PsiIconUtil.getProvidersIcon(PsiIconUtil.java:21)
	at com.intellij.ide.FileIconPatcherImpl.getIcon(FileIconPatcherImpl.java:37)
	at com.intellij.util.IconUtil.getProvidersIcon(IconUtil.java:222)
	at com.intellij.util.IconUtil.computeFileIcon(IconUtil.java:155)
	at com.intellij.openapi.fileEditor.impl.EditorsSplitters.lambda$updateFileIconAsynchronously$7(EditorsSplitters.java:430)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:521)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$3(NonBlockingReadActionImpl.java:486)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1078)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:78)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:161)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:118)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:57)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:183)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:705)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:647)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:63)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:170)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:57)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:115)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:78)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:486)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:407)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:216)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:27)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:195)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:187)
	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)

Expected Behavior

No error should occur.
I suppose plugin should have separate settings for icons based on OS.
Best If I could set root folder per OS and Icons Associations would have relative paths to not recreate all from scratch for each OS.

Environment

  • OS (Windows, Linux, Mac)
  • IntelliJ Product: any
  • Plugin version: 50.2.0

Screenshots
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant