Gitea: [Idea] Web IDE using theia

Created on 18 Apr 2020  路  13Comments  路  Source: go-gitea/gitea

Since Theia IDE 1.0 was launched I thought it might be an opportunity for a new gitea feature.

What is Theia

Eclipse Theia is an extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies.

It is basically a self hosted vscode (it looks like vsocde and can use vscode extensions) and comes with it's own docker container.

I think using this would be a better experience than gitlab's web IDE in terms of both UI and functionality.

I am unsure of how much work would be required for this but I would love to hear what people think about this idea

kinfeature revieweconfirmed

Most helpful comment

I think that's different. Monaco editor could help to edit single file but theia will help to change the whole branch then you can send PR online.

All 13 comments

  • [ ] Open a IDE on one repository with special branch(default will open default branch). For different user with different permission, we can provide readonly mode and write mode. Did theia support read-only mode? Maybe a read-only mode is a first step. The IDE link entry could be in repository or in branch list, the link will be a new window.
  • [ ] Load repository treepath from git on the IDE.(Asynchronize load the sub tree)
  • [ ] When open a file on the IDE tree, extract the file from git.
  • [ ] When save/delete a file, submit a change to git.
  • [ ] Git integration. We should display the git blame on the IDE.

What about the extensions support?

@lunny I experimented with Theia before, for the last (git integration) you can install GitLens VS Code extension, it's compatible, at least 70% of its main fuctions work. The most problem is security, as Theia exposes console.

@lunny I experimented with Theia before, for the last (git integration) you can install GitLens VS Code extension, it's compatible, at least 70% of its main fuctions work. The most problem is security, as Theia exposes console.

Yes, some feature should be disable. Is theia a npm package?

What about the extensions support?

extensions should be supported as well.

@lunny it's a set of npm packages. To create an IDE out of core, Theia extensions and VS Code ones, you need to create a package.json as in examples of Theia apps, define extensions and plugins there and build using their CLI. VS Code extensions can be loaded later using builtin Open-VSX registry. Security is bigger problem than you thought, there're a lot of functions relying on terminal. Probably it won't be safe to use without Docker.

Every user/repository branch will have one docker and it's difficult to know if it should be destroyed.

I think it's better to regard theia as an editor rather than a full featured IDE for gitea, or allowing gitea to integrate theia just like how it does with drone CI.

For "editor" you don't need Theia as far as I know, you need Monaco editor, which is main editor of Theia.

Maybe it's better to integrate Monaco editor with gitea for users who runs gitea on a Raspberry pi, I think...

I think that's different. Monaco editor could help to edit single file but theia will help to change the whole branch then you can send PR online.

Maybe there could be something similar to how Gitpod handles the Theia instances. It only allows for a limited number of containers per user (this should be pre-configurable) and automatically shuts down containers when they are not being used. I think it also pre-compiles some parts to make it faster for a dev to get started.

And of course this entire online IDE should be something entirely optional so the people hosting on a Raspberry Pi don't have to worry :)

This issue has been automatically marked as stale because it has not had recent activity. I am here to help clear issues left open even if solved or waiting for more insight. This issue will be closed if no further activity occurs during the next 2 weeks. If the issue is still valid just add a comment to keep it alive. Thank you for your contributions.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lunny picture lunny  路  3Comments

lunny picture lunny  路  3Comments

adpande picture adpande  路  3Comments

jorise7 picture jorise7  路  3Comments

internalfx picture internalfx  路  3Comments