[forge-dev] New shell feedback

Ivan St. Ivanov ivan.st.ivanov at gmail.com
Sat Jan 18 15:07:43 EST 2014


Hi Stale,

After applying the latest changes, when I start Forge, after the first blue
characters, all the characters are blue. Even after exit Forge, shell's
foreground keeps to be blue. Here's again my code:

         List<TerminalCharacter> prompt = new LinkedList<>();
         prompt.add(new TerminalCharacter('['));
         for (char c : currentResource.getName().toCharArray())
         {
            prompt.add(new TerminalCharacter(c, new
TerminalColor(Color.BLUE, Color.DEFAULT)));
         }
         prompt.add(new TerminalCharacter(']', new
TerminalColor(Color.DEFAULT, Color.DEFAULT)));
         prompt.add(new TerminalCharacter('$'));
         prompt.add(new TerminalCharacter(' '));
         return new Prompt(prompt);

Cheers,
Ivan


On Fri, Jan 17, 2014 at 10:46 AM, Ståle W Pedersen <spederse at redhat.com>wrote:

> yes, thats the page i often refer to as well. - and its how
> TerminalCharacters work in æsh.
>
> ståle
>
> On 17.01.14  8:48, Koen Aers wrote:
> >As per this page http://en.wikipedia.org/wiki/ANSI_escape_code (it's
> wikipedia, so I don't know how correct/wrong it is) the SGR command
> modifies the graphics rendering by adding to the previous state. So if the
> background is blue and the foreground is red and characters are bold,
> modifying the background to white will keep the boldness and the red
> foreground. This also means the order of the commands should not play a
> role.
> >
> >Op 17-jan.-2014, om 01:00 heeft Ståle W Pedersen het volgende geschreven:
> >
> >> hi, thanks for the feedback.
> >> i see that there is indeed a bug in how TerminalCharacter is displayed.
> >> - there is a TerminalCharacter.toString(TerminalCharacter tc) that tries
> >>   to compare with the previous to reduce the data written to stream, but
> >>   it has a bug and do not display it correctly.
> >>
> >> By design it was planned that TerminalCharacter should not "reset" so if
> >> you set a TerminalCharacter with color green that color should be for
> >> all upcoming characters unless a new one is set.
> >>
> >> TerminalString however do in fact reset at its end (by design).
> >>
> >> I do not know if the ordering matter, afaik it shouldnt, but it might be
> >> that that is why jansi has bleeding of colors on windows??
> >>
> >> ståle
> >>
> >> On 16.01.14 23:52, Ivan St. Ivanov wrote:
> >>> Hey George, Stale,
> >>>
> >>> I did some debugging in Forge, Aesh and even Jansi sources. Before
> that, I
> >>> tried to change the color of the current folder name when creating the
> >>> prompt:
> >>>
> >>> // in org.jboss.forge.addon.shell.ShellImpl::createPrompt()
> >>>
> >>>        for (char c : currentResource.getName().toCharArray())
> >>>        {
> >>>           prompt.add(new TerminalCharacter(c, new
> >>> TerminalColor(Color.GREEN, Color.DEFAULT)));
> >>>        }
> >>>
> >>> So I expect that as a result of that, all of the characters of the
> current
> >>> directory name would be green. However it is only the first character.
> >>> After some more debugging, I found that for a directory called *forge*
> the
> >>> ANSI string passed to the Jansi library
> >>> is:  [;39;49m[ [;32mf [mo [mr [mg [me [;39m] [m$ [m (there is an ESC
> symbol
> >>> character before each [). As far as I got it, those constants 39, 32,
> etc.
> >>> denote the foreground (i.e. character) color. So, the question now is:
> >>>
> >>> Do you have to set the foreground color once and then it is valid for
> all
> >>> the next characters before you set it again, or you have to set it for
> >>> every character in the ANSI string. I think that Aesh's logic follows
> the
> >>> first approach, so is this correct? I'm afraid
> >>> Jansi's AnsiOutputStream.write(int) method is a too complex FSM for me
> in
> >>> this late hour, so I stopped there :)
> >>>
> >>> What else bothers me is the ordering of the style and color constants
> for
> >>> the first character of the prompt. Shouldn't it be the other way round
> >>> (first the style and then the color)?
> >>>
> >>> Cheers,
> >>> Ivan
> >>>
> >>>
> >>> On Wed, Jan 15, 2014 at 10:35 PM, George Gastaldi <ggastald at redhat.com
> >wrote:
> >>>
> >>>> That's right. We expect a PR from you asap :)
> >>>>
> >>>> Em 15/01/2014, às 18:28, "Ivan St. Ivanov" <ivan.st.ivanov at gmail.com>
> >>>> escreveu:
> >>>>
> >>>> Ah, so the coloring is in Forge, not in Aesh? Good, at least I will
> try to
> >>>> get acquainted with the code if not fix it ;)
> >>>>
> >>>>
> >>>> On Wed, Jan 15, 2014 at 10:24 PM, George Gastaldi <
> ggastald at redhat.com>wrote:
> >>>>
> >>>>> Hey Ivan,
> >>>>>
> >>>>> We had to remove the colors because the colors were "bleeding" to the
> >>>>> next character. If you could have a look at it, the code is in
> >>>>> ShellImpl.createPrompt().
> >>>>>
> >>>>> Pull requests are always more than welcomed. :)
> >>>>>
> >>>>> Em 15/01/2014, às 18:21, "Ivan St. Ivanov" <ivan.st.ivanov at gmail.com
> >
> >>>>> escreveu:
> >>>>>
> >>>>> Hi Stale, folks!
> >>>>>
> >>>>> I just tried the new Forge 2.0 and it works perfectly :)
> >>>>>
> >>>>> I just miss the prompt coloring. In Forge 1 we had different color
> for
> >>>>> the current directory name if it is inside a project.
> >>>>>
> >>>>> BTW, I see that the new-project command was changed to project-new.
> >>>>>
> >>>>> Cheers,
> >>>>> Ivan
> >>>>>
> >>>>>
> >>>>> On Mon, Jan 13, 2014 at 3:39 AM, George Gastaldi <
> ggastald at redhat.com>wrote:
> >>>>>
> >>>>>> Excellent Stale! Thanks for your help on this.
> >>>>>>
> >>>>>>> Em 12/01/2014, às 23:06, Ståle W Pedersen <spederse at redhat.com>
> >>>>>> escreveu:
> >>>>>>>
> >>>>>>> hi, ive deployed a new version of 0.46-SNAPSHOT that hopefully
> should
> >>>>>>> have most of the arrow-key + line redraw bugs fixed.
> >>>>>>> - please let me know if it works better other places as well.
> >>>>>>>
> >>>>>>> these issues were introduced back in oct/nov i think (during our
> >>>>>> meeting
> >>>>>>> in raleigh lincoln :) when we optimized the input and line draw in
> æsh.
> >>>>>>> - i think its time i get a working windows setup....
> >>>>>>>
> >>>>>>> i havent looked at the path issue so that still needs to be fixed.
> >>>>>>> - but ill prioritize the close issue atm.
> >>>>>>>
> >>>>>>> ståle
> >>>>>>>
> >>>>>>>> On 11.01.14 17:10, Lincoln Baxter, III wrote:
> >>>>>>>> You can find in maven under:
> >>>>>>>>
> >>>>>>>> org.jboss.aesh:aesh:0.46-SNAPSHOT
> >>>>>>>>
> >>>>>>>> The github repo/org is here: https://github.com/aeshell/aesh
> >>>>>>>>
> >>>>>>>> ~Lincoln
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Sat, Jan 11, 2014 at 3:58 PM, Ståle W Pedersen <
> >>>>>> spederse at redhat.com>wrote:
> >>>>>>>>
> >>>>>>>>> hi, ivan it is most likely an æsh bug (which forge uses for shell
> >>>>>>>>> interaction). to quickly debug æsh you could just start a simple
> >>>>>> example
> >>>>>>>>> program like: java -cp aesh-0.46-SNAPSHOT.jar AeshExample
> >>>>>>>>> - you should have the aesh jar in your local mvn cache.
> >>>>>>>>>
> >>>>>>>>> AeshExample should log to TMP/aesh.log and there is a log line
> >>>>>> starting
> >>>>>>>>> with "GOT:" for each input. that input should match whatever is
> >>>>>>>>> specified in Key.java (in æsh).
> >>>>>>>>> from what you've described above it seems that ive introduced a
> bug
> >>>>>> in a
> >>>>>>>>> later release with this or it might also be the parsing.
> whatever you
> >>>>>>>>> find out will no matter help.
> >>>>>>>>>
> >>>>>>>>> regards, ståle
> >>>>>>>>>
> >>>>>>>>>> On 11.01.14 21:18, Ivan St. Ivanov wrote:
> >>>>>>>>>> Hi folks,
> >>>>>>>>>>
> >>>>>>>>>> I just created this JIRA:
> >>>>>> https://issues.jboss.org/browse/FORGE-1425
> >>>>>>>>>>
> >>>>>>>>>> As I wrote in the first email, I would like to help resolving
> it. I
> >>>>>> just
> >>>>>>>>>> need some guidance on where to look. George asked me to run the
> >>>>>> unit tests
> >>>>>>>>>> and I tried. However, the addon-manager tests failed and I
> couldn't
> >>>>>> find
> >>>>>>>>>> the reason. :(
> >>>>>>>>>>
> >>>>>>>>>> Cheers,
> >>>>>>>>>> Ivan
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> On Sat, Jan 11, 2014 at 7:54 PM, Lincoln Baxter, III <
> >>>>>>>>>> lincolnbaxter at gmail.com> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Yes, thank you for finding these issues! Looks like we know
> what
> >>>>>> we will
> >>>>>>>>>>> be working on next few days :)
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> On Sat, Jan 11, 2014 at 12:40 PM, George Gastaldi <
> >>>>>> ggastald at redhat.com
> >>>>>>>>>> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> Ivan,
> >>>>>>>>>>>>
> >>>>>>>>>>>> Could you open a JIRA with these issues and mark it as
> Blocker? We
> >>>>>>>>> can't
> >>>>>>>>>>>> release 2.0.0.Final unless this is fixed.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Em 08/01/2014, às 11:18, "Ivan St. Ivanov" <
> >>>>>> ivan.st.ivanov at gmail.com>
> >>>>>>>>>>>> escreveu:
> >>>>>>>>>>>>
> >>>>>>>>>>>> Sorry, forgot to mention that this is with snapshot from
> December,
> >>>>>>>>> 29th.
> >>>>>>>>>>>> The situation was the same with all the previous betas and
> alphas.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> On Wed, Jan 8, 2014 at 3:13 PM, George Gastaldi <
> >>>>>> ggastald at redhat.com
> >>>>>>>>>> wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>>> Thanks for the feedback ivan.
> >>>>>>>>>>>>> Are you testing against the latest snapshot?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Best Regards,
> >>>>>>>>>>>>> George
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Em 08/01/2014, às 11:10, "Ivan St. Ivanov" <
> >>>>>> ivan.st.ivanov at gmail.com>
> >>>>>>>>>>>>> escreveu:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Hi folks,
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> As I promised, here is a [intended-to-be] short feedback
> about
> >>>>>> the new
> >>>>>>>>>>>>> Forge 2 shell. As some of you know, I use Windows (Really?
> >>>>>> OK...). So
> >>>>>>>>> I
> >>>>>>>>>>>>> will be very happy to help you solve the issues besides
> merely
> >>>>>>>>> reporting
> >>>>>>>>>>>>> them:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> * The history doesn't work. That is, when you press up and
> down
> >>>>>> arrows
> >>>>>>>>>>>>> instead of the previous commands, you get this: αH
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> * Backspace doesn't work. When I press it, the cursor just
> comes
> >>>>>> back
> >>>>>>>>> to
> >>>>>>>>>>>>> the previous position without deleting the character there.
> If I
> >>>>>> just
> >>>>>>>>> write
> >>>>>>>>>>>>> something there, the old symbol is overwritten by the new
> one,
> >>>>>> but at
> >>>>>>>>> the
> >>>>>>>>>>>>> end after pressing enter it looks like you never entered
> anything
> >>>>>>>>> after
> >>>>>>>>>>>>> pressing backspace. For example:
> >>>>>>>>>>>>> 1) I write *new-project --namek*
> >>>>>>>>>>>>> 2) I notice the typo and press backspace
> >>>>>>>>>>>>> 3) k doesn't get deleted, but I overwrite it with d
> >>>>>>>>>>>>> 4) Then I complete my command to look like this: *new-project
> >>>>>>>>> --named
> >>>>>>>>>>>>> test*
> >>>>>>>>>>>>> 5) Forge's output is: *Project name must be specified.*
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> * As you know on windows the full path to a file or
> directory is
> >>>>>>>>>>>>> <drive-letter>:\<dir1>\<dir2>
> >>>>>>>>>>>>> 1) If I try to do *cd c:\temp\forge*, Forge blows with
> >>>>>> exception:
> >>>>>>>>>>>>> org.jboss.forge.addon.resource.ResourceException:
> >>>>>> [FileResourceImpl]
> >>>>>>>>> can
> >>>>>>>>>>>>> have no
> >>>>>>>>>>>>> children
> >>>>>>>>>>>>>       at
> >>>>>>>>>>>>>
> >>>>>>
> org.jboss.forge.addon.resource.AbstractFileResource.getChild(Abstract
> >>>>>>>>>>>>> FileResource.java:78)
> >>>>>>>>>>>>>       at
> >>>>>>>>>>>>>
> >>>>>>
> org.jboss.forge.addon.shell.util.PathspecParser.resolve(PathspecParse
> >>>>>>>>>>>>> r.java:232)
> >>>>>>>>>>>>>       at
> >>>>>>>>>>>>>
> >>>>>>
> org.jboss.forge.addon.shell.commands.CdCommand.execute(CdCommand.java
> >>>>>>>>>>>>> :71)
> >>>>>>>>>>>>>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> >>>>>> Method)
> >>>>>>>>>>>>>       at
> >>>>>>>>>>>>>
> >>>>>>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> >>>>>>>>>>>>> java:57)
> >>>>>>>>>>>>>       at
> >>>>>>>>>>>>>
> >>>>>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> >>>>>>>>>>>>> sorImpl.java:43)
> >>>>>>>>>>>>>       at java.lang.reflect.Method.invoke(Method.java:606)
> >>>>>>>>>>>>> 2) Somehow I noticed that I may use the paths without the
> drive
> >>>>>>>>>>>>> letter, e.g. just \<dir1>\<dir2>. It is legal to do it in
> >>>>>> Windows,
> >>>>>>>>> but thus
> >>>>>>>>>>>>> you can't change to a directory located on a different
> drive. For
> >>>>>>>>> example
> >>>>>>>>>>>>> cd \temp\forge will change to c:\temp\forge if you are
> currently
> >>>>>> in
> >>>>>>>>> c:. So
> >>>>>>>>>>>>> I tried *cd \temp\forge*, but the result was the same
> >>>>>> [exception].
> >>>>>>>>>>>>> 3) If I am in the root directory (c:\) and I run *cd
> >>>>>> temp\forge*, I
> >>>>>>>>>>>>> don't get exception, but ****ERROR*** tempforge\: No such
> file or
> >>>>>>>>>>>>> directory*. The interesting thing is that I ran that command
> by
> >>>>>>>>>>>>> pressing tab, i.e. counting on the command completion of the
> >>>>>> shell,
> >>>>>>>>> which
> >>>>>>>>>>>>> obviously works fine.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> I made the cd command work by just running *cd /temp/forge*
> >>>>>> (notice
> >>>>>>>>>>>>> the forward slashes)
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> If you wish, I may add these observations as JIRA items,
> >>>>>> probably as
> >>>>>>>>>>>>> children to this one:
> https://issues.jboss.org/browse/FORGE-1387
> >>>>>> .
> >>>>>>>>> Bear
> >>>>>>>>>>>>> in mind that all the reported features work in Forge 1 even
> on
> >>>>>>>>> Windows ;)
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> We can discuss these in today's meeting.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Cheers,
> >>>>>>>>>>>>> Ivan
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> _______________________________________________
> >>>>>>>>>>>>> forge-dev mailing list
> >>>>>>>>>>>>> forge-dev at lists.jboss.org
> >>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> _______________________________________________
> >>>>>>>>>>>>> forge-dev mailing list
> >>>>>>>>>>>>> forge-dev at lists.jboss.org
> >>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> _______________________________________________
> >>>>>>>>>>>> forge-dev mailing list
> >>>>>>>>>>>> forge-dev at lists.jboss.org
> >>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> _______________________________________________
> >>>>>>>>>>>> forge-dev mailing list
> >>>>>>>>>>>> forge-dev at lists.jboss.org
> >>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> --
> >>>>>>>>>>> Lincoln Baxter, III
> >>>>>>>>>>> http://ocpsoft.org
> >>>>>>>>>>> "Simpler is better."
> >>>>>>>>>>>
> >>>>>>>>>>> _______________________________________________
> >>>>>>>>>>> forge-dev mailing list
> >>>>>>>>>>> forge-dev at lists.jboss.org
> >>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> _______________________________________________
> >>>>>>>>>> forge-dev mailing list
> >>>>>>>>>> forge-dev at lists.jboss.org
> >>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>>>>>
> >>>>>>>>> _______________________________________________
> >>>>>>>>> forge-dev mailing list
> >>>>>>>>> forge-dev at lists.jboss.org
> >>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> Lincoln Baxter, III
> >>>>>>>> http://ocpsoft.org
> >>>>>>>> "Simpler is better."
> >>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> forge-dev mailing list
> >>>>>>>> forge-dev at lists.jboss.org
> >>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> forge-dev mailing list
> >>>>>>> forge-dev at lists.jboss.org
> >>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> forge-dev mailing list
> >>>>>> forge-dev at lists.jboss.org
> >>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> forge-dev mailing list
> >>>>> forge-dev at lists.jboss.org
> >>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> forge-dev mailing list
> >>>>> forge-dev at lists.jboss.org
> >>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>>
> >>>>
> >>>> _______________________________________________
> >>>> forge-dev mailing list
> >>>> forge-dev at lists.jboss.org
> >>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> forge-dev mailing list
> >>>> forge-dev at lists.jboss.org
> >>>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>>>
> >>
> >>> _______________________________________________
> >>> forge-dev mailing list
> >>> forge-dev at lists.jboss.org
> >>> https://lists.jboss.org/mailman/listinfo/forge-dev
> >>
> >>
> >> _______________________________________________
> >> forge-dev mailing list
> >> forge-dev at lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/forge-dev
> >
> >
> >_______________________________________________
> >forge-dev mailing list
> >forge-dev at lists.jboss.org
> >https://lists.jboss.org/mailman/listinfo/forge-dev
>
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140118/c2605fc9/attachment-0001.html 


More information about the forge-dev mailing list