**ANNOUNCEMENT** Genio - The Haiku IDE

Ran “make clean” and “make” again, same result (pulled earlier, so source should be uptodate), will do another round in the morning.

I think one or more pre requirements are missing, please check the docs. Libgit2 devel would be the first one that comes to mind.

1 Like

Case of RTFM :wink: Sorry for the noise :smiley:

1 Like

kIconGenioApp3_xmas

:rotating_light: RELEASE ALERT! :rotating_light:

This is the time of the year you are all waiting for… It’s time for another release of Genio!

Last time we left with 508 commits for the very first release, now we have 1.203 commits and countless new features and bugfixes. This is our best release ever and a Christmas gift for those who have supported us using Genio and providing feedback, bugfixes, and PRs (special thanks to @humdinger).

Ready? Here you go!

Git

Genio now has a shiny new Source control panel (still a work in progress and not feature complete) where you can:

  • Change project and branch

  • See the list of local and remote branches and tags

  • Rename and delete a local branch

  • Create a branch from any other branch or tag

  • Copy the name of the branch/tag

  • Fetch

  • Fetch prune

  • Stash your changes and give it a name

  • Pop or apply changes (only from the topmost stash at the moment)

  • Initialize a non-git project and create an empty initial commit

In the Project Browser, the current local branch can be changed via a convenient item in the context menu as well as in the Git menu.

The name of the current branch will also appear on the right of the project name.

The Git menu is still there but it will soon disappear as we bring more features to the Source control panel.

All git operations are monitored live so Genio will update even if you create a branch from Terminal (who really wants to use it from now on? :grinning:).

Now you can also open a project from a remote repository (on Github, for example) and let Genio clone and add it to the workspace.

Bear in mind that Genio does not currently support SSH keys.

Editor

We added a bunch of new features to the editor:

  • Support for syntax highlighting for languages like Python, Lua, YAB, and many more!

  • Editor styling functionalities. It is now possible to change the theme of the editor by choosing from a selection of built-in themes.

  • “Quick fix” for problems reported by clangd. This will not only suggest a possible solution but also apply it! You can add a missing include file in a breeze, for example! Amazing, right?

  • Trim trailing whitespace, also automatically on save.

  • Convert tabs to spaces.

  • Alert on quit when closing multiple files.

  • Hide the find/replace panel when no file is loaded.

  • Switching to source/header does not rely on LSP anymore.

Project Browser

  • “Open recent” / “Open recent project”.

  • Autobuild on save.

  • Autosave on build.

  • Support for autocollapse/expand projects.

  • Notify the user when trying to build/clean when the project configuration is missing.

  • When closing the active project, set another one as active.

  • There is an early-stage feature to detect a makefile in the root folder of a project and configure some basic settings (Release build&debug commands)

Find

  • Find in files results are now shown in a table, sorted and grouped by file

  • You can now exclude specific files from the search (wildcards are accepted)

UI

  • New amazing icons by ZuMi.

  • Reorganized and improved menus.

  • New Search Results panel.

  • New Problems panel

  • Improved layout.

  • Improved overall compatibility with the dark theme

  • Full Screen and Focus modes

Fixes and improvements

  • Fixed a problem when passing arguments to the Debugger

  • Fixed a problem where the output of a program executed as ‘Run in Terminal’ could not appear in ConsoleIO

  • We have completely redesigned the setting subsystem including the UI. Every change is now propagated throughout the application in real-time.

  • Improved LSP thread management and updated the stack to the latest main branch.

  • Improved first launch experience.

  • Fixed UI scaling with bigger fonts.

  • Fixed the wrong list color in the project browser.

  • Fixed rename function with FFM.

  • Fixed bug in file type detection.

  • Fixed crash when using COPY/CUT/PASTE in the projects tree.

  • Fixed trying to reopen a nonexisting project on start.

  • Fixed cursor position when switching between tabs.

  • Fixed replace panel not always appearing.

  • Fixed replace and find previous.

  • Fixed LSP lock on close.

  • Fixes for ConsoleIO.

  • Fixed build dependencies.

Release cycle

We will create a release branch today and will be finalizing it on Github on Dec 20th. Publishing on Haiku Depot will follow shortly afterward.

Translators, we want you!

If you want to update or create a translation, this is your chance. Please do it before the cut-off date on Dec 20th.

Happy Coding!
The Genio team @xeD @jackburton @Nexus-6

44 Likes

Nice work! Thumbs up to the whole team :slight_smile: :ok_hand: :+1:

1 Like

Nice work on Genio! I’m looking forward to the release :sparkling_heart:

The one feature I rely on the most in other systems is being able to see which lines are changed right in the text editor without having to look in a separate pane or to do a git diff in the terminal.

4 Likes

This is definitely at the top of the list for the next release, stay tuned!

5 Likes

I did what I could for French translation on Polyglot but I’m not a dev… So, if someone with a minimum of development knowledge could have a look, review my mess and translate the few remaining strings it would be nice.

2 Likes

Fanastic progress! :+1:
I’ve been using Genio for the past weeks when working on several little projects and it’s so much better than the simple Terminal+editor I used before! It’s so nice to quickly jump into system headers or from declaration to definition, quick search in all project files, underlined and tooltipped errors/warnings etc.

I’m very much looking forward to the future development of Genio!
Well done, ragazzi!

9 Likes

Hi!

2 questions:

Can i edit/create bash/yab scripts in genio with highlighting syntax?

how can i help with the translation? @Nexus-6

regards

3 Likes

Yes, through yaml a plethora of languages are supported

You can partecipate with translations here
https://i18n.kacperkasper.pl/projects/46

2 Likes

@zuMi
:heart_eyes: Santa’s little helper! :christmas_tree:
Now we know who carries the presents down the chimneys, obviously Santa was too fat to do it himself :grin:

4 Likes

We’ll do a bugfix release in a few days.
I see there are some almost completed translations, like the Norwegian one which is at 98%, for example.
If someone manages to complete it in time, we’ll include in the new release.

3 Likes

I have completed the last 2% of the Norwegian :norway: and Spanish (Latin American) :bolivia: translations. The Git commands are tricky to translate…
Hopefully it’s still time to get these languages included in the release :smiley:

1 Like

FWIW, for German, I didn’t translate those commands at all. People using Git are familiar with the commands, and their usage and behaviour is very specific. Untranslated, people can easily websearch if they are uncertain.

2 Likes

Definitely. We also had issues with the italian translations.
I guess we should just stick with the english commands.

1 Like

You might want to re-check the translation, as I just updated the english catkeys: the Settings window title wasn’t translatable. Nothing would change if you don’t translate it, anyway: before it was “Settings” and now it would be “Settings” if not translated.
We’ll include all the translations which are at 98% or more, anyway.

2 Likes

Don’t forget to add the new LOCALES in the Makefile. Happened to me more than once… :slight_smile:

In case of this additional “Settings”, chances are good that it’s a term in Polyglot’s ‘Glossary’ of many languages (if their translators are maintinaing those). This means, that you most like just do a “Pre-translate” at Polyglot and have “Settings” translated.

Also, be aware that language subsets, like British English, are largly identical with their super-language and therefore seem stuck at a low percentage. This is OK, because only few terms need translations. Most of that can be done with a “pre-translate”.

Do you suggest to include all started translations, then ?
We’ll definitely include at least EN_GB, then.

Only those subset languages, i.e. en_GB and en_AU, they are actually complete.
OTOH, you could decide to just include all and hope the half-translated GUI will prompt those users to provide the missing strings.