Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider migrating Nammu to an Electron-based framework #176

Open
raquelalegre opened this issue Jul 15, 2016 · 3 comments
Open

Consider migrating Nammu to an Electron-based framework #176

raquelalegre opened this issue Jul 15, 2016 · 3 comments

Comments

@raquelalegre
Copy link
Contributor

On the pair programming day yesterday, we played briefly with Electron, a framework for creating cross-platform application using web development technologies like JavaScript, HTML and CSS.

We found an Open Source editor that uses Electron and is less complex than Atom that we could use to build on top. It's called Proton. It uses a web text editor called Ace which has all the text edition features Nammu has plus other things like search and replace, font zoom, themes, file explorer, line numbers, line wrapping, etc. It also has syntax highlighting, as well. Adding new menu options and coding the SOAP stuff is doable, and it also has a console/command feature that can be turned on, and it seems easy to bundle and distribute cross platform.

It all sounds great, but:

  • I'd need to learn NodeJS, which I don't know much about.
  • I'd need to polish my front end web development skills, which is not going to be straight forward.
  • PyORACC wouldn't be straight forward to integrate and we might need to adopt their way of Syntax Highlighting which means trashing most of PyORACC's work.
  • Most of the work done in Nammu so far would be trashed.

I think we can progress with Nammu as it is for now, and then discuss with Eleanor about this approach, which would make Nammu more usable and would solve things like Nammu being slow and so on, but will take considerable time to be developed.

@raquelalegre
Copy link
Contributor Author

Nammu is not ageing well:

  • Done for Java 8, when current release is Java 11.
  • Jython doesn't support Python beyond 2.7 which will be unsupported soon.
  • The maven jython plugin is not working with the latest versions of the python modules Nammu needs.
  • Coding from scratch basic text editor functionality has brought in the past performance and robustness issues. These will keep on being issues as we add functionality.

The Electron + Ace alternative might be worth reconsidering. Arabic scripture in Ace might need some extra work though. Here are some links provided by @avixz that could help if we pick up work on this front in the future:

https://medium.com/@dany74q/injecting-js-into-electron-apps-and-adding-rtl-support-for-microsoft-teams-d315dfb212a6

electron/electronjs.org-old#1254

@ageorgou
Copy link
Contributor

ageorgou commented Apr 28, 2020

VS Code has most of the features we want, but support for RTL text is not complete.
Discussions here, here (suggesting that the relevant code may be in viewLineRenderer.ts). Some considerations for what is correct behaviour here.

@giordano
Copy link
Contributor

For the record, we evaluated some other options:

  • Thonny: it looks very simple -- which can be a good feature on its own -- but also very Python-specific. Rendering of Arabic text looks wrong:
    image

  • Eric: more advanced than Thonny, more features and likely more extensible, but rendering of Arabic text looks also more wrong:
    image

  • Ace: it looks like it has many features we are interested in, but probably not all of them. Our understanding is that we would need to build also the application around the editor, as Proton does

  • Emacs: it has all the features we are interested in and rendering of Arabic text is correct out-of-the-box (including line numbers):
    Screenshot_20200429_114533
    However we'd like to find a new solution, since Emacs had been explored in the past

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants