IDE project

Community Forums/Showcase/IDE project

Red(Posted 2003) [#1]
It's my first and biggest B+ project.
Download a alpha-version (functional) : [a http://www.cemporia.org/%7Eeddy/click/clic.php3?url=http://perso.wanadoo.fr/eddy.dev/projet/ide_eddy.rar] Here [/a] v1.6.2003

Features : v1.6.2003
----------
- menu
- toolbar + separators
- tabbers
- title control
- statusbar
- resizable code-explorer (colored listview + splitterbar)

- open/new/save file
- save/close (All)
- recent files
- reload last opened file at start

- run/debug/create exe
- run Last /debug Last

- syntaxhighlighting + dynamic highlight
- code-explorer flickering reduced
- tabs size
- un/Comment block
- copy/cut/paste/select all

- quick access to labels
- auto-open include file (dbl-click)

- include file /directory
- insert color
- insert file datas
- insert image datas

- calculator

ToDo :
-------
- format clipboard before paste a text
- find
- un/ident block
- insert template
- folding functions
- browser for Blitz loading functions
- quick help
- UPX
- popup menu

list of B+ known bugs :
- remove all tabber items
- change name of a tabber item
- notify serious flag does not work
- commandline does not work in compiled file




skn3(Posted 2003) [#2]
First of many IDE's to come, And it is looking good !!

What kind of special features will it have ?


darklordz(Posted 2003) [#3]
I was woundering
how you compile projects with an alternative ide using the linker. Can someone post some sample code...


Red(Posted 2003) [#4]
@Skn3
it is still too early :)

@Darklordz
I will use BATCH file.
Mark has posted a example about this subject.


Red(Posted 2003) [#5]
@Darklordz
See this from MArk : http://www.blitzbasic.com/bbs/posts.php?topic=21113

There's a example of compile process...


SSS(Posted 2003) [#6]
you should make your IDE pluggable, ie people could add features via dll
that would be sooooooooo cool.... like menu items, commands etc...


Red(Posted 2003) [#7]
doh!
Text Highlighting takes too much time.

300 lines -> 1.25 secondes
1300 lines -> 3.7 secondes



Michael Reitzenstein(Posted 2003) [#8]
Maybe you should only highlight the line that the cursor is on?


Red(Posted 2003) [#9]
For one line it's ok.
But it's the file opening which takes too much time.

" Shake your brain eddy, you must find a good idea to improve that !"


Genexi2(Posted 2003) [#10]
> But it's the file opening which takes too much time.

Why not syntax-highlight only the text that's to be a split-second later displayed on the screen?


Red(Posted 2003) [#11]
hum ? Ive a strange bug with tabber .... :/
I cant modify gadget item.

WOW! 2 B+ bugs on one night!


Red(Posted 2003) [#12]
- New version uploaded -

B+ highlighting funcitonality is little bit slow...
but it works.


Red(Posted 2003) [#13]
Features v 17.5.2003

- open/new/save file
- save all/close all
- recent files
- menu
- toolbar
- tabbers
- syntaxhighlighting


darklordz(Posted 2003) [#14]
Hey u guy's thanks for the replys i was looking for this post but i lost it... DOH!


Red(Posted 2003) [#15]
no problemo :)


Red(Posted 2003) [#16]
v 18.5.2003 uploaded

bug fix : dynamic highlighting
run/debug/create
run last /debug last


Red(Posted 2003) [#17]
- updated -

un/comment block




Red(Posted 2003) [#18]
- updated -


Difference(Posted 2003) [#19]
Good work Eddy. Fix the slow highlighting, and make it Open Source, you've got a winner :)


Red(Posted 2003) [#20]
- I think that I cannot reduce more highlighting slowdown.
But it's a real problem only for file opening.


- I am starting to distribute all functionalities that I coded, see code archives.
It's easier than to translate all the code. :)

For more info, people can ask me some question.


Difference(Posted 2003) [#21]
It is very cool, thanks for sharing your work


Red(Posted 2003) [#22]
I hope that all these extended functionalities will be obsolete in the future
because B+ really needs many of them. :)


Beaker(Posted 2003) [#23]
Something I always wanted to see in a Blitz IDE was a little Browse button next to any command that loaded media:
LoadImage("") etc
..which would swap the filename to the one selected in the file/media browser.


Red(Posted 2003) [#24]
How to insert a bitmap in RichText ?

I don't know...


Difference(Posted 2003) [#25]
How to insert a bitmap in RichText ?

It so difficult you will not beleive it. Take my word for it, don't spend time on it. :)

That said, checkout Borje Hagstens RichEdit - Olé from http://www.tolkenxp.com/pb/index.htm and the PowerBbasic forums( www.powerbasic ), source code section.

When you are visiting Borges site, checkout is excellent EDM32 code editor control: http://www.tolkenxp.com/pb/edm32.htm


Beaker(Posted 2003) [#26]
I wasn't suggesting inserting a bitmap into the text, only a button. Maybe that's just as difficult? But it doesn't actually have to be in the text box, it can be just outside on the edge.


Difference(Posted 2003) [#27]
MasterBeakers suggestion can be implemented as a rightclick option in the popup. That should be doable without too much headache.

[EDIT:] Associating specifically with a media loading functions, seems a bad idea, because a medianame could be anywhere in the code ,like here:

MyFunc "C:\picture.jpg"

Function MyFunc(fname$)

	Return LoadImage(fname$)

End function'



Red(Posted 2003) [#28]
There is already a popupmenu in the IDE.
The only pb is that right click event is filtered by textarea. :(

I will use a floating toolbar


Difference(Posted 2003) [#29]
I was going to suggest that you send the Control a EM_SETEVENTMASK, but I guess Blitz would still filter out events, because Blitz events are not Windows events, or at least they are filtered and called something else.


Beaker(Posted 2003) [#30]
Yeah, a popup menu option would be better. That's similar to how UltraEdit handles filename mentions in your source.


Red(Posted 2003) [#31]
-updated-


Yappy(Posted 2003) [#32]
great so far - just one feature request tho....

Collapsable / Expandable functions please!!!!


Difference(Posted 2003) [#33]
Looks good Ed.

Until TextArea gets a rightclick event, maybe you can do your popup with a [KEY] + left click combo?

Also I think it would be valuable, if you collected all your findings about what you think is missing in the textarea control, and posted the list in the feature request forum.


Paul "Taiphoz"(Posted 2003) [#34]
I dont know if you have your text highlight problem fixed but I was thinking about it and thinking how I would do this..

First. is to have a routine that highlights all visible lines of code. ie only the lines the IDE can see.

Then as your IDE highlights each line you set a flag to say its been done.

This way you dont have to keep highlighting the same line over and over. and when you edit a highlighted line just set its flag to false again.

This also means your not waiting around for it to highlight 20000 lines of code. cos its only going to do what you can read.

hope it helps. if its been suggested already then soz, I didnt read the full post. to many replies not enough time.


JoshK(Posted 2003) [#35]
Send an email to jmklint@... and I'll send you the source to my unfinished B+ IDE, if you want.


Red(Posted 2003) [#36]
ok


Red(Posted 2003) [#37]
- updated -

splitter bar :
> vertical bar
> cursor change


Red(Posted 2003) [#38]
I'm starting the code-explorer dev.
I've removed tooltip of toolbar, there's a shift due to separators insertion.


Red(Posted 2003) [#39]
file updated
code-explorer is ok


Binary_Moon(Posted 2003) [#40]
This seems really cool but I can't get it to work on my pc.

I have tried putting the ide in a number of different folders (including replacing the blitz ide) and every time it tells me it can't find the compiler... :(

Also file loading isn't that bad. Its not as if you have to wait whilst typing... only when you open something. I can live with it for the extra undos, the improved code explorer (very nice btw) and hopefully a colour picker (I see the menu option)


Binary_Moon(Posted 2003) [#41]
Ok... I've got it working :)

When I run an program the file name in the tab at changes too a bunch of nonsense characters

Also pressing and holding enter (creating lots of new lines) seems to be really slow... as does pressing and holding backspace.

I get lots of flickering on the code explorer when I do either of these things.


Red(Posted 2003) [#42]
I have tried putting the ide in a number of different folders (including replacing the blitz ide)
and every time it tells me it can't find the compiler... :(

-it use BlitzPath Environment variable...

-the tab problem is a B+ bug


Algo(Posted 2003) [#43]
Nice work Ed,

I've just started my own IDE and run into the same problem of slow highlighting of loaded files, I can't even get the same speed as yours. I've used the same method as in Mark's example but with keyword checking after every string of Alpha characters found, but it's just taking ridiculous times to load files, any suggestions?


Red(Posted 2003) [#44]
The main code optimisation was to sort keywords in a multi-dimensional array.

Even if the code parser is ultra optimized, the "FormatTextAreaText" command multiplies the process time by 40.

No new idea until now :|
There is not enough supported events in B+.
The only solution is to call a function (coded in VC++,DevCpp,PB)


Red(Posted 2003) [#45]
@BinaryMoon

I've improved the dynamic update of the code-explorer.
The flickering is really reduced :)

I will updated the new version later


Algo(Posted 2003) [#46]
Ah thanks Ed,

I wonder if it's somehow possible to load straight to the clipboard add rtf colour tags and then paste it in?


EOF(Posted 2003) [#47]
Have not tried the IDE yet but reading about 'Inserting Bitmaps' I had an idea:

An [Insert File Link] button

So, if your cursor was in the quotes as shown here:
myimage=LoadImage("|")
clicking the [Insert File Link] would open up a file browser. Any file selected would then be pasted in between the quotes:

myimage=LoadImage("c:\mybitmpa.bmp")

This method allows the [Insert File Link] button to be used for anything requiring a filename:

LoadSound() , LoadAnimImage() , LoadBank() , ReadFile() ...

What do you think?


Binary_Moon(Posted 2003) [#48]
Lots of constructive critism (but it sounds kinda negative :(

The calculator doesn't work. Neither does the undo/ redo commands or the ctrl - left click menu.

More importantly the text input update is still too slow. I type fairly fast and there is a delay between me pressing the keys and the letters appearing... along with the flicker on the code-explorer (which is lessened :) This means I get more typos than normal since I don't see the errors until after i have typed them rather than as i type them.

Also when I select an option in the code-explorer (e.g functions) it switches back to displaying all the options when i start typing. IMO it should stay where I told it to go. I wonder if this would help reduce flicker as well since it would have a lot less to show.

Something else i have just noticed is that multi dimensional arrays don't show up properly in the code exporer. Try adding 'Dim weapons(20,2)' in a new project and you will see what I mean.

Having said all this I think you have a winner on your hands. It needs tidying up but I can see myself using this all the time once it's all sorted out :)


Red(Posted 2003) [#49]
Binary, wait. I talk about update v1.6.2003 :)
you didn't test the last version.


Red(Posted 2003) [#50]
[ file updated v 1.6.2003]
- add window$ pickcolor
- add calculator ... I hope that it is in the same directory in all OS. (...\system32\)
- popup menu does not work correctly, I removed it.


@Syntax error
I'm waiting for popup menu to add this feature
I will add popupmenu item like : "change Bitmap link"

@Binary
I fixed code-explorer bug and reduced code-explorer flickering
Tell me if it's better

I don't know if I can reduce typo input speed.
I will try to find a solution


Wiebo(Posted 2003) [#51]
Ed, are you really still using the TeleTubby XP backdrop? =]


Red(Posted 2003) [#52]
LOL


Binary_Moon(Posted 2003) [#53]
"add calculator ... I hope that it is in the same directory in all OS. (...\system32\)"

-- use systemproperty("systemdir")

The good news... the flicker has gone.

The bad news. The font is a bit on the small side (see picture)




Red(Posted 2003) [#54]
You work with a hires screen over 1024x768 :)
Do you use Blitz font ?


Binary_Moon(Posted 2003) [#55]
I use 1280*1024 but thats not the point. The font is about 8 pixels high. Compare it to the size of the menu text. The size in the last version was fine.

"Do you use Blitz font ?"

-- In the default ide? yes. I haven't changed anything from the standard blitz editor which is waht i normally use.

I have had another play and found that the font seems to change randomly from normal to tiny. Haven't noticed a pattern yet... very strange