[forge-dev] New shell feedback

Ståle W Pedersen spederse at redhat.com
Thu Jan 16 19:50:03 EST 2014


- ive fixed the issue with TerminalCharacter, it would be interesting if 
   this bug might have been the cause of the "bleeding" thats been seen 
   as well.
ive pushed out a new version of aesh 0.47-SNAPSHOT that have the fix, if 
you have time please provide feedback.

ståle

On 17.01.14  1:00, Ståle W Pedersen wrote:
>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: [forge]$ (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



More information about the forge-dev mailing list