forked from microsoft/terminal
-
Notifications
You must be signed in to change notification settings - Fork 1
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
Focus #5
Open
Anutha02
wants to merge
282
commits into
master
Choose a base branch
from
focus
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This PR adds support for per-profile tab colors, in accordance with microsoft#7134. This adds a single `tabColor` property, that when set, specifies the background color for profile's tab. This color can be overridden by the color picker, and clearing the color with the color picker will revert to this default color set for the tab. * Full theming is covered in microsoft#3327 & microsoft#5772 Validation: Played with setting this color, both on launch and via hot-reload Specified in microsoft#7134 Closes microsoft#1337
This PR adds the `togglePaneZoom` action, which can be used to make a pane expand to fill the entire contents of the window. A tab that contains a zoomed pane will have a magnifying glass icon prepended to its title. Any attempts to manage panes with one zoomed will force the zoomed pane back to normal size. VALIDATION Zoomed in and out a bunch. Tried closing panes while zoomed. Tried splitting panes while zoomed. Etc. Closes microsoft#996
…rosoft#6765) MouseInput was directly asking user32 about the state of the mouse buttons, which was somewhat of a layering violation. This commit makes all callers have to pass the mouse state in themselves. Closes microsoft#4869
…osoft#6993) ## Summary of the Pull Request Adds the `setColorScheme` action, to change the color scheme of the active control to one given by the `name` parameter. `name` is required. If `name` is not the name of a color scheme, the action does nothing. ## References * Being done as a stepping stone to microsoft#6689 ## PR Checklist * [x] Closes microsoft#5401 * [x] I work here * [ ] Tests added/passed * [n/a] Requires documentation to be updated ## Detailed Description of the Pull Request / Additional comments Technically, the action is being done by changing the settings of the current `TerminalSettings` of the `TermControl`. Frankly, it should be operating on a copy of the `TermControl`'s `IControlSettings`, then updating the control's settings, or the Control should just listen for changes to it's setting's properties, and update in real time (without a manual call to `UpdateSettings`. However, both those paths are somewhere unknowable beyond microsoft#6904, so we'll just do this for now. ## Validation Steps Performed * tested manually with a scheme that exists * tested manually with a scheme that doesn't exist
…icrosoft#7223) This PR adds support for the ANSI _doubly underlined_ graphic rendition attribute, which is enabled by the `SGR 21` escape sequence. There was already an `ExtendedAttributes::DoublyUnderlined` flag in the `TextAttribute` class, but I needed to add `SetDoublyUnderlined` and `IsDoublyUnderlined` methods to access that flag, and update the `SetGraphicsRendition` methods of the two dispatchers to set the attribute on receipt of the `SGR 21` sequence. I also had to update the existing `SGR 24` handler to reset _DoublyUnderlined_ in addition to _Underlined_, since they share the same reset sequence. For the rendering, I've added a new grid line type, which essentially just draws an additional line with the same thickness as the regular underline, but slightly below it - I found a gap of around 0.05 "em" between the lines looked best. If there isn't enough space in the cell for that gap, the second line will be clamped to overlap the first, so you then just get a thicker line. If there isn't even enough space below for a thicker line, we move the offset _above_ the first line, but just enough to make it thicker. The only other complication was the update of the `Xterm256Engine` in the VT renderer. As mentioned above, the two underline attributes share the same reset sequence, so to forward that state over conpty we require a slightly more complicated process than with most other attributes (similar to _Bold_ and _Faint_). We first check whether either underline attribute needs to be turned off to send the reset sequence, and then check individually if each of them needs to be turned back on again. ## Validation Steps Performed For testing, I've extended the existing attribute tests in `AdapterTest`, `VTRendererTest`, and `ScreenBufferTests`, to make sure we're covering both the _Underlined_ and _DoublyUnderlined_ attributes. I've also manually tested the `SGR 21` sequence in conhost and Windows Terminal, with a variety of fonts and font sizes, to make sure the rendering was reasonably distinguishable from a single underline. Closes microsoft#2916
…7235) ## Summary of the Pull Request We're expecting that people have treated `padding` as an integer, and the type-based converter is too strict for that. This PR widens its scope and explicitly allows for it in the schema. ## PR Checklist * [x] Closes microsoft#7234
…ch (microsoft#7237) The "default profile as name" feature in 1.1 broke the loading of default settings, as we would never get to the validation phase where the default profile string was transformed into a guid. I moved knowledge of the "unparsed default profile" optional to the consumer so that we could make sure we only attempted to deserialize it once (and only if it was present.) Fixes microsoft#7236. ## PR Checklist * [x] Closes microsoft#7236
 ## Summary of the Pull Request This PR adds the Advanced Tab Switcher (ATS) to Terminal. It'll work similarly to VSCode's tab switcher. Because this implementation rides off a lot of the Command Palette's XAML code, it'll look just like the Command Palette, and also have support for tab title search. ## References microsoft#3753 - ATS Spec Closes microsoft#1502
This pull request completes (and somewhat rewrites) the JsonUtils error handling arc. Deserialization errors, no longer represented by trees of exceptions that must be rethrown and caught, are now transformed at catch time into a message explaining what we expected and where we expected it. Instead of exception trees, a deserialization failure will result in a single type of exception with the originating JSON object from which we can determine the contents and location of the failure. Because most of the error message actually comes from the JSON schema or the actual supported types, and the other jsoncpp errors are not localized I've made the decision to **not** localize these messages.
…crosoft#7247) If you scroll up to view the scrollback, then we want the viewport to "stay in place", as new output comes in (see microsoft#6062). This works fine up until the buffer circles. In this case, the mutable viewport isn't actually moving, so we never set `updatedViewport` to true. This regressed in microsoft#6062 Closes microsoft#7222
This script takes a range of commits and generates a commit log with the git2git-excluded file changes filtered out. It also replaces GitHub issue numbers with GH-XXX so as to not confuse Git2Git or Azure DevOps. Community contributions are tagged with CC- so they can be detected later. The output looks like this: ``` Carlos Zamora (2) * Pass mouse button state into HandleMouse instead of asking win32 (microsoftGH-6765) Dustin L. Howett (6) * Disable MinimalCoreWin when OpenConsoleUniversalApp is false (microsoftGH-7203) James Holderness (1) * Add support for the "doubly underlined" graphic rendition attribute (CC-7223) ``` Yes, the numbers are wrong. No, it doesn't really matter.
…ft#7248) This regressed around the microsoft#7163 timeframe. We're discussing this on chat currently. It might break the intellisense on the `#include <winrt/Microsoft.Terminal.TerminalControl.h>` line in VS 16.7, but we're not _really_ sure? Intellisense has been notoriously flaky for us. I'm running 16.6.5, and it works for me. @lhecker is running 16.7 and confirmed it worked there. If the CI build passes, then this definitely will work for 16.7.
…osoft#7243) This commit ensures that we always furnish a new process with the cleanest, most up-to-date environment variables we can. There is a minor cost here in that WT will no longer pass environment variables that it itself inherited to its child processes. This could be considered a reasonable sacrifice. It will also remove somebody else's TERM, TERM_PROGRAM and TERM_PROGRAM_VERSION from the environment, which could be considered a win. I validated that GetCurrentProcessToken returns a token we're _technically able_ to use with this API; it is roughly equivalent to OpenProcessToken(GetCurrentProcess) in that it returns the current active _access token_ (which is what CreateEnvironmentBlock wants.) There's been discussion about doing a 3-way merge between WT's environment and the new one. This will be complicated and I'd like to scream test the 0-way merge first ;P Related to microsoft#1125 (but it does not close it or resolve any of the other issues it calls out.) Fixes microsoft#7239 Fixes microsoft#7204 ("App Paths" value creeping into wt's environment)
## Summary of the Pull Request⚠️ This spec has been moved from microsoft#6902. That version was branched off the new tab menu customization, and had a terribly convoluted git history. After discussion with the team, we've decided that it's best that this spec is merged atomically _first_, and used as the basis for microsoft#5888, as opposed to the other way around. > This document is intended to serve as an addition to the [Command Palette Spec], > as well as the [New Tab Menu Customization Spec]. > > As we come to rely more on actions being a mechanism by which the user defines > "do something in the Terminal", we'll want to make it even easier for users to > re-use the actions that they've already defined, as to reduce duplicated json as > much as possible. This spec proposes a mechanism by which actions could be > uniquely identifiable, so that the user could refer to bindings in other > contexts without needing to replicate an entire json blob. > ## PR Checklist * [x] Specs: microsoft#6899 * [x] References: microsoft#1571, microsoft#1912, microsoft#3337, microsoft#5025, microsoft#5524, microsoft#5633 * [x] I work here ## Detailed Description of the Pull Request / Additional comments _\*<sup>\*</sup><sub>\*</sub> read the spec <sub>\*</sub><sup>\*</sup>\*_ [Command Palette Spec]: https://github.com/microsoft/terminal/blob/master/doc/specs/%232046%20-%20Command%20Palette.md [New Tab Menu Customization Spec]: https://github.com/microsoft/terminal/blob/master/doc/specs/%231571%20-%20New%20Tab%20Menu%20Customization.md
* This is a mini-spec for how I see this working * good bot * These were some typos * Addd a future consideration about the command palette and commands * Update spec to reflect discussion with Carlos * update spec to reflect investigations in Command Palette Addenda 1 * add references to microsoft#6899, and minor bits of review feedback * add `remainingProfiles` as a way of adding all the user's other profiles quickly to the menu as well * clarify why we're not doing it in the profiles list * no two commits do not contain a misspelling of separate
## Summary of the Pull Request This PR enables users to send arbitrary text input to the shell via a keybinding. ## PR Checklist * [x] Closes microsoft#3799 * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA * [ ] Tests added/passed * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx * [x] Schema updated. * [x] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: microsoft#3799 ## Detailed Description of the Pull Request / Additional comments ## Validation Steps Performed Added the following keybindings: ```json { "keys": "p", "command": { "action": "sendInput", "input": "foobar" } }, { "keys": "q", "command": { "action": "sendInput", "input": "\u001b[A" } }, ``` Ensured that when pressing <kbd>P</kbd> "foobar" is echoed to the shell and when pressing <kbd>Q</kbd> the shell history is being navigated backwards.
Carlos Zamora (1) * Pass mouse button state into HandleMouse instead of asking win32 (microsoftGH-6765) James Holderness (1) * Add support for the "doubly underlined" graphic rendition attribute (CC-7223) Moshe Schorr (1) * Batch RTL runs to ensure proper draw order (CC-7190) Related work items: MSFT-28385436
We have a new team member!
Whoops, members are zero initialized in Debug builds but most likely not in Release builds So, this PR adds a couple of default values to `_currentMode` and its associated XAML strings to make cmdpal/ats work deterministically on first use. I also added a default value to `_anchorKey` just to be safe. Closes microsoft#7254
This is a minor fix from microsoft#6989. If there's only one pane in the Terminal, then we'd still "zoom" it and give it a border, but all the borders would be black. A single pane is already "zoomed", so it doesn't really make sense to try and zoom if there's only one.
Removes the if-statement in `UpdateTabIndices` that blocks all scenarios where you delete the second to last tab. This fixes the issue where the ATS gets confused about which item in the ListView is associated with which tab. Closes microsoft#7278
## Summary of the Pull Request This PR adds support for both _nested_ and _iterable_ commands in the Command palette.  * **Nested commands**: These are commands that include additional sub-commands. When the user selects on of these, the palette will update to only show the nested commands. * **Iterable commands**: These are commands what allow the user to define only a single command, which is repeated once for every profile. (in the future, also repeated for color schemes, themes, etc.) The above gif uses the following json: ```json { "name": "Split Pane...", "commands": [ { "iterateOn": "profiles", "name": "Split with ${profile.name}...", "commands": [ { "command": { "action": "splitPane", "profile": "${profile.name}", "split": "automatic" } }, { "command": { "action": "splitPane", "profile": "${profile.name}", "split": "vertical" } }, { "command": { "action": "splitPane", "profile": "${profile.name}", "split": "horizontal" } } ] } ] }, ``` ## References ## PR Checklist * [x] Closes microsoft#3994 * [x] I work here * [x] Tests added/passed * [ ] Requires documentation to be updated - Sure does, but we'll finish polishing this first. ## Detailed Description of the Pull Request / Additional comments We've now gotta keep the original json for a command around, so that once we know what all the profiles will be, we can expand the commands that need it. We've also got to parse commands recursively, because they might have any number of child commands. These together made the command parsing a _lot_ more complicated, but it feels good so far. ## Validation Steps Performed * wrote a bunch of tests * Played with it a bunch
microsoft#7145 introduced a check so that we wouldn't dispatch keys unless they actually had a scancode. Our synthetic events actually _didn't_ have scancodes. Not because they couldn't--just because they didn't. Fixes microsoft#7297
ColorScheme is now a WinRT object. All of the JSON stuff can't be exposed via the idl. So the plan here is that we'll have the TerminalSettingsModel project handle all of the serialization when it's moved over. These functions will be exposed off of the `implementation` namespace, not projected namespace. References microsoft#7141 - ColorScheme is a settings object References microsoft#885 - this new settings object will be moved to a new TerminalSettingsModel project ## Validation Steps Performed - [x] Tests passed - [x] Deployment succeeded
Adds array support for the existing `copyFormatting` global setting. This allows users to define which formats they would specifically like to be copied. A boolean value is still accepted and is translated to the following: - `false` --> `"none"` or `[]` - `true` --> `"all"` or `["html", "rtf"]` This also adds `copyFormatting` as a keybinding arg for `copy`. As with the global setting, a boolean value and array value is accepted. CopyFormat is a WinRT enum where each accepted format is a flag. Currently accepted formats include `html`, and `rtf`. A boolean value is accepted and converted. `true` is a conjunction of all the formats. `false` only includes plain text. For the global setting, `null` is not accepted. We already have a default value from before so no worries there. For the keybinding arg, `null` (the default value) means that we just do what the global arg says to do. Overall, the `copyFormatting` keybinding arg is an override of the global setting **when using that keybinding**. References microsoft#5212 - Spec for formatted copying References microsoft#2690 - disable html copy Validated behavior with every combination of values below: - `copyFormatting` global: { `true`, `false`, `[]`, `["html"]` } - `copyFormatting` copy arg: { `null`, `true`, `false`, `[]`, `[, "html"]`} Closes microsoft#4191 Closes microsoft#5262
As the title suggests, this commit adds initial support for the VT DCS sequences. The parameters are parsed but not yet used. The pass through data is yet to be handled. This effectively fixes microsoft#120 by making Sixel graphics sequences *ignored* instead of printed. * https://vt100.net/docs/vt510-rm/chapter4.html * https://vt100.net/emu/dec_ansi_parser Tests added. References microsoft#448 Closes microsoft#120
 ## Validation Steps Performed Deployed locally and verified that the colour picker's button has round edges. Closes microsoft#7142
Fixes microsoft#7294 Co-authored-by: Mike Griese <[email protected]>
New warnings were added in VS 16.7 and `std::map::erase` is now `noexcept`. Update our code to be compatible with the new enforcement. ## PR Checklist * [x] Closes broken audit in main after Agents updated over the weekend. * [x] I work here. * [x] Audit mode passes now * [x] Am core contributor. ## Validation Steps Performed * [x] Ran audit mode locally
…icrosoft#8218) Some UTs crash with access violation, that occurs during pane animation. The reason for this is a race, upon which the pane is closed (set to nullptr) before the parent is animated. Added a simple check against null. Doubt it can happen in production, yet worth taking care!
Fixed potential errors caused by overflow or underfow in SectionInput.cpp ## PR Checklist * [x] CLA signed * [x] Tests added/passed ## Detailed Description of the Pull Request / Additional comments In selectionInput.cpp, there is both a potential overflow and potential underflow. To address this issue, I casted the calculation up to int, which is then checked because of integer promotion. Underflow and underflow is therefore impossible because now if the calculation exceeds SHORT_MAX, it will have exceeded bufferSize.BottomInclusive() or bufferSize.Top() anyway, and be set to them. ## Validation Steps Performed Passed Unit Testing Manual Validation
Display a warning message when the DirectX renderer resolves a font that isn't the one you selected to warn that it couldn't be found. Also I wrote the dialog event chain out of `TermControl` to be reusable in the future for other messages the control might want to tell a host about and various levels. ## Validation Steps Performed - Manual validation, setting bad font name, fixing font name with `settings.json`. Closes microsoft#1017
In `ActionOscDispatch()` in `OutputStateMachineEngine.cpp`, we had a section for parsing and another section for dispatching. This PR combines those two blocks since they do not need to be distinct. ## Validation Steps Performed TerminalApiTests still pass
Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_onecore_dep_uxp 8bbacf82e9da4627096ff2c2b1b4c5b183db75d4
* Run all images through ImgBot (CC-8169) * Fix potential over/underflow as noted by "TODO:" comment (CC-8081) * Fix garbling when copying multibyte text via OSC 52 (CC-7870) * UIA: throw E_FAIL for out-of-bounds text (CC-8052) * Consider the GlyphWidth when calculate the postion of matched word in URL detecting (CC-8124) * Make the link underline less obtrusive; don't use it for pattern (microsoftGH-8148) * Fully regenerate CodepointWidthDetector from Unicode 13.0 (microsoftGH-8035) * Prepare for the primary branch name to change to main (microsoftGH-7985) * Hash the URI as part of the hyperlink ID (microsoftGH-7940) * Introduce til::presorted_static_map (microsoftGH-7640) * Prevent leftover cursor fragments when scrolling in PowerShell (CC-8173) * Add support for the DECREQTPARM report (CC-7939) * Refactor VT parameter handling (CC-7799) * Add support for the "blink" graphic rendition attribute (CC-7490) * Combine the parsing & dispatch blocks for OSC actions (CC-8202) * Add support for autodetecting URLs and making hyperlinks (CC-7691) * Copy _currentHyperlinkId when copying the buffer (CC-8074) * Fix the "visual representation" optimization for hyperlinks (CC-7738) * Optimize the binary size of the XOrg color table (CC-7929) * Add support for more OSC color formats (CC-7578) Related work items: MSFT-30259074
Added 1.6 milestone and 1.5 release blog post to the roadmap
There are two code paths for Ctrl+Tab and for everything else: Ctrl + Tab is working perfectly * On the first tab navigation TerminalPage::_SelectNextTab resets the tab commands, and since palette is not visible selects the relevant tab index * On the second navigation Ctrl+Tab is intercepted by CommandPalette::_previewKeyDownHandler and everything works fine But with custom binding things are screwed: * On the first tab navigation TerminalPage::_SelectNextTab resets the tab commands, and since palette is not visible selects the relevant tab index * On the second navigation keys are not intercepted and thus TerminalPage::_SelectNextTab is called again. It resets the commands, but now since the palette is visible we simply invoke CommandPalette::SelectNextItem. Which in turn misbehaves because no item is selected. The approach for the solution is not to reset anything if the command palette is already open. ## Validation Steps Performed * Manual testing of both custom and non-custom bindings with different amount of tabs. Closes microsoft#8247
…oft#8237) We were only checking app animations during pane _exit_.
Until now, we relied on WM_SIZING to ensure that the island is not downsized below minimal allowed dimensions. However, on some occasions WM_WINDOWPOSCHANGED, e.g. when anchoring a window to the top/bottom of the screen. This message will use dimensions obtained from WM_GETMINMAXINFO. Until now we didn't override this value, falling back to the defaults. As a result we got an inconsistent behavior (at least when attaching the anchor). I added logic very similar to the one we use in IslandWindow::_OnSizing to the MINMAXINFO handler: snap the client area, add non client exclusive are, consider DPI along the computation. ## Validation Steps Performed * Manual testing of minimizing, maximizing, resizing, attaching different anchors, etc. Closes microsoft#8026
conhost and windows terminal renamed files; updated script to do summary output only, also quiet mode and option file path for output (else stdout) added -quiet and fixed -summaryonly parameters added hyperlink directly to soruce implementation for conhost and terminal seqs Update doc/reference/master-sequence-list.csv Co-Authored-By: James Holderness <[email protected]> Apply suggestions from code review Co-Authored-By: James Holderness <[email protected]> Co-authored-by: James Holderness <[email protected]>
Fixes https parsing of the latest version of `profiles.schema.json`, particularly by VS Code Intellisense. * [x] Closes microsoft#8249 The VS Code parsing warning below is a known and unrelated existing issue due to VS Code only supporting JSON Schema Draft 7. It does not prevent Intellisense from functioning. > Draft 2019-09 schemas are not yet fully supported. ## Validation Steps Performed Manually tested and successfully validated by fixing a local copy of `profiles.schema.json` and defining it as `$schema` in `settings.json`
Some sources files changes were necessary to retain build continuity in OS. Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_onecore_dep_uxp 7ff895ff770838526b6d1d9e7d582f3c1e36d85b
Fixes the clear button to clear the typed command not clickable in the command palette. - From the primary investigation it looked like the `TextBlock` element introduced in microsoft#7935 was somehow blocking (appearing on top of) the clear button. - It was also blocking the command palette input field from being able to access which was preventing the text in the input field from being selected and the cursor would still show as `pointer` cursor instead of a `text selection` cursor - Adding `HorizontalAlignment="Left"` property to the above-mentioned `TextBlock` element fixed the issue. ## Validation Steps Performed - Created the Dev build for `x64` in Visual Studio and verified the functionality manually. Closes microsoft#8220
) This commit fixes the default value to comply with documentation. Closes microsoft#8256
## Summary of the Pull Request This adds `ToJson` functions to `Profile`, `GlobalAppSettings`, and `ColorScheme`. They are used in `CascadiaSettings` to completely serialize an instance of the settings model. Thanks to microsoft#7923, all of the settings are `std::optional`, and `JsonUtils` only writes out values that are actually populated. `CascadiaSettings::WriteSettingsToDisk` serializes the current settings and writes them to the settings.json. A backup file is created with your old contents. #### Limitations: - all of the color schemes are serialized regardless of them coming from defaults.json or settings.json - keybindings/actions are copied/pasted ## References microsoft#1564 - Settings UI TSM Specs (microsoft#6904 and microsoft#7876) ## PR Checklist * [x] Tests added/passed
…8309) This fixes a number of exceptions that can cause conhost to crash when the buffer is resized in such a way that the viewport or cursor position end up out of bounds. Technically this is a fix for issue microsoft#256, although that has been closed as "needs-repro". The main fix was to add checks in the `SetConsoleScreenBufferSizeImpl` and `SetConsoleScreenBufferInfoExImpl` methods, to make sure the viewport doesn't extend past the bottom or right of the buffer after a resize. If it has overflowed, we move the viewport back up or left until it's back within the buffer boundaries. We also check if the cursor position has ended up out of bounds, and if so, clamp it back inside the buffer. The `SCREEN_INFORMATION::SetViewport` was also a source of viewport overflow problems, because it was mistakenly using inclusive coordinates in its range checks, which resulted in them being off by one. That has now been corrected to use exclusive coordinates. Finally, the `IsCursorDoubleWidth` method was incorrectly marked as `noexcept`, which was preventing its exceptions from being caught. Ideally it shouldn't be throwing exceptions at all any more, but I've removed the `noexcept` specifier, so if it does throw an exception, it'll at least have more chance of recovering without a crash. ## Validation Steps Performed I put together a few test cases (based on the reports in issues microsoft#276 and microsoft#1976) which consistently caused conhost to crash, or to generate an exception visible in the debug output. With this PR applied, those test cases are no longer crashing or triggering exceptions. Closes microsoft#1976
…rosoft#8209) <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request This sets the tab close button color to match the tab text color. <!-- Other than the issue solved, is this relevant to any other issues/existing PRs? --> ## References microsoft#8046 <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist * [x] Closes microsoft#8046 * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA * [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: microsoft#8046 <!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments This sets the tab close button color to match the tab text color. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed Test light theme white tab mouse hover effect:  Test dark theme white tab mouse hover effect: 
…osoft#8315) Currently when implicit tab command is specified (i.e., we have parameters for new-tab, but don't have the explicit subcommand name) we fallback to parsing the entire arg list as new tab command. However, if we also have a launch profile (or anything else that might in the future belong to the upper scope) it is passed as a parameter to the new tab command, failing the parsing. The idea behind my solution is to run the parser as a prefix command - i.e., as long as we succeed to parse [options] / [subcommand] we will parse them (populating the fields like a launch mode), but once we will discover something unfamiliar, like profile, we will know that the prefix is over and will handle the remaining suffix as a new tab command. ## Validation Steps Performed * UT added * Manual run of different options Closes microsoft#7318
…icrosoft#8241) Fixes a race in pane entrance animation, where the animation completion routine processes wrong children. Validated w/ manual testing Closes microsoft#8230
…rosoft#8055) This commit implements the OSC 9;4 sequence per the [ConEmu style]. | sequence | description | | ------------ | ------------ | | `ESC ] 9 ; 4 ; st ; pr ST` | Set progress state on taskbar and tab. | | | When `st` is: | | | | | | `0`: remove progress. | | | `1`: set progress value to `pr` (number, 0-100). | | | `2`: set the taskbar to the "Error" state | | | `3`: set the taskbar to the "Indeterminate" state | | | `4`: set the taskbar to the "Warning" state | We've also extended this with: * st 3: set indeterminate state * st 4: set paused state We handle multiple tabs sending the sequence by using the the last focused control's taskbar state/progress. Upon receiving the sequence in `TerminalApi`, we send an event that gets caught by `TerminalPage`. `TerminalPage` then fires another event that gets caught by `AppHost` and that's where we set the taskbar progress. Closes microsoft#3004 [ConEmu style]: https://conemu.github.io/en/AnsiEscapeCodes.html#ConEmu_specific_OSC
…soft#8215) The terminal taskbar icon can now flash when the BEL sequence is emitted, to let the user know something needs their attention. The `BellStyle` setting can now be set to `audible`, `visual` or both or none. When the pane receives a BEL event and the `bellStyle` includes `visual`, we bubble the event up all the way to `AppHost` to handle flashing the taskbar. Closes microsoft#1608
[Git2Git] Git Train: Merge of building/rs_onecore_dep_uxp/201117-2002 into official/rs_onecore_dep_uxp Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_onecore_dep_uxp 526043ab6050397506b3cdb77e6a43b5ca9a2e9a Related work items: MSFT-29990377
…mpiler commandline One of our test files has some raw Emoji in it. I expect that as time goes by, more and more files will have UTF-8 in them. Fixes MSFT-30289536 Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_onecore_dep_uxp d828ae0f6c209259019934711c587ea075eab77e
We changed the default to "mru", and that was unkind to all our existing users.
* Add a tabColor parameter to the `new-tab` and `split-panes` command * Add --tabColor to the command line, to allow bootstrapping with tabs of different colors Add another field to NewTerminalArgs. Use this field to set StartingTabColor in Terminal. This color gets overridden by the color defined by the profile / VT, however can be overridden with the color picker. Since the color is the property of the Terminal, when defined for the tab this color is associated only with the first pane/terminal of the tab. Additional panes will not inherit this color (to prevent advanced resolution, where we need to resolve between the inherited color and the one specified for the pane). ## Validation Steps Performed * UT for parameters parsing * Running system with several tabs of different colors. * Adding custom actions with colors * Performing operations like split pane, duplicate and so on Closes microsoft#8075
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of the Pull Request
References
PR Checklist
Detailed Description of the Pull Request / Additional comments
Validation Steps Performed