Giter Site home page Giter Site logo

kagof / intellij-pokemon-progress Goto Github PK

View Code? Open in Web Editor NEW
177.0 1.0 19.0 3.31 MB

A Pokémon themed progress bar for IntelliJ IDEA.

Home Page: https://plugins.jetbrains.com/plugin/15090-pokemon-progress

License: MIT License

Shell 3.76% Java 86.33% HTML 9.91%
intellij pokemon plugin jetbrains jetbrains-plugin intellij-idea java

intellij-pokemon-progress's People

Contributors

chriscarini avatar chylex avatar imgbotapp avatar kagof avatar marcodenisi avatar paola351 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  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  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  avatar

Watchers

 avatar

intellij-pokemon-progress's Issues

Allow fixed progress bar size

Current behaviour (optional)

Progress bar now changes size to match the sprite's size

Description of the desired feature (required)

Allow fixed size

Chosen Pokemon is randomised but the tooltip doesn't change

Description of the bug & expected behaviour

  1. Start an inspection
  2. Open and close 'Background Tasks' popup multiple times

I would expect the pokemon to stay the same or the tooltip to update accordingly.

Kapture 2021-10-15 at 13 19 32

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

Plugin crashes on loading on Android Studio

Description of the bug & expected behaviour

When launching, Android Studio reports a crash of the plugin with this stacktrace

Environment Info

  • OS: Windows 10 Build 19041
  • JetBrains Product: Android Studio
  • JetBrains Product Version: 4.1.1
  • Plugin Version: 1.3.0

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.

Broken unicode text when building on Windows systems

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.

obrazek

The fix is to set Java compiler to use UTF-8. I will make a PR for this in a bit.

Environment Info (required)

  • OS: Windows
  • JetBrains Product: Any
  • JetBrains Product Version: Any
  • Plugin Version: Any

Add a way to select / deselect whole generations in settings

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.

Add Gen V Starters

Pokémon Name/Number (required):

  • Snivy (495) (Grass)
  • Serperior (497) (Grass)
  • Tepig (498) (Fire)
  • Emboar (500) (Fire/Fighting)
  • Oshawott (501) (Water)
  • Samurott (503) (Water)

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

  • yes

Settings are not preserved after closing the IDE

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)

  • OS: Windows 10 Build 19042
  • JetBrains Product: Webstorm, Android Studio and Rider.
  • JetBrains Product Version: Latest stable for each one.
  • Plugin Version: 1.3.1

Steps to reproduce (optional)

  • I go to the settings.
  • I deselect Pokémon I don't wanna see.
  • All goes as expected.
  • I close the IDE.
  • Next time I open the IDE, all the Pokémon (and presumably other settings too, but haven't checked) revert to default.

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 😅

Make chosen Pokémon configurable

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

  • we would need to add a settings page, with a list of all Pokémon that a user can enable/disable as they please. Ideally, this list should be generated at runtime not compile time, so we don't need to manually update it every time we add a new Pokémon.
  • the state of these settings would have to be persisted
  • We need to consider the case where the user turns off every Pokémon. What do we do here? Maybe just a bar that fills with the colour but no Pokémon? Maybe an Easter Egg, like Red or a Pokéball, or MissingNo? Maybe we just set the progress bar back to what it was before this plugin was loaded?

Additional information or context (optional)

🐞 Bug - IntelliJ Ultimate not supported?

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.

Add a refresh/randomize button in the preview panel

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)

This was brought up by @chylex in #59 as a possibility

Reduce Pokémon acceleration on indeterminate progress bar

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)

See PokemonProgressBarUi:207.

Not work in 2023 version

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)

  • OS: Window
  • JetBrains Product: Rider
  • JetBrains Product Version: 2023
  • Plugin Version: 2.1.1

Steps to reproduce (optional)

  1. open IDE
  2. not display

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.

svg support

The icon is too fuzzy! svg dynamic pic support?

Possibility of having multiple themes for the gradient

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:

obrazek

Another option could be just "Flat" that uses the middle color:

obrazek

or "Light Flat":

obrazek

Sprites scale awkwardly with windows scale settings.

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:
pkmn-progressbar-scaling

Environment Info

  • OS: Windows 10 Education 21H2
  • JetBrains Product: IntelliJ Ultimate
  • JetBrains Product Version: 2023.2.1
  • Plugin Version: 2.1.1

Steps to reproduce

  1. In display settings, set "Scale and Layout" to 150%
  2. Open pokemon progress settings in IntelliJ to see the sprites.

It does not work when I have only one Pokemon selected [Rider]

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

image
image

Environment Info:

  • OS: ArchLinux
    image
  • JetBrains Product: Rider
  • JetBrains Product Version: Rider: 2023.3.2
  • Plugin Version: eg. 1.0.0

Steps to reproduce

  1. Go to settings
  2. Deselect all Pokemons
  3. Select Jigglypuff
  4. Close settings
  5. Enjoy default progress bar 😿

Support for IntelliJ 2020.3

Description of the bug & expected behaviour (required)
Currently doesn't load.

Environment Info (required)

  • OS: OS 11 Big Sur
  • JetBrains Product: IntelliJ Ultimate
  • JetBrains Product Version: 2020.3
  • Plugin Version: Newest

Steps to reproduce (optional)

  1. Open IntelliJ
  2. Do not see Pokemon progress bar

Sprites do not appear on a Retina display

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)

  • OS: Mac OSX Catalina
  • JetBrains Product: IntelliJ Ultimate
  • JetBrains Product Version: 2020.2.2
  • Plugin Version: 1.0.0

Steps to reproduce (optional)

  1. Open IntelliJ window on a Retina screen
  2. Trigger a progress bar

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

Misc New Pokemon

Pokémon Name/Number (required):

  • Absol (359)
  • Bidoof (399)
  • Charmeleon (5)
  • Dragonair (148)
  • Electrike (309)
  • Gliscor (472)
  • Houndoom (229)
  • Ivysaur (2)
  • Kingler (99)
  • Ludicolo (272)
  • Luxray (405)
  • Mareep (179)
  • Mightyena (262)
  • Raichu (26)
  • Rapidash (78)
  • Rattata (19)
  • Shinx (403)
  • Tropius (357)
  • Wartortle (8)

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

  • yes

Getting IDE Fatal Errors

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)

  • OS: Windows 10 20H2
  • JetBrains Product: eg. IntelliJ Ultimate
  • JetBrains Product Version: eg. 2021.1.EAP
  • Plugin Version: eg. 1.4.2

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

Adding the possibility to switch language for pokemon names

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.

Maintenance tasks for compatibility with newer IDEA versions

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.

"can't work on 2023.3.2 unless disable and re-enable" (from plugin reviews)

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

deprecated API usages

The plugin verifier warns: "1 usage of scheduled for removal API and 3 usages of deprecated API"

update IDEA SDK minimum version

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.

update IDEA gradle plugin

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.

Can't replace loader icon without restarting IDE.

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 ! 😄

Cramorant Pokémon Request

Pokémon Name/Number (required):

  • Cramorant #845

Pokémon Sprite(s) (optional):

I've checked that these Pokémon have not already been requested or added in an upcoming release (required):

  • yes

Tooltip should show fullsize preview of the Pokémon

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.

Could you add another pokemon?

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.

Prep for dynamic reload

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

Progress Bar changing from indeterminate to determinate can cause bar to load "backwards"

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

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.