ctongfei / progressbar

Terminal-based progress bar for Java / JVM
http://tongfei.me/progressbar/
MIT License
1.08k stars 103 forks source link

Progress bar does not work in IntelliJ Idea Console #23

Closed saidaspen closed 6 years ago

saidaspen commented 6 years ago

When running an application using progress bar in IntelliJ Idea it behaves strangely. intellij-progressbar

ctongfei commented 6 years ago

Does it work in terminal (cmd / powershell)? I haven't tried it under Windows -- it works for Mac.

Also, since you are using Consolas font, for better visual effects please set ProgressBarStyle.ASCII because the box-drawing glyphs are not aligned properly in Consolas.

saidaspen commented 6 years ago

Same behaviour with ASCII.

ctongfei commented 6 years ago

Does this problem only occurs in IntelliJ? Have you tried it outside of the IDE (e.g. using Windows cmd)? This might be the same problem as #21 .

saidaspen commented 6 years ago

Same example in three consoles:

cmd.exe cmd-progressbar

git bash: gitbash-progressbar

IntelliJ Idea 2017.3 (Windows) intellij2-progressbar

koppor commented 6 years ago

I can confirm this issue.

IntelliJ IDEA 2017.3.3 (Ultimate Edition) Build #IU-173.4301.25, built on January 15, 2018 Licensed to JabRef /
Subscription is active until November 28, 2018 For non-commercial open source development only. JRE: 1.8.0_152-release-1024-b11 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Windows 10 10.0

albancolley commented 6 years ago

The issue here is that TerminalFactory.get().GetWidth (ProgressThread.consoleWdith()) is returning a width of 1 for IntelliJ. Adding a check for consoleWidth <= 10 and setting it to 80 (say) fixes the issue.

me.tongfei.progressbar.ProgressThread#consoleWidth

   int consoleWidth() {
        Terminal terminal = TerminalFactory.get();

        int columnWidth = terminal.getWidth();
        columnWidth = columnWidth > 10? columnWidth: 80;

        return columnWidth;
    }
saidaspen commented 6 years ago

I like that approach actually, as a work-around at least.

Veske commented 6 years ago

I would open a ticket about this in Jetbrains' YouTrack also. They might just fix it for you.

ctongfei commented 6 years ago

Fixed in 0.6.0 using @albancolley 's workaround approach.