terminal/doc
Mike Griese d0ff5f6b5e
Add support for running a wt commandline in the curent window WITH A KEYBINDING (#6537)
## Summary of the Pull Request

Adds a execute commandline action (`wt`), which lets a user bind a key to a specific `wt` commandline. This commandline will get parsed and run _in the current window_. 

## References

* Related to #4472 
* Related to #5400 - I need this for the commandline mode of the Command Palette
* Related to #5970

## PR Checklist
* [x] Closes oh, there's not actually an issue for this.
* [x] I work here
* [x] Tests added/passed
* [ ] Requires documentation to be updated - yes it does

## Detailed Description of the Pull Request / Additional comments

One important part of this change concerns how panes are initialized at runtime. We've had some persistent trouble with initializing multiple panes, because they rely on knowing how big they'll actually be, to be able to determine if they can split again. 

We previously worked around this by ignoring the size check when we were in "startup", processing an initial commandline. This PR however requires us to be able to know the initial size of a pane at runtime, but before the parents have necessarily been added to the tree, or had their renderer's set up.

This led to the development of `Pane::PreCalculateCanSplit`, which is very highly similar to `Pane::PreCalculateAutoSplit`. This method attempts to figure out how big a pane _will_ take, before the parent has necessarily laid out. 

This also involves a small change to `TermControl`, because if its renderer hasn't been set up yet, it'll always think the font is `{0, fontHeight}`, which will let the Terminal keep splitting in the x direction. This change also makes the TermControl set up a renderer to get the real font size when it hasn't yet been initialized.

## Validation Steps Performed

This was what the json blob I was using for testing evolved into

```json
        {
            "command": {
                "action":"wt",
                "commandline": "new-tab cmd.exe /k #work 15 ; split-pane cmd.exe /k #work 15 ; split-pane cmd.exe /k media-commandline ; new-tab powershell dev\\symbols.ps1 ; new-tab -p \"Ubuntu\" ; new-tab -p \"haunter.gif\" ; focus-tab -t 0",

            },
            "keys": ["ctrl+shift+n"]
        }
```

I also added some tests.

# TODO
* [x] Creating a `{ "command": "wt" }` action without a commandline will spawn a new `wt.exe` process?
  - Probably should just do nothing for the empty string
2020-07-17 21:05:29 +00:00
..
cascadia Add support for running a wt commandline in the curent window WITH A KEYBINDING (#6537) 2020-07-17 21:05:29 +00:00
images Adding higher resolution panes image 2019-11-15 14:28:43 -08:00
reference Scale box drawing glyphs to fit cells for visual bliss (#5743) 2020-05-08 14:09:32 -07:00
specs Add a spec for output snapping (#2529) 2020-07-07 21:45:16 +00:00
user-docs doc: fix a typo in user-docs/index.md (#5961) 2020-05-18 09:29:30 -07:00
AddASetting.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00
bot.md Changed feedback hub request rule (#2680) 2019-09-06 08:55:13 -05:00
building.md Update MUX to 2.5.0-prerelease.200609001 (#6819) 2020-07-07 23:29:30 +00:00
ConsoleCtrlEvent.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00
ConsoleHostSettings.md Added information on WxH character (#2104) 2019-08-01 08:34:18 -05:00
Debugging.md doc: Add debugging notes on DebugBreak (#4163) 2020-01-09 17:56:05 -08:00
EXCEPTIONS.md Code highlighting and capitalization fix for doc/EXCEPTIONS.md (#1283) 2019-06-17 23:41:27 +00:00
Niksa.md Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
ORGANIZATION.md Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
STYLE.md Converts Dispatcher().RunAsync to WinRT Coroutines (#4051) 2020-01-10 03:29:49 +00:00
submitting_code.md doc: Update submitting_code.md (#2499) 2019-08-21 10:38:51 -07:00
TAEF.md Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
terminal-v1-roadmap.md doc: update roadmap with proper v1 release date (#4860) 2020-03-09 17:04:54 -07:00
terminal-v2-roadmap.md Add 1.1 blog post to 2.0 roadmap (#6581) 2020-06-19 08:18:58 -07:00
UniversalTest.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00
virtual-dtors.md Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
WIL.md Fix WIL doc summary (#786) 2019-05-14 13:11:41 -07:00
WindowsTestPasses.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00