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(a)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(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
>>>>
>>
>>> _______________________________________________
>>> 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