jkotlinski / durexforth

Modern C64 Forth
Other
230 stars 28 forks source link

Support control characters in editor #492

Closed IanWitham closed 1 year ago

IanWitham commented 1 year ago

The screen editor in immediate mode can take advantage of PETSCII control characters in strings, e.g. left cursor, home, reverse on/off.

The vi editor doesn't seem to allow entering control characters. Is this a feature you could add?

jkotlinski commented 1 year ago

Entering control characters was disabled because of bugs. For it to work correctly, I think a ”string mode” would be needed, with special rules for entering and displaying control characters. The interpreter has this for free, since it reuses input logic from the BASIC interpreter. I do not know if it is possible to reuse that logic in the editor. Maybe it would be easier if it was a line editor.

On Sat, 17 Dec 2022 at 04:02, amuletofyendor @.***> wrote:

The screen editor in immediate mode can take advantage of PETSCII control characters in strings, e.g. left cursor, home, reverse on/off.

The vi editor doesn't seem to allow entering control characters. Is this a feature you could add?

— Reply to this email directly, view it on GitHub https://github.com/jkotlinski/durexforth/issues/492, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAY34OY72HNKWEJABL3SVJLWNUUM5ANCNFSM6AAAAAATBWMUDQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

IanWitham commented 1 year ago

From a user's perspective, a special "string insert mode" would be ideal.

jkotlinski commented 1 year ago

Makes sense! Maybe it’s real easy to just escape the control chars to something else, so they can be displayed on-screen.

On Sat, 17 Dec 2022 at 04:02, amuletofyendor @.***> wrote:

The screen editor in immediate mode can take advantage of PETSCII control characters in strings, e.g. left cursor, home, reverse on/off.

The vi editor doesn't seem to allow entering control characters. Is this a feature you could add?

— Reply to this email directly, view it on GitHub https://github.com/jkotlinski/durexforth/issues/492, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAY34OY72HNKWEJABL3SVJLWNUUM5ANCNFSM6AAAAAATBWMUDQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

jkotlinski commented 1 year ago

I think I got it figured out in master. Do you have possibility to make a new durexForth build and try it out?

On Sat, 17 Dec 2022 at 16:58, Johan Kotlinski @.***> wrote:

Makes sense! Maybe it’s real easy to just escape the control chars to something else, so they can be displayed on-screen.

On Sat, 17 Dec 2022 at 04:02, amuletofyendor @.***> wrote:

The screen editor in immediate mode can take advantage of PETSCII control characters in strings, e.g. left cursor, home, reverse on/off.

The vi editor doesn't seem to allow entering control characters. Is this a feature you could add?

— Reply to this email directly, view it on GitHub https://github.com/jkotlinski/durexforth/issues/492, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAY34OY72HNKWEJABL3SVJLWNUUM5ANCNFSM6AAAAAATBWMUDQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

IanWitham commented 1 year ago

I'll give it a try, thanks.

IanWitham commented 1 year ago

When I run the build I get the attached message in Vice. vice-screen-2022121920401818

polluks commented 1 year ago

Me too

IanWitham commented 1 year ago

This error seems to prevent the .crt and .d64 files from being produced, but I can at least test the v editor from this screen while the "make" build is stalled. The control characters are working fine in this build. :-)

jkotlinski commented 1 year ago

Oops, that sounds like an ASCII-to-PETSCII conversion error. Thanks for testing!

On Mon, 19 Dec 2022 at 09:36, amuletofyendor @.***> wrote:

This error seems to prevent the .crt and .d64 files from being produced, but I can at least test the v editor from this screen while the "make" build is stalled. The control characters are working fine in this build. :-)

— Reply to this email directly, view it on GitHub https://github.com/jkotlinski/durexforth/issues/492#issuecomment-1357284676, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAY34O6PHE5PVPXKIANULPTWOAM7PANCNFSM6AAAAAATBWMUDQ . You are receiving this because you modified the open/close state.Message ID: @.***>

jkotlinski commented 1 year ago

Investigated a bit, apparently the ”aa” error was because the Makefile was not written in a portable manner. It should be fixed now. Cheers!

On Mon, 19 Dec 2022 at 11:47, Johan Kotlinski @.***> wrote:

Oops, that sounds like an ASCII-to-PETSCII conversion error. Thanks for testing!

On Mon, 19 Dec 2022 at 09:36, amuletofyendor @.***> wrote:

This error seems to prevent the .crt and .d64 files from being produced, but I can at least test the v editor from this screen while the "make" build is stalled. The control characters are working fine in this build. :-)

— Reply to this email directly, view it on GitHub https://github.com/jkotlinski/durexforth/issues/492#issuecomment-1357284676, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAY34O6PHE5PVPXKIANULPTWOAM7PANCNFSM6AAAAAATBWMUDQ . You are receiving this because you modified the open/close state.Message ID: @.***>

IanWitham commented 1 year ago

Working great now! Thanks.

https://user-images.githubusercontent.com/1018548/208598600-42362afe-67f9-4141-80ba-53d586aa9a15.mp4