-
-
Notifications
You must be signed in to change notification settings - Fork 20
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
Support for split terminals #9
Comments
There can be multiple splits across multiple terminals with depth = 1. so a nested terminals array will work?
|
@soneymathew are you proposing that instead of this: {
"terminals": [
{ "name": "a" },
{ "name": "b", "split": "a" },
{ "name": "c", "split": "b" }
]
} We should do this?: {
"terminals": [
[
{ "name": "a" },
{ "name": "b" },
{ "name": "c" }
]
]
} That could work, but I want to use grouping in a future update for supporting better terminals organization, basically doing something similar to what Projects+ is doing: I could implement both kind of groups but I think that would be confusing. |
Something to keep in mind is that eventually we may allow splitting in both direction and nesting pane groups, so you could have a 3x3 grid for example. I don't think we will touch on this idea further until there's a real need for it, for example if you could pull the panel/terminal out into a different window microsoft/vscode#10121. Whatever you land on, make sure it's relatively compatible with this possible future direction 😃 |
@Tyriar 2d grids would be great. I think in order to support those this extension would only need to know the direction of the split, so the configuration could become: "split": ["foo", "bottom"] or a new configuration key could be added: "splitDirection": "bottom" Thanks for point that out 👍 |
@fabiospampinato the orientation is referred to as vertical (when stacked to the right) and horizontal (when stacked on the bottom). Also to add more complexity, the orientation is rotated when the panel is moved 😄 |
@Tyriar As long as there'll be an API for knowing in which orientation the panel is it shouldn't be a problem to add support for this. I'll probably just give the user enough powers for setting up the grid however he/she likes, potentially having completely different grids in different orientations. |
This feature would be great!
This would allow to define which terminal will be splitted and the split order |
@cassvail What do those IMHO this kind of configuration looks better: {
"terminals": [
{ "name": "a" },
{ "name": "b", "split": "a" },
{ "name": "c", "split": "b" }
]
} It allows you to declare which terminal you want to split (the terminal whose name is the value of |
@fabiospampinato The split command would be a cli "command" (i.e. "npm run test") Having the "split commands" inside one terminal, would allow to launch just one terminal config and open this terminal already splitted and running the splitCommands list. As I'm explaining the request, I understand that probably your configuration is correct, if the objective is running "one or all" terminals and automatically going to split an existing terminal. My request probably could be another PR... I hope what I wrote makes sense to you. Thanks |
@cassvail I see your point. We'll fix this by adding support for groups.
I see no easy fix for this, if the target terminal is not available there's nothing to split. We could add support for multiple split targets, so that we'll split the first one available, but I'd rather keep the configuration simple than fixing this problem, which IMHO is not a big deal. |
@fabiospampinato The more I thought about Perhaps another way would be to separate the grouping from the terminal definitions via
Which could facilitate a few new use cases in the future as well. Types of layouts commonly seen |
The
I think providing a way to define different layouts for different orientations of the pane (there's no API for this yet, microsoft/vscode#47062) would be enough, if you have a compelling use case in mind, that would require a more powerful configuration, I'll be happy to hear it.
This would be interesting, currently blocked by microsoft/vscode#13267. |
The model I have in mind is containers like you can have now but you can nest them within each other, which is kind of like nest flex layouts. Grid: no since you can accomplish the same thing using this model. |
I would be very interested to see this implemented. |
So @fabiospampinato what's the status on this? 🙂 |
@mrfloppi we are still waiting on microsoft/vscode#45407 to be addressed. |
Hello, was this feature continued? |
Does the last comment in that issue above help? |
Does the last comment in that issue above help?
|
I am using this great extension but will be desireble to have split termanals because it will be very useful to see the information of all terminals at once....how is this feature going? |
I don't think the required APIs for implementing this are there yet. |
It's too long to wait the official API to publish, any problems to using this way? @fabiospampinato |
@tjx666 maybe that's good enough but I don't currently have the time to work on this. |
Looks like the vscode ticket has now been merged. Has that unblocked this feature? |
Implemented in v1.15 🎉 There's a new configuration option for each terminal called "split", where the value should be the name of an open terminal, if you use that will create a split! |
The latest Visual Studio Code release (v1.21) added support for split terminals:
I think it would be great to add support for them to this extension.
Maybe we could add this new configuration:
If present, instead of creating a brand new terminal, we'll split, in this particular case, "My Other Terminal".
What do you think about it?
Edit: We need microsoft/vscode#45407 in order to implement this.
The text was updated successfully, but these errors were encountered: