kagof / intellij-pokemon-progress Goto Github PK
View Code? Open in Web Editor NEWA Pokémon themed progress bar for IntelliJ IDEA.
Home Page: https://plugins.jetbrains.com/plugin/15090-pokemon-progress
License: MIT License
A Pokémon themed progress bar for IntelliJ IDEA.
Home Page: https://plugins.jetbrains.com/plugin/15090-pokemon-progress
License: MIT License
Current behaviour (optional)
Progress bar now changes size to match the sprite's size
Description of the desired feature (required)
Allow fixed size
Description of the bug & expected behaviour
I would expect the pokemon to stay the same or the tooltip to update accordingly.
Environment Info
IntelliJ IDEA 2021.3 EAP (Ultimate Edition)
Build #IU-213.5062, built on October 14, 2021
IntelliJ IDEA EAP User
Expiration date: November 13, 2021
Runtime version: 11.0.12+7-b1729.1 x86_64
VM: Dynamic Code Evolution 64-Bit Server VM by JetBrains s.r.o.
macOS 11.4
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 12
Non-Bundled Plugins:
com.kagof.pokeprogress (1.6.0)
Kotlin: 213-1.5.10-release-945-IJ5062
Description of the bug & expected behaviour
When launching, Android Studio reports a crash of the plugin with this stacktrace
Environment Info
Steps to reproduce
Just installing the plugin.
Additional context or information
I spotted this line in the stacktrace
com/kagof/intellij/plugins/pokeprogress/PokemonProgressListener has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 [Plugin: com.kagof.pokeprogress]
Maybe Android Studio uses a bundled version of the JRE which is old? Just a guess though.
Anyway, I also tried other "Nyan progress bar" based plugins (the original included) and they all work fine.
Tried to uninstall it from intellij but it did not able to process that
Description of the bug & expected behaviour (required)
On Windows, the Java compiler assumes a file encoding "appropriate" for the user's language settings instead of UTF-8. If the plugin is built on Windows, the generated JAR file will have broken Pokémon
strings.
The fix is to set Java compiler to use UTF-8. I will make a PR for this in a bit.
Environment Info (required)
Current behaviour (optional)
Currently you can only toggle individual Pokémon, or all Pokémon at once.
Description of the desired feature (required)
There could be a checkbox next to every "Generation <X>" label, which affects all Pokémon in that generation.
Why this feature would be valuable (optional)
Saves hands 👏
How to implement this feature (optional)
IntelliJ SDK has a ThreeStateCheckBox
which would probably be the most appropriate UI element for this.
I'm happy to make a PR for this.
Pokémon Name/Number (required):
Pokémon Sprite(s) (optional):
This one is a bit trickier. Heart Gold/Soul Silver doesn't have sprites for these Pokémon. Looking at the Bulbagarden archives there's some possible options, but I'm not sure how good it'll look (eg, https://archives.bulbagarden.net/wiki/Category:Snivy). The menu sprite is 32x32, which is a good size for us, but it is more of an idle sprite than a walking sprite, and I'm not sure that really fits aesthetically. Maybe someone somewhere has created walking overworld sprites for this gen?
I've checked that these Pokémon have not already been requested or added in an upcoming release (required):
Description of the bug & expected behaviour (required)
When closing and reopening the IDE, the settings of the plugin are back to defaults.
Environment Info (required)
Steps to reproduce (optional)
Additional context or information (optional)
It seems this started happening after the last update, so I have the suspicion that the change of Java version made after my last bug report for Android Studio actually broke something (you fix something for a minority and something else breaks for everybody else, I feel guilty now 🤣).
I tried it on an IDE where I didn't have the plugin installed (Rider) to rule out the possibility of "dirty config" on my side, but it's happening the same way. Android Studio gives me a silent exception of the plugin where I can see a com.intellij.diagnostic.PluginException: Cannot init component state
and a com.intellij.util.xmlb.XmlSerializationException: Cannot deserialize class com.kagof.intellij.plugins.pokeprogress.configuration.PokemonProgressState
, so I'm smelling a serialization type/version mismatch or similar.
If it's too much of a headache to fix, feel free to revert to whatever Java version you were using before, I'll live without the plugin on Android Studio if it means fixing it for everybody else 😅
Pokémon Name/Number (required):
Pokémon Sprite(s) (optional):
I've checked that these Pokémon have not already been requested or added in an upcoming release (required):
Current behaviour (optional)
If a Pokémon is added, it is added. There is no way for a user to exclude a Pokémon that they don't like or think is ugly.
Description of the desired feature (required)
We could add an appearance configuration page for this app, which lets the user decide which Pokémon to include. By default, all would be included.
Why this feature would be valuable (optional)
As more and more Pokémon get added, it is more and more likely that people will come across one that they don't want to be included.
How to implement this feature (optional)
this is JetBrains' guide for making a plugin have settings https://jetbrains.org/intellij/sdk/docs/reference_guide/settings_guide.html
Additional information or context (optional)
I can successfully find and download the plugin in DataGrip.
But not in IntelliJ Ultimate.
Also if I manually drop the .zip
release in the IntelliJ Ultimate IDE it gives me an unsupported error.
Current behaviour (optional)
Any time you open the configuration, a random Pokémon is displayed for the determinate & indeterminate progress bars.
Description of the desired feature (required)
A button to re-randomize these Pokémon without having to close & re-open the configuration
Why this feature would be valuable (optional)
Quality of life improvement, especially when playing with the paint types.
How to implement this feature (optional)
Add a refresh/randomize button
Additional information or context (optional)
Pokémon Name/Number (required):
Pokémon Sprite(s) (optional):
I've checked that these Pokémon have not already been requested or added in an upcoming release (required):
Current behaviour (optional)
When the progress bar is in indeterminate mode, the position is updated using a velocity
. We accelerate (increase velocity) by 1 every time it is repainted.
Description of the desired feature (required)
I think this is too fast of an acceleration, as the Pokémon seems to really zoom across the bar sometimes when it is smaller. However, if we don't accelerate at all, it takes a really long time to get across on larger progress bars. We should reduce the acceleration.
Why this feature would be valuable (optional)
How to implement this feature (optional)
We could change the velocity to a double
, and increment by 0.5 (or some other number, dependent on how it looks) instead of by 1. Then when we add it to the pos
, we just take the floor value. We should introduce constants for initialVelocity
and acceleration
to make it easier to tweak these values.
Additional information or context (optional)
Description of the bug & expected behaviour (required)
After updating to version 2023, the Pokemon bar is not displayed.
However, if I change the theme and then change it back, it can be displayed normally.
I've already raised this issue with JetBrains officially, but they suggested I contact the plugin author.
I really like this plugin and hope that it can be supported in the 2023 version.
Environment Info (required)
Steps to reproduce (optional)
Additional context or information (optional)
If I change the theme and then change it back, it can be displayed normally, not display when restart IDE.
The icon is too fuzzy! svg dynamic pic support?
Current behaviour (optional)
There are some options to change the look, but none that affect the color gradient.
Description of the desired feature (required)
Since there are many possibilities of how the gradient could look, there could be a drop-down with a few predefined themes.
Why this feature would be valuable (optional)
Purely personal choice of aesthetics.
Additional information or context (optional)
I experimented with what looks I would prefer personally, and came up with a "Dark Flat" theme that uses the dark color of the types:
Another option could be just "Flat" that uses the middle color:
or "Light Flat":
Description of the bug & expected behaviour
When scale is set to 150% in Windows 10 sprites will scale up accordingly but in a way that messes up the spritework. Ideally sprites shouldn't be sized up in a way that makes them look "crunchy" like this, maybe only resize them at intervals of 1x, 2x, 3x etc?
You can see here that some lines become really thick and some stay 1px wide:
Environment Info
Steps to reproduce
Pokémon Name/Number (required):
Kyogre (382) (Water)
Groudon (383) (Ground)
Rayquaza (384) (Dragon/Flying)
Jirachi (385) (Steel/Psychic)
Deoxys (386) (Psychic)
Pokémon Sprite(s) (optional):
see https://www.pokencyclopedia.info/en/index.php?id=sprites/overworlds/o-r_hgss
I've checked that these Pokémon have not already been requested or added in an upcoming release (required):
yes
Pokémon Name/Number (required):
Pokémon Sprite(s) (optional):
https://www.pokencyclopedia.info/sprites/gen5/ani_black-white/ani_bw_494.gif
I've checked that these Pokémon have not already been requested or added in an upcoming release (required):
The loader is not working with one Pokemon selected.
I have Rider and PyCharm Community Edition, it is working with PyCharm but it is does not work with Rider
Environment Info:
Steps to reproduce
Pokémon Name/Number (required):
Pokémon Sprite(s) (optional):
I've checked that these Pokémon have not already been requested or added in an upcoming release (required):
Description of the bug & expected behaviour (required)
Currently doesn't load.
Environment Info (required)
Steps to reproduce (optional)
Description of the bug & expected behaviour (required)
When I have the IntelliJ window open on a side monitor, icons display as usual. When I have it open on my Macbook Pro's built in screen (a Retina screen), the fill shows up, but the Pokémon sprite does not.
Environment Info (required)
Steps to reproduce (optional)
Additional context or information (optional)
This likely is related to how IntelliJ processes icons on a Retina display, see the documentation. Gifs are not mentioned there, but I think it is safe to assume that I need to create the [email protected]
files in order for this to work properly
Pokémon Name/Number (required):
Pokémon Sprite(s) (optional):
Default HG/SS sprites mentioned in the docs
I've checked that these Pokémon have not already been requested or added in an upcoming release (required):
Description of the bug & expected behaviour (required)
After installing the plugin, I constantly get a notification in the bottom saying "IDE error occurred", which brings me to the page saying it caught an exception in your plugin.
the exception is in this link https://pastebin.com/qNn4BEzy
Environment Info (required)
Steps to reproduce (optional)
Install plugin, and do anything to bring up the progress bar
Additional context or information (optional)
eg. It only happens when it is raining
Current behaviour (optional)
Currently, the names of the pokemon displayed in the tooltip when hovering are exclusively in english.
Description of the desired feature (required)
I would like to add the possibility to switch language in the settings so that the names could be displayed in the desired one.
Why this feature would be valuable (optional)
I am french, so I don't know many of the english names of the pokemons. Therefore, it is often hard for me to understand which pokemon is displayed when I don't recognise it's picture.
How to implement this feature (optional)
Adding a new option in the settings to switch to the desired language. My suggestion would be to use specific bundles (properties files) inventoring names of every pokemons in the desired language.
It has been quite a while since I've updated this plugin, and there are various things that need to be cleaned up as a result.
I've found on Windows with version 2023.3.3 that I have to do something similar. Haven't noticed it on Mac but may be mistaken. Likely an issue with the way the plugin bootstraps itself (PokemonProgressListener
). This seems to also be the case with the new UI. This is the main issue, and is a blocker for release of a new version.
This has also been reported on Arch Linux
The plugin verifier warns: "1 usage of scheduled for removal API and 3 usages of deprecated API"
The plugin is currently being built with the 2021.1.3 SDK. That's quite old; I should update that to 2022.3.3, if not 2023.1.6, as that still let people use versions of intellij that are approx a year old.
I'm currently on version 1.4.0, and I know there are newer versions that I should use instead. I should also see if there are any new helpful tools in newer versions.
I think the IDEA loader icon should be replaced as soon as the user click on the "replace loader" checkbox.
Now, it seems that it is necessary to restart Idea in order to make it happen.
Thank's a lot if you manage to resolve this issue someday ! 😄
Pokémon Name/Number (required):
Pokémon Sprite(s) (optional):
I've checked that these Pokémon have not already been requested or added in an upcoming release (required):
Current behaviour (optional)
Hovering over the loading bar shows a tooltip which displays the name of the Pokémon.
Description of the desired feature (required)
The tooltip should also include the full size icon of the Pokémon.
Why this feature would be valuable (optional)
I have locked my bar's height at 20px (thanks to the latest update, thanks!) so some of the Pokémon icons are very small. It would be neat to be able to quickly see the full size icon.
Additional information or context (optional)
In addition to it being full size - maybe it can optionally be displayed at 2x the full size. Or scale to fit the tooltip size. This is what I would prefer as the icons are pretty small. Maybe this is easier with the upcoming work on the SVG support or the runtime upscaling of icons.
Hi~
I like your plugin because I'm big fan of pokemon.
I wonder if you add another pokemon.
I want Gyarados, Slowpoke, Koffing.!
I think 1st generation pokemon is more cute than other generation! :)
Thanks for making this awesome plugin.
Current behaviour (optional)
The plugin is currently using certain outdated mechanisms, which prevent it from being able to be dynamically reloaded.
Specifically:
Plugin cannot be loaded/unloaded without IDE restart: Plugin cannot be loaded/unloaded without IDE restart because it declares application components:
com.kagof.intellij.plugins.pokeprogress.PokemonProgressApplicationComponent
Description of the desired feature (required)
IntelliJ now support hot loading/unload of plugins as long as they meet certain criteria. We should easily be able to migrate this plugin to be compatible with that.
Why this feature would be valuable (optional)
Hot reloading would both make it easier for users (update without restarting their IDE), and for people developing for this plugin itself, as one can tweak the plugin and see the changes without having to restart the sandbox IDE over and over.
How to implement this feature (optional)
See: https://jetbrains.org/intellij/sdk/docs/basics/plugin_structure/dynamic_plugins.html
and https://jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_components.html
for update instructions.
Note that since dynamic reloading is only available from IntelliJ 2020.1, it will likely also be prudent to (re) update the IntelliJ version we build for in build.gradle.kts
.
Additional information or context (optional)
N/A
It turns out that IntelliJ will sometimes change a progress bar from "indeterminate" to "determinate". If this happens when our velocity is negative, then the progress bar will appear to be filled in from the left, and progress will "decrease" back towards the left.
Offhand, the best/easiest option to fix this will likely be just to put a check in paintDeterminate
, to set velocity = 1
and pos = 0
(might as well reset the position, too).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.