Images of some new Tiko features and UI redesign

Started by Paul Squires, July 12, 2026, 09:16:16 PM

Previous topic - Next topic

Paul Squires

Hi everyone

I wanted to share a few posts with images from the latest Tiko editor as it exists on the development branch on the Github repository.

I have added a "Search Symbol" popup that allows you to fuzzy search for all matches based on a ranked scoring. It is very fast and scores against filenames, function/sub names, TYPEs, and ENUMs. I convert the C source code to FreeBasic for a very popular fuzzy text matching algorithm https://github.com/jhawthorn/fzy/blob/master/ALGORITHM.md

As you type in your search term, the listbox updates with the highest scoring results listed first and with the letters of your search highlighted in the listbox items. Lots of cool Win32 api code involved with that.

I still need to implement the custom themed right hand side scrollbar and then this search symbols feature should be complete (UPDATE: This scrollbar has now been implemented).

The attached image also shows a new display area located just under the top tab control. This shows the file name (and relative path should that file reside outside the current project path), along with several right hand icons to allow you to "Find", Goto that file's "Header file", or to the "Main file", and also be able to change the file's type (Main, Header, Module, Normal, Resource).

Paul Squires
PlanetSquires Software

Paul Squires

This next image shows how the editor looks when you select "Find" or "Replace". The image shows a Replace with both textboxes showing - a simple Find would have that Replace textbox hidden. These new find/replace panels replace the existing popup Find/Replace and it is much more easier to use.

Paul Squires
PlanetSquires Software

Paul Squires

#2
The next feature is a replacement for the current "Find in Files" functionality in Tiko. If you have ever used the Zed editor then you will know that when you do a project wide search for a phrase, that the results are displayed in a new separate tab AND each result is display in a pane with a fully EDITABLE window! You can then quickly make edit change directly in these edit panes without having to first switch to the document to do the edit (although you can still do that if you wish).

I will attach two images. The first is the very start of Tiko's implementation that basically just shows the new tab and search box. I still need to code the resulting edit window panes.

The second image is from the Zed editor that shows the editing window pane concept in practice. The Tiko version will look similar but not identical to this.
Paul Squires
PlanetSquires Software

Paul Squires

While I'm yapping about big new features, I'd also like to touch on some other changes that have also found their way into Tiko on the Github development branch.

Added:   "Compile Module" Ctrl+F7 option added to the "Compile" menu and is enabled when the current active document is a project Module. This will only compile the current Module to an object file. It will not compile the entire project.

Added:   Double clicking within the unused client area of the top Tab Control will create a New File document in the tab control.

Added:   AutoInsert for SCOPE/END SCOPE, NAMESPACE/END NAMESPACE, and Multiline Comments /'  '/

Added:   Added "Find Next", "Find Previous" to the Search menu.

Added:   Added "Duplicate" to the File menu.

Added:   Non-Projects now allow you to designate individual files as either "Main", or "Normal".

Fixed:   Compiling project Modules were not getting the Project's "Other Options (32 or 64 bit)" fed to the compiler.

Fixed:   Collapse/Expand when clicking on the filename in the Functions list in the side panel.

Fixed:   TODO text entered using the Chinese language would display incorrectly in the TODO list.

Fixed:   Bookmarks in side panel list not getting refreshed/updated when "Save" is invoked.

Changed: Moved "Find", "Find in Project", "Replace" from the Edit menu to the Search menu.

Changed: Removed the dedicated Search menu options: Goto Header/Code/Main/Resource. These are still accessible via keyboard shortcuts.

Changed: Compile times under 1 second now display with 3 decimal places to better show seconds versus milliseconds compile times. 

Changed: The Chinese Simplified language file has been updated (thanks fbfans).

Changed: Much better parsing for 'TODO: directives. Can now have leading after the leading ' or be within a multiline comment block.

Changed: Improved Compiler Log parsing to better handle cases like fbCOLLECTION help display output (thanks Imortis).

changed: Updated the Norwegian language translation file.


I am particularly fond of the new "Duplicate" menu option. This allows you to make a one-to-one copy of the current open file in your editor. It gives it a new name (the you will probably want to "Rename") and will add it to your existing project automatically. This replaces the current cumbersome process of creating a new file, copy and pasting code from an existing file, and then saving it.

Paul Squires
PlanetSquires Software

hajubu

#4
Hi Paul,

great work  :) ,

I played a little with the compiler options and the Preprocessor directive (#cmdline and #print,...).

-- Tiko 140beta (pre-vers.) ::  does only show these messages in the 'Compiler Log File'-tab.

-- Tiko 132 (released) ::
- Did you intend that we have to switch forth & back from the 'COMPILER RESULTS'
to get the messages displayed , if the first run is with a clean and neat source file.

If the first run is dirty ,the 'Result tab' shows all the messages immediately.
P.S. 132,131,130 : all same behavior /// backup version 126-120  are OK
      and FBC standalone works as expected.

b.r. Hajubu



here my small test-file
#ifdef __FB_64bit__
#cmdline "-s console  "
#print --- compiler 64-bit setup
#else
#cmdline "-s console  "
#print --- compiler 32-bit setup
#endif
#print TEST BEGIN
#cmdline "-end"
dim as string tfil=(__FILE__)
? string(50,asc("-") )
? USING !"_#print  preprocess. -> TEST with & ";right(tfil,13)
? USING !"_#print  TextInfo -> '&' is not displayed if first run is neat and clean ";"COMPILER RESULTS"
? USING !"_#print  TextInfo -> but can be displayed \n\tif switching forth to '&' \n\tand back to '&' Tab";"ANOTHER TAB";"COMPILER RESULTS"
? string(50,asc("-") )
'sleepy ' to provoke an error
#print TEST END
'Todo: Check Preprocessor messages

Paul Squires

@hajubu

This is a small change based on my discussions with Jattenalle over on the FB Discord server. He has a project called fbCOLLECTION that uses #print statements to print out an internal manual to the console. Tiko would try to display that Help in the "COMPILER RESULTS" list which obviously made the text horrible to read because Tiko expects to read an FB compiler generated log file, and not a file with user defined messages. Therefore, the Line / File / Description columns is not a good place to display the information.

Tiko now tries its best to automatically switch to the more verbose raw display of the log file via the "COMPILER LOG FILE" tab whenever it can not display errors or warnings that do not nicely conform to the Line/File/Description paradigm of the "COMPILER RESULTS" tab.

This also works better for some normal FB compile fails such as Linking errors or Resource file compiling errors where no filename/error message can be parsed and  you just get a somewhat cryptic error message in the "COMPILER RESULTS" window telling you to view the log file. Now, Tiko will actually switch you directly to the "COMPILER LOG FILE" tab and show you the log file.

This may not be 100% perfect, but it seems to work pretty good in the majority of cases.



Paul Squires
PlanetSquires Software

fbfans

Thanks for your hard work, Paul.
The current Find and Replace feature works really well in my opinion. I don't think the input fields for it need to be quite so wide.

hajubu

@paul

- oh - that's a pitty.
Tiko 126 - Ok , Tiko 132 - half -and the 140 beta with the full fletched  Log file  , seems already structural overloaded. 

Compiler Results was always readable enough and the well distributed #print message  gave an well structured overview.

Let's  wait and see the final outcome.

b.r. Hajubu