1. The Euphoria Editor

Forked from Re: UI/IDE committee

I just got done "lone wolfing" an initial release of what I am simply calling The Euphoria Editor. Latest release is 0.1b and this is still a BETA release.

I'd been keeping my work on this to myself, in case I never made any actual progress. But now I've got something to share so I'm posting it with the hope that we can keep my momentum going. Over the past couple weeks in my spare time, I've been working on writing an automated wrapper for IUP. Jeremy's wrapper was too out of date and too "Euphorian" for my taste. My wrapper program automatically converts the header files into Euphoria files and maintains a one-to-one syntax.

Having that wrapper relatively stable now, I powered through many many hours of coding and several cans of my favorite caffeinated beverages over this weekend to complete the basic layout of what is, basically, Pete's WEE re-written in IUP. I was pleasantly surprised about how little code there is here, currently under 1,000 lines (excluding IUP, of course). So try it out and let's keep the feedback loop going. This needs work. A lot of work. But it's a good start.

24 December 2015
Moved IUP to its own repository

25 October 2015
Released v0.1b (BETA)

18 October 2015
Released v0.1a (ALPHA)

Get it here, complete with IUP libraries and my new wrapper: https://bitbucket.org/ghaberek/editor/downloads

-Greg

new topic     » topic index » view message » categorize

2. Re: The Euphoria Editor

Nice work! I played with IUP in the past and its a very good and light UI library. My only problem with this is that i never found a way (in their documentation) to use windows 7 look and feel in this, just this dated win 95/98 look...

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

3. Re: The Euphoria Editor

I had to copy src/eu.cfg to the /bin directory for some reason. not sure why it didn't work as is.

does the help/dialog layout come free with IUP? that seems quite useful for debugging and general properties setting, needs an export euphoria?

can't go too far wrong with Scintilla. looks like it doesn't get all the eu4 string & comment syntax right yet.

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

4. Re: The Euphoria Editor

elias_maluko said...

Nice work! I played with IUP in the past and its a very good and light UI library. My only problem with this is that i never found a way (in their documentation) to use windows 7 look and feel in this, just this dated win 95/98 look...

Thanks. I do need to look into that. I did the initial development on Linux and have not had a lot of time to test on Windows. Hopefully that is something we can work out. Otherwise I think it might turn people off from using IUP for their GUI development.

ne1uno said...

I had to copy src/eu.cfg to the /bin directory for some reason. not sure why it didn't work as is.

I will check out the eu.cfg issue. Probably just a typo in my packaging script. That file is required because I am launching eui from the bin directory so that the shared libraries are "local" to the execution point.

ne1uno said...

does the help/dialog layout come free with IUP? that seems quite useful for debugging and general properties setting, needs an export euphoria?

Yes! I was surprised to discover this feature built into IUP. I just had to add a menu entry to launch it. I left it in for development and debugging purposes. I will probably exclude it from future "release" builds.

ne1uno said...

can't go too far wrong with Scintilla. looks like it doesn't get all the eu4 string & comment syntax right yet.

I cheated and used the Lua lexer for now. I need to get a custom Euphoria lexer built. Unfortunately the one in the Archive is outdated and I think that is the same one Pete uses in WEE. The folks at SciTE changed the API for lexers a bit so I have to make some changes for it to compile correctly.

-Greg

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

5. Re: The Euphoria Editor

ghaberek said...

I just got done "lone wolfing" an initial release of what I am simply calling The Euphoria Editor. Initial release is 0.1a and this is very much an alpha release.

Nice work! I'll try to get it working on the Raspberry Pi and submit a package if I can get it working.

-xecronix

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

6. Re: The Euphoria Editor

ghaberek said...
elias_maluko said...

Nice work! I played with IUP in the past and its a very good and light UI library. My only problem with this is that i never found a way (in their documentation) to use windows 7 look and feel in this, just this dated win 95/98 look...

Thanks. I do need to look into that. I did the initial development on Linux and have not had a lot of time to test on Windows. Hopefully that is something we can work out. Otherwise I think it might turn people off from using IUP for their GUI development.

It turns out that the lack of visual styles is caused by the use of owner-drawning that IUP uses to add the close button to each tab. Disabling the "SHOWCLOSE" option restores the proper visual styles in Windows 7. So right now, "close button" and "visual styles" seem to be mutually exclusive. If you think about it, Notepad++ has the same problem, but they mask the lack of visual styles with some additional drawing to customize the look of the tab more uniquely. I think adding an icon to the tab will help the owner-drawn tabs look better, so I will try that soon. I still need to get the icons updated because the ones that come with IUP for Windows look horrible.

-Greg

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

7. Re: The Euphoria Editor

xecronix said...

Nice work! I'll try to get it working on the Raspberry Pi and submit a package if I can get it working.

-xecronix

Well... I got IUP to work on the Raspberry Pi

Install pre-req libs

sudo apt-get install libreadline-dev \ 
g++ \ 
libgl1-mesa-dev \ 
libglu1-mesa-dev \ 
libx11-dev \ 
libxpm-dev \ 
libxmu-dev \ 
libxft-dev \ 
libwebkitgtk-3.0-dev  

Set up build env

mkdir ~/dev 
cd ~/dev 
mkdir iup 
cd iup 

Download the source: (current as of 10/19/2015)

wget http://sourceforge.net/projects/luabinaries/files/5.3/Docs and Sources/lua-5.3_Sources.tar.gz/download && mv download lua.tgz 
wget http://sourceforge.net/projects/imtoolkit/files/3.10/Docs%20and%20Sources/im-3.10_Sources.tar.gz/download && mv download im.tgz 
wget http://sourceforge.net/projects/canvasdraw/files/5.9/Docs%20and%20Sources/cd-5.9_Sources.tar.gz/download && mv download cd.tgz 
wget http://sourceforge.net/projects/iup/files/3.16/Docs%20and%20Sources/iup-3.16_Sources.tar.gz/download && mv download iup.tgz 
Build lua
tar -xzvf *.tgz 
cd lua53 
make -j 4 linux 
sudo make install 

Build everything else... in this order

cd im/src 
make -j 4 
cd ../.. 
 
cd cd/src 
make -j 4 
cd ../.. 
 
cd iup 
make -j 4 
 
cd srcimglib 
make -j 4 
cd ../ 
 
cd srcscintilla 
make -j 4 
cd ../.. 

Install libs

sudo cp cd/lib/Linux41_arm/lib* /usr/lib/ 
sudo cp im/lib/Linux41_arm/lib* /usr/lib 
sudo cp iup/lib/Linux41_arm/lib* /usr/lib 

Install dev aka header files

sudo mkdir -p /usr/include/im 
sudo cp -fR im/include/*.h /usr/include/im 
 
sudo mkdir -p /usr/include/cd 
sudo cp -f cd/include/*.h /usr/include/cd 
 
sudo mkdir -p /usr/include/iup 
sudo cp -f iup/include/*.h /usr/include/iup      

create helloworld.c for testing:

mkdir ~/dev/myc/iuptesting && cd ~/dev/myc/iuptesting 

#include <stdlib.h> 
#include <iup.h> 
/* 
 * to compile 
 * gcc -I/usr/include/iup -liup -o helloworld helloworld.c 
 *  
 * */ 
int main(int argc, char **argv) 
{ 
  IupOpen(&argc, &argv); 
   
  IupMessage("Hello World 1", "Hello world from IUP."); 
   
  IupClose(); 
  return EXIT_SUCCESS; 
} 

-xecronix

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

8. Re: The Euphoria Editor

Is Iup, 4.0 or 4.1?

Shawn

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

9. Re: The Euphoria Editor

SDPringle said...

Is Iup, 4.0 or 4.1?

My automated wrapper should work just fine with 4.0.

One of the only 4.1 features I use is sizeof() which, for IUP, I've added manually using an ifdef.

ifdef EU4_0 then 
    public function sizeof( atom ctype ) 
        return and_bits( ctype, #FF ) 
    end function 
end ifdef 

-Greg

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

10. Re: The Euphoria Editor

I modified my build instructions for IUP on the Raspberry PI to include iupimage and iupscintilla. Once those two additional dlls were built, nothing else needed to happen to start The Euphoria Editor on the ARM platform. So, IOW, build IUP and clone the bitbucket project and it just works.

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

11. Re: The Euphoria Editor

xecronix said...

I modified my build instructions for IUP on the Raspberry PI to include iupimage and iupscintilla. Once those two additional dlls were built, nothing else needed to happen to start The Euphoria Editor on the ARM platform. So, IOW, build IUP and clone the bitbucket project and it just works.

Perfect! That's a big help. Can you create a Building on ARM page on the wiki for the project? I can dig out my Raspberry Pi (an original Model A!) to verify the steps and provide download packages. Although, I'm wondering if we can cross-compile from x86. That would be helpful as well, since I'd like to automate the build of the distribution packs for all platforms.

-Greg

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

12. Re: The Euphoria Editor

I am preparing to release version 0.1b (BETA) at the end of this weekend. Any thoughts so far? Has anyone even used it yet?

-Greg

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

13. Re: The Euphoria Editor

Hi Greg,
the choice of editor a user uses, seems much like a religion, whatever you have is correct, the others are wrong and there needs to be a compelling reason to change editors ;) Personally I use the commercial UltraEdit, it has Euphoria syntax support via a wordfile, and it has UltraCompare which saves me an enormous of time when comparing source versions. Just that has saved me more than the cost of the software, a few times over.

Good luck,
Alan

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

14. Re: The Euphoria Editor

If I can type in 'change_directory' and see a red underline because it should have had been typed as 'chdir' or and yet not show a red underline if there is actually something in scope with that name, or if I can type in filesys:<TAB> and see a list of possible symbols in that namespace but no others; I would change my editor, my religion and even my diet.

Basically, if you write an editor for a language the editor ought to know that language.

Shawn Pringle

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

15. Re: The Euphoria Editor

SDPringle said...

Basically, if you write an editor for a language the editor ought to know that language.

I whole-heartedly agree and that is my primary focus here. I want and editor that knows the language and can say, "that symbol doesn't exist, dummy" or "hey guy, I think you missed an include statement somewhere."

I just created an "autocomplete" branch for exactly this purpose. The default branch contains the basic editor and will continue to receive minor tweaks and bug fixes while I work on the longer effort of writing a appropriate Euphoria code parser that can play well with the Scintilla autocomplete features.

-Greg

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

16. Re: The Euphoria Editor

That would be a excellent feature yes

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

17. Re: The Euphoria Editor

The editor should continue working while the parser is not ready. I would have liked to give you a link to a podcast episode where they talked about Typescript's parser. It is no longer on the page because the episode is old. The editor must be responsive. The editor must not wait for a parser to finish but rather the parser needs to be running in the background while waiting for the user to interact with it.

SD Pringle

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

18. Re: The Euphoria Editor

Bump. Release 0.1b today.

-Greg

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

19. Re: The Euphoria Editor

Took a quick look at it (Win 64bit), noticed that no icons are being rendered.

Nice work.

David

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

20. Re: The Euphoria Editor

Both Wee and this editor crash too often for my tastes.

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

21. Re: The Euphoria Editor

SDPringle said...

Both Wee and this editor crash too often for my tastes.

Really? I mean, yeah Wee crashes a lot for me too. Are you running the latest download or did you pull from source? I've added a few stability fixes to the default branch since the last release. I am hoping to get another release out soon since I should have some extra time with the holiday weekend.

-Greg

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

22. Re: The Euphoria Editor

I installed this more than once. There are two ways to do it. I am not sure whether I left a bleeding edge or a release version on the system. Both crashed quickly. I left issues on its github issue tracker.

SD Pringle

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

23. Re: The Euphoria Editor

SDPringle said...

I installed this more than once. There are two ways to do it. I am not sure whether I left a bleeding edge or a release version on the system. Both crashed quickly. I left issues on its github issue tracker.

So we're talking about Wee. What about The Euphoria Editor? Please open an issue on Bitbucket if you can reproduce the problem.

-Greg

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

24. Re: The Euphoria Editor

Bump. I've moved IUP to its own repository.

I need to get another release out soon.

Hoping to make a couple more changes before then.

-Greg

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

Search



Quick Links

User menu

Not signed in.

Misc Menu