* - Force GC.Collect() on closing of terminal;
- Prepare MainPage, MainViewModel, TabBar, TerminalBridge for disposal.
* Request _dispatcherJobs Task cancellation ASAP on terminal closing.
* Implement delayed saving.
* Delayed command history saving improved.
* Fixing a bug with SSH profiles in "quick command" dialog.
* Opening auto-suggest list on down arrow implemented.
* Minor change.
* Removing an obsolete settings option.
* Separating "SSH Info" and "Quick Launch", and updating translations.
* Adding "Quick Launch" to menu.
* Auto-complete, initial version.
* Builds, but not finished.
* Improved, but there are still some bugs...
* Minor changes.
* Refactroing request/response identifiers.
* Improving command history.
* Minor refactoring.
* Deleting history by using "Del" key.
* Handling mosh special case in quick commands.
* SSH command handled as any other command in the path.
* New resource strings.
* Fixing quick command links.
* Fixing after-merging bugs.
* Improving filtering.
* Finishing filtering.
* Changing placeholder text.
* Minor refactoring.
* Updating resources.
* Renaming NewRemoteTab back to NewSshTab.
* Simplifying view models, step 1: Extracting common terminal configuration into TerminalInfoViewModel.cs.
* Simplifying a bit.
* SSH view models simplfication.
* Refactoring duplicated code.
* Refactoring duplicated code.
* Renaming a resource file.
* Cleanup.
* Fixing an issue with TemplateSelectors.
* QuickSshDialog created.
* Minor fix.
* Wiring up QuickSshDialog.
* Minor fix.
* Fixed an issue with shared resources.
* Single-text-box dialog works.
* Improving "Quick SSH" look.
* Improving data validation workflow to avoid double validations.
* Refactoring view models and templates to avoid duplicated code.
* Minor fix.
* Fixing a bug with mosh.
* Cleanup.
* Cleanup.
* Moving profile view models in a separate folder (namespace).
* Few comment lines (short description) added to profile view models.
* Removing IDisposable from view-models because event-caused memory leaks will be solved differently.
* Implemented quick-ssh shortcuts.
* Fixing quick SSH command validation.
* Minor change.
* Minor change.
* Combining "SSH Info" and "Quick SSH" into a single dialog.
* Quick SSH profiles.
* Fixing a minor bug with custom links.
* Fixing remote profiles look and feel.
* Minor improvements.
* Fixing a minor bug.
* Minor changes based on Felix' comments.
* Saving executed commands history implemented.
Unlike local profiles, it doesn't really make sense to have a default
SSH profile. The UI elements and backing infrastructure for this has
been removed.
* Minor improvements to remote SSH profiles. Username prefilled, and line ending defaults to LF.
* Implementing "Set Default" on SSH Profiles.
* Simplifying profile view models.
* Fixing null themes issue.
* Changing line ending of a sinfle file to CRLF.
* Changing file to LF, to avoid false differences.
* Converting a file to LF in order to avoid false differences.
* Fixining a bug with shortcuts.
* Added missing resource strings for new SSH bindings
Without these the settings page has no labels for these bindings.
* Rationalise default SSH keybindings
The logic is:
- Adhoc SSH tabs and windows are based around the Y key
- SSH profile tabs and windows are based around the U key (next to Y and
easier to reach than Z)
* Reorder command enum
Group commands together in a more logical order. In particular, this
makes command keybindings appear in a more logical order on the relevant
Settings page.
Note: this does not break existing keybinding configuration.
When FluentTerminal's window is resized many resize events are sent to
the terminal in quick succession. These rapid terminal size changes
while other output is being sent to the terminal can result in
display corruption.
In this change:
- Resize events are "debounced", greatly reducing the number of
resize events being sent to the underlying terminal.
- Output to the terminal is blocked while resize events are processed.
The blocked output is temporarily buffered until the resize event
should have been processed by the underlying terminal.
The net result is that window resizes are *much* less likely to result
in corrupted buffer output. Corruption can still happen however,
especially in cases of very high rates of output being sent to the
terminal.
The mostly solves #373.