FreeBasic IDE-poseidonFB(Update 2024.03.03)

User projects written in or related to FreeBASIC.
Post Reply
fxm
Moderator
Posts: 12083
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by fxm »

Have you check that in the file "settings/editorSettings.ini" you actually have "AutoEnd=ON" ?
sancho3
Posts: 358
Joined: Sep 30, 2017 3:22

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by sancho3 »

Thanks, I just checked and it is:

Code: Select all

TabUseingSpace=ON
AutoIndent=OFF
ShowEOL=OFF
ShowSpace=OFF
AutoEnd=ON
AutoClose=OFF
sancho3
Posts: 358
Joined: Sep 30, 2017 3:22

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by sancho3 »

I will try to re-install.
What is the proper Linux method of uninstalling Poseiden?
What is the proper Linux method of installing it?
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by Kuan Hsu »

sancho3 wrote:I will try to re-install.
What is the proper Linux method of uninstalling Poseiden?
What is the proper Linux method of installing it?
Uninstall -> just delete the poseidonFB
Install -> ( Ubuntu series )install the IUP, then extract the poseidonFB archive to one folder, run poseidonFB

I've make a Ubuntu 16.04 LTS live usb then run the poseidonFB, the "Auto Insert" was working...
sancho3
Posts: 358
Joined: Sep 30, 2017 3:22

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by sancho3 »

"Cannot Open tar-3 file" Archive not recognized
It puts a file called poseidenFB_64.tar-3 in my folder. I can't do anything with that file.
What happened?
EDIT:
It turns out that every time I download the archive it changes the name. Somehow it knows that this is the 5th time I've downloaded it and it named it ...tar-5.
I have to rename it ...tar.gz.
WTF is that? Did I not delete it?

Despite the frustration with this, the block complete is now working.
I suspect that the order must be followed. Install IUP first, then Poseiden.
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by Kuan Hsu »

sancho3 wrote:"Cannot Open tar-3 file" Archive not recognized
It puts a file called poseidenFB_64.tar-3 in my folder. I can't do anything with that file.
What happened?
EDIT:
It turns out that every time I download the archive it changes the name. Somehow it knows that this is the 5th time I've downloaded it and it named it ...tar-5.
I have to rename it ...tar.gz.
WTF is that? Did I not delete it?

Despite the frustration with this, the block complete is now working.
I suspect that the order must be followed. Install IUP first, then Poseiden.
*.tar-3 ???????
Please try to download poseidonFB from https://bitbucket.org/KuanHsu/poseidonfb/downloads/
poseidonFB need libiup.so( linux IUP dynamic library ) to run, so always install IUP first; I think your problem is another case but I don't know why, anyway, I'm glad that the "Block End" is working~~
Dinosaur
Posts: 1478
Joined: Jul 24, 2005 1:13
Location: Hervey Bay (.au)

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by Dinosaur »

Hi All

When you download the file multiple times, Ubuntu (& Mint) will number them.
Easiest is to simply delete the last download.

Regards
sancho3
Posts: 358
Joined: Sep 30, 2017 3:22

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by sancho3 »

But I did delete the other downloads. The system still knew I was on download 5.
Contrast that to IUP. I downloaded that a couple of times and the name still remained. ...tar.gz
Dinosaur
Posts: 1478
Joined: Jul 24, 2005 1:13
Location: Hervey Bay (.au)

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by Dinosaur »

Hi All

After running Poseidon for a while now, I need to list the problems that still exist.
Note that I am running Linux Mint 18.3 with Cinnamon.

1. File / Close all Tabs.
This closes down Poseidon completely 5 times out of 10.
So, I have to close files individually.

2. Search / Find Replace in Files
When the Message window has a number of results and you Double Click on one,
most of the time the relevant line will not appear on the screen.
The cursor will be on the line, but it will usually be about 10 lines above the first line.
So usually I have find the line number in the search result and then scroll to look for it.

3. Sometimes I click in the wrong spot and I get the Navigation "Ball" on the screen.
No amount of any clicking will cancel it, so I have to close that File and re-open it to get rid of it.

Wish List.
Would still love to have Expand / Contract memory between sessions. I have to contract every file manually.
This is complicated by the very narrow border where I can Right Click to "Contract All" , which is probably to do with Cinnamon.

Regards
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by Kuan Hsu »

Dinosaur wrote:Hi All

After running Poseidon for a while now, I need to list the problems that still exist.
Note that I am running Linux Mint 18.3 with Cinnamon.
Me too!

Dear Dinosaur:
(1) I'll add some code to check if there are some momory leak....(Fixed at rev.374)
(2) The Double-Click on "Search" panel will get line data and get first "(" position (pos1), then first "):" position (pos2), if we get pos1 and pos2 and pos2 > pos1, the file fullpath is the words before pos1, the line number is the value beween pos1 and pos2, I don't know where the bug is.........Is the fullpath with "("?
(3) It is "Middle Button Scroll" on document( select by "Options" -> "Preference" -> "Editor" ) and should be cancel by click any button on document.
(4) Do you mean open the document is default "Contract"?
Last edited by Kuan Hsu on Mar 13, 2018 17:15, edited 1 time in total.
Dinosaur
Posts: 1478
Joined: Jul 24, 2005 1:13
Location: Hervey Bay (.au)

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by Dinosaur »

Hi All
2) The Double-Click on "Search" panel will get line data and get first "(" position (pos1), then first "):" position (pos2), if we get pos1 and pos2 and pos2 > pos1, the file fullpath is the words before pos1, the line number is the value beween pos1 and pos2, I don't know where the bug is.........Is the fullpath with "("?
I think it has more to do with "Contracted files". The search and the Double Click works correctly, except the line is not visible
on the screen. I have to scroll up to find it.
(3) It is "Middle Button Scroll" on document( select by "Options" -> "Preference" -> "Editor" ) and should be cancel by click any button on document.
Thanks I turned it off.I had been trying to turn it off by clicking in the ball itself.
(4) Do you mean open the document is default "Contract"?
That would help, but remembering the "Contract State" is very helpfull when you come back to a project and you immediatly see where you were working the last time.

REgards
sancho3
Posts: 358
Joined: Sep 30, 2017 3:22

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by sancho3 »

There is a strange thing happening.
Open a new code file.
Type a comment line like this:

Code: Select all

'--------------------------------------------------------------------------------
Type a second comment:

Code: Select all

' hello world
Then type the keyword 'Type' and this is what heppens:

Code: Select all

Type------------------------------------------------
Typello world
Type------------------------------------------------
Type
Auto block end seems to mess up the lines above it.

Also, there doesn't seem to be any autocomplete for the pointer member access operator ->
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2018.03.04)

Post by Kuan Hsu »

Dinosaur wrote:Hi All

After running Poseidon for a while now, I need to list the problems that still exist.
Note that I am running Linux Mint 18.3 with Cinnamon.

1. File / Close all Tabs.
This closes down Poseidon completely 5 times out of 10.
So, I have to close files individually.
Fixed at rev.374
sancho3 wrote:There is a strange thing happening.
Open a new code file.
Type a comment line like this:

Code: Select all

'--------------------------------------------------------------------------------
Type a second comment:

Code: Select all

' hello world
Then type the keyword 'Type' and this is what heppens:

Code: Select all

Type------------------------------------------------
Typello world
Type------------------------------------------------
Type
Auto block end seems to mess up the lines above it.

Also, there doesn't seem to be any autocomplete for the pointer member access operator ->
(1) It's a "Auto Convert Keyword Case" bug, fixed at rev.374
(2) Fixed at rev.374
sancho3
Posts: 358
Joined: Sep 30, 2017 3:22

Re: FreeBasic IDE-poseidonFB(Update 2018.03.14)

Post by sancho3 »

Thanks for being so quick with these. I haven't checked the fixes yet.
Another problem in Comment All under the Edit menu.
Comment All should not be a toggle. When I select a number of lines to comment, it should comment them all including those that are already a comment.
This:

Code: Select all

'----------------
Print "hello"
should become this when you select Comment Line:

Code: Select all

''----------------
'Print "hello"
Not this:

Code: Select all

----------------
'Print "hello"
Comment and UnComment should be two functions not a toggle.

And wish list item:
FBEdit lets you right click on a code file in the project file list and select "Set as main file". This is a useful shortcut and would be great to see in Poseiden.

The following code file crashes Poseiden when you press space after the #endmacro at line 149. Put the cursor beside the #endmacro and press space. You can also comment and uncomment the line and it crashes it as well. (sorry about the wall of code)

Code: Select all

'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
' TList.bas
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Define NULL 0
#Define CRLF Chr(13) & Chr(10)

Namespace _Log
	Const Log_FILE = "LOG.txt"
	Declare Sub clear_file()
	Declare Function post(Byref txt As String) As Boolean

	Sub clear_file()
		'
		Dim As Ulong f
		f = Freefile()
		Open Log_FILE For Output As f
		Close f
	End Sub

	Function post(Byref txt As String) As Boolean
		'
		Dim As Ulong f
		f = Freefile()
		If Open(Log_FILE , For Binary, As f)<>0 Then Return False
			Seek f, Lof(f)
			Print #f, txt & CRLF
		Close f
	End Function 
	
End Namespace
Type mytype
	As String s
	As Integer x
End Type

'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Type TNode
	As Any Ptr pdata
	As TNode Ptr prev_node
	As TNode Ptr next_node
End Type

'#Macro TList_FindItem(item, t)
'	Function TList.find_item(Byval item As t) As TNode Ptr
'		'
'		Dim As TNode Ptr node = This.root_node
'		While node <> NULL
'			If *Cast(t Ptr, node->pdata) = item Then
'				Return node
'			End If
'			node = node->next_node
'		Wend
'			
'		Return NULL
'	End Function
'	
'#Endmacro
Type TList
	As Integer item_count
	As TNode Ptr root_node
	As TNode Ptr front_node
	'Declare Function get_front_item() As TNode Ptr 
	Declare Function add_item(Byval item As Any Ptr) As Boolean
	Declare Sub delete_item(Byval item As Any Ptr)
	Declare Function find_item(Byval item As Any Ptr, Byval compare_sub As Function(Byval list_item As Any Ptr, Byval search_item As Any Ptr ) As Boolean) As TNode Ptr
	Declare Constructor()
	Declare Destructor()
End Type
Constructor TList()
	'
	This.root_node = New TNode
	_log.post("constructor new root: " & This.root_node)
	This.root_node->next_node = This.root_node
	
	This.front_node = This.root_node
End Constructor
Destructor TList()
	'
	Dim As TNode Ptr node
	node = this.front_node
	While node<> NULL
		node = node->prev_node
		_log.post("deleted: " & front_node)
		Delete front_node
		front_node = node
	Wend
End Destructor
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Function TList.find_item(Byval item As Any Ptr, Byval compare_sub As Function(Byval list_item As Any Ptr, Byval search_item As Any Ptr ) As Boolean) As TNode Ptr
	'
		Dim As TNode Ptr node = This.root_node
	'?"ooo "; Cast(mytype ptr, This.root_node->pdata)->s
		While node <> NULL
			If compare_sub(node->pdata, item) = True Then
				Return node
			End If
			node = node->next_node
		Wend
			
		Return NULL
End Function
Function TList.add_item(Byval item As Any Ptr) As Boolean 
	'
	'? "www";Cast(mytype Ptr, item)->s
	item_count += 1
	If This.root_node->next_node = This.root_node Then 
		This.root_node->prev_node = NULL	
		This.root_node->next_node = NULL
		This.root_node->pdata = item
	'?"oddddoo "; Cast(mytype ptr, This.root_node->pdata)->s, Cast(mytype Ptr, item)->s
		_log.post("set the root node to the first item")
		Return True 
	End If
	This.front_node->next_node = New TNode
	_log.post("new: " & This.front_node->next_node)
	This.front_node->next_node->pdata = item 
	This.front_node->next_node->prev_node = This.front_node
	This.front_node = This.front_node->next_node
End Function 
'------------------------------------------------------------------
#Macro _List(N, T)
	Type N Extends TList
'		Declare Sub add_item(Byval item As T Ptr)
'		Declare Constructor()		
'		Declare Destructor()
	End Type
'	Constructor N()
'		'
'		Base()
'	End Constructor
'	Destructor N()
'		'
'		Dim As TNode Ptr node = this.root_node
'		While node <> NULL
'			Dim As TNode Ptr temp = node->next_node
'			Dim As T tdata = Cast(T Ptr,  node->pdata)
'			Delete tdata
'			_Log(__function__ &" delete pdata for:" & node)
'			Delete node
'			_Log(__Function__ & " delete node:" & node)
'			node = temp
'		Wend
'	End Destructor
'	
'	Sub N.add_item(Byval item As T Ptr)
'		Base.add_item(New T)
'	End Sub
#Endmacro
'-----------------------------------
Function compare(Byval list_item As Any ptr, Byval search_item As Any Ptr ) As Boolean
	If Cast(mytype Ptr, list_item)->s = *Cast(Zstring Ptr, search_item) Then Return True
	? "xx "; Cast(mytype Ptr, list_item)->s, "sss";  *Cast(Zstring Ptr, search_item)	
	?"ppp "; list_item
	Sleep
	Return False
End Function 


Screenres 800, 600, 32
_log.clear_file()
_List(IList, Integer)

'Dim As mytype Ptr f = New mytype
'f->s = "test"
'f->x = 12
'
'Dim As TList list 
'list.add_item(f)
'Delete f
'f = New mytype
'f->s = "foo"
'f->x = 14
'list.add_item(f)
'
'? list.item_count
'Dim As tnode Ptr node
'
'node = List.find_item(Strptr("foo"), @compare())
'? node
'? "!";Cast(mytype Ptr, node->pdata)->s
'? "{";Cast(mytype Ptr, list.root_node->pdata)->s, Cast(mytype Ptr, list.root_node->next_node->pdata)->s
'_log.post("hello world")
'_log.post("follow me")
'_log.clear_file()
'Sleep
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2018.03.14)

Post by Kuan Hsu »

sancho3 wrote:Comment and UnComment should be two functions not a toggle.
Done at rev.375
sancho3 wrote:And wish list item:
FBEdit lets you right click on a code file in the project file list and select "Set as main file". This is a useful shortcut and would be great to see in Poseiden.
Done at rev.375, please Right-Click a *.bas item on "Project Panel" to set
Image
sancho3 wrote: The following code file crashes Poseiden when you press space after the #endmacro at line 149. Put the cursor beside the #endmacro and press space. You can also comment and uncomment the line and it crashes it as well. (sorry about the wall of code)
ParseLive! bug and only exists in linux version, fixed at rev.375
Post Reply