FbEdit, new IDE for FreeBASIC written in FreeBASIC

User projects written in or related to FreeBASIC.
Post Reply
Galeon
Posts: 563
Joined: Apr 08, 2009 5:30
Location: Philippines
Contact:

Post by Galeon »

I can't make it to work, but if you could help me here is the sources:
http://wargaleon.users.sourceforge.net/GNSISEdit.7z

It is an NSIS Script Editor, I need to have the blocks to collapse (can be found in NSIS.ini).
KetilOO
Posts: 6
Joined: Jun 28, 2010 9:33

Post by KetilOO »

Hi Galeon, and thanks for the feedback.

It looks like there is only a few things missing:

In LoadFile send this message after text is streamed in:
' Set block bookmarks
SendMessage(hWin,REM_SETBLOCKS,0,0)

In WndProc WM_NOTIFY:

Code: Select all

Case WM_NOTIFY
	If Cast(NMHDR Ptr,lParam)->hwndFrom=hREd Then
		If Cast(RASELCHANGE Ptr,lParam)->seltyp=SEL_OBJECT Then
			' Bookmark clicked
			bm=SendMessage(hREd,REM_GETBOOKMARK,Cast(RASELCHANGE Ptr,lParam)->Line,0)
			If bm=1 Then
				' Collapse
				SendMessage(hREd,REM_COLLAPSE,Cast(RASELCHANGE Ptr,lParam)->Line,0)
			ElseIf bm=2 Then
				' Expand
				SendMessage(hREd,REM_EXPAND,Cast(RASELCHANGE Ptr,lParam)->Line,0)
			EndIf
		Else
			' Selection changed
			buff="Ln: " & Str(Cast(RASELCHANGE Ptr,lParam)->Line+1) & " Pos: " & Str(Cast(RASELCHANGE Ptr,lParam)->chrg.cpMin-Cast(RASELCHANGE Ptr,lParam)->cpLine+1)
			SendDlgItemMessage(hWin,IDC_SBR1,SB_SETTEXT,0,Cast(LPARAM,@buff))
			If Cast(RASELCHANGE Ptr,lParam)->fchanged Then
				' Update comment blocks
				SendMessage(hREd,REM_SETCOMMENTBLOCKS,Cast(WPARAM,StrPtr("/'")),Cast(LPARAM,StrPtr("'/")))
				' Update block bookmarks
				SendMessage(hREd,REM_SETBLOCKS,0,0)
			EndIf
		EndIf
	EndIf
Unfortunatly I am not able to compile your sources so it is untested.

KetilO
Cherry
Posts: 358
Joined: Oct 23, 2007 12:06
Location: Austria
Contact:

Post by Cherry »

Cherry Tree is back online, so you can now download FbEdit again!
Dinosaur
Posts: 1507
Joined: Jul 24, 2005 1:13
Location: Hervey Bay (.au)

Post by Dinosaur »

Hi all

I dont know whether this problem is just my system's or if others are having this problem as well.

If I use the mouse scroll and scroll down, then left click to put the cursor there, FBEdit will hi-lite lines below the cursor.

If I scroll up, and left click, FBEdit will Hi-Lite lines above the cursor.

This has been happening on a number of versions, and leads to deletion of lines that I did'nt intend to delete.

This happens on both my laptop and Desktop.
At first I thought the speed of scrolling caused the problem, but it happens less frequently when scrolling slowly

This happens only when clicking on empty lines. If I click on a line with text then the screen may jump a few lines, but it does'nt hi-lite anything.


Regards
KetilOO
Posts: 6
Joined: Jun 28, 2010 9:33

Post by KetilOO »

Hi Dinosaur

My only suggestion is to try to reduce the mouse sensivity.

KetilO
petan
Posts: 683
Joined: Feb 16, 2010 15:34
Location: Europe
Contact:

Post by petan »

Hi,

/ to my previous post here /
here is detailed header of my invisible routine in FbEdit "List of functions" and extracted code example to get a problem.

Code: Select all

#Include "fbgfx.bi"
ScreenRes 1024,752,16,8,FB.GFX_FULLSCREEN: Width 128,47       
Const fsilver = RGB(192,192,192):
Const fblack = RGB(0,0,0)        
Color fsilver,fblack
ScreenSet 0,0: Cls
? "subroutine pozic is invisible in list of functions.."
? "subroutine pozic2 is invisible in list of functions.. the same as pozic, only header in one line"
Sleep
End


Sub pozic(byval poklc As Integer,bod1() As Short,bod2() As Short,bod3() As Short,sk1() As Short,sk2() As Short,sk3() As Short,sk4() As Short,sk5() As Short,sk6() As Short,vy1() As Short,vy2() As Short,vy3() As Short,re1() As Short,re2() As Short,re3() As Short,pr1() As Short,pr2() As Short,pr3() As Short,vy1po() As Short,vy2po() As Short,vy3po() As Short,pr1po() As Short,pr2po() As Short,pr3po() As Short,kol1() As Short,kol2() As Short,kol3() As Short,bp1() As Short,bp2() As Short,bp3() As Short,takohrali() As String,plac() As String,ofzap() As UShort,a() As String,at() As String,_ 
overbol() As String,pozing() As UByte,superbol() As String,strieldal() As String,strieldostal() As String,htFTklubu() As String,byval boody As UByte,byval HiKo As UByte,byval HiDi As UByte,grupa() As String,wwCaa() As Short, wdCaa() As Short, wlCaa() As Short, dwCaa() As Short, ddCaa() As Short, dlCaa() As Short, lwCaa() As Short, ldCaa() As Short, llCaa() As Short, wwDaa() As Short, wdDaa() As Short, wlDaa() As Short, dwDaa() As Short, ddDaa() As Short, dlDaa() As Short, lwDaa() As Short, ldDaa() As Short, llDaa() As Short, wwVaa() As Short, wdVaa() As Short, wlVaa() As Short,_ 
dwVaa() As Short, ddVaa() As Short, dlVaa() As Short, lwVaa() As Short, ldVaa() As Short, llVaa() As Short, oD25() As Short, oV25() As Short, uD25() As Short, uV25() As Short,akozahra() As string,akohtFT() As String,naplace() As String,ByVal covidim As String,Byval mmaxzap As Integer,skymzahra() As String,hralcine() As String,Rvolba() As UByte,ByVal zapasovpresni As UByte,tabidutakto() As string)
	'code
End Sub
Sub aww()
	'code
End Sub
Sub waw()
	'code
End Sub
Sub pozic2(byval poklc As Integer,bod1() As Short,bod2() As Short,bod3() As Short,sk1() As Short,sk2() As Short,sk3() As Short,sk4() As Short,sk5() As Short,sk6() As Short,vy1() As Short,vy2() As Short,vy3() As Short,re1() As Short,re2() As Short,re3() As Short,pr1() As Short,pr2() As Short,pr3() As Short,vy1po() As Short,vy2po() As Short,vy3po() As Short,pr1po() As Short,pr2po() As Short,pr3po() As Short,kol1() As Short,kol2() As Short,kol3() As Short,bp1() As Short,bp2() As Short,bp3() As Short,takohrali() As String,plac() As String,ofzap() As UShort,a() As String,at() As String,overbol() As String,pozing() As UByte,superbol() As String,strieldal() As String,strieldostal() As String,htFTklubu() As String,byval boody As UByte,byval HiKo As UByte,byval HiDi As UByte,grupa() As String,wwCaa() As Short, wdCaa() As Short, wlCaa() As Short, dwCaa() As Short, ddCaa() As Short, dlCaa() As Short, lwCaa() As Short, ldCaa() As Short, llCaa() As Short, wwDaa() As Short, wdDaa() As Short, wlDaa() As Short, dwDaa() As Short, ddDaa() As Short, dlDaa() As Short, lwDaa() As Short, ldDaa() As Short, llDaa() As Short, wwVaa() As Short, wdVaa() As Short, wlVaa() As Short,dwVaa() As Short, ddVaa() As Short, dlVaa() As Short, lwVaa() As Short, ldVaa() As Short, llVaa() As Short, oD25() As Short, oV25() As Short, uD25() As Short, uV25() As Short,akozahra() As string,akohtFT() As String,naplace() As String,ByVal covidim As String,Byval mmaxzap As Integer,skymzahra() As String,hralcine() As String,Rvolba() As UByte,ByVal zapasovpresni As UByte,tabidutakto() As string)
	'code
End Sub

Now seems me it as problem with FbEdit header length recognition, because the same header written in one line
and divided into three lines gives the same problem of invisibility in "List of functions" as you can see in screenshot here,

http://www.jetotam.webs.com/Clip1.jpg
http://www.jetotam.webs.com/Clip2.jpg

Pete
Galeon
Posts: 563
Joined: Apr 08, 2009 5:30
Location: Philippines
Contact:

Post by Galeon »

I think it is good if it is possible to have the settings file to be save in %APPDATA% because Windows XP and newer Windows versions do not allow editing some files in limited accounts (non-Administrator accounts).

You may check if FbEdit.ini exists in FbEdit's folder, then if it doesn't exists, create one in %APPDATA%\FbEdit\FbEdit.ini . If it still doesn't exists, ask the user where the settings file should be created, in Application Data of current user or in program location.

And I think you should update the download files in SourceForge, it is still 1.0.6.8!
Dinosaur
Posts: 1507
Joined: Jul 24, 2005 1:13
Location: Hervey Bay (.au)

What is going on here

Post by Dinosaur »

Hi all

The routine below compiles correctly.
If I try anywhere within the With / End With to type a period (as in full stop) FBedit hangs.

So I copy the whole project to my laptop.
Same problem.
Try doing the same thing within other routines in this module, no problem.
Type in a new line using a period using Notepad++ and it compiles correctly.

Code: Select all

Sub GetJsb
    If UsbAdc.NbrofBrds < 1 Then Exit Sub
    Jsb = JsbAdc.UsbJsb(MStatus.SlaveHd) 
    Dim As Integer Xq
        With Jsb
            Dim As String K
            'Get adc count
            .Raw = Jsb64xReadAdcRaw (@UsbAdc.SerNbr(MStatus.SlaveHd),@cpga, 1)
            .Voltage = Jsb64xReadAdc(@UsbAdc.SerNbr(MStatus.SlaveHd),1)
            'shift all values down by one
            For Xq = 1 To 99
                .Accum(Xq) = .Accum(Xq + 1)
            Next
            'put a new value in Index 100
            .Accum(100) = .Raw
            .GT = 0
            'now get new total value
            For Xq = 1 To 100
                .GT += .Accum(Xq)
            Next
            'work out if signal has gone through zero, and calc count
            If .ZeroPol < 0 Then
                If .Voltage < 0 Then 
                        .Count = (.GT / 100) - .ZeroCount
                    Else
                        .Count = (65534 - .ZeroCount) + (.GT / 100)
                EndIf
            EndIf
            If .ZeroPol > 0 Then
                If .Voltage > 0 Then 
                    .Count = (.GT / 100) - .ZeroCount
                EndIf
            EndIf
            .Grams = .Count / .CntGram 
        End With
    JsbAdc.UsbJsb(MStatus.SlaveHd) = Jsb 
End Sub
There is probably nothing wrong with the code, so I thought corruption. But replacing the whole routine from a backup would solve the problem, but NO. Is there some nasty limit on the number of periods's in FBEdit.
I have no idea why this is happening. The period I type can be from another udt where I type the udt name and then a period, and it hangs.

Regards

Edit:
If however I paste the longhand statement as in:
Cycle.Count(MStatus.SlaveHd) = JsbAdc.UsbJsb(MStatus.SlaveHd).Count
then the period is not a problem.If I try
Jsb.Count
then it still fails and hangs.

Edit:
Changing the Name of the udt from Jsb to Jsb64 eliminated or masked the problem. WHY
Cherry
Posts: 358
Joined: Oct 23, 2007 12:06
Location: Austria
Contact:

Post by Cherry »

Some bugs:

1. When a tab is locked, it's not possible to close FbEdit.
2. When 2 .rc files are opened at the same time, it can happen that one gets overridden with the content of the other.
3. When some window pops up while fullscreen (Ctrl+W) is activated and FbEdit loses focus, you see a just a grey window when you reactivate it. You have to press Ctrl+W twice then.
petan
Posts: 683
Joined: Feb 16, 2010 15:34
Location: Europe
Contact:

Post by petan »

Hi,
to my post from Jul 25,
accurate counted down.
If number of subroutine header parameters is bigger than 84, subroutine visibility is lost in List of functions.
It would be good an increasing up this number /some internal FbEdit parameter / to 95 , for example.

Second thing - Find All / calls of subroutine / is not working for non-project mode.Even if I am working in x files project and opening independent solo utility for finding/copying newly needed subs into my project.

Pete
VANYA
Posts: 1889
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Post by VANYA »

Prompt please, whether it is possible to make in the editor that there was an autoend of operators? That is at input:

bsa

The window took off

bsave
counting_pine
Site Admin
Posts: 6323
Joined: Jul 05, 2005 17:32
Location: Manchester, Lancs

Post by counting_pine »

Hi KetilO,
Found a comment-parsing bug. It's done well to hide from us this long..

Code: Select all

/' begin comment
' end comment'/
print "Hello"
It looks like FbEdit is missing the end-comment marker because it thinks it's commented out.
Thanks
frisian
Posts: 249
Joined: Oct 08, 2009 17:25

Post by frisian »

Hi KetilO

Here are some things I noticed while working white FBedit they are observations regarding the way FBedit handles things.

The code tooltip in on it displayed to close on the line where I work on so when i type a underscore it disappears (it looks if I typed a space).

On the bottom right of the screen in the window for functions/vars etc. the line are to close so underscores disappears.

Can they have some more distance between them so that the underscore is visible.

When using only the keyword ASM that line and others are moved to the left side of the edit screen until it discovers same command the signals the end of a block.

function nothing(x as integer) as integer
asm mov eax, [x]
asm eax
asm mov [function], a
end fucntion

after the end function work as it normly does.

Lines whit asm followed by a instruction should be treated as normal line not as the start off a asm / end asm block.

Seen in srvaldez quad.bi

operator quad.cast () as string
operator = quad_string( this)
end operator

for each line white the keyword operator stands a minus sign in a box indicating a collapse-able code block only the first operator and the end operator form a block the second operator is an instruction in the block.

The second operator should be ignored it's a instruction not the start of a code block.

Is it possibly to have a option on where the code tooltip appears personly i would like it to see it above the line I am working on.

Regards
petan
Posts: 683
Joined: Feb 16, 2010 15:34
Location: Europe
Contact:

Feature request

Post by petan »

HI,

I found FbEdit is not able works with FB sources written on Linux machine /separator 0A0A - displayed all in one line/.
Both FbIDE and Geany have this one.

Thx,
Pete
owen
Posts: 555
Joined: Apr 19, 2006 10:55
Location: Kissimmee, FL
Contact:

Post by owen »

would be nice if when cursor is in sub (or function) that the respective sub on the right (in the list of subs) would automatically be selected.

also, i temporarily lost my wifi connection today and noticed when compile&run that my connection was being queried.

thanks for a great editor.
Post Reply