Comments (17)
from theia.
We've discussed this a bit. Here are the main points/questions we got from this discussion:
- Should the console output reuse that same terminal plugin or should it be a separate view provider?
- xterm.js looks good
- Might not be very terminal related (more like composition/phosphorjs related) but the terminal view should not be stuck to the bottom like VScode, or at least we should be able to split it (or add another terminal right next to it, so that there are two terminal windows at the bottom for instance). This is something I found was very annoying with vscode's terminal, sometimes I end up using it for some tasks but I quickly find out that I would need at least another window to execute some other commands while one is running for instance.
- Should it be possible to parse the output from the terminal so that the problems/errors views can be populated from a command called from the terminal. For example, calling "build" from theia would call make in the back-end, but it could be nice to be able to call make from the terminal and still have access to the problems/errors parsing. This might be a bit too complicated for what it offers in the end though.
- Terminal should be able to bypass browser shortcuts so that ctrl-d doesn't add theia to a bookmark
- Configurable terminal/theme/colors (might be more generic options i.e ide options)
- Support launching a local terminal if the back-end is remote (not sure about this one) if the user chooses to. Also not sure it would work with the browser (only with electron)
- Terminal should feel fluid if the remote connection is sloppy (i.e not like ssh with a laggy remote) and more like mosh with a text buffer.
As always, all of these points are open to comments/suggestions etc. :)
from theia.
Terminal should be able to bypass browser shortcuts so that ctrl-d doesn't add theia to a bookmark
This could be very tricky to achieve, besides that in some cases, it will not work at all. For instance CTRL/CMD-WNT
in Chrome. Additionally, it might be an undesirable feature by the users in general.
from theia.
at least we should be able to split it (or add another terminal right next to it
That is a good idea, I second that.
from theia.
@epatpol Could you, please clarify what do you mean by "the console output"?
from theia.
at least we should be able to split it (or add another terminal right next to it
Actually I think if this could be generalized anywhere possible it would be great.
For example I can't bring myself to use vscode since it won't split windows horizontally and I do that a lot...
I would very much like if any window to the extent possible could be split horizontally and vertically like for example emacs does with C-x 1 (full screen one window) 2 (split horizontally) 3 (split vercially) 0 (close)
from theia.
Could you, please clarify what do you mean by "the console output"?
@kittaakos I think he means like if you would run your program and have some output in stdout
from theia.
For that purpose, we definitely need another, separate widget/view.
from theia.
Maybe I don't get what you mean, because our layout manager already allows to split widgets (editors/terminals/etc.) in any direction.
from theia.
Support launching a local terminal if the back-end is remote (not sure about this one) if the user chooses to. Also not sure it would work with the browser (only with electron)
Yes, it is not possible in the browser case. Why would it be useful?
from theia.
Maybe I don't get what you mean, because our layout manager already allows to split widgets (editors/terminals/etc.) in any direction.
Great :) I wasn't sure it applied to any widget/view... I like theia more than vscode already jk :)
from theia.
Support launching a local terminal if the back-end is remote (not sure about this one) if the user chooses to. Also not sure it would work with the browser (only with electron)
Well functionally doesn't have to be mirrored a 100% I think but anyway we concluded that one could just open another Theia window with a local backend. People already do that for a different directory in vscode so it sounds not too bad.
from theia.
Ok, just to clarify. The terminal plugin shall open a terminal session on the working directory, so if the backend is remote the shell is remote, otherwise local. Right?
from theia.
We decided to develop the terminal as a separated extension in its own npm package.
I propose to create a top level folder extensions
in the repo, under which we put extensions.
from theia.
@svenefftinge yes that's what I understood!
Also good idea for the extensions folder.
from theia.
I decided to not do the terminal as a separate npm package, because development turnarounds were so bad.
from theia.
I guess you though of it already but documenting what you tried etc and why it doesn't work... would be good in #67
Also now that the dev is "done" could we still have it as an example externally?
from theia.
Related Issues (20)
- Can't apply activityBar.background color to Light (Theia) theme
- NB1
- rq nb1
- Developer Guide Documentation for Headless Plugins
- Consider what default API should be supported for Headless Plugins HOT 2
- Backport Issues for 1.45.1 HOT 14
- v1.45.0 Release misses native dependencies breaking Remote SSH Support HOT 1
- Remote SSH connection doesn't support ports
- window.localStorage has cache with electron
- No git status indication in the editor tab HOT 5
- New File doesn't accept a filename HOT 3
- Support all aspects of LogOutputViewChannel (as in VSCode)
- Extend release workflow to automatically add native dependencies to Github release
- Pull request 1287 makes PluginSharedStyle.toIconClass() not work in some cases HOT 3
- Switching the menu bar causes the custom title to be misplaced HOT 5
- Publishing Guide Github Pages HOT 1
- Extensions View does not update as expected HOT 4
- Update Readme and publishing doc to Github Discussions (instead of discourse)
- Memory leak due to DockPanelRenderer
- [Electron Playwright] Theia electron app loader opens the app with multi-root workspace HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from theia.