Seabass

Rating: 
5
Your rating: None Average: 5 (3 votes)

Code (text) editor for mobile devices with syntax highlighting and support for virtual and hardware keyboards.

Features:

  • Syntax highlighting for over 100 programming/markup languages
  • Code auto-completion
  • Undo/Redo
  • Navigation buttons

Release notes:

  • the same Seabass as in Jolla store, but earlier and with SailJail disabled
  • the current release provides ability to edit existing files

Your feedback, bug reports and feature requests are very appreciated!

 

Screenshots: 

Keywords:

Application versions: 
AttachmentSizeDate
File harbour-seabass-0.8.0-2.noarch.rpm523.56 KB27/05/2022 - 13:01
File harbour-seabass-0.9.0-1-unconfined.noarch.rpm523.58 KB01/06/2022 - 18:32
File harbour-seabass-0.9.1-1-unconfined.noarch.rpm504.6 KB05/06/2022 - 00:54
File harbour-seabass-0.9.2-1-unconfined.noarch.rpm512.38 KB18/07/2022 - 12:28
File harbour-seabass-0.9.2-2-unconfined.noarch.rpm512.42 KB19/07/2022 - 00:23
Changelog: 

v0.9.2:

  • fix editor resizing and scrolling into view when opening on-screen keyboard for Sailfish OS v4.4.0.68
  • update Codemirror to v6.0.1
  • support only Sailfish OS v4.4.0.68

v0.9.1:

  • fix reading indentation preferences from .editorconfig files
  • fix switching between dark/light ambiances

v0.9.0:

  • add asterisk to the header to indicate unsaved changes
  • fix performance issues when editing large files
  • add Swedish translation [Åke Engelbrektson]

v0.8.0:

  • add floating button to toggle pulley menus. It is now possible to access both menus regardless of the document scroll position.
  • add header containing document's name and directory

Comments

eson's picture

Yes, nice app thank you! Syntax highlighting for .qml files and a root mode, would be cool.

szopin's picture

Pretty cool, is there any way to add syntax highlighting for .qml files?

mikhael's picture

I'd say that's possible, and there are a few options I can think of:

  1. Create a QML language package for Codemirror v6 (Seabass uses Codemirror as editor)
  2. Create a QML language mode for Codemirror v5
  3. Use a QML language server. I believe that QT project has a QML language server, but as far as I understand it's only being developed for QT6 now.

Every option would require some work, but Codemirror would benefit from such work too.

All in all, although I have no plans for now on implementing syntax highlighting for QML myself, i'd surely include such support if anyone willing to contribute any possible option for Codemirror!

szopin's picture

I'm a bit confused, does Seabass use codemirror or ace? The About page says codemirror, but then provides github link to ace, the wiki says ace is used on sfos as codemirror has issues scrolling, all this html/js/node/css/qml mashup is really confusing

mikhael's picture

Yes, I'm sorry, right now the repo should be really confusing.

Originally Seabass2 was based on Ace editor. The reason for that was that Sailfish OS version was using SilicaWebView component to render editor. The SilicaWebView is in turn a wrapper around old version of QtWebkit WebView. Of all the HTML5 editor known to me, that particular version of QtWebkit only worked with Ace. The performance was poor, very very poor, but at least it worked.

That was prior SailfishOS 4.2. Then starting with SailfishOS 4.2 a new SailfishWebView component based on Firefox engine became available to render HTML in apps. That new SailfishWebView component had no performance issues, but it turns out that as of Sailfish OS 4.2 and Firefox ESR 60 based web view... it was not compatible with Ace.

But with the new WebView the latest Codemirror v6 fortunately became a viable option. So I've started transitioning Seabass from Ace to Codemirror. The transitioning is happening in the harbour-webview branch: https://github.com/milikhin/seabass2/tree/harbour-webview. Starting with v0.7 Sailfish OS version of Seabass is built from that branch. The 'master' branch still has v0.6 from the Jolla store that was based on Ace.

So, transitioning to Codemirror was started as an experiment and is still work in progress, both unit tests and docs are yet to be updated. But I'm almost satisfied with how it looks and performs now. I think the upcoming v0.9 release will still be built from that experimental branch, but hopefully for v0.10 I'll be able to stabilize APIs, update docs and merge changes to master.

mikhael's picture

> all this html/js/node/css/qml mashup is really confusing

So, the upcoming releases will focus on the architecture of the html/js/css part. Cleaning up and beautifying the QML part of the mashup is a separate task to be taken after that :-)

szopin's picture

Thanks for the explanation, from a quick look it seems using simple mode addon should be pretty easy to do, we can reuse the keyword-list from ace to feed the regex/token list, more advanced features won't work but at least highlights should, will try to prepare the mode definition and make a pull request

mikhael's picture

Thanks, that would be great!

szopin's picture

Thanks, I think this could be used for base https://github.com/ajaxorg/ace/blob/master/lib/ace/mode/qml_highlight_ru..., will have a look at it (shame there isn't some universal highlight language so it could be done once and then reused by all future editors/viewers)