[forge-dev] New shell feedback

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


... ah, forgot it, here is the ANSI string:

[forge]$


On Sat, Jan 18, 2014 at 10:07 PM, Ivan St. Ivanov
<ivan.st.ivanov at gmail.com>wrote:

> 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/664a5fc0/attachment-0001.html 


More information about the forge-dev mailing list