mirror of
https://github.com/wez/wezterm.git
synced 2024-12-24 13:52:55 +03:00
move wezterm.mux.split_pane(pane, {}) to pane:split{}
refs: #1949 refs: #674
This commit is contained in:
parent
4c03df884b
commit
00e5b9aae6
@ -10,4 +10,107 @@ It has the following methods:
|
||||
|
||||
Returns the pane id
|
||||
|
||||
## `pane::split{}`
|
||||
|
||||
Splits `pane` and spawns a program into the split, returning the
|
||||
`MuxPane` object associated with it:
|
||||
|
||||
```lua
|
||||
local new_pane = pane:split{}
|
||||
```
|
||||
|
||||
When no arguments are passed, the pane is split in half left/right and the
|
||||
right half has the default program spawned into it.
|
||||
|
||||
The following parameters are supported:
|
||||
|
||||
### args
|
||||
|
||||
Specifies the argument array for the command that should be spawned.
|
||||
If omitted the default program for the domain will be spawned.
|
||||
|
||||
```lua
|
||||
pane:split{args={"top"})
|
||||
```
|
||||
|
||||
### cwd
|
||||
|
||||
Specify the current working directory that should be used for
|
||||
the program.
|
||||
|
||||
If unspecified, follows the rules from [default_cwd](config/default_cwd.md)
|
||||
|
||||
```lua
|
||||
pane:split{cwd="/tmp"})
|
||||
```
|
||||
|
||||
### set_environment_variables
|
||||
|
||||
Sets additional environment variables in the environment for
|
||||
this command invocation.
|
||||
|
||||
```lua
|
||||
pane:split{set_environment_variables={"FOO"="BAR"})
|
||||
```
|
||||
|
||||
### domain
|
||||
|
||||
Specifies the multiplexer domain into which the program should
|
||||
be spawned. The default value is assumed to be `"CurrentPaneDomain"`,
|
||||
which causes the default domain to be used.
|
||||
|
||||
You may specify the name of one of the multiplexer domains
|
||||
defined in your configuration using the following:
|
||||
|
||||
```lua
|
||||
pane:split{domain={DomainName="my.name"})
|
||||
```
|
||||
|
||||
Or you may use the default domain:
|
||||
|
||||
```lua
|
||||
pane:split{domain="DefaultDomain"})
|
||||
```
|
||||
|
||||
### direction
|
||||
|
||||
Specifies where the new pane should be placed. Possible values are:
|
||||
|
||||
* `"Right"` - splits the pane left/right and places the new pane on the right.
|
||||
* `"Left"` - splits the pane left/right and places the new pane on the left.
|
||||
* `"Top"` - splits the pane top/bottom and places the new pane on the top.
|
||||
* `"Bottom"` - splits the pane top/bottom and places the new pane on the bottom.
|
||||
|
||||
```lua
|
||||
pane:split{direction="Top"})
|
||||
```
|
||||
|
||||
### top_level
|
||||
|
||||
If `true`, rather than splitting `pane` in half, the tab that contains it
|
||||
is split and the new pane runs the full extent of the tab dimensions.
|
||||
|
||||
```lua
|
||||
pane:split{direction="Bottom", top_level=true})
|
||||
```
|
||||
|
||||
### size
|
||||
|
||||
Controls the size of the new pane.
|
||||
|
||||
Numeric values less than `1.0` are used to express a fraction of the
|
||||
available space; `0.5` means `50%` of the available space, for example.
|
||||
|
||||
Numeric values greater or equal to `1` are used to specify the number of
|
||||
cells.
|
||||
|
||||
The default value is `0.5`.
|
||||
|
||||
This creates two additional splits within `pane`, creating three
|
||||
total splits that each occupy 1/3 of the available space:
|
||||
|
||||
```lua
|
||||
pane:split{direction="Top", size=0.333})
|
||||
pane:split{direction="Top", size=0.5})
|
||||
```
|
||||
|
||||
|
@ -21,8 +21,8 @@ local mux = wezterm.mux
|
||||
|
||||
wezterm.on("gui-startup", function()
|
||||
local tab, pane, window = mux.spawn_window{}
|
||||
mux.split_pane(pane, {size=0.3})
|
||||
mux.split_pane(pane, {size=0.5})
|
||||
pane:split{size=0.3}
|
||||
pane:split{size=0.5}
|
||||
end)
|
||||
|
||||
return {}
|
||||
|
@ -20,7 +20,7 @@ local mux = wezterm.mux
|
||||
-- It makes a window split top/bottom
|
||||
wezterm.on("mux-startup", function()
|
||||
local tab, pane, window = mux.spawn_window{}
|
||||
mux.split_pane(pane, {direction="Top"})
|
||||
pane:split{direction="Top"}
|
||||
end)
|
||||
|
||||
return {
|
||||
|
@ -1,106 +0,0 @@
|
||||
## `wezterm.mux.split_pane(pane, {})`
|
||||
|
||||
*Since: nightly builds only*
|
||||
|
||||
Splits `pane` and spawns a program into the split, returning the
|
||||
[MuxPane](../MuxPane.md) object associated with it:
|
||||
|
||||
```lua
|
||||
local new_pane = wezterm.mux.split_pane(pane)
|
||||
```
|
||||
|
||||
When no arguments are passed, the pane is split in half left/right and the
|
||||
right half has the default program spawned into it.
|
||||
|
||||
The following parameters are supported:
|
||||
|
||||
### args
|
||||
|
||||
Specifies the argument array for the command that should be spawned.
|
||||
If omitted the default program for the domain will be spawned.
|
||||
|
||||
```lua
|
||||
wezterm.mux.split_pane(pane, {args={"top"})
|
||||
```
|
||||
|
||||
### cwd
|
||||
|
||||
Specify the current working directory that should be used for
|
||||
the program.
|
||||
|
||||
If unspecified, follows the rules from [default_cwd](../config/default_cwd.md)
|
||||
|
||||
```lua
|
||||
wezterm.mux.split_pane(pane, {cwd="/tmp"})
|
||||
```
|
||||
|
||||
### set_environment_variables
|
||||
|
||||
Sets additional environment variables in the environment for
|
||||
this command invocation.
|
||||
|
||||
```lua
|
||||
wezterm.mux.split_pane(pane, {set_environment_variables={"FOO"="BAR"})
|
||||
```
|
||||
|
||||
### domain
|
||||
|
||||
Specifies the multiplexer domain into which the program should
|
||||
be spawned. The default value is assumed to be `"CurrentPaneDomain"`,
|
||||
which causes the default domain to be used.
|
||||
|
||||
You may specify the name of one of the multiplexer domains
|
||||
defined in your configuration using the following:
|
||||
|
||||
```lua
|
||||
wezterm.mux.split_pane(pane, {domain={DomainName="my.name"})
|
||||
```
|
||||
|
||||
Or you may use the default domain:
|
||||
|
||||
```lua
|
||||
wezterm.mux.split_pane(pane, {domain="DefaultDomain"})
|
||||
```
|
||||
|
||||
### direction
|
||||
|
||||
Specifies where the new pane should be placed. Possible values are:
|
||||
|
||||
* `"Right"` - splits the pane left/right and places the new pane on the right.
|
||||
* `"Left"` - splits the pane left/right and places the new pane on the left.
|
||||
* `"Top"` - splits the pane top/bottom and places the new pane on the top.
|
||||
* `"Bottom"` - splits the pane top/bottom and places the new pane on the bottom.
|
||||
|
||||
```lua
|
||||
wezterm.mux.split_pane(pane, {direction="Top"})
|
||||
```
|
||||
|
||||
### top_level
|
||||
|
||||
If `true`, rather than splitting `pane` in half, the tab that contains it
|
||||
is split and the new pane runs the full extent of the tab dimensions.
|
||||
|
||||
```lua
|
||||
wezterm.mux.split_pane(pane, {direction="Bottom", top_level=true})
|
||||
```
|
||||
|
||||
### size
|
||||
|
||||
Controls the size of the new pane.
|
||||
|
||||
Numeric values less than `1.0` are used to express a fraction of the
|
||||
available space; `0.5` means `50%` of the available space, for example.
|
||||
|
||||
Numeric values greater or equal to `1` are used to specify the number of
|
||||
cells.
|
||||
|
||||
The default value is `0.5`.
|
||||
|
||||
This creates two additional splits within `pane`, creating three
|
||||
total splits that each occupy 1/3 of the available space:
|
||||
|
||||
```lua
|
||||
wezterm.mux.split_pane(pane, {direction="Top", size=0.333})
|
||||
wezterm.mux.split_pane(pane, {direction="Top", size=0.5})
|
||||
```
|
||||
|
@ -66,14 +66,6 @@ pub fn register(lua: &Lua) -> anyhow::Result<()> {
|
||||
lua.create_async_function(|_, spawn: SpawnWindow| async move { spawn.spawn().await })?,
|
||||
)?;
|
||||
|
||||
mux_mod.set(
|
||||
"split_pane",
|
||||
lua.create_async_function(|_, (pane, args): (MuxPane, Option<SplitPane>)| async move {
|
||||
let args = args.unwrap_or_default();
|
||||
args.run(pane).await
|
||||
})?,
|
||||
)?;
|
||||
|
||||
wezterm_mod.set("mux", mux_mod)?;
|
||||
Ok(())
|
||||
}
|
||||
@ -327,6 +319,10 @@ impl MuxPane {
|
||||
impl UserData for MuxPane {
|
||||
fn add_methods<'lua, M: UserDataMethods<'lua, Self>>(methods: &mut M) {
|
||||
methods.add_method("pane_id", |_, this, _: ()| Ok(this.0));
|
||||
methods.add_async_method("split", |_, this, args: Option<SplitPane>| async move {
|
||||
let args = args.unwrap_or_default();
|
||||
args.run(this).await
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user