FreeBasic IDE-poseidonFB(Update 2024.03.03)

User projects written in or related to FreeBASIC.
Post Reply
St_W
Posts: 1626
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: FreeBasic IDE-poseidonFB(Update 2017.10.16)

Post by St_W »

Hi,
I've another feature request for you: A backward/(forward) navigation functionality. In other IDEs this is typically implemented by providing a backward and forward navigation toolbar button. It should allow to go back to the previous locations one was looking at e.g. when navigating via "goto definition" or when doing edits in different locations or when navigating manually to a different location/file.
Common keyboard shortcuts for that feature are e.g. ALT+Left/Right (cursor keys).
I cannot explain it very well - you could also have a look in an existing IDE (like Visual Studio, QtCreator, IntelliJ, ...) to get some inspiration how it could be implemented.

Thanks again for this great IDE.
Raennik
Posts: 1
Joined: Oct 23, 2017 2:52

Re: FreeBasic IDE-poseidonFB(Update 2017.10.16)

Post by Raennik »

This is a really great IDE. It has a lot of great functionality! I especially appreciate function folding, and the simple toggle between 32 and 64 bit compiling. Thanks for all your hard work!
marcov
Posts: 3462
Joined: Jun 16, 2005 9:45
Location: Netherlands
Contact:

Re: FreeBasic IDE-poseidonFB(Update 2017.10.16)

Post by marcov »

St_W wrote:Hi,
I've another feature request for you: A backward/(forward) navigation functionality. In other IDEs this is typically implemented by providing a backward and forward navigation toolbar button. It should allow to go back to the previous locations one was looking at e.g. when navigating via "goto definition" or when doing edits in different locations or when navigating manually to a different location/file.
Common keyboard shortcuts for that feature are e.g. ALT+Left/Right (cursor keys).
I cannot explain it very well - you could also have a look in an existing IDE (like Visual Studio, QtCreator, IntelliJ, ...) to get some inspiration how it could be implemented.

Thanks again for this great IDE.
I happened to have Lazarus and Delphi open when I read this, and they indeed use alt+left/right. Probably imported, since there is also an older style ctrl-h/ctrl-shift-h combo. (still from ancient Dos based Borland products probably)
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2017.10.16)

Post by Kuan Hsu »

St_W wrote:Hi,
I've another feature request for you: A backward/(forward) navigation functionality. In other IDEs this is typically implemented by providing a backward and forward navigation toolbar button. It should allow to go back to the previous locations one was looking at e.g. when navigating via "goto definition" or when doing edits in different locations or when navigating manually to a different location/file.
Common keyboard shortcuts for that feature are e.g. ALT+Left/Right (cursor keys).
I cannot explain it very well - you could also have a look in an existing IDE (like Visual Studio, QtCreator, IntelliJ, ...) to get some inspiration how it could be implemented.

Thanks again for this great IDE.
I think it's not difficult that old poseidon ( for D language ) already with Back/Forward navigation at 2007, the point is what action will add to the navigation cache or not, I'll to do it at next reversion...^^

Done, please test...
Last edited by Kuan Hsu on Oct 24, 2017 13:48, edited 1 time in total.
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2017.10.16)

Post by Kuan Hsu »

marcov wrote:I happened to have Lazarus and Delphi open when I read this, and they indeed use alt+left/right. Probably imported, since there is also an older style ctrl-h/ctrl-shift-h combo. (still from ancient Dos based Borland products probably)
The short-cut will also add.

Done, please test...
Last edited by Kuan Hsu on Oct 24, 2017 13:48, edited 1 time in total.
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2017.10.16)

Post by Kuan Hsu »

Raennik wrote:This is a really great IDE. It has a lot of great functionality! I especially appreciate function folding, and the simple toggle between 32 and 64 bit compiling. Thanks for all your hard work!
You're welcome.....^^
paul doe
Moderator
Posts: 1733
Joined: Jul 25, 2017 17:22
Location: Argentina

Re: FreeBasic IDE-poseidonFB(Update 2017.10.28)

Post by paul doe »

Hi Kuan,

There's a feature I would like to suggest. In the old FBEdit IDE, when you had the current line highlighted to a #include declaration, if you pressed the 'Open' command, FBEdit would open that include file. For example:

Code: Select all

#include once "inc/platform.bi"		<-- If this is the currently highlighted line, the editor would open 'platform.bi'
#include once "inc/core.bi"
#include once "inc/math.bi"
While it may not seem much, it does ease my work considerably, as I usually work with a huge codebase, and this saves me *a lot* of time.
Also, the open dialog file type combo should add another option (which can be the default) for 'Basic Sources' and 'Include Sources' alike, something along the lines of 'All Supported Files (*.bas, *.bi)'. And default to the last path you opened from the file you're currently working on, instead of the last global path, if you get what I mean. Or perhaps I'm just being picky. It's your call ;)

Overall, GREAT work. I just finished setting up everything I need, and started using it. Love the 32/64 button switch. Keep it up!

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

Re: FreeBasic IDE-poseidonFB(Update 2017.10.28)

Post by Kuan Hsu »

paul doe wrote:Hi Kuan,

There's a feature I would like to suggest. In the old FBEdit IDE, when you had the current line highlighted to a #include declaration, if you pressed the 'Open' command, FBEdit would open that include file. For example:

Code: Select all

#include once "inc/platform.bi"		<-- If this is the currently highlighted line, the editor would open 'platform.bi'
#include once "inc/core.bi"
#include once "inc/math.bi"
While it may not seem much, it does ease my work considerably, as I usually work with a huge codebase, and this saves me *a lot* of time.
Also, the open dialog file type combo should add another option (which can be the default) for 'Basic Sources' and 'Include Sources' alike, something along the lines of 'All Supported Files (*.bas, *.bi)'. And default to the last path you opened from the file you're currently working on, instead of the last global path, if you get what I mean. Or perhaps I'm just being picky. It's your call ;)

Overall, GREAT work. I just finished setting up everything I need, and started using it. Love the 32/64 button switch. Keep it up!

Regards,
Paul
We can use "Goto Definition" to open the file. ( use Ctrl+Left-Click or Alt + G or selected on right-click popup menu )
poseidonFB search *.bi rule(by freeBASIC chm):
For relative paths, or where no path is given at all, the include file is search for in the following order:
1. Relative from the directory of the source file
2. Relative from the current working directory
3. Relative from addition directories specified with the -i command line option
4. The include folder of the FreeBASIC installation (FreeBASIC\inc, where FreeBASIC is the folder where the fbc executable is located)


But notice, by rule 4, we need include the files without "inc/", or we will get the "File not found" error while compiling
Image
If the "inc" path is our specified folder, use rule 1~3 to enable for compiler / poseidonFB.
( for example by rule 3: -i "K:/CodingPark/FreeBASIC-1.05.0-win32" )
paul doe
Moderator
Posts: 1733
Joined: Jul 25, 2017 17:22
Location: Argentina

Re: FreeBasic IDE-poseidonFB(Update 2017.10.28)

Post by paul doe »

Yeah, I'm fully aware of what you say, but in that case I end up having to use the @ compiler switch (lots of dependencies). Also, the open dialog thing that I mentioned is a little annoying. Nevermind, though. A message box with 'insufficient resources to complete the operation' showed up when I fired it, and immediately after Avira just killed the exe. Thanks, anyway. Keep up the good work.

Regards,
Paul.
c-sanchez
Posts: 145
Joined: Dec 06, 2012 0:38

Re: FreeBasic IDE-poseidonFB(Update 2017.11.08)

Post by c-sanchez »

Hi @Kuan, cool, is really nice view how still improving PoseidonFB :D
Here some detail i've noticed:

1. The IDE message window is always visible, even with poseidonFB minimized.
By other side, can you make this window "(un)dockable"? a bit like Outline(left) and Message(bottom) windows, but (maybe?) this time in the right heh.
---
2. Missing strings on language files:
In Find/Replace window the texts: "Find Nothing!" , "Found Word"
In IDE message window the Window title "Message ", Buttons "Clear", "Close"
Preferences Window > Editor > "Set Control Char Symbol:"
---
3. First, thank you very really by use INI as files to save settings now, that is really better for me.

I have a doubt about how is saved the settings in INI file, The [sections] always are followed by an = , why this?

I was looking for a way to add my options automatically, so I'm using the NirCmd command line tool to add/modify some values in settings, But instead of modifying are added as new options to end of file.

then and I think this = symbol is the problem :P

this is my "my_settings.bat" file to make the things.

Code: Select all

@echo off
"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "editor" "keyword0" "abs access acos alias allocate append as asc asin asm atan2 atn base beep bin binary bload bsave byref byval call callocate case cdecl chain chdir chr circle clear close cls color com command common condbroadcast condcreate conddestroy condsignal condwait cons constructor continue cos csrlin curdir cvd cvi cvl cvlongint cvs cvshort data date dateadd datediff datepart dateserial datevalue day deallocate declare delete destructor dim dir do draw dylibfree dylibload dylibsymbol dynamic else elseif encoding end enum environ eof erase erfn erl ermn err error escape exec exepath exit exp explicit export extends extern field fileattr filecopy filedatetime fileexists filelen fix flip for format frac fre freefile function get getjoystick getkey getmouse gosub goto hex hour if iif imageconvertrow imagecreate imagedestroy imageinfo import inkey inp input instr instrrev int is isdate kill lang lbound lcase left len lib line loc local locate lock lof log loop lpos lprint lpt lset ltrim mid minute mkd mkdir mki mkl mklongint mks mkshort month monthname multikey mutexcreate mutexdestroy mutexlock mutexunlock naked name namespace next new nogosub nokeyword now oct on open operator option out output overload paint palette pascal pcopy peek pipe pmap point poke pos preserve preset print private property protected pset public put random randomize read reallocate redim reset restore resume return right rmdir rnd rset rtrim run scope screen screencontrol screencopy screenevent screenglproc screeninfo screenlist screenlock screenptr screenres screenset screensync screenunlock scrn second seek select setdate setenviron setmouse settime sgn shell sin sizeof sleep space spc sqr stdcall step stick str strig sub swap system tab tan then this threadcreate threadwait time timer timeserial timevalue to trim type typeof ubound ucase union unlock until using val valint vallng valuint valulng var view wait wbin wchr weekday weekdayname wend whex while width window windowtitle winput with woct write wspace wstr year"
"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "editor" "keyword1" "any byte cast cbyte cdbl cint clng clngint const cptr cshort csign csng cubyte cuint culng culngint cunsg cushort defbyte defdbl defint deflng deflongint defshort defsng defstr defubyte defuint defulongint defushort double integer long longint object pointer procptr ptr sadd shared short single static string strptr ubyte uinteger ulong ulongint unsigned ushort varptr wstring zstring"
"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "editor" "keyword2" "add alpha and andalso custom eqv false imp let mod not null or orelse shl shr trans true xor"
"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "editor" "keyword3" "assert assertwarn bit bitset bitreset defined hibyte hiword lobyte loword rgb rgba va_first va_arg va_next pragma debug"

"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "toggle" "TabUseingSpace" "ON"
"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "toggle" "TabWidth" "2"
"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "toggle" "FixedLineMargin" "OFF"
"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "toggle" "MiddleScroll" "ON"

"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "buildtools" "compilerpath" "%programfiles%\FreeBASIC\fbc.exe"
"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "buildtools" "resultwindow" "OFF"
"%~dp0nircmdc.exe" inisetval "%~dp0\settings\editorSettings.ini" "buildtools" "usesfx" "ON"
the "nircmdc.exe" and "my_settings.bat" goes in the same directory as the executable of poseidonFB.
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2017.11.08)

Post by Kuan Hsu »

Dear c-sanchez:
(1) I've fixed minimize issue at rev0.330, but I think I will not add the "(un)dockable", because it fixed at bottom with Output & Search panel will be a better idea.
(2) Updated at rev 0.330
(3) I modified my code now can accept "[block]=" or "[block]", please check...
c-sanchez
Posts: 145
Joined: Dec 06, 2012 0:38

Re: FreeBasic IDE-poseidonFB(Update 2017.11.12)

Post by c-sanchez »

Thanks @Kuan Hsu, you are the best :D

Yes, now minimize with main window, but.. and if just chage window without minimize?
https://s6.postimg.org/69wlbpgup/poseidonfb_overlay.png
haha :P

Other Ideas/Feature request:
1. A option to hide the Tabs bar if we have just one document opened.

2. Don't show the horizontal scroll bar if not necessary. Even if word wrap is disabled. Like vertical scroll bar.
some images to explain me better:
https://s6.postimg.org/phjq8k6yp/scrollbars.gif
https://s6.postimg.org/jgm1bhcmp/poeido ... llbars.gif

3. An small detail in Search/Replace window. Change a bit the Cancel button, by example:
Image Image
Makoto WATANABE
Posts: 231
Joined: Apr 10, 2010 11:41
Location: Japan
Contact:

Re: FreeBasic IDE-poseidonFB(Update 2017.11.12)

Post by Makoto WATANABE »

Dear Kuan Hsu
I updated the Japanese.lng.
http://makoto-watanabe.main.jp/Japanese.zip


By the way, I tried to compile a following program from "Rosetta Code".
Amicable pairs
24 FreeBASIC
24.2 using "Sieve of Erathosthenes" style
http://rosettacode.org/wiki/Amicable_pa ... s.22_style
However, it interrupted with the following error.

Image

Please tell me if there is a way to avoid this error.
Josep Roca
Posts: 564
Joined: Sep 27, 2016 18:20
Location: Valencia, Spain

Re: FreeBasic IDE-poseidonFB(Update 2017.11.12)

Post by Josep Roca »

> Please tell me if there is a way to avoid this error.

Yes. Change MAX to something else. Max is already defined in ntdef.bi:

#define max(a, b) iif((a) > (b), (a), (b))
Makoto WATANABE
Posts: 231
Joined: Apr 10, 2010 11:41
Location: Japan
Contact:

Re: FreeBasic IDE-poseidonFB(Update 2017.11.12)

Post by Makoto WATANABE »

Dear Josep Roca

Thanks for your quick reply.
I changed MAX to something else.
"Amicable pairs" were instantly displayed.
Post Reply