terminal/src/cascadia/TerminalControl
Don-Vito c089ae0c57
Allow exporting terminal buffer into file via tab context menu (#11062)
## Summary of the Pull Request
**Naive implementation** of exporting the text buffer of the current pane
into a text file triggered from the tab context menu.

**Disclaimer: this is not an export of the command  history,** 
but rather just a text buffer dumped into a file when asked explicitly.

## References
Should provide partial solution for #642.

## Detailed Description of the Pull Request / Additional comments
The logic is following:
* Open a file save picker
  * The location is Downloads folder (should be always accessible)
  * The suggest name of the file equals to the pane's title
  * The allowed file formats list contains .txt only
* If no file selected stop
* Lock terminal
* Read all lines till the cursor
* Format each line by removing trailing white-spaces and adding CRLF if not wrapped
* Asynchronously write to selected file
* Show confirmation

As the action is relatively fast didn't add a progress bar or any other UX.
As the buffer is relatively small, holding it entirely in the memory rather than
writing line by line to disk.
2021-08-31 19:36:43 +00:00
..
dll Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
Resources/en-US Introduce read-only panes (#8867) 2021-02-08 18:03:55 +00:00
ControlCore.cpp Allow exporting terminal buffer into file via tab context menu (#11062) 2021-08-31 19:36:43 +00:00
ControlCore.h Allow exporting terminal buffer into file via tab context menu (#11062) 2021-08-31 19:36:43 +00:00
ControlCore.idl Allow exporting terminal buffer into file via tab context menu (#11062) 2021-08-31 19:36:43 +00:00
ControlInteractivity.cpp Ensure automation peer is created regardless of terminal initialization (#10971) 2021-08-18 21:26:43 +00:00
ControlInteractivity.h Fix a pair of TermControl dragging bugs (#10650) 2021-07-28 22:27:09 +00:00
ControlInteractivity.idl Fix a pair of TermControl dragging bugs (#10650) 2021-07-28 22:27:09 +00:00
EventArgs.cpp Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
EventArgs.h Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
EventArgs.idl Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
IControlAppearance.idl Add an ENUM setting for disabling rendering "intense" text as bold (#10759) 2021-08-16 13:45:56 +00:00
IControlSettings.idl Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
ICoreState.idl Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
IDirectKeyListener.idl Move events out of TermControl.h ; Use TYPED_EVENT in more places (#9526) 2021-03-18 22:02:39 +00:00
IKeyBindings.idl Adding/fixing Alt+Space handling (#10799) 2021-08-10 19:53:07 +00:00
IMouseWheelListener.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
init.cpp Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
InteractivityAutomationPeer.cpp Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
InteractivityAutomationPeer.h Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
InteractivityAutomationPeer.idl Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
KeyChord.cpp Make ActionMap compatible with ScanCode-only KeyChords (#10945) 2021-08-20 00:21:33 +00:00
KeyChord.h Make ActionMap compatible with ScanCode-only KeyChords (#10945) 2021-08-20 00:21:33 +00:00
KeyChord.idl Make ActionMap compatible with ScanCode-only KeyChords (#10945) 2021-08-20 00:21:33 +00:00
packages.config Update C++/WinRT to 2.0.210309.3 (#9437) 2021-03-10 16:04:59 -06:00
pch.cpp Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
pch.h Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
SearchBoxControl.cpp Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
SearchBoxControl.h Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
SearchBoxControl.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
SearchBoxControl.xaml Auto-format our XAML files and enforce in CI (#9589) 2021-03-29 17:09:38 -05:00
TermControl.cpp Allow exporting terminal buffer into file via tab context menu (#11062) 2021-08-31 19:36:43 +00:00
TermControl.h Allow exporting terminal buffer into file via tab context menu (#11062) 2021-08-31 19:36:43 +00:00
TermControl.idl Allow exporting terminal buffer into file via tab context menu (#11062) 2021-08-31 19:36:43 +00:00
TermControl.xaml Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
TermControlAutomationPeer.cpp Initialize the padding for the Control UIA provider (#10874) 2021-08-11 15:13:38 +00:00
TermControlAutomationPeer.h Initialize the padding for the Control UIA provider (#10874) 2021-08-11 15:13:38 +00:00
TermControlAutomationPeer.idl Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
TerminalControlLib.vcxproj Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
TSFInputControl.cpp (1.9 port) Fix a number of shutdown crashes in TermControl (#10117) 2021-05-18 17:36:40 -05:00
TSFInputControl.h Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
TSFInputControl.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
TSFInputControl.xaml Auto-format our XAML files and enforce in CI (#9589) 2021-03-29 17:09:38 -05:00
XamlLights.cpp Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
XamlLights.h Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
XamlLights.idl Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
XamlUiaTextRange.cpp Expose Text Attributes to UI Automation (#10336) 2021-07-09 23:21:35 +00:00
XamlUiaTextRange.h Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00