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(a)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(a)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(a)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(a)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(a)redhat.com>wrote:
>>
>>> Excellent Stale! Thanks for your help on this.
>>>
>>> > Em 12/01/2014, às 23:06, Ståle W Pedersen <spederse(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)lists.jboss.org
>>> >>>>>>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>>> >>>>>>>
>>> >>>>>>>
>>> >>>>>>> _______________________________________________
>>> >>>>>>> forge-dev mailing list
>>> >>>>>>> forge-dev(a)lists.jboss.org
>>> >>>>>>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>>> >>>>>>>
>>> >>>>>>
>>> >>>>>> _______________________________________________
>>> >>>>>> forge-dev mailing list
>>> >>>>>> forge-dev(a)lists.jboss.org
>>> >>>>>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>>> >>>>>>
>>> >>>>>>
>>> >>>>>> _______________________________________________
>>> >>>>>> forge-dev mailing list
>>> >>>>>> forge-dev(a)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(a)lists.jboss.org
>>> >>>>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>>> >>>>>
>>> >>>
>>> >>>> _______________________________________________
>>> >>>> forge-dev mailing list
>>> >>>> forge-dev(a)lists.jboss.org
>>> >>>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>>> >>>
>>> >>> _______________________________________________
>>> >>> forge-dev mailing list
>>> >>> forge-dev(a)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(a)lists.jboss.org
>>> >>
https://lists.jboss.org/mailman/listinfo/forge-dev
>>> >
>>> > _______________________________________________
>>> > forge-dev mailing list
>>> > forge-dev(a)lists.jboss.org
>>> >
https://lists.jboss.org/mailman/listinfo/forge-dev
>>>
>>> _______________________________________________
>>> forge-dev mailing list
>>> forge-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>>>
>>
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>>
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/forge-dev
>