Editor and Language Related Features
...
Multi-line indent feature? (i.e. user selects several lines of code and command allows indent or de-indent of selected code)
Multi-line comment selection? (i.e. user double clicks top or bottom comment keywords/phrases {{ or }} and editor selects the entire comment)
Language Error Reporting
Code error summary shown in a dialog box <== not in a console-style box below the editor? Hmm, some error summaries are real long [well, mine ] and may be too long for a dialog box. And, I like to be able to copy the errors (as I do in SimpleIDE) for sending in bugs and such...
Properties
...
Spin program defines all properties <== What does this mean?
Serial IO
...
Use separate program loader <== Something different than propeller-load?
I assume that the code that syntax-colorizes keywords & comments can help in finding the limits of a multi-line comment for my mentioned Multi-line comment selection note above. Shouldn't be too difficult.
And,
Please provide Key-commands for searching text forward/backward. I don't like having to click an arrow to re-search next item...
As you know, Jazzed, I'm available for coding on this project as well. I can write docs, too!
Editor and Language Related Features
...
Multi-line indent feature? (i.e. user selects several lines of code and command allows indent or de-indent of selected code)
Yes, the default from SimpleIDE will be brought in this week. That can be changed to be more suitable by a volunteer.
Language Error Reporting
Code error summary shown in a dialog box <== not in a console-style box below the editor? Hmm, some error summaries are real long [well, mine ] and may be too long for a dialog box. And, I like to be able to copy the errors (as I do in SimpleIDE) for sending in bugs and such...
At the moment I'm just displaying the Compiler's error message and trying to zoom in to a file and line number.
I assume that the code that syntax-colorizes keywords & comments can help in finding the limits of a multi-line comment for my mentioned Multi-line comment selection note above. Shouldn't be too difficult.
Yes, I'll be importing Editor and Highlighter stuff from SimpleIDE very soon.
Please provide Key-commands for searching text forward/backward. I don't like having to click an arrow to re-search next item...
I think there are hooks in the Editor class from SimpleIDE that I'll import. The right volunteer can add the search/replace methodology which needs special attention.
My little wish list is already on that project page, which is great.
I very much like the idea of defining everything in the Spin program - no secret .ini files etc.
But the big thing that could really set this apart would be autocomplete. It would make the object oriented nature of spin much easier to work with.
1) Add an OBJ in the program. If anything new is added to the OBJ section the object list is updated. So you might add a Serial object.
2) You type "serial" and then as soon as you type "." a drop down menu appears with all the PUB methods in the serial object. Select the correct one, or keep typing and the dropdown menu gets smaller until just one item is left. Super simple to find all the relevant methods, and most of the time maybe no need to even have object tab(s) open.
And this also would make it clearer what is a PUB and what is a PRI - the dropdown menu only lists PUB methods. It would make it much easier for some objects where all the PUB and PRI methods are jumbled up in a random order (probably the order they were written). Some quite large objects might simplify down to quite a small list of autocomplete methods.
I'm not sure we want multiple versions of propeller-load. Since the use of it is buried inside of the IDE it really doesn't matter much how complex or simple it is. On the other hand, we might want to simplify propeller-load for other reasons. I'm just saying that I don't think Spiral should have its own version.
If I want to play along at home, it appears I want to install the MinGW toolchain and then the QT5 packages as indicated on their website? I'm guessing most folks here on Windows will be going with MinGW and not the Visual Studio route (except for Roy ).
For development tools, they also call for ActiveState Perl, a Python installation and a Ruby installation to build various components.
Once I do all the preliminary setup, I can get on with installing QT as indicated here.
At this point, I should be able to grab the code from the repository and build my own version of "Project X"?
If this all works, I can lather, rinse repeat with the appropriate steps for Mac and Linux?
If I want to just play along, is there a way of getting a clone onto a windows computer without having to create an account with Google( I am boycotting Google)? Not sure what I would see with a clone, but I am curious. Not even sure if I want to go through an installation process as described in the previous post.
mindrobots,
I have MinGW installed so I can test OpenSpin against GCC easily. Although, I generally work in VS2008 or VS2012 here on my home projects (until I can get VS2013 at home).
For this project, I installed Qt5.2.1 + Qt Creator 3.0.1 (it was a single download and install that had both), and it installed everything needed. I was able to build my clone of the project and run it using Qt Creator.
Rsadeika,
You should be able to just install a mercurial client, and issue the clone command given the repository url (it tells you the command line if you click the checkout button on the source tab. You'll need to install the Qt stuff described above.
I've installed QT5.2.1 an grabbed the code from Google.
Opened the project and built it and got this error:
/Users/rapost/Code/easyside/ide/qextserialport_unix.cpp:62: error: no member named 'toAscii' in 'QString'
if ((fd = ::open(port.toAscii() ,O_RDWR | O_NOCTTY | O_NDELAY)) != -1) {
~~~~ ^
Am I just too early for multi-platform building and testing (should I stick to Windows for now)?
Other than being an annoying interruption to real development work, I guess you could consider this "testing".
I've installed QT5.2.1 an grabbed the code from Google.
Opened the project and built it and got this error:
/Users/rapost/Code/easyside/ide/qextserialport_unix.cpp:62: error: no member named 'toAscii' in 'QString'
if ((fd = ::open(port.toAscii() ,O_RDWR | O_NOCTTY | O_NDELAY)) != -1) {
~~~~ ^
Am I just too early for multi-platform building and testing (should I stick to Windows for now)?
Other than being an annoying interruption to real development work, I guess you could consider this "testing".
I built the project successfully on the Mac but that was before Steve moved to Qt5. I haven't tried it since then.
That did it!! It built and I have something running on the Mac. ...now to find all those pesky directories and compilers and stuff to fill in that opening dialog......
That did it!! It built and I have something running on the Mac. ...now to find all those pesky directories and compilers and stuff to fill in that opening dialog......
Congratulations!! Now that you're up and running I assume we can expect a Forth version of the IDE soon! :-)
If I knew what one would look like and do for the Forth programmer and chose to pursue it, it would be under a different thread.
In reporting progress, however, once I pointed to the OpenSpin compiler, the loader and a Library folder (I had to lie about xBasic locations before it let me close the dialog), I was able to build and load a large Spin program to a Propeller board. I used the F8 debug mode to connect to this program and interact with the interpreted language that it implements that shall go nameless.
Cool Beans!! (not to infer Java Beans by this statement)
Hey, sorry I hadn't built this thing on Mac yet. I will change that one word. Hopefully there are no spaces in your change as that would cause a merge conflict.
One thing to note is that this is a shared repository at the moment. That is good for getting the latest updates, but it also means that if you have changes, then merge conflicts are possible. Resolving merges is easy if you don't have commit access. That is, you simply revert changes. If you do have commit access, then you are a core developer and should understand the consequences already.
Here's my plan for the next few days:
Most likely, I'll get rid of the xbasic stuff in the Properties dialog class first, and import the Editor class to get syntax highlighting, etc... going. Properties and Editor are closely tied because of syntax highlighting options. After the Editor stuff, I'll look at importing the serial terminal.
No worries! I'm just tickled I got it built and running (thanks to Heater).....so much more satisfying than any of the conference calls I've been on today!!
I want to get to the point where I can grab the latest and build it on whichever PC I happen to be using. Then I can wander around and keep all the committers honest!
QT Creator is kinda neat.....and I guess that C++ stuff is learnable!
Heater,
While I agree with you on the intent, I have to say that I think the bare language of C++, meaning no libraries, is entirely learnable. It's when you bring in STL and the runtime libraries that it becomes impossible.
So I installed MinGW, QT5, plus the clone on my windows box, so far so good. I started up Qt Creator opened ExIDE, and hit the green button on the bottom left side, and voila, EzIDE appears. I have not checked the folder where I have EzIDE clone, but is there a compiled functional EzIDE there somewhere so it can be run, or is there another step? I also noticed that in the properties window it has a section for Spin, so if I, for the Compiler part, enter the location for openspin, will this be functional limited EzIDE for Spin program?
The thing that I noticed is, there are a lot of steps just to get a functional Qt Creator, I was just expecting a QT5 install package, and you are done. Since I have a functional xubuntu box, I just might have to install QT5, and see what happens. To bad QT5 does not have a visual component, so you could just move the different widgets and things into place, add code and ...
Well I guess I can report that EzIDE did not have any warnings or anything when I hit the Run button in Qt Creator. :-)
On my Mac, I ended up with to build folders under my ezide folder - I built both a release and a debug and there's a build folder for each with an executable in each. I did end up with 22 warnings when I went through the build process but nothing major.
If you mean the "Properties" window that come up when you first start it, then I had to enter something for each of the fields before I could close the dialog. I did give it the location of the Spin compiler, the library Spin folder (I have one on my Mac) and a valid loader ( I used OpenSpin and Propeller-load from my SimpleIDE installation). I lied about the xBasic locations but it didn't care as long as it had something. Once I did this, I was able to compile Spin code and load it to my Propeller board. The downloaded programs worked just fine. I haven't actually done much editing in the editor, yet.
I'll probably setup Linux and Windows tonight if I don't zone out in front of the Olympics.
No. I mean the raw syntax and semantics of C++ is not comprehensible by a single human being. That is before we start adding any libraries at all.
I had suspected this for a long time, but I always assumed it was me that was too stupid.
Until, that is, I saw Bjarne Stroustrup himself in the audience of a C++ conference having to ask the presenter what actually was the problem with some C++ code that was presented as an example of what might trip people up!
If Bjarne designed the language and has been involved in it's development for 30 years and is still on the standards committee and is confused by what it does then the rest of us need not even think about it.
I'll try to find a link to a video of that presentation if you are not convinced.
By the way. we have to have a talk about openspin. It has some portability issues that have been causing problems. It is not tolerant of unaligned memory accesses or bigendian systems.
I should probably work up some patches to fix those issues before though.
Talking about language preferences, and all that entails, is not the topic of this thread. Please don't lead us into another toilet-flush thread. Seriously. Thanks.
So I installed MinGW, QT5, plus the clone on my windows box, so far so good. I started up Qt Creator opened ExIDE, and hit the green button on the bottom left side, and voila, EzIDE appears.
Excellent! That is quite an achievement. Congratulations!
BTW, the version of Qt mentioned on the main easyside page already has mingw.
I have not checked the folder where I have EzIDE clone, but is there a compiled functional EzIDE there somewhere so it can be run, or is there another step?
There is a EzIDE.exe in the build debug folder (or release ... depending on the project build which is usually debug).
I also noticed that in the properties window it has a section for Spin, so if I, for the Compiler part, enter the location for openspin, will this be functional limited EzIDE for Spin program?
The thing that I noticed is, there are a lot of steps just to get a functional Qt Creator, I was just expecting a QT5 install package, and you are done. Since I have a functional xubuntu box, I just might have to install QT5, and see what happens. To bad QT5 does not have a visual component, so you could just move the different widgets and things into place, add code and ...
Actually there is a visual component - you can find it. Try an example program.
I only started my EzIDE from Creator by hitting the green Run button, when the property window came up I just hit cancel and the property window closed. In my EzIDE folder, QT created another folder(build-EzIDE-Desktop ...) which has a debug folder which has an EzIDE application, but when I run it, it complains with: The program can't start because Qt5Cored.dll is missing ... I must have missed something in my tool chain.
To bad QT5 does not have a visual component, so you could just move the different widgets and things into place, add code and ...
For sure Qt5 does have such a visual component. Last time I installed it it came with Qt Creator which has a GUI editor.
Failing that if you have later versions of Qt 4 installed the Qt Creator with that can be used for developing with Qt5 libs.
I think I have to have a go at building this on the Raspberry Pi where I can get Qt5 apps to run in the frame buffer from the command line, no need for X Windows! Fast and slick.
Comments
Let me know if there is a problem with things on the Requirements And Considerations page.
First Cut Requirements are fairly easy to achieve.
The project is written in C++ with Qt and is/will be MIT only code (no GPL).
Suggested enhancements beyond "First Cut" should be implemented by the suggestor or someone who volunteers to take on the task.
Future Possibilities is a list of desirable items that may not make the "First Cut" development.
Thanks Rick.
Any testing would be great.
I could make a very early preview package by the end of the week. Hopefully we could have a reasonable update for testing once every week or two.
...
Multi-line indent feature? (i.e. user selects several lines of code and command allows indent or de-indent of selected code)
Multi-line comment selection? (i.e. user double clicks top or bottom comment keywords/phrases {{ or }} and editor selects the entire comment)
Language Error Reporting
Code error summary shown in a dialog box <== not in a console-style box below the editor? Hmm, some error summaries are real long [well, mine ] and may be too long for a dialog box. And, I like to be able to copy the errors (as I do in SimpleIDE) for sending in bugs and such...
Properties
...
Spin program defines all properties <== What does this mean?
Serial IO
...
Use separate program loader <== Something different than propeller-load?
I assume that the code that syntax-colorizes keywords & comments can help in finding the limits of a multi-line comment for my mentioned Multi-line comment selection note above. Shouldn't be too difficult.
And,
Please provide Key-commands for searching text forward/backward. I don't like having to click an arrow to re-search next item...
As you know, Jazzed, I'm available for coding on this project as well. I can write docs, too!
dgately
Yes, the default from SimpleIDE will be brought in this week. That can be changed to be more suitable by a volunteer.
I'm sure the right volunteer can handle that I'll put it in Future Enhancements.
At the moment I'm just displaying the Compiler's error message and trying to zoom in to a file and line number.
Clock stuff and #defines. "Spin program defines clock and other program properties."
GUI properties are different of course.
Maybe a simpler version of propeller-load.
Yes, I'll be importing Editor and Highlighter stuff from SimpleIDE very soon.
I think there are hooks in the Editor class from SimpleIDE that I'll import. The right volunteer can add the search/replace methodology which needs special attention.
Indeed. Greatly appreciated. I look forward to more of your contributions.
Thanks Dennis.
Ok, technical stuff. https://code.google.com/p/easyside/wiki/ProjectPlanRequirementsAndConsiderations lists some fantastic ideas.
My little wish list is already on that project page, which is great.
I very much like the idea of defining everything in the Spin program - no secret .ini files etc.
But the big thing that could really set this apart would be autocomplete. It would make the object oriented nature of spin much easier to work with.
1) Add an OBJ in the program. If anything new is added to the OBJ section the object list is updated. So you might add a Serial object.
2) You type "serial" and then as soon as you type "." a drop down menu appears with all the PUB methods in the serial object. Select the correct one, or keep typing and the dropdown menu gets smaller until just one item is left. Super simple to find all the relevant methods, and most of the time maybe no need to even have object tab(s) open.
And this also would make it clearer what is a PUB and what is a PRI - the dropdown menu only lists PUB methods. It would make it much easier for some objects where all the PUB and PRI methods are jumbled up in a random order (probably the order they were written). Some quite large objects might simplify down to quite a small list of autocomplete methods.
For development tools, they also call for ActiveState Perl, a Python installation and a Ruby installation to build various components.
Once I do all the preliminary setup, I can get on with installing QT as indicated here.
At this point, I should be able to grab the code from the repository and build my own version of "Project X"?
If this all works, I can lather, rinse repeat with the appropriate steps for Mac and Linux?
Ray
Source code cloning instructions are here: https://code.google.com/p/easyside/source/checkout
basically hg clone https://code.google.com/p/easyside/
Where "hg" is the Mercurial source code management tool. Available for Windows here: http://mercurial.selenic.com/wiki/Download
I do wish this was on github though.
I have MinGW installed so I can test OpenSpin against GCC easily. Although, I generally work in VS2008 or VS2012 here on my home projects (until I can get VS2013 at home).
For this project, I installed Qt5.2.1 + Qt Creator 3.0.1 (it was a single download and install that had both), and it installed everything needed. I was able to build my clone of the project and run it using Qt Creator.
Rsadeika,
You should be able to just install a mercurial client, and issue the clone command given the repository url (it tells you the command line if you click the checkout button on the source tab. You'll need to install the Qt stuff described above.
I switch to my Mac (it's daytime).
I've installed QT5.2.1 an grabbed the code from Google.
Opened the project and built it and got this error:
/Users/rapost/Code/easyside/ide/qextserialport_unix.cpp:62: error: no member named 'toAscii' in 'QString'
if ((fd = ::open(port.toAscii() ,O_RDWR | O_NOCTTY | O_NDELAY)) != -1) {
~~~~ ^
Am I just too early for multi-platform building and testing (should I stick to Windows for now)?
Other than being an annoying interruption to real development work, I guess you could consider this "testing".
you need to change "port.toAscii()" to "port.toLatin1()
ToAscii is old Qt 4 stuff.
In case there are another such issues moving from Qt4 to Qt5 here is a page describing what might need to be done in the transition:
http://qt-project.org/wiki/Transition_from_Qt_4.x_to_Qt5
That did it!! It built and I have something running on the Mac. ...now to find all those pesky directories and compilers and stuff to fill in that opening dialog......
Edit: removed off topic content.
If I knew what one would look like and do for the Forth programmer and chose to pursue it, it would be under a different thread.
In reporting progress, however, once I pointed to the OpenSpin compiler, the loader and a Library folder (I had to lie about xBasic locations before it let me close the dialog), I was able to build and load a large Spin program to a Propeller board. I used the F8 debug mode to connect to this program and interact with the interpreted language that it implements that shall go nameless.
Cool Beans!! (not to infer Java Beans by this statement)
IDE Forth not need, young padawan.
May the Forth be with you!
C.W.
Hey, sorry I hadn't built this thing on Mac yet. I will change that one word. Hopefully there are no spaces in your change as that would cause a merge conflict.
One thing to note is that this is a shared repository at the moment. That is good for getting the latest updates, but it also means that if you have changes, then merge conflicts are possible. Resolving merges is easy if you don't have commit access. That is, you simply revert changes. If you do have commit access, then you are a core developer and should understand the consequences already.
Here's my plan for the next few days:
Most likely, I'll get rid of the xbasic stuff in the Properties dialog class first, and import the Editor class to get syntax highlighting, etc... going. Properties and Editor are closely tied because of syntax highlighting options. After the Editor stuff, I'll look at importing the serial terminal.
Committers please read this wiki page.
I want to get to the point where I can grab the latest and build it on whichever PC I happen to be using. Then I can wander around and keep all the committers honest!
QT Creator is kinda neat.....and I guess that C++ stuff is learnable!
Don't get deceived, C++ in it's entirety is not learnable.
While I agree with you on the intent, I have to say that I think the bare language of C++, meaning no libraries, is entirely learnable. It's when you bring in STL and the runtime libraries that it becomes impossible.
The thing that I noticed is, there are a lot of steps just to get a functional Qt Creator, I was just expecting a QT5 install package, and you are done. Since I have a functional xubuntu box, I just might have to install QT5, and see what happens. To bad QT5 does not have a visual component, so you could just move the different widgets and things into place, add code and ...
Well I guess I can report that EzIDE did not have any warnings or anything when I hit the Run button in Qt Creator. :-)
Ray
On my Mac, I ended up with to build folders under my ezide folder - I built both a release and a debug and there's a build folder for each with an executable in each. I did end up with 22 warnings when I went through the build process but nothing major.
If you mean the "Properties" window that come up when you first start it, then I had to enter something for each of the fields before I could close the dialog. I did give it the location of the Spin compiler, the library Spin folder (I have one on my Mac) and a valid loader ( I used OpenSpin and Propeller-load from my SimpleIDE installation). I lied about the xBasic locations but it didn't care as long as it had something. Once I did this, I was able to compile Spin code and load it to my Propeller board. The downloaded programs worked just fine. I haven't actually done much editing in the editor, yet.
I'll probably setup Linux and Windows tonight if I don't zone out in front of the Olympics.
No. I mean the raw syntax and semantics of C++ is not comprehensible by a single human being. That is before we start adding any libraries at all.
I had suspected this for a long time, but I always assumed it was me that was too stupid.
Until, that is, I saw Bjarne Stroustrup himself in the audience of a C++ conference having to ask the presenter what actually was the problem with some C++ code that was presented as an example of what might trip people up!
If Bjarne designed the language and has been involved in it's development for 30 years and is still on the standards committee and is confused by what it does then the rest of us need not even think about it.
I'll try to find a link to a video of that presentation if you are not convinced.
By the way. we have to have a talk about openspin. It has some portability issues that have been causing problems. It is not tolerant of unaligned memory accesses or bigendian systems.
I should probably work up some patches to fix those issues before though.
Talking about language preferences, and all that entails, is not the topic of this thread. Please don't lead us into another toilet-flush thread. Seriously. Thanks.
Excellent! That is quite an achievement. Congratulations!
BTW, the version of Qt mentioned on the main easyside page already has mingw.
There is a EzIDE.exe in the build debug folder (or release ... depending on the project build which is usually debug).
Yes.
Actually there is a visual component - you can find it. Try an example program.
Ray
Failing that if you have later versions of Qt 4 installed the Qt Creator with that can be used for developing with Qt5 libs.
I think I have to have a go at building this on the Raspberry Pi where I can get Qt5 apps to run in the frame buffer from the command line, no need for X Windows! Fast and slick.