Shop OBEX P1 Docs P2 Docs Learn Events
Open source IDE ideas - Page 2 — Parallax Forums

Open source IDE ideas

24

Comments

  • DavidMDavidM Posts: 630
    edited 2011-02-28 17:04
    Hi Ctwardell.

    Ok So Eclipse would produce a .jar file which should run on any machine?

    One thing I have noticed with these java apps is they they seem "Clunky" and "Non-Native" also kind of slowish,

    Its really no big deal to press a button and all your versions come out!


    Dave M
  • ctwardellctwardell Posts: 1,716
    edited 2011-02-28 17:22
    David,

    I agree with the "Non-Native" appearance aspect of the Java apps, and sometimes they do seem a little "clunky", but I think that is more of a side effect of being different than the native apps.

    The general feeling that I seem to get here on the prop forum is that there is a perceived need to "compete" with the Arduino, I think the only way to achieve that is to stay with the things that are embraced by the OS community. I think having the new IDE done in something like REALBASIC would not meet that goal.

    I don't want to start a flame war but I think many people embrace open source for the "freedom from cost" not the "freedom of information", and as such the though of having to buy the compiler if they want to make changes just won't cut it.

    Your enthusiasm for REALBASIC has not fallen on deaf ears though, I'll give it a look in the next week or so when I get some free time as it does sound interesting.

    C.W.
  • DavidMDavidM Posts: 630
    edited 2011-02-28 17:36
    HI C.W

    I dont want to start a flame war either, but I get worried about "OPEN SOURCE" in general, To Be a programmer and make a living from it you need to GET PAID, While I understand that open source for TOOL's of the trade is a valid idea, FINISHED APPLICATION's need to be paid for, otherwise why should anyone spend a lot of hard work learning any language, just to NOT BE PAID For it!

    I really don't want everything to be FREE!, thats why I don't mind paying for software, heck I would be happy to pay for a MAC Version of SPIN! I use SPIN Every day and I use RB everyday,

    By the way I found an article on REAL-BASIC vs all the others.

    http://www.realsoftware.com/support/choosingadev.php

    Can I ask again, IS there a SYNTAX DEFINITION for SPIN/PASM ?

    Dave M
  • YodaYoda Posts: 132
    edited 2011-02-28 17:48
    DavidM wrote: »
    HI C.W

    Can I ask again, IS there a SYNTAX DEFINITION for SPIN/PASM ?

    Dave M

    That is the real problem. You can have all the fancy widgets that color code text but you need a grammar to drive it. As I said in another thread earlier and asked the same question several months ago if a grammar existed and got no answer. That is what I have been researching for a while and believe I have the knowledge and tools to create one. I am starting now and hope to have something put together in the next couple of weeks. It will be written with ANTLR (which also plugins to eclipse). It seems to be a very powerful tool. The AST's that are generated with it are compatible with IMP and Xtext which can be used in the eclipse world to build an ide for eclipse.
  • ctwardellctwardell Posts: 1,716
    edited 2011-02-28 17:51
    DavidM wrote: »
    Can I ask again, IS there a SYNTAX DEFINITION for SPIN/PASM ?

    David,

    Here is a link to another thread that may be helpful:

    http://forums.parallax.com/showthread.php?118328-Spin-syntax-definition-for-Vim

    C.W.

    P.S. Totally get the need to be paid thing, between open source and offshoring it is hard to make a buck these days.
  • DavidMDavidM Posts: 630
    edited 2011-02-28 18:46
    Hi,

    Thanks for the syntax definitions link,

    I had to download VIM for mac, run that, and open up the definition file, I can read it, Its not that much info

    Can any tell me,

    Do syntax definitions have a STANDARD FORMAT?

    That realbasic application I mentioned ( CustomEditField), had several definitions in a folder for popular languages, they were all XML Files, for example here is the syntax definition for Java
    <?xml version="1.0" encoding="UTF-8"?>
    <highlightDefinition version="1.2">
    	<name>Java</name>
    	<blockStartMarker indent="1">\{\s*(?:$|//|/\*|\\)|\s*/\*\*?\s*$</blockStartMarker>
    	<blockEndMarker>^\s*\}|^\s*\*\*?/</blockEndMarker>
    	
    	<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_\-\.&lt;&gt;]+(?:\[\])?[ \t]+)?[A-Za-z0-9_\-]+[ \t]*\([^\)]*\)[ \t]*(?:\s*throws[ \t]*[A-Za-z0-9_\-, \t\.]+)?)\s*(?=\{?)</entryRegEx>
    		</symbol>							
    	</symbols>
    	
    	<placeholders highlightColor="#000000" backgroundColor="#e9effa" bold = "true">&lt;#(.+?)#&gt;</placeholders>
    		
    	<contexts defaultColor="#0" caseSensitive="yes">				
    		<highlightContext name="JavadocComment" highlightColor="#236E25" italic="true">
    			<startRegEx>/\*\*[\n\r]</startRegEx>
    			<endRegEx>\*/</endRegEx>
    		</highlightContext>
    		<highlightContext name="Comment" highlightColor="#236E25" italic="true">
    			<startRegEx>/\*</startRegEx>
    			<endRegEx>\*/</endRegEx>
    			<highlightContext name="todos" highlightColor="#FF0000" bold = "true">
    				<keywords>
                   		<string>todo</string>
    					<string>hack</string>
    				</keywords>
    			</highlightContext>				
    		</highlightContext>
    		<highlightContext name="SingleComment" highlightColor="#236E25" italic="true">
    			<startRegEx>//</startRegEx>
    			<endRegEx>[\n\r]</endRegEx>
    		</highlightContext>
    		<highlightContext name="String" highlightColor="#760F15">
    			<startRegEx>"</startRegEx>
    			<endRegEx>(((?&lt;!\\)(\\\\)*)|^)"</endRegEx>
    		</highlightContext>
    		<highlightContext name="Keywords" highlightColor="#881350" bold="true">
    			<keywords>
    				<string>abstract</string>
    				<string>break</string>
    				<string>case</string>
    				<string>catch</string>
    				<string>class</string>
    				<string>continue</string>
    				<string>default</string>
    				<string>do</string>
    				<string>else</string>
    				<string>extends</string>
    				<string>false</string>
    				<string>finally</string>
    				<string>for</string>
    				<string>goto</string>
    				<string>if</string>
    				<string>implements</string>
    				<string>instanceof</string>
    				<string>interface</string>
    				<string>native</string>
    				<string>new</string>
    				<string>null</string>
    				<string>private</string>
    				<string>protected</string>
    				<string>public</string>
    				<string>return</string>
    				<string>super</string>
    				<string>strictfp</string>
    				<string>switch</string>
    				<string>synchronized</string>
    				<string>this</string>
    				<string>throws</string>
    				<string>throw</string>
    				<string>transient</string>
    				<string>true</string>
    				<string>try</string>
    				<string>volatile</string>
    				<string>while</string>
    				<string>boolean</string>
    				<string>byte</string>
    				<string>char</string>
    				<string>const</string>
    				<string>double</string>
    				<string>final</string>
    				<string>float</string>
    				<string>int</string>
    				<string>long</string>
    				<string>short</string>
    				<string>static</string>
    				<string>void</string>
    			</keywords>
    		</highlightContext>
    		<highlightContext name="Numbers" highlightColor="#FF">
    			<entryRegEx>(?&lt;=[^\w\d]|^)(((([0-9]+\.[0-9]*)|(\.[0-9]+))([eE][+\-]?[0-9]+)?[fFlL]?)|((([1-9][0-9]*)|0[0-7]*|(0[xX][0-9a-fA-F]+))(([uU][lL]?)|([lL][uU]?))?))(?=[^\w\d]|$)</entryRegEx>
    		</highlightContext>
    		<highlightContext name="Characters" highlightColor="#FF">
    			<entryRegEx>('.')</entryRegEx>
    		</highlightContext>
    		<highlightContext name="Functions" highlightColor="#3369">
    			<entryRegEx>([A-Za-z0-9_]+ *)(?=\()</entryRegEx>
    		</highlightContext>
    		
            <highlightContext name="Preprocessor" highlightColor="#FF" bold="true">
    			<regExes>
                    <string>(^[ 	]*import([^\n\r])*)</string>
                    <string>(^[ 	]*package([^\n\r])*)</string>
    			</regExes>
    		</highlightContext>
    	</contexts>
    </highlightDefinition>
    

    So In order to do this for SPIN, we would have to create an XML file that describes the SPIN syntax, similar to how these other languages do?

    Is this the way to go?

    Once we get the Syntax definition working we can start writing code, Better still we can modify the Realbasic project to make a fully function IDE, The Code writing is just part of the project

    here is the SPIN SYNTAX DEFINITION for VIM,Somehow this needs to be converted to XML
    " Vim syntax file
    " Language:	Propeller Spin
    " Maintainer:	Andrey Demenev <demenev@gmail.com>
    " Last Change:	2009 Dec 13
    
    " For version 5.x: Clear all syntax items
    " For version 6.x: Quit when a syntax file was already loaded
    if version < 600
      syntax clear
    elseif exists("b:current_syntax")
      finish
    endif
    
    syn case ignore
    
    syn match spinLocalLabel	":[a-z_][a-z0-9_]*"
    syn match spinIdentifier	"[a-z_][a-z0-9_]*"
    
    
    syn keyword spinType BYTE
    syn keyword spinType LONG
    syn keyword spinType ROUND
    syn keyword spinType TRUNC
    syn keyword spinType FLOAT
    syn keyword spinType WORD
    
    
    syn keyword spinCond IF_ALWAYS IF_NEVER IF_E IF_Z IF_NE IF_NZ
    syn keyword spinCond IF_NC_AND_NZ IF_NZ_AND_NC IF_A IF_B IF_C
    syn keyword spinCond IF_AE IF_NC IF_C_OR_Z IF_Z_OR_C IF_BE
    syn keyword spinCond IF_C_EQ_Z IF_Z_EQ_C IF_C_NE_Z IF_Z_NE_C
    syn keyword spinCond IF_C_AND_Z IF_Z_AND_C IF_C_AND_NZ
    syn keyword spinCond IF_NZ_AND_C IF_NC_AND_Z IF_Z_AND_NC 
    syn keyword spinCond IF_C_OR_NZ IF_NZ_OR_C IF_NC_OR_Z
    syn keyword spinCond IF_Z_OR_NC IF_NC_OR_NZ IF_NZ_OR_NC 
    
    syn keyword spinCond WC WZ WR NR
    
    syn keyword spinCond IF ELSE ELSEIF ELSEIFNOT IFNOT CASE OTHER
    syn keyword spinCond REPEAT FROM TO STEP UNTIL WHILE NEXT
    syn keyword spinCond QUIT
    
    
    syn keyword spinReserved ABS ABSNEG ADD ADDABS ADDS ADDSX ADDX AND
    syn keyword spinReserved ANDN BYTEFILL BYTEMOVE CALL CHIPVER
    syn keyword spinReserved CLKFREQ _CLKFREQ CLKMODE _CLKMODE CLKSET CMP CMPS
    syn keyword spinReserved CMPSUB CMPSX CMPX CNT COGID COGINIT COGNEW
    syn keyword spinReserved COGSTOP CON CONSTANT CTRA CTRB DAT DIRA DIRB
    syn keyword spinReserved DJNZ ENC FALSE FILE FIT
    syn keyword spinReserved _FREE FRQA FRQB HUBOP 
    syn keyword spinReserved INA INB
    syn keyword spinReserved JMP JMPRET LOCKCLR LOCKNEW LOCKRET LOCKSET LONGFILL
    syn keyword spinReserved LONGMOVE LOOKDOWN LOOKDOWNZ LOOKUP LOOKUPZ MAX MAXS MIN MINS
    syn keyword spinReserved MOV MOVD MOVI MOVS MUL MULS MUXC MUXNC MUXNZ MUXZ NEG NEGC
    syn keyword spinReserved NEGNC NEGNZ NEGX NEGZ NOP NOT OBJ ONES OR ORG 
    syn keyword spinReserved OUTA OUTB PAR PHSA PHSB PI PLL16X PLL1X PLL2X PLL4X PLL8X
    syn keyword spinReserved POSX PRI PUB RCFAST RCL RCR RCSLOW RDBYTE RDLONG RDWORD
    syn keyword spinReserved REBOOT RES RESULT RET REV ROL ROR SAR SHL
    syn keyword spinReserved SHR SPR _STACK STRCOMP STRING STRSIZE SUB SUBABS SUBS
    syn keyword spinReserved SUBSX SUBX SUMC SUMNC SUMNZ SUMZ TEST TESTN TJNZ TJZ 
    syn keyword spinReserved TRUE VAR VCFG VSCL WAITCNT WAITPEQ WAITPNE WAITVID
    syn keyword spinReserved WORDFILL WORDMOVE WRBYTE WRLONG WRWORD
    syn keyword spinReserved _XINFREQ XINPUT XOR XTAL1 XTAL2 XTAL3 
    syn keyword spinReserved RETURN ABORT
    
    " Various #'s as defined by GAS ref manual sec 3.6.2.1
    " Technically, the first decNumber def is actually octal,
    " since the value of 0-7 octal is the same as 0-7 decimal,
    " I prefer to map it as decimal:
    syn match decNumber		"#\?[0-9][0-9_]*"
    syn match hexNumber		"#\?\$[0-9a-fA-F_]\+"
    syn match binNumber		"#\?%[01_]\+\>"
    syn match quatNumber		"#\?%%[0-3_]\+\>"
    
    
    syn match spinComment		"'.*"
    syn region spinMLComment start="{" end="}" 
    syn region spinMLDocComment start="{{" end="}}" 
    syn region spinString start="\"" end="\""
    
    
    syn case match
    
    " Define the default highlighting.
    " For version 5.7 and earlier: only when not done already
    " For version 5.8 and later: only when an item doesn't have highlighting yet
    if version >= 508 || !exists("did_spin_syntax_inits")
      if version < 508
        let did_spin_syntax_inits = 1
        command -nargs=+ HiLink hi link <args>
      else
        command -nargs=+ HiLink hi def link <args>
      endif
    
      " The default methods for highlighting.  Can be overridden later
      HiLink spinLocalLabel	Label
      HiLink spinComment	Comment
      HiLink spinMLComment	Comment
      HiLink spinMLDocComment	Comment
      
      HiLink spinString	String
    
      HiLink spinCond	PreCondit
      HiLink spinReserved	Special
    
      HiLink hexNumber	Number
      HiLink decNumber	Number
      HiLink octNumber	Number
      HiLink binNumber	Number
      HiLink quatNumber	Number
    
      HiLink spinIdentifier Identifier
      HiLink spinType	Type
    
      delcommand HiLink
    endif
    
    let b:current_syntax = "spin"
    

    regards

    Dave M
  • jazzedjazzed Posts: 11,803
    edited 2011-02-28 19:09
    DavidM wrote: »
    here is the SPIN SYNTAX DEFINITION for VIM,Somehow this needs to be converted to XML
    Now that you have vim, you can use it's powerful sed features to convert that to xml after a few years of head scratching. Just kidding of course. VIM is a great editor for old-timers.
  • YodaYoda Posts: 132
    edited 2011-02-28 19:11
    The problem is you need much more than this for an IDE. You need to be able to parse the input and do analysis to know whether the input is valid. It is even more complex because you want to be able to auto indent where appropriate. In effect, you need to build a compiler or interpreter to work with your editor model. You have in the vim and xml file you show just a way to identify the tokens and assign colors to the tokens. That is somewhat interesting but does not work for an IDE.
  • DavidMDavidM Posts: 630
    edited 2011-02-28 19:24
    Hi Yoda,

    Thats why I am talking about realbasic,

    Have a look at the link i gave out

    this is a screen shot

    http://homepage.mac.com/alexrestrepo/images/shots/CustomEditField.png

    this program has

    Syntax Highlighting
    Line auto-indenting
    Autocomplete
    Line numbering
    Invisible characters
    Undo
    Line Foldings
    Find/Replace
    Printing
    Bookmarks
    Placeholders

    All the rest Compiling Error checking, not to mention putting this in a NICE IDE development tool can all be done with RB. The RB Language is a lot easier to USE than many others.

    heres a google link

    http://code.google.com/p/custom-editfield/


    Dave M
  • jazzedjazzed Posts: 11,803
    edited 2011-02-28 19:30
    Yoda wrote: »
    You have in the vim and xml file you show just a way to identify the tokens and assign colors to the tokens. That is somewhat interesting but does not work for an IDE.
    Different people have different needs :-)

    I like Eclipse for Java with all the great features it brings. Getting the same features to work as well with SPIN is a huge task - not to mention meeting the standard of the excellent Java debugger. Control click on method name for zooming in would be nice as would "intellisense" like features. Making something that everyone will use is very difficult though. Sometimes they wont use it just because they prefer some other silly thing :-) Good luck.
  • YodaYoda Posts: 132
    edited 2011-02-28 20:47
    I understand - you don't get that for free - you have to write a parser and syntactic analyzer and make the appropriate calls into the editor hooks. It is exactly the same in eclipse. You get the ide part for free. It is all the semantic stuff that is hard. I prefer to use eclipse for this and will write the appropriate Plugin.
  • YodaYoda Posts: 132
    edited 2011-02-28 20:51
    jazzed wrote: »
    Different people have different needs :-)

    I like Eclipse for Java with all the great features it brings. Getting the same features to work as well with SPIN is a huge task - not to mention meeting the standard of the excellent Java debugger. Control click on method name for zooming in would be nice as would "intellisense" like features. Making something that everyone will use is very difficult though. Sometimes they wont use it just because they prefer some other silly thing :-) Good luck.

    I understand Steve and I expect it is going to take a while to get this done. I would like to see a fairly deep integration and those are the hardest. I will have to find a good debugger stub for the propeller. Didn't you do a gdb one a while back or am I thinking of some other project?
  • DavidMDavidM Posts: 630
    edited 2011-02-28 21:22
    You know,

    All this is a waste of time unless we decide to MAKE A BETTER IDE,

    Along with all the current features of SPIN, what could we add to MAKE OUR JOB EASIER,

    Built in debugger?
    Project management with revision control
    Conditional Compiling
    "Graphical" view of the basic structure of a project ( i.e Objects vs cogs, vs methods )
    Dot Notation & Auto Complete
    A better library for managing Master objects, My objects, and code snippets
    Code analysis, Unused variables methods etc
    COG usage
    TRUE Global Variables with parameter passing
    Better in code documentation
    Better bookmarks Mark code as ( tested, needs working ect)
    Built in to do list
    Auto code generation?


    So many things.

    Maybe we need a way to build a BASIC IDE, then everyone can build ADDONS that can be installed to their choosing to make the IDe do what they want, So we we need and add-on manager? We can then decide what add-ons are "Built" in to the MAIN Versions. Remember all of the source code to be left open, and must be able to be developed on all platforms.

    Its a big job , but a project plan we be the best start!

    Dave M
  • Kevin WoodKevin Wood Posts: 1,266
    edited 2011-02-28 21:45
    I think this thread got off-topic somewhere. My impression from the initial post was that Dr_Acula was looking for a cross-platform development tool to create _some_ program that would interface with a Propeller (ie, graphical lighting controller, etc.), not a OSS IDE environment that could be used to program the Propeller.

    I may be totally wrong, but either way, I think a new thread specifically to discuss the "OSS Spin Tool Replacement Strategies" couldn't hurt.

    That said, RealBasic would be fine for creating the lighting controller, and yes, you could use it to program an IDE. But what would be the sense? It would be more productive to port the current Spin Tool from Delphi to Lazarus (ie, rewrite the non-OSS controls that Parallax uses), than to start from scratch in RealBasic. And truth be told, not everyone that might get involved in the project will want to pay $$$ for RealBasic/Delphi/VisualStudio/etc., if it becomes mandatory to moving forward.

    And as far as native code goes, a platform like Eclipse isn't limited to Java applications. Configure it to work with a native compiler and appropriate libraries, and you're good to go.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-02-28 22:00
    I think the thread is still on topic. Sorry I have been offline - I have spent today putting parts in bags for dracblade kits.

    Technical question re color syntax highlighting - any method. How do you make sure that it does not highlight text that is in a comment section or in a comment block?

    I'd be interested to see the code to do that. In vb.net I cheated by highlighting everything first, then doing the comment section last, so it overwrote the color text with green comment text text. Probably not the most efficient way though.

    All the comments about a smart compiler/highlighter are extremely relevant.

    An IDE may be able to shell out to other programs for the actual compilation/download. eg for Spin you can shell out to BST or Homespun. For C you shell out to Catalina. For Basic you shell out to BCX, then shell Catalina, then shell Homespun. Ditto any other command line compilers out there.

    So - the IDE may not need to be a compiler. But it does need to have intelligence in order to be able to highlight Spin/C/Basic with all their subtle differences.

    I have a rudimentary color highlighting for Spin/C/Basic already BUT it is in vb.net, and it is slow, and it does not do auto indents, and it does not do autocapitalisation.

    So I'm particularly excited by all the *better* methods to do this sort of thing.

    .complete is also something that could be very useful. For spin it would be a matter of searching through child objects and finding all the .pub methods and putting them in a list.

    And sooner or later one has to think about how to do those little arrows that the proptool has.

    I still very much have an open mind on Eclipse vs Real Basic. And others (Qt has been mentioned before but Heater said something a couple of weeks ago about it being bought out by Microsoft).

    I don't suppose Eclipse does Basic?
  • Heater.Heater. Posts: 21,230
    edited 2011-02-28 23:24
    Meanwhile, before anyone can figure out how to create a plugin for eclipse or even decide what language to use to create an IDE from scratch, Andrey Demenev has put together the beginnings of a crossplatform IDE in Qt. It already has beautiful syntax highlighting and indentation markers. It is also fast.

    Amazing how this thread can go on so long without a mention of this great effort by Andrey.
  • DavidMDavidM Posts: 630
    edited 2011-03-01 01:31
    Hi Heater, ( and everyone else)

    Please, how many times to I have to repeat myself!

    REAL BASIC can do this, the languages is easy!

    Those links I posted does all the syntax highlighting, everything can also be done in the same application, no need for plugins, the only things extra you will need is Bradc's compiler and is boot loader,

    I have got his boot loader working in real basic, a couple of lines of code is all it took!
    I use real basic to talk to my prop project all the time, using RS232 Serial ANS RS485!

    Please can someone have a look at the links I posted!

    http://homepage.mac.com/alexrestrepo/images/shots/CustomEditField.png

    http://code.google.com/p/custom-editfield/

    here the code for getting the bootloader to work
    If Not mShell.IsRunning Then
        mShell.Execute "sh"
      End If
      
      mShell.Write str("cd /")
      mShell.Write Chr(13)
      
      mShell.Write str("cd applications")
      mShell.Write Chr(13)
      
      mShell.Write str("cd SystemUpdater")
      mShell.Write Chr(13)
      
      mShell.Write str("./bstl.osx -p1 update.eeprom")
      mShell.Write Chr(13)
    


    Dave M
  • Heater.Heater. Posts: 21,230
    edited 2011-03-01 02:47
    Dave M,
    C
    RealBasic may well be wonderfull however it is not an opensource product and is therefore off topic for this thread.

    As it is a closed source compiler it has no place on my Linux box. There are already a raft of opensource alternatives.
  • DavidMDavidM Posts: 630
    edited 2011-03-01 03:19
    Hi Heater,

    WHY does the development environment need to OPEN SOURCE!! Only the IDE created from it needs to be!

    Windows Operating system and MAC OSX are NOT Open source these need to be paid for and these are used by everyone, Is Linux fully Open source?

    The IDE for the PROP CHIP WILL BE Open source as we ALL can contribute to it ( including mac users) , Parallax spin, and Brads BST these are not Open source.

    I would prefer to use an application ( paid or free) open or not) that make the TASK easier to do.

    Why put these restrictions in place!

    I can tell you now if SPIN was originally developed with real basic and PARALLAX decided to make the source code available we would not be talking about this! Parallax could then worry about making chips instead of IDE's

    I waited years for a MAC Version of SPIN!

    Another thing, COMPUTER HARDWARE is NOT FREE either, so at some point you do need to spend a bit of money if paying for things is the issue.

    I am about to spend a grand on EAGLE CAD for MAC, Why ,because I need to get work done and make money. try and find a decent PCB cad tool thats open source for mac!

    Sorry if I sound a bit rude, but as a mac user I always feel left out.

    Dave M
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-03-01 03:21
    The enthusiasm is hard to resist. Ok, tomorrow I will get RealBasic and test it out. I'll get Eclipse too.

    The point about open source writing the code vs open source running the code is valid. There is no perfect program. .net is turning into bloatware and won't run on everything. Eclipse does not seem to have Basic. Qt is C only and seems to have been bought by Microsoft. Jabaco may be close to the mark as it is Java behind the scenes but it is still in the early stages of development.

    There is certainly scope to modularise programs - eg an IDE can be the eye candy front end, but any of the shelled programs can be in any language you like. That means an IDE will be smaller, and hence down the track could be ported to other languages, even reverse engineered. Some of the code for syntax highlighting looks like it can be dropped into several languages anyway.
  • DavidMDavidM Posts: 630
    edited 2011-03-01 03:23
    Hi Dr_Acula,

    You mean the trial version.

    dave m
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-03-01 03:32
    Yes the trial version. But I don't mind paying for programs that impress me. BTW many thanks for your offer to help code a few things - I might be taking you up on that soon!
  • Kevin WoodKevin Wood Posts: 1,266
    edited 2011-03-01 03:34
    Okay, my misunderstanding. In that case, there are plenty of open-sourced text editors & IDEs that do syntax highlighting. You might want to browse some of the source code for these to get some ideas of how they handle the task. JEdit is a nice Java-based text editor, and Eclipse, Netbeans, and IntelliJ are a few IDEs. There are also the code samples that DavidM has posted, which should be a bit closer to VB.Net. Another cross-platform editor that you might look at is Komodo Edit by ActiveState, which is open-sourced, and built on the Mozilla platform (think Firefox).
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-03-01 05:23
    Great to hear there are more potential options. Much to explore. I guess one big challenge for any syntax highlighter is going to be those Spin arrows. I wonder if there is something similar for other 'indent based' languages that could be copied?

    @DavidM, I have realbasic installed and a simple program running. First question - when I hit the green "run" button, it takes 30 seconds, my internet connection goes crazy, and finally every time ZoneAlarm pops up a message asking if this (now new) program can connect to the internet. Is there a compilation process that is faster and/or does not need an internet connection?
  • YodaYoda Posts: 132
    edited 2011-03-01 09:01
    DavidM wrote: »
    You know,

    All this is a waste of time unless we decide to MAKE A BETTER IDE,

    Along with all the current features of SPIN, what could we add to MAKE OUR JOB EASIER,

    Built in debugger?
    Project management with revision control
    Conditional Compiling
    "Graphical" view of the basic structure of a project ( i.e Objects vs cogs, vs methods )
    Dot Notation & Auto Complete
    A better library for managing Master objects, My objects, and code snippets
    Code analysis, Unused variables methods etc
    COG usage
    TRUE Global Variables with parameter passing
    Better in code documentation
    Better bookmarks Mark code as ( tested, needs working ect)
    Built in to do list
    Auto code generation?


    So many things.

    Maybe we need a way to build a BASIC IDE, then everyone can build ADDONS that can be installed to their choosing to make the IDe do what they want, So we we need and add-on manager? We can then decide what add-ons are "Built" in to the MAIN Versions. Remember all of the source code to be left open, and must be able to be developed on all platforms.

    Its a big job , but a project plan we be the best start!

    Dave M

    You are right - this is a waste of time. I went an looked at the demo for Real Basic. It is a Gui builder it is NOT an IDE platform - there is a big difference. You will have to build the whole IDE from scratch, that means you will have to build all the widget intercommunications so when one view is updated other views are updated (Please don't trivialize this - it is very hard to get right). On the other hand, eclipse is a platform for tools. All the views and perspective work is in the base platform (hundreds of man years of effort to make it all work right). Most of writing an plugin IDE for eclipse is in connecting up the pieces. The hard part in both cases (yours and eclipse) is building a parser that connects to the editor to real time syntax highlighting. Eclipse has frameworks for assisting on this as again it is a tool to build tools - you will have to invent all that infrastructure in Real Basic. Real Basic may be good for building GUI applications, but it is not the right tool to build an IDE unless you want to invent everything.
  • Capt. QuirkCapt. Quirk Posts: 872
    edited 2011-03-01 13:01
    I have been working on a temporary solution with Eclipse. Using the Eclipse CDT version, there is a place for "External Tools", under Run->External Tools->External Tools Configuration. In this location it is possible to create your own build path and use the "run or build" radio button, errors will be displayed in the "console" (except with Propellent, they are pop-ups). Multiple external tools may be added and kept in the "Favorites Folder," and selected as necessary. This provides many options to be added on without a plug-in. Syntax highlighting can be facilitated by modifying existing parsers within the CDT project. But it seems that if you want more than one compiler, it is best to build a separate project for each compiler. (Also, External Tools exists in all versions of Eclipse and can be used to run all kinds of scripts or any other non-supported tools).

    There is also a Qt plug-in for Eclipse.
  • DavidMDavidM Posts: 630
    edited 2011-03-01 14:33
    Yoda wrote: »
    I went an looked at the demo for Real Basic. It is a Gui builder it is NOT an IDE platform - there is a big difference.

    HI Yoda, I guess you can say the RB is a "BLANK CANVAS", if comparing to Eclipse, but RB is NOT just a GUI Builder, GUI is only one part of any app that you may build, So yes you will have to code up everything, But as I keep mentioning, That link I provided showed that this has been done, the rest will be how this is interfaced.


    thanks

    Dave M
  • DavidMDavidM Posts: 630
    edited 2011-03-01 14:36
    Yoda wrote: »
    The hard part in both cases (yours and eclipse) is building a parser that connects to the editor to real time syntax highlighting.

    As I said that example link showed that this has been done! and quite well from what I see.

    http://homepage.mac.com/alexrestrepo/images/shots/CustomEditField.png

    Thanks

    Dave M
  • DavidMDavidM Posts: 630
    edited 2011-03-01 14:51
    Dr_Acula wrote: »
    @DavidM, I have realbasic installed and a simple program running. First question - when I hit the green "run" button, it takes 30 seconds, my internet connection goes crazy, and finally every time ZoneAlarm pops up a message asking if this (now new) program can connect to the internet. Is there a compilation process that is faster and/or does not need an internet connection?

    I believe that the debugger talks to the app via networking of some kind ( Interprocess comms?) , Not external, We had the same issue on the MAC, You will need to allow access in the firewall I believe.

    Compiling should only take a few seconds

    Try turning of zonealarm and see if that helps.

    these links may help.

    http://forums.realsoftware.com/viewtopic.php?f=1&t=30797&hilit=zonealarm
    http://forums.realsoftware.com/viewtopic.php?f=1&t=13468&hilit=zonealarm


    Dave M
  • YodaYoda Posts: 132
    edited 2011-03-01 16:26
    DavidM wrote: »
    As I said that example link showed that this has been done! and quite well from what I see.

    http://homepage.mac.com/alexrestrepo/images/shots/CustomEditField.png

    Thanks

    Dave M

    That is not done at all. Providing a text widget that does colorized text, indenting, etc is not done. You have to have a live parser feed that to get what people are looking for. Eclipse has the same thing. What it has this does not have is the methods to do synchronized updates across many views and perspective. What you have is the easy part and has been done many times. The model to drive it and keep everything in synch is not there. 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. You will have to invent that and it is hard. Eclipse provides the framework to do that. You have a lot of code ahead of you to make this work, but I doubt you will get as good an IDE out of it compared to starting with eclipse which you get a lot of the framework for free. You really need to look at eclipse and use it with Java or another language and see the true power of the views and perspectives - you get that for free in eclipse and it is free as well. Why would I want to fork out 300 dollars (maybe a 100 - it is not clear the cheaper will do everything) to make a substandard IDE ?

    Any ways this discussion had gone far enough - I am off to work on eclipse - good luck on your endeavors - from what I read here you may not have many takers for help with a proprietary system.
Sign In or Register to comment.