1. RedyCode 1.0.0 released!

After all these years, I finally finished RedyCode!

By "finished" i mean, it is good enough to call version 1.0.0. It has been a very long journey, starting with a concept about 16 years ago and struggling for years to write and re-write code in my spare time. About 3 years ago, it was a usable text editor but still had many shortcomings. A few months after the last release in 2016, I had an almost-finished version that worked well for my own programming projects, but I was too busy to finish the last few details until now.

Version 1.0.0 accomplishes my main goal: to have an easy-to-use and easy-to-install Euphoria IDE that makes it easy to build EXEs. There are still bugs to fix and features to add, but I believe it is useful enough as it is to share with the Euphoria community. The next goal is to use RedyCode to continue development of RedyCode and some other projects I have in mind.

Check out the wiki page and the website for more information. Enjoy!

new topic     » topic index » view message » categorize

2. Re: RedyCode 1.0.0 released!

Wow, Ryan! Congrats!

new topic     » goto parent     » topic index » view message » categorize

3. Re: RedyCode 1.0.0 released!

Download doesn't seem to be working for me. It starts out fine but within the first 1% it just slows to 0 KB/s.

-Greg

new topic     » goto parent     » topic index » view message » categorize

4. Re: RedyCode 1.0.0 released!

ghaberek said...

Download doesn't seem to be working for me. It starts out fine but within the first 1% it just slows to 0 KB/s.

-Greg

Maybe too many people are downloading it at the same time! Haha

new topic     » goto parent     » topic index » view message » categorize

5. Re: RedyCode 1.0.0 released!

Congrats! Looks pretty nifty. I'll be trying this out pretty soon.

new topic     » goto parent     » topic index » view message » categorize

6. Re: RedyCode 1.0.0 released!

ryanj said...

Maybe too many people are downloading it at the same time! Haha

Yeah it downloaded just fine this morning. Not sure what happened.

I'm really impressed with how snappy and responsive you've made this! Looking forward to a more modern look-and-feel.

What are your plans for making it cross-platform? Looks like RedyLib is built for pluggable modules?

Edit: One thing I noticed is that your dialog boxes are system-modal, which makes them stay on top of other windows. They should only be app modal.

https://i.imgur.com/UX1WiFM.png

-Greg

new topic     » goto parent     » topic index » view message » categorize

7. Re: RedyCode 1.0.0 released!

ghaberek said...
ryanj said...

Maybe too many people are downloading it at the same time! Haha

Yeah it downloaded just fine this morning. Not sure what happened.

I'm really impressed with how snappy and responsive you've made this! Looking forward to a more modern look-and-feel.

It turns out, euphoria can handle a widget system pretty well. But it took a lot of time to optimize it. Most of the optimization had to do with filtering out unnecessary redraws and redundant events and only copying the part of the window buffer that actually changed. I also spent a lot of time experimenting with various event buffer sizes and task schedule timings, mixed with win32 timers, which get pretty complex when dealing with system dialogs and other odd cases. It also took thoughtful indexing methods and learning how to take advantage of how euphoria sequences are optimized for different types of sequence operations.

I also am looking forward to redesigning the look-and-feel. The current design was started around 2005, when that style was more popular, and I didn't want to change it midway while working on it a few years ago. The theme is currently hard-coded, so it will take a lot of rework to make it possible to create new themes and color schemes, but I plan to do that eventually.

ghaberek said...

What are your plans for making it cross-platform? Looks like RedyLib is built for pluggable modules?

I will need to make a wrapper for xcb or xlib or wayland to manage windows, draw to them, and process window events, similar to the win32api wrapper i made.

ghaberek said...

Edit: One thing I noticed is that your dialog boxes are system-modal, which makes them stay on top of other windows. They should only be app modal.

-Greg

Yes, that is because I was having problems figuring out how to get window order to work the way I want in win32, so I had to settle for "topmost". Eventually, I'll take another look at the code and see if i can make topmost windows only be on top of other Redy windows. I also need to add true multi-monitor support and a few other details in the win32 wrapper.

Redy does not use true modal windows at all. You can test for yourself by going to Help -> About. You'll see if you move the mouse over the main window behind the "modal" about window, the mouse cursor changes to a "No" sign and the widgets will ignore events, yet you can still move and resize the main window! This also happens with message boxes, like when it asks if you want to save a file before closing. That was a deliberate design, because I think it's stupid when you can't move a window just because a modal window has popped up.

new topic     » goto parent     » topic index » view message » categorize

8. Re: RedyCode 1.0.0 released!

ryanj said...

Redy does not use true modal windows at all. You can test for yourself by going to Help -> About. You'll see if you move the mouse over the main window behind the "modal" about window, the mouse cursor changes to a "No" sign and the widgets will ignore events, yet you can still move and resize the main window! This also happens with message boxes, like when it asks if you want to save a file before closing. That was a deliberate design, because I think it's stupid when you can't move a window just because a modal window has popped up.

That seems to be the correct way for modal dialogs to work (at least on Linux) - Geany, EuGTK, xed, and others allow moving and resizing the parent window while a modal dialog is open. The menus and buttons on the parent are disabled, except for the minimize/maximize buttons.

So the only non-standard part would be the dialog's staying above new windows which are opened.

new topic     » goto parent     » topic index » view message » categorize

9. Re: RedyCode 1.0.0 released!

It has been a couple months since I released version 1.0.0. I hope someone out there finds it useful, but if not, that's fine. Looking back on the 10+ years I worked on this ambitious project, it was rewarding, fun, and a good learning experience to develop a widget toolkit and text editor from scratch in pure Euphoria. It definitely taught me a lot about euphoria strengths and weaknesses, win32api, object oriented concepts, reactive programming concepts, syntax parsing concepts, compiler setup, user interface design, methods of optimizing large data processing, and much more. I hope to find time soon to continue working on the "next phase", whatever that may look like. I have lots of ideas rolling around in my head, but it's hard to find time for personal projects, right? I know progress seems slow in the Euphoria community, but i'm sure many of us are enjoying tinkering with stuff, with what little free time we have. smile

I'm curious if anyone has used RedyCode at all for Euphoria development, web development, general text editing, or any other use cases.

new topic     » goto parent     » topic index » view message » categorize

10. Re: RedyCode 1.0.0 released!

Ok then...I thought at least someone would appreciate how easy it is to run/translate/compile Euphoria programs with RedyCode, but maybe I'm a few years too late.

new topic     » goto parent     » topic index » view message » categorize

11. Re: RedyCode 1.0.0 released!

Yes, someone does.

Having first made the mistake of trying to develop library modules (.e's) using RedyCode, I have successfully used it on two projects and am now engaged on a third. (I suppose I am not really as used to project-based development over, say, using WEE for individual module creation/testing.)

I certainly can recommend it to others and am very grateful to you for the very comprehensive design and implementation. You really can develop your Euphoria applications "within" it.

Sorry not to reply sooner.

PS. I haven't fully exploited all the facilities yet, but am looking forward to doing so soon.

new topic     » goto parent     » topic index » view message » categorize

12. Re: RedyCode 1.0.0 released!

Hi Ryan

Nice job, except, and really sorry, now going to start picking it apart! I have been following it, just not using it much, and it has mature nicely. It could be a potential candidate for the default Eu distribution.

Here's a couple of screen shots of the help page

https://i.imgur.com/L8kiz2y.jpg

and

https://i.imgur.com/nFMAjhh.jpg

This one is expanded to full screen which often resolves this kind of issue.

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

13. Re: RedyCode 1.0.0 released!

Hi

Open Project - should the location not default to where the projects are stored?

Try this

Options -> Preferences -> Cancel
File -> Open Project -> Cancel
Options -> Prefernces ........

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

14. Re: RedyCode 1.0.0 released!

Hi Ryan

Top button bar needs a run button. I see that a button is available underneath Projects - however this does not change when clicking on other editing tabs.
If its a console program, it must not self close, you 'press any key to exit' - or add a hint to add it to the program itself.

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

15. Re: RedyCode 1.0.0 released!

Hi

If you open several programs to show up in the tabbed edit window, then only the first program is run, no matter which tab is highlighted and which program is shown in the edit window. The expected behaviour should be to run the highlighted program.

Also even when you close the tab, and the program is no longer shown (or loaded one would think) running the program (run -> euphoria default) - the closed program is the one that runs.

However double clicking a program in the program lists loads the program into the editor, and then runs it - but still the first program loaded is the one that is run when you do run -> euphoria default.

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

16. Re: RedyCode 1.0.0 released!

Hi, if you are going to include tinewg examples, then you must include the tinewg includes.

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

17. Re: RedyCode 1.0.0 released!

Hi

I want to have more control over the colour scheme. (not me being spoiled, what a person exploring Eu would say)

I might also suggest that a dark coding environment looks more cutting edge / hip than a white / light one, so allow a black editing background, and high contrast colours for the text.

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

18. Re: RedyCode 1.0.0 released!

Hi

I want to close a tab by right clicking on itm and choosing from some options. I see that double clicking on a tab closes it - could you add a small 'X' to the tab to allow closing?

I'm really sorry about these multiple posts, I shall try to conjugate them into one when I have come across issues - I'm just recording them as I see them.

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

19. Re: RedyCode 1.0.0 released!

Hi

It has been remarked that I am trying to trash Ryan's RedyCode. That is utterly not my intention. It is a great piece of work, and believe me I know how much effort goes into these long projects, and how difficult it is to keep up the motivation to do it.

I unreservedly apologise if I have caused offence.

Having said that, this is a potential front end for Euphoria, and as such it might be the first point of contact a newcomer has to Euphoria and while seasoned Eu users may have no need for a bells and whistles GUI, newer (and dare I say it younger) programmers may look at the interface, think they can't make it black 'like python' and move on.

So when I approach this, I approach it like a newbie - clicking and cancelling, looking for demos, fiddling with IDE options and so on. If it crashes, I report it, not because I'm trying to trash it, but because I think it's worthwhile filing these rough edges off.

So, in order to cause no further potential offence, I will stp reporting the niggles, until Ryan has said it's ok - if he doesn't, fair enough I won't take it any further.

As ever, cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

20. Re: RedyCode 1.0.0 released!

ChrisB said...

It has been remarked that I am trying to trash Ryan's RedyCode. That is utterly not my intention. It is a great piece of work, and believe me I know how much effort goes into these long projects, and how difficult it is to keep up the motivation to do it.

I suspect Ryan very much appreciates the feedback. I haven't seen any trashing of it in this forum; in fact, the opposite. And Ryan has always requested critiques and suggestions for his project.

I suspect most programmers would love to have more feedback of their projects! That helps make our apps that much better!

new topic     » goto parent     » topic index » view message » categorize

21. Re: RedyCode 1.0.0 released!

dr_can said...

Yes, someone does.

Having first made the mistake of trying to develop library modules (.e's) using RedyCode, I have successfully used it on two projects and am now engaged on a third. (I suppose I am not really as used to project-based development over, say, using WEE for individual module creation/testing.)

I certainly can recommend it to others and am very grateful to you for the very comprehensive design and implementation. You really can develop your Euphoria applications "within" it.

Sorry not to reply sooner.

PS. I haven't fully exploited all the facilities yet, but am looking forward to doing so soon.

Good to hear!

Projects can be a nice way to keep source files more organized, and you can also browse the include folder to see exactly what libraries are available to all projects. You can also bundle multiple programs, bat files, etc. within a project, run them or browse the folders directly from the project tree. And it is nice to know exactly where your build files will be genarated within the project.

Another possible use for RedyCode is taking notes by puting a bunch of text files in a project. If you save files as .htd format ("hyper-text document"), you can use Creole syntax to format the text. (This file type is used for RedyCode's help documents, which you can see in "\projects\RedyCode\source\docs")

ChrisB said...

Hi Ryan

Nice job, except, and really sorry, now going to start picking it apart! I have been following it, just not using it much, and it has mature nicely. It could be a potential candidate for the default Eu distribution.

Here's a couple of screen shots of the help page

...

This one is expanded to full screen which often resolves this kind of issue.

Cheers

Chris

Unfortunatly, htd has some serious display bugs I am well aware of, but haven't been able to figure out why. Also, the creole syntax parser is poorly done. I will address these issues when I have more time.

new topic     » goto parent     » topic index » view message » categorize

22. Re: RedyCode 1.0.0 released!

ChrisB said...

Top button bar needs a run button. I see that a button is available underneath Projects - however this does not change when clicking on other editing tabs.
If its a console program, it must not self close, you 'press any key to exit' - or add a hint to add it to the program itself.
... If you open several programs to show up in the tabbed edit window, then only the first program is run, no matter which tab is highlighted and which program is shown in the edit window. The expected behaviour should be to run the highlighted program.

Also even when you close the tab, and the program is no longer shown (or loaded one would think) running the program (run -> euphoria default) - the closed program is the one that runs.

However double clicking a program in the program lists loads the program into the editor, and then runs it - but still the first program loaded is the one that is run when you do run -> euphoria default. ... I want to close a tab by right clicking on itm and choosing from some options. I see that double clicking on a tab closes it - could you add a small 'X' to the tab to allow closing?

You are right, there should be a "run current file" action, and more features on the tabs, but it was getting complicated trying to implement that, because the tabs widget class is incomplete, and the way Actions are handled is flawed. So, I made a compromise and just put "Run Program" in the Project Tree context menus. By default, it assumes you want to run the main program of the project.

new topic     » goto parent     » topic index » view message » categorize

23. Re: RedyCode 1.0.0 released!

ChrisB said...

Hi, if you are going to include tinewg examples, then you must include the tinewg includes.

OOPS! Thanks for catching that. I meant to delete that folder. That reminds me, the euphoria currently included is a subset of tinAndi's Portable Eu because I'm not familiar enough with how GCC works and how to build euphoria from source. If someone could provide an official build and eu.a and other needed files, that would be much better.

new topic     » goto parent     » topic index » view message » categorize

24. Re: RedyCode 1.0.0 released!

ChrisB said...

Hi

It has been remarked that I am trying to trash Ryan's RedyCode. That is utterly not my intention. It is a great piece of work, and believe me I know how much effort goes into these long projects, and how difficult it is to keep up the motivation to do it.

I unreservedly apologise if I have caused offence.

Having said that, this is a potential front end for Euphoria, and as such it might be the first point of contact a newcomer has to Euphoria and while seasoned Eu users may have no need for a bells and whistles GUI, newer (and dare I say it younger) programmers may look at the interface, think they can't make it black 'like python' and move on.

So when I approach this, I approach it like a newbie - clicking and cancelling, looking for demos, fiddling with IDE options and so on. If it crashes, I report it, not because I'm trying to trash it, but because I think it's worthwhile filing these rough edges off.

So, in order to cause no further potential offence, I will stp reporting the niggles, until Ryan has said it's ok - if he doesn't, fair enough I won't take it any further.

As ever, cheers

Chris

euphoric said...

I suspect Ryan very much appreciates the feedback. I haven't seen any trashing of it in this forum; in fact, the opposite. And Ryan has always requested critiques and suggestions for his project.

I suspect most programmers would love to have more feedback of their projects! That helps make our apps that much better!

I appreciate the feedback, positive and negative. The only annoyance is the HUGE screenshots in this thread, but that's partially the fault of how images are handled in this forum.

I'm well aware of a few crash bugs, visual bugs, and various glitches and shortcomings. I realized if i tried to fix all of them, it would never get released. So hopefully, it is good enough for now until I have more time to redesign some things. There are lots of ideas rolling around my head for version 2.0 that will allow HUGE improvements, but will require re-writing much code, so I decided not to go much further with this version, other than small improvements.

new topic     » goto parent     » topic index » view message » categorize

25. Re: RedyCode 1.0.0 released!

ChrisB said...

Hi

I want to have more control over the colour scheme. (not me being spoiled, what a person exploring Eu would say)

I might also suggest that a dark coding environment looks more cutting edge / hip than a white / light one, so allow a black editing background, and high contrast colours for the text.

I agree. I already implemented the ability to instantly change the color scheme in the widget system, but I didn't finish implementing color schemes in the textedit class. You can try going to Options -> Preferences -> GUI and set the color scheme and language. I do plan to finish the color scheme for v1.1, but language won't be implemented until version 2.0.

new topic     » goto parent     » topic index » view message » categorize

26. Re: RedyCode 1.0.0 released!

Planned for version 1.1:

  • Crash fixes (opening/closing certain windows sometimes, closing all files then opening another project)
  • Fix "Run Program (Console)" not keeping the console open
  • Finish implementing color schemes and make at least 1 nice dark theme
  • Replace EuPortable with official Euphoria 4.1 build
  • Try to fix undo corruption
  • Try to fix formatted text display glitches
  • Try to fix refresh bug when editing beginning and end of block comments
  • Try to improve handling of tabs vs. spaces or special characters and warn of special characters in the current file rather than silently messing them up
  • Try to improve html and creole syntax highlighting
  • Possibly add "Run Current Program"
  • Possibly improve the Project list, possibly show recently opened projects and files

It will depend on how much time I have, but if it takes too long to address all of these, I'll just release 1.1 in the next few months with at least a few improvements. My main focus right now is some other projects which I hope to announce "soon". blink

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu