FbEdit, new IDE for FreeBASIC written in FreeBASIC
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:
Unfortunatly I am not able to compile your sources so it is untested.
KetilO
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
KetilO
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
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
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.
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
/ 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
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
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!
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!
What is going on here
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.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:
Edit:
Changing the Name of the udt from Jsb to Jsb64 eliminated or masked the problem. WHY
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
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:
then the period is not a problem.If I tryCycle.Count(MStatus.SlaveHd) = JsbAdc.UsbJsb(MStatus.SlaveHd).Count
then it still fails and hangs.Jsb.Count
Edit:
Changing the Name of the udt from Jsb to Jsb64 eliminated or masked the problem. WHY
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.
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.
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
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
-
- Site Admin
- Posts: 6323
- Joined: Jul 05, 2005 17:32
- Location: Manchester, Lancs
Hi KetilO,
Found a comment-parsing bug. It's done well to hide from us this long..It looks like FbEdit is missing the end-comment marker because it thinks it's commented out.
Thanks
Found a comment-parsing bug. It's done well to hide from us this long..
Code: Select all
/' begin comment
' end comment'/
print "Hello"
Thanks
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
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
Feature request
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
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