For example you don't have a multi-tab editor that if I have the same source file opened it is updated in both, or the ability to update an object viewer at the same time.
Multitab editor,
SImple,
Drop a TAB CONTROL On the RB Window, Create a number of tabs ( This can be done via code)
Create an instance of the SYNTAX CANVAS OBJECT for each tab occurrence, In fact this is were RB should be easier to use. everything will be classes
This shouldn't be too hard.
Bt the way I have ellipse on my mac, MOST of the terminology I have not even heard of, And I tried reading some of the help.Still can't figure out what it is or what it does.
Have you actually opened up the RB Example project that I mentioned, YOu can OPEN multiple Instances of the editor windows.
Drop a TAB CONTROL On the RB Window, Create a number of tabs ( This can be done via code)
Create an instance of the SYNTAX CANVAS OBJECT for each tab occurrence, In fact this is were RB should be easier to use. everything will be classes
This shouldn't be too hard.
Bt the way I have ellipse on my mac, MOST of the terminology I have not even heard of, And I tried reading some of the help.Still can't figure out what it is or what it does.
Have you actually opened up the RB Example project that I mentioned, YOu can OPEN multiple Instances of the editor windows.
thanks
Dave M
This is pointless - you don't understand what I am trying to say - you have had to use eclipse (other than just opening it up) to see what I am talking about - a static colorizer does not work - which is what you have with the widget you describe (I looked at it and how it works). You will end up doing a lot more coding to create an IDE, than I will in eclipse as there is so much of an IDE already provided for you. Granted the coding I have to do is not easy, it would be easier if I have done this before, but I know it is still easier than writing an IDE from scratch. Other people must think so too as, there are a lot of language IDEs that use eclipse as their basis - can't say I have seen many that are done from scratch though I think Andrey is doing one for spin
You guys should have a development drag race. I'm sure there will be just a many users for both solutions.
The language used probably affects the future contributors more than anything else. I would be more inclined to support Eclipse mainly because I like Java. Basic is fine for people who like basic though .....
I dont see why I should learn java just so I can contribute to make ONE KIND of applications.
The reason I use RB is that I can learn ONE LANGUAGE and DO ANYTHING I want.
I have no need to learn any other languages to get stuff done for my propeller projects ( Apart from SPIN, which is a bit like RB anyhow) , I would rather get the most of one language.
I was hoping that this was going to be a group effort.
I dont see why I should learn java just so I can contribute to make ONE KIND of applications.
The reason I use RB is that I can learn ONE LANGUAGE and DO ANYTHING I want.
I have no need to learn any other languages to get stuff done for my propeller projects ( Apart from SPIN, which is a bit like RB anyhow) , I would rather get the most of one language.
I was hoping that this was going to be a group effort.
Eclipse looks far to complicated!
Dave M
Dave
I have never found knowing one language is the most efficient way to do things. Languages evolve that make doing things easier, for example it far more efficient to use Perl or Python to do regular expression processing than Java or RB - just because it faster to prototype things in a scripting language.
The driving force for me is that all the languages I use day to day in my job are available as eclipse plugins, so I only have to learn one IDE not n. Also I am using eclipse to develop the spin tool, so I am using what I am making. I am not writing from scratch but adding extension points to the eclipse framework. As I said earlier that is what eclipse set out to be was a workbench for plugging in tools and extending it. The core of eclipse is sort of language agnostic - the core does not even contain the JDT (Java Development Tool) - Java IDE support is a set of plugins that are added to eclipse - they just happen to be part of the default set of plugins that are included in every eclipse package.
I've tried out a few of the essential things and real basic seems to be able to do them all, albeit with almost every line in a fractionally different syntax to vb.net.
Turning off zonealarm worked.
But I have run into a small problem with the cost:
It appears that in order to be able to deploy on mac, windows and linux you need the professional version, not the personal version. So that means the cost is $329.
And then further down that page, there is a "12 Month Renewal Price" of $164.50
Why not simply join efforts on PZST instead of learning the eclipse monster or worrying about spending hundreds of dollars on development tools?
Andrey
While PZST is interesting, it does not solve my problem - I want to have all my tools in one IDE that I know well and can switch projects without switching IDEs.
I've tried out a few of the essential things and real basic seems to be able to do them all, albeit with almost every line in a fractionally different syntax to vb.net.
Turning off zonealarm worked.
But I have run into a small problem with the cost:
It appears that in order to be able to deploy on mac, windows and linux you need the professional version, not the personal version. So that means the cost is $329.
And then further down that page, there is a "12 Month Renewal Price" of $164.50
Does that mean you have to pay every year?
yes that is one of the problems with RB and you have to build an IDE from scratch which is a lot of work.
It appears that in order to be able to deploy on mac, windows and linux you need the professional version, not the personal version. So that means the cost is $329.
And then further down that page, there is a "12 Month Renewal Price" of $164.50
Does that mean you have to pay every year?
The Professional version INCLUDES 6 months of updates. You don't have to pay for updates until you actual need them.
RB updates every 3 months, with bug fixes and new features.
You do not need to have an active account, but if you want access to the FEEDBACK ( bug reporting & feature request) system you will need an active account.
If you get the Personal edition , say for windows you can create full .exe applications, with that same version you can also create full versions for mac & linux, but they are expired after a few days and only run for 5 mins, but ok for testing.
I use the professional version, the one up from that is a waste of money. The pro-version allows compiling for all platforms, and has container controls which make creating COMPLEX Interfaces a breeze!
You can upgrade from any version to any higher version, quite often they have specials for upgrades.
The user forum is very friendly.
Paying for realbasic did not send me broke! I use it nearly everyday!
And No I don't work for them.
99% of my customers use PC's I develop on a MAC , They can't tell the difference.
Also, remember that RB compiles to native machine code, so the results are fast and tidy!
Scroll down a little on that webpage and there is this quote KBasic uses Qt® as its toolkit to provide cross-platform abilities.. I have downloaded it and done some testing.
My simple test is to put a tabstrip on a main form and then put a richtextbox on tab1 and another richtextbox on tab2. Every program is different the way they do this. Usually it is easiest to find an example program rather than trying to work out from the Help how things work. Kbasic has an example of this (as does Qt, RealBasic, VB.Net, Jabaco etc).
KBasic has lots of examples, and is for syntax highlighting. It is a form with a tabstrip, two tabs, a richtextbox on each one and in one richtextbox is html and in the other is Basic. Intriguingly, click on the "view code" button and there is none at all. The entire syntax highlighting is done by altering properties of the richtextbox, including adding a descriptor for comment begin (they use /* so one can see a C programmer at work here!), comment end */ and another type of comment (' for basic). And there is a huge comma separated list of Keywords and the color they use, and another huge list of Commands and their color.
There may be advantages and disadvantages in such a system. The advantage is minimal coding. A disadvantage might be when you want to add your own custom colors and rules - eg text in quotes is red. Or "replace print with Print". Or make all DAT code orange.
Where this leads to is Andrey's comment about PZST because I think this uses Qt as well.
I am not sure how one would collaborate on such a project. I've never organised this sort of thing. Indeed, it actually is quite complicated. Just working out the operating system/language is hard!
One solution is to try to do the text processing in command line programs. All such processing essentially takes a text file and outputs another text file. Maybe it takes a text file where the indents are all muddled and it tidies them up. Or it converts Basic to C. Or it compiles a self contained piece of pasm code.
And then there is the IDE.
Having looked at four different IDEs in the last few hours, I guess there are some common themes. You have a blank form in the middle of the screen. Generally you have some way of switching between the GUI form and the code source. You have a list of controls eg buttons etc - maybe that doesn't apply in Spin, though it might later on (see all the discussion on the full color tile thread). And you might have some sort of Treeview where you can see the structure of the program - eg #include files.
For simplicity, maybe you only have the 'code view' for the moment. In that 'codeview' might be some tabs, and each of those has a part of the program. That sort of structure is similar to the proptool.
What I am thinking of is a way of adding in the (already written) code for BCX and for Catalina. On the vb.net program, Spin is on one tab, and BCX on the next and Catalina on the next etc etc. But tabs are already being used for the parts of a program, so this is not an option.
So perhaps each language needs to be separate.
I am thinking each language has its own menu (with sub menus) that includes file,open, save, saveas, compile. And each language has its own richtextbox with its different rules for syntax highlighting?
In PZST, there will be a project manager. When creating a project, one specifies project type : SPIN, PBASIC, C, etc. The project type then drives the work-flow - which file types can be added to project, which compiler to use, how to process source files, etc.
=Dr_Acula, So do you have to keep paying each year?
No, Pay once use it forever, use it for all your programming needs!
Just to point out The "BASIC" in REALBASIC does not mean some kind of cut down language from the old days , The language is VERY EASY but extremely powerful, and remember all compiles, produce MACHINE CODE, its not interpreted, that means that applications run fast , really fast!!
You will find that building complex applications is easier in realbasic, bring all these things you have mentioned in your last post together I do all the time.
RealBasic is not open source and therefore is out of the running.
Open source is not about the price. Perhaps RealBasic is a very good product and worth every penny. Perhaps it fills needs in the commercial world very well.
Open source is about control of your work and control of your computer and the freedom to do what you want.
For example:
1) What happens if the makers of RealBasic go out of business, or get sued to oblivion in a patent war, or just decide they don't want to sell their product to me any more. Then I'm stuck with an old version of RealBasic, the countless hours I may spend on developing my project are now frozen in time and frozen to the platforms I have support for. To move on I would either have to recreate RealBasic for myself or recreate my project in a different language/IDE/GUI tool kit.
Having been in the software industry for some time I have seen exactly this scenario play out numerous times. It's time consuming and expensive to maintain a project in the face of these problems. Who cares in the commercial world? Perhaps no one, until the accountants realize what is going on, if the product can make money it pays for all the hassel. Personally I don't want my efforts to get into a jam like that.
2) What happens when my project gets bigger and perhaps there are others who would like to help out. Ooops, I can't just give them the tools to get on with it. I'm all alone, progress is slow, all those skilled volunteers have moved on to something that offers more freedom.
3) Standards. The opensource world seems to be particulary good at promoting standards that anyone can use for anything. The internet and the WEB are fine examples. RealBasic is no kind of "standard" language.
4) Well I could go on, there are a thousand reasons why open source is prefered. Google can supply more. Check out the history of Richard Stallman and the GNU.
@DavidM - RealBASIC may be a great tool for what you're doing, but that doesn't mean it's the best tool for whatever project is being proposed here. You don't want to have to learn Java, and everybody else doesn't want to have to buy $$$ RealBASIC. So the score is 0-0.
Ok, this is a little bit of code to test this out. How would you do an autocapitalize of a keyword (in any language) and change the color on the fly? This needs a few rules, so it is not quite as simple as doing a 'find and replace'. Keywords within quotes and within comment sections should not be changed.
Take a richtextbox. Detect that a key has been pressed. Work out the current line row and column. Get the entire line of text. Work out if there is any comment marker to the left of the current cursor position (ie a ' in Basic, or a // in C). If not part of a comment, or not part of text between quotes (ie an odd number of " characters to the left of the current position), and the last keypress was a space, and the string to the left of the last keypress was a keyword, eg 'print', then replace this with 'Print'. And make it blue.
I have a fairly good idea how to do this in vb.net, and I have half the code for this in kbasic. How could you do this in RealBasic/Qt/Eclipse?
What happens if the world runs out of petrol, What are you going to do with your car!
According to your theory, NONE SHOULD EVER PAY FOR ANY SOFTWARE EVER BECAUSE THEY MIGHT GO OUT OF BUSINESS!
Thats silly.
I am a programmer I do programming to get paid, How can i expect to get paid if I am not will to pay for software my self!
There is a moral to this! What next free prop chips for everyone!
I am encouraging REALBASIC because its a tool that can do the job well, and the skills that you will acquire with this can be utilised in any programming regime in the future , using real basic properly encourages generic programming concepts, this is the most important thing you can learn.
What happens if PARALLAX Go out of business! How do we know if they Haven't blown their budget on the PROP 2!
All that money tied up in electronic gear gone to waste, all those propeller chips suddenly shutting down!
Please lighten Up,
Don't forget if the NEW PROPELLER IDE is really good, why don't you charge for it! (Say 50 bucks) I would pay, I am not a tight Smile!
I am not contributing to this thread anymore, I give up!!
@DavidM - I don't subscribe to that version of the open source philosophy. I have paid for programs like Qbasic and VB5 and VB6. Then along came vb.net and it is brilliant but it only runs on Windows, and it won't run on a Mac or Linux. And the world is moving fast. It won't run on my Android either. Or my Propeller for that matter.
I've just spent a whole day researching programs and downloading them.
Real Basic is still very much in the running as far as I am concerned. Particularly when you get inside the software and start to actually write code to do what is needed in post #78.
Many steps forward and back today. Andrey's code looks amazing. BUT - I can't work out how to download it. Kbasic is brilliant. But I can't work out how to get a line of text from a richtextbox.
I have been coming back to Real Basic every hour or so and thinking - is this worth the money? I'd just like to see a little example of how to do something that is not trivial. I'm that close to opening up my checkbook...
Well, this thread definitely has one thing in common with the OSS world... if nobody can agree on anything, everybody can just go start their own project.
Kevin - that is silly at best. Why would I want to add another layer on top of the eclipse framework and then port Andrey's code to Java to run inside of eclipse. I would lose all the power that eclipse provided me to write an IDE and have to re-invent that in Qt. Also from the link Mac is not supported so that is a show stopper anyway.
What everyone is overlooking here is that when you fire up eclipse you have a basic IDE. You don't have to invent that like Andrey is doing and David M suggests doing - it is done. I can focus on the parts that support the spin language in the editor which is what I should be doing. I am a subscriber of don't re-invent the wheel unless absolutely necessary. There are hundreds of man years investment in the eclipse framework it would be silly to re-invent that.
Kevin - that is silly at best. Why would I want to add another layer on top of the eclipse framework and then port Andrey's code to Java to run inside of eclipse. I would lose all the power that eclipse provided me to write an IDE and have to re-invent that in Qt. Also from the link Mac is not supported so that is a show stopper anyway.
I think you misunderstood. In an earlier post, you seemed to indicate that you couldn't use Eclipse to develop a C++ application using the Qt framework. I just wanted to let you know that if for some reason you decide to work with Qt, you aren't required to leave Eclipse. Whether you would need to leave the Mac, I don't know.
What everyone is overlooking here is that when you fire up eclipse you have a basic IDE. You don't have to invent that like Andrey is doing and David M suggests doing - it is done. I can focus on the parts that support the spin language in the editor which is what I should be doing. I am a subscriber of don't re-invent the wheel unless absolutely necessary. There are hundreds of man years investment in the eclipse framework it would be silly to re-invent that.
Yes, I fully agree with you here. Even if it was to use Netbeans, or IntelliJ, or some other OSS editor/IDE/etc. already in existence, I wouldn't suggest starting completely from scratch, in any language. Eclipse seems to have basically won the OSS IDE platform wars, so it seems to be the logical choice.
There are hundreds of man years investment in the eclipse framework
Perhaps that's why it confuses the hell out of me and seems big and slow and hard work. I have Eclipse for Android development and Eclipse for XMOS development. Using both is an up hill struggle. All those perspectives and views coming and going and never being able to find the right one.
Compare to the Prop tool or BST which is pretty much open, type, run, done.
I guess I have never invested enough time in Eclipse to get the hang of it. Or there is some fundamental idea in there which I don't get yet.
And why not develop Qt apps in Eclipse? It's just an IDE as an alternative to QtCreator.
Perhaps that's why it confuses the hell out of me and seems big and slow and hard work. I have Eclipse for Android development and Eclipse for XMOS development. Using both is an up hill struggle. All those perspectives and views coming and going and never being able to find the right one.
Compare to the Prop tool or BST which is pretty much open, type, run, done.
I guess I have never invested enough time in Eclipse to get the hang of it. Or there is some fundamental idea in there which I don't get yet.
And why not develop Qt apps in Eclipse? It's just an IDE as an alternative to QtCreator.
I never said not to develop Qt apps in eclipse. What I was saying the IDE that Andrey is creating would still be a standalone app and not integrated with eclipse. What I am looking for is a Spin IDE in eclipse as all the other languages I use are there (perl, python, c/c++, java). You are right that for casual use eclipse is a struggle to learn but if you use it for all your development projects it becomes very powerful. I want Spin to be in that mix.
I have tried Real Basic and I do like it , I may even buy it.
I did see a problem with the serial communication in one project I typed up , I was doing a comparison of two "identical" projects one in RB and one in VB and RB could not do the serial as fast and reliably as VB.
I don't want to deter anyone from buying or using RB as I think it's a great program and my experience may not be the norm but that is the only reason I don't own a copy just yet.
I work for REAL Software, makers of REAL Studio (REALbasic). I wanted to let you, and everyone on this forum, know that we have always offered REAL Studio Linux Personal edition free to users doing open source projects. We seem to have a growing number of users doing projects with micro controllers lately. I am more than happy to set you up with a free trial or answer any questions you may have. You can write me at alyssa @ realsoftware.com anytime. Thanks for your time, Alyssa
Re Eclipse, I'll probably get into trouble for saying this but http://www.eclipse.org/downloads/ is this a totally "Basic Free" zone?
I am deep inside the example code DavidM posted earlier. My first impression is that this is a) a vastly more powerful language than I am used to and b) a vastly more confusing language than I am used to.
Part of this is not knowing where to look. For instance, if you want to look up the syntax for Cosine then you type Cosine in the help. But the first thing I came across with the Object Oriented Programming is the dropdown menu that appears when you type a . Now, this is a very powerful part of the VB.Net environment, and it is also something we could integrate into a Spin IDE by taking all the child methods, extracting all the PUB/PRI names, and then when you type "TV." it gives you a dropdown menu of all the options. This could become more relevant with Big Spin when you might have many more objects. Anyway, type . in Realbasic and it gives you three more dots. So you have .... which at least gives a clue that you are unlikely to make a syntax error, but it gets a bit tedious typing .a then .b then .c trying to find all the options. I'm sure there is a simple answer to get the dropdown menu to appear. And also, if one did write an IDE for Spin, I'd perhaps go for the vb.net method that produces a dropdown menu as soon as you type that .
The OOP flavour of Realbasic ought to make writing code easier but I am having trouble with the simplest thing. There is a button to turn on the syntax highlighting and it is grayed out. I don't know why it is grayed out. As a vb.net programmer, my first instinct is to do a ^F Find on all instances of that button and then look for one that is deselecting it. Perhaps a little more complex in Realbasic as the code is not one linear piece of text any more. But ^F does work, and that led me to this code
if me.ListIndex < 0 then Return
dim SyntaxDefinition as HighlightDefinition = me.RowTag(me.ListIndex)
btnSyntaxColors.Enabled = SyntaxDefinition <> nil
And there I get lost, because I don't know what type of variable "highlightdefinition" is, doing a msgbox on this variable produces an error, and a search for me.RowTag does not find any other instances of this.
So after 3 hours of experimenting I know a lot more about OOP, possibly enough to become an OOP convert, but at the same time, I have not been able to produce any syntax highlighting on a piece of code that is designed to specifically demonstrate that.
I suspect I will come up against a few other OOP gotchas soon. eg you write a piece of code to capitalise a keyword. To trap this you put an "event handler" on the richtextbox to trap that the text changed. (This is the really nice bit about OOP, you have an object, and it has constants, and events, and methods and properties). So then the event goes off and changes the text. But in doing so, it triggers the same subroutine that you called in the first place. Suddenly you are in recursion hell and the stack is overflowing. So you have to either make sure you select the right event handler ("keypress" instead of "text changed") or, disable the event handling when changing the text. I guess I know enough about OOP to be dangerous.
The code in RealBasic is largely unintelligable to me at the moment, but I am struggling through. I guess I am at a very difficult part of the decision making process - is it easier to modify someone elses code and accept that the bit they wrote is incomprehensible (but works, assuming I can ungray that button!), or is it easier to start again with new code? Or do you go to something else, Kbasic, Eclipse, Qt etc etc.
In amongst the RealBasic demo for syntax highlighting, I have managed to find this (not so easy to find, as a Realbasic program is not a linear piece of text, but rather a treeview with many many parts and at the ends of the branches you find a leaf with some code on it). Anyway, this was on the "Info" branch
Quick and dirty guide on how to write a syntax definition by Alex Restrepo
If you want, send me your definitions and I'll make them available on my website.
Basic structure:
<?xml version="1.0" encoding="UTF-8"?>
<!--
Version 1.0 are the files used by my previous SyntaxHighlightEditField, which are compatible with this EditField.
Version 1.1 adds some extensions, used by this editfield and are not understood by the previous one.
-->
<highlightDefinition version="1.1">
<!-- name for this definition, available as HighlightDefinitionInstance.name -->
<name>Definition Name</name>
<!--
Code Block definitions/line folding definitions
<blockStartMarker> defines the start of a code block, that can be folded, the attribute "indent" gives the number of indentations
that will be added to the a new line of text after the line that opens the block. for example, in the example below, the blockStartMarker
defines a C-style block:
{
and after hitting enter, all new lines below the opening line, will be indented "indent" times.
}
this example also defines a multi-line comment as a block:
/*
*/
-->
<blockStartMarker indent="1">\{\s*(?:$|//|/\*)|\s*/\*</blockStartMarker>
<blockEndMarker>^\s*\}|\s*\*/</blockEndMarker>
<!--
Symbols
This block defines the symbols to bookmark by the editfield
In this Example, we define a "Class" and "Method" symbols.
These will be "bookmarked" and can be accessed using documentSymbols, CaretSymbol, or SymbolAtLine
-->
<symbols>
<symbol type="Class">
<entryRegEx>^[ \t]*((?:public|private|protected)?[ \t]*class[^{]+)</entryRegEx>
</symbol>
<symbol type="Method">
<entryRegEx>((?:public|private|protected)[ \t]+(?:(?:abstract|static|final|synchronized|native|strictfp)[ \t]+)*(?:[A-Za-z0-9_\-\.<>]+(?:\[\])?[ \t]+)?[A-Za-z0-9_\-]+[ \t]*\([^\)]*\)[ \t]*(?:\s*throws[ \t]*[A-Za-z0-9_\-, \t\.]+)?)\s*(?=\{?)</entryRegEx>
</symbol>
</symbols>
<!--
Placeholders
This tag defines what text will be turned into a placeholder by the editfield.
In this Example, the text <#placeholder#> will turn into a round rect with the text "placeholder" in it.
IMPORTANT: the RegEx contained here will be used to match the whole text needed to be turrned into placeholder, and the first subgroup will be used as the placeholder label.
-->
<placeholders highlightColor="#000000" backgroundColor="#e9effa"><#(.+?)#></placeholders>
<!-- Main document settings, defaultcolor is the color used by all text that is not highlighted -->
<contexts defaultColor="#0" caseSensitive="yes">
<!--
Highlight contexts, contexts are the main portion of the highlighter, they define the rules to find and highlight portions of text.
Name is an identifier for the context, highlight color is the color with which the context will be highlighted, this color overrides the color
of enclosing contexts.
Contexts can be nested, you can define any context within a context, this allows you to highlight portions of a context with different colors.
valid attributes for the highlightContext tag:
name: name of the context
highlightColor: color used to highlight words matched by the context #RRGGBB
backgroundColor: color to use as background for the matched words #RRGGBB
bold: true/false, should matched words be bolded? defaults to false
italic: true/false, should matched words be italic? defaults to false
underline: true/false, should matched words be underline? defaults to false
There are 4 different ways to define a context, all of which are exclusive, from top priority down they are:
<startRegEx>: it defines a possible multi-line context, everything starting with the regular expression <startRegex>
up to the regular expression <endRegex> will be highlighted.
<entryRegEx>: it defines a regular expression to match in a SINGLE line of text, if it's found, this context will be used.
<keywords>: defines a list of words to be highlighted, each regex has to be enclosed in <string></string> tags
<regexes>: defines a list or regular expressions that define the context, matching one of these uses this context for highlighting,
each regex has to be enclosed in <string></string> tags
in this example, XML tags are defined:
-->
<highlightContext name="Tags" highlightColor="#881280">
<entryRegEx>(<[^>]*>)</entryRegEx>
<!-- Inner context, these highlight words within the enclosing context, in this case strings and attributes -->
<highlightContext name="Strings in Tags" highlightColor="#1A1AA6">
<entryRegEx>("[^"><]*")</entryRegEx>
</highlightContext>
<highlightContext name="Single Strings in Tags" highlightColor="#1A1AA6">
<entryRegEx>('[^'><]*')</entryRegEx>
</highlightContext>
<highlightContext name="Attributes in Tags" highlightColor="#994500">
<entryRegEx>([\w-]*)[ \t]*=(?=[ \t]*"[^"><]*")</entryRegEx>
</highlightContext>
</highlightContext>
<!-- example: XML comments -->
<highlightContext name="Comment" highlightColor="#236E25">
<startRegEx><!--</startRegEx>
<endRegEx>--></endRegEx>
<highlightContext name="bolded" highlightColor="#FF0000" bold="true">
<keywords>
<string>TODO</string>
<string>HACK</string>
</keywords>
</highlightContext>
</highlightContext>
</contexts>
</highlightDefinition>
Thanks to a long phone conversation with DavidM we now have this demo code working. See screenshot.
Re the post above, the secret to the . thing is to hit the Tab key.
The secret to getting the code working was not in the code itself, but in the structure of the associated directories where the .xml files are stored. These are different on the Apple Mac vs the PC, and this may be something that needs to be considered when building a multi platform IDE.
The screenshot is Java syntax, but by clicking the syntax button you can change it to Basic or C syntax. This means one could have a single textbox for Spin, C, Basic etc and change the syntax as required (?based on the extension of the program you load).
Also there is the issue of the way batch files are run on different computers.
Re Eclipse, I'll probably get into trouble for saying this but http://www.eclipse.org/downloads/ is this a totally "Basic Free" zone?
Maybe its time to add a new language to your toolbox? A carpenter with only a hammer is not as useful as one that has and knows how to use a saw and screwdriver, etc.
Comments
Multitab editor,
SImple,
Drop a TAB CONTROL On the RB Window, Create a number of tabs ( This can be done via code)
Create an instance of the SYNTAX CANVAS OBJECT for each tab occurrence, In fact this is were RB should be easier to use. everything will be classes
This shouldn't be too hard.
Bt the way I have ellipse on my mac, MOST of the terminology I have not even heard of, And I tried reading some of the help.Still can't figure out what it is or what it does.
Have you actually opened up the RB Example project that I mentioned, YOu can OPEN multiple Instances of the editor windows.
thanks
Dave M
This is pointless - you don't understand what I am trying to say - you have had to use eclipse (other than just opening it up) to see what I am talking about - a static colorizer does not work - which is what you have with the widget you describe (I looked at it and how it works). You will end up doing a lot more coding to create an IDE, than I will in eclipse as there is so much of an IDE already provided for you. Granted the coding I have to do is not easy, it would be easier if I have done this before, but I know it is still easier than writing an IDE from scratch. Other people must think so too as, there are a lot of language IDEs that use eclipse as their basis - can't say I have seen many that are done from scratch though I think Andrey is doing one for spin
The language used probably affects the future contributors more than anything else. I would be more inclined to support Eclipse mainly because I like Java. Basic is fine for people who like basic though .....
No point in me trying to contribute any more,
I dont see why I should learn java just so I can contribute to make ONE KIND of applications.
The reason I use RB is that I can learn ONE LANGUAGE and DO ANYTHING I want.
I have no need to learn any other languages to get stuff done for my propeller projects ( Apart from SPIN, which is a bit like RB anyhow) , I would rather get the most of one language.
I was hoping that this was going to be a group effort.
Eclipse looks far to complicated!
Dave M
Dave
I have never found knowing one language is the most efficient way to do things. Languages evolve that make doing things easier, for example it far more efficient to use Perl or Python to do regular expression processing than Java or RB - just because it faster to prototype things in a scripting language.
The driving force for me is that all the languages I use day to day in my job are available as eclipse plugins, so I only have to learn one IDE not n. Also I am using eclipse to develop the spin tool, so I am using what I am making. I am not writing from scratch but adding extension points to the eclipse framework. As I said earlier that is what eclipse set out to be was a workbench for plugging in tools and extending it. The core of eclipse is sort of language agnostic - the core does not even contain the JDT (Java Development Tool) - Java IDE support is a set of plugins that are added to eclipse - they just happen to be part of the default set of plugins that are included in every eclipse package.
Turning off zonealarm worked.
But I have run into a small problem with the cost:
Prices are listed here http://realsoftware.com/realstudio/compare.php
It appears that in order to be able to deploy on mac, windows and linux you need the professional version, not the personal version. So that means the cost is $329.
And then further down that page, there is a "12 Month Renewal Price" of $164.50
Does that mean you have to pay every year?
Andrey
While PZST is interesting, it does not solve my problem - I want to have all my tools in one IDE that I know well and can switch projects without switching IDEs.
yes that is one of the problems with RB and you have to build an IDE from scratch which is a lot of work.
I gather that is not the reason why Dr_Acula started this thread
The Professional version INCLUDES 6 months of updates. You don't have to pay for updates until you actual need them.
RB updates every 3 months, with bug fixes and new features.
You do not need to have an active account, but if you want access to the FEEDBACK ( bug reporting & feature request) system you will need an active account.
If you get the Personal edition , say for windows you can create full .exe applications, with that same version you can also create full versions for mac & linux, but they are expired after a few days and only run for 5 mins, but ok for testing.
I use the professional version, the one up from that is a waste of money. The pro-version allows compiling for all platforms, and has container controls which make creating COMPLEX Interfaces a breeze!
You can upgrade from any version to any higher version, quite often they have specials for upgrades.
The user forum is very friendly.
Paying for realbasic did not send me broke! I use it nearly everyday!
And No I don't work for them.
99% of my customers use PC's I develop on a MAC , They can't tell the difference.
Also, remember that RB compiles to native machine code, so the results are fast and tidy!
Dave M
I'm keeping an open mind about all the options here.
I'll discuss that further down this post.
Real Basic is good but I am concerned about the cost.
I did a search for Basic languages that can run on Linux/Mac/Windows. That led to this page http://www.freebyte.com/programming/basic/ and that led to this language http://www.kbasic.com/
Scroll down a little on that webpage and there is this quote KBasic uses Qt® as its toolkit to provide cross-platform abilities.. I have downloaded it and done some testing.
My simple test is to put a tabstrip on a main form and then put a richtextbox on tab1 and another richtextbox on tab2. Every program is different the way they do this. Usually it is easiest to find an example program rather than trying to work out from the Help how things work. Kbasic has an example of this (as does Qt, RealBasic, VB.Net, Jabaco etc).
KBasic has lots of examples, and is for syntax highlighting. It is a form with a tabstrip, two tabs, a richtextbox on each one and in one richtextbox is html and in the other is Basic. Intriguingly, click on the "view code" button and there is none at all. The entire syntax highlighting is done by altering properties of the richtextbox, including adding a descriptor for comment begin (they use /* so one can see a C programmer at work here!), comment end */ and another type of comment (' for basic). And there is a huge comma separated list of Keywords and the color they use, and another huge list of Commands and their color.
There may be advantages and disadvantages in such a system. The advantage is minimal coding. A disadvantage might be when you want to add your own custom colors and rules - eg text in quotes is red. Or "replace print with Print". Or make all DAT code orange.
Where this leads to is Andrey's comment about PZST because I think this uses Qt as well.
I am not sure how one would collaborate on such a project. I've never organised this sort of thing. Indeed, it actually is quite complicated. Just working out the operating system/language is hard!
One solution is to try to do the text processing in command line programs. All such processing essentially takes a text file and outputs another text file. Maybe it takes a text file where the indents are all muddled and it tidies them up. Or it converts Basic to C. Or it compiles a self contained piece of pasm code.
And then there is the IDE.
Having looked at four different IDEs in the last few hours, I guess there are some common themes. You have a blank form in the middle of the screen. Generally you have some way of switching between the GUI form and the code source. You have a list of controls eg buttons etc - maybe that doesn't apply in Spin, though it might later on (see all the discussion on the full color tile thread). And you might have some sort of Treeview where you can see the structure of the program - eg #include files.
For simplicity, maybe you only have the 'code view' for the moment. In that 'codeview' might be some tabs, and each of those has a part of the program. That sort of structure is similar to the proptool.
What I am thinking of is a way of adding in the (already written) code for BCX and for Catalina. On the vb.net program, Spin is on one tab, and BCX on the next and Catalina on the next etc etc. But tabs are already being used for the parts of a program, so this is not an option.
So perhaps each language needs to be separate.
I am thinking each language has its own menu (with sub menus) that includes file,open, save, saveas, compile. And each language has its own richtextbox with its different rules for syntax highlighting?
No, Pay once use it forever, use it for all your programming needs!
Just to point out The "BASIC" in REALBASIC does not mean some kind of cut down language from the old days , The language is VERY EASY but extremely powerful, and remember all compiles, produce MACHINE CODE, its not interpreted, that means that applications run fast , really fast!!
You will find that building complex applications is easier in realbasic, bring all these things you have mentioned in your last post together I do all the time.
Dave M
Open source is not about the price. Perhaps RealBasic is a very good product and worth every penny. Perhaps it fills needs in the commercial world very well.
Open source is about control of your work and control of your computer and the freedom to do what you want.
For example:
1) What happens if the makers of RealBasic go out of business, or get sued to oblivion in a patent war, or just decide they don't want to sell their product to me any more. Then I'm stuck with an old version of RealBasic, the countless hours I may spend on developing my project are now frozen in time and frozen to the platforms I have support for. To move on I would either have to recreate RealBasic for myself or recreate my project in a different language/IDE/GUI tool kit.
Having been in the software industry for some time I have seen exactly this scenario play out numerous times. It's time consuming and expensive to maintain a project in the face of these problems. Who cares in the commercial world? Perhaps no one, until the accountants realize what is going on, if the product can make money it pays for all the hassel. Personally I don't want my efforts to get into a jam like that.
2) What happens when my project gets bigger and perhaps there are others who would like to help out. Ooops, I can't just give them the tools to get on with it. I'm all alone, progress is slow, all those skilled volunteers have moved on to something that offers more freedom.
3) Standards. The opensource world seems to be particulary good at promoting standards that anyone can use for anything. The internet and the WEB are fine examples. RealBasic is no kind of "standard" language.
4) Well I could go on, there are a thousand reasons why open source is prefered. Google can supply more. Check out the history of Richard Stallman and the GNU.
@Yoda - You can use Qt from within Eclipse... http://qt.nokia.com/developer/eclipse-integration/
Take a richtextbox. Detect that a key has been pressed. Work out the current line row and column. Get the entire line of text. Work out if there is any comment marker to the left of the current cursor position (ie a ' in Basic, or a // in C). If not part of a comment, or not part of text between quotes (ie an odd number of " characters to the left of the current position), and the last keypress was a space, and the string to the left of the last keypress was a keyword, eg 'print', then replace this with 'Print'. And make it blue.
I have a fairly good idea how to do this in vb.net, and I have half the code for this in kbasic. How could you do this in RealBasic/Qt/Eclipse?
That was Harsh Mate!
What happens if the world runs out of petrol, What are you going to do with your car!
According to your theory, NONE SHOULD EVER PAY FOR ANY SOFTWARE EVER BECAUSE THEY MIGHT GO OUT OF BUSINESS!
Thats silly.
I am a programmer I do programming to get paid, How can i expect to get paid if I am not will to pay for software my self!
There is a moral to this! What next free prop chips for everyone!
I am encouraging REALBASIC because its a tool that can do the job well, and the skills that you will acquire with this can be utilised in any programming regime in the future , using real basic properly encourages generic programming concepts, this is the most important thing you can learn.
What happens if PARALLAX Go out of business! How do we know if they Haven't blown their budget on the PROP 2!
All that money tied up in electronic gear gone to waste, all those propeller chips suddenly shutting down!
Please lighten Up,
Don't forget if the NEW PROPELLER IDE is really good, why don't you charge for it! (Say 50 bucks) I would pay, I am not a tight Smile!
I am not contributing to this thread anymore, I give up!!
Dave M
I've just spent a whole day researching programs and downloading them.
Real Basic is still very much in the running as far as I am concerned. Particularly when you get inside the software and start to actually write code to do what is needed in post #78.
Many steps forward and back today. Andrey's code looks amazing. BUT - I can't work out how to download it. Kbasic is brilliant. But I can't work out how to get a line of text from a richtextbox.
I have been coming back to Real Basic every hour or so and thinking - is this worth the money? I'd just like to see a little example of how to do something that is not trivial. I'm that close to opening up my checkbook...
Kevin - that is silly at best. Why would I want to add another layer on top of the eclipse framework and then port Andrey's code to Java to run inside of eclipse. I would lose all the power that eclipse provided me to write an IDE and have to re-invent that in Qt. Also from the link Mac is not supported so that is a show stopper anyway.
What everyone is overlooking here is that when you fire up eclipse you have a basic IDE. You don't have to invent that like Andrey is doing and David M suggests doing - it is done. I can focus on the parts that support the spin language in the editor which is what I should be doing. I am a subscriber of don't re-invent the wheel unless absolutely necessary. There are hundreds of man years investment in the eclipse framework it would be silly to re-invent that.
I think you misunderstood. In an earlier post, you seemed to indicate that you couldn't use Eclipse to develop a C++ application using the Qt framework. I just wanted to let you know that if for some reason you decide to work with Qt, you aren't required to leave Eclipse. Whether you would need to leave the Mac, I don't know.
Yes, I fully agree with you here. Even if it was to use Netbeans, or IntelliJ, or some other OSS editor/IDE/etc. already in existence, I wouldn't suggest starting completely from scratch, in any language. Eclipse seems to have basically won the OSS IDE platform wars, so it seems to be the logical choice.
Perhaps that's why it confuses the hell out of me and seems big and slow and hard work. I have Eclipse for Android development and Eclipse for XMOS development. Using both is an up hill struggle. All those perspectives and views coming and going and never being able to find the right one.
Compare to the Prop tool or BST which is pretty much open, type, run, done.
I guess I have never invested enough time in Eclipse to get the hang of it. Or there is some fundamental idea in there which I don't get yet.
And why not develop Qt apps in Eclipse? It's just an IDE as an alternative to QtCreator.
I never said not to develop Qt apps in eclipse. What I was saying the IDE that Andrey is creating would still be a standalone app and not integrated with eclipse. What I am looking for is a Spin IDE in eclipse as all the other languages I use are there (perl, python, c/c++, java). You are right that for casual use eclipse is a struggle to learn but if you use it for all your development projects it becomes very powerful. I want Spin to be in that mix.
I did see a problem with the serial communication in one project I typed up , I was doing a comparison of two "identical" projects one in RB and one in VB and RB could not do the serial as fast and reliably as VB.
I don't want to deter anyone from buying or using RB as I think it's a great program and my experience may not be the norm but that is the only reason I don't own a copy just yet.
Jeff T.
I work for REAL Software, makers of REAL Studio (REALbasic). I wanted to let you, and everyone on this forum, know that we have always offered REAL Studio Linux Personal edition free to users doing open source projects. We seem to have a growing number of users doing projects with micro controllers lately. I am more than happy to set you up with a free trial or answer any questions you may have. You can write me at alyssa @ realsoftware.com anytime. Thanks for your time, Alyssa
Re Eclipse, I'll probably get into trouble for saying this but http://www.eclipse.org/downloads/ is this a totally "Basic Free" zone?
I am deep inside the example code DavidM posted earlier. My first impression is that this is a) a vastly more powerful language than I am used to and b) a vastly more confusing language than I am used to.
Part of this is not knowing where to look. For instance, if you want to look up the syntax for Cosine then you type Cosine in the help. But the first thing I came across with the Object Oriented Programming is the dropdown menu that appears when you type a . Now, this is a very powerful part of the VB.Net environment, and it is also something we could integrate into a Spin IDE by taking all the child methods, extracting all the PUB/PRI names, and then when you type "TV." it gives you a dropdown menu of all the options. This could become more relevant with Big Spin when you might have many more objects. Anyway, type . in Realbasic and it gives you three more dots. So you have .... which at least gives a clue that you are unlikely to make a syntax error, but it gets a bit tedious typing .a then .b then .c trying to find all the options. I'm sure there is a simple answer to get the dropdown menu to appear. And also, if one did write an IDE for Spin, I'd perhaps go for the vb.net method that produces a dropdown menu as soon as you type that .
The OOP flavour of Realbasic ought to make writing code easier but I am having trouble with the simplest thing. There is a button to turn on the syntax highlighting and it is grayed out. I don't know why it is grayed out. As a vb.net programmer, my first instinct is to do a ^F Find on all instances of that button and then look for one that is deselecting it. Perhaps a little more complex in Realbasic as the code is not one linear piece of text any more. But ^F does work, and that led me to this code
And there I get lost, because I don't know what type of variable "highlightdefinition" is, doing a msgbox on this variable produces an error, and a search for me.RowTag does not find any other instances of this.
So after 3 hours of experimenting I know a lot more about OOP, possibly enough to become an OOP convert, but at the same time, I have not been able to produce any syntax highlighting on a piece of code that is designed to specifically demonstrate that.
I suspect I will come up against a few other OOP gotchas soon. eg you write a piece of code to capitalise a keyword. To trap this you put an "event handler" on the richtextbox to trap that the text changed. (This is the really nice bit about OOP, you have an object, and it has constants, and events, and methods and properties). So then the event goes off and changes the text. But in doing so, it triggers the same subroutine that you called in the first place. Suddenly you are in recursion hell and the stack is overflowing. So you have to either make sure you select the right event handler ("keypress" instead of "text changed") or, disable the event handling when changing the text. I guess I know enough about OOP to be dangerous.
The code in RealBasic is largely unintelligable to me at the moment, but I am struggling through. I guess I am at a very difficult part of the decision making process - is it easier to modify someone elses code and accept that the bit they wrote is incomprehensible (but works, assuming I can ungray that button!), or is it easier to start again with new code? Or do you go to something else, Kbasic, Eclipse, Qt etc etc.
In amongst the RealBasic demo for syntax highlighting, I have managed to find this (not so easy to find, as a Realbasic program is not a linear piece of text, but rather a treeview with many many parts and at the ends of the branches you find a leaf with some code on it). Anyway, this was on the "Info" branch
Re the post above, the secret to the . thing is to hit the Tab key.
The secret to getting the code working was not in the code itself, but in the structure of the associated directories where the .xml files are stored. These are different on the Apple Mac vs the PC, and this may be something that needs to be considered when building a multi platform IDE.
The screenshot is Java syntax, but by clicking the syntax button you can change it to Basic or C syntax. This means one could have a single textbox for Spin, C, Basic etc and change the syntax as required (?based on the extension of the program you load).
Also there is the issue of the way batch files are run on different computers.
Maybe its time to add a new language to your toolbox? A carpenter with only a hammer is not as useful as one that has and knows how to use a saw and screwdriver, etc.