-
Notifications
You must be signed in to change notification settings - Fork 8.5k
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
(WIP) Reset to alphabet input mode on <Escape> or <Enter> key #15590
Conversation
"src/terminal/input/terminalInput.cpp" : TerminalInput::HandleKey()
"src/terminal/input/terminalInput.cpp" : TerminalInput::HandleKey()
TODO: Apply globals.KeyAlphaMode setting to TerminalInput::CheckAlphaMode()
TODO: Apply globals.KeyAlphaMode setting to TerminalInput::CheckAlphaMode()
Don't exclude nuget `packages/` in vscode. Excluding via `file.exclude` also excludes them from c++ language extension's `includePath` and generates missing include files and header errors. We might still like to exclude them from full text search, so we do it using `search.exclude`. Closes microsoft#15578
This PR adds a `searchWeb` command to search the selected text on the web. Arguments: - `queryUrl`: URL of the web page to launch (the selected text will be inserted where the first `%s` is found in the query string) To make the search text more "compact" and handle multi-line selections, I'm concatenating the selected lines and replacing consecutive whitespaces with a single space (we may change this with something more clever in case). ## Validation Steps Performed Manual testing with single, multi-line, block selections. Closes microsoft#10175 --------- Co-authored-by: Marco Pelagatti <marco.pelagatti@iongroup.com> Co-authored-by: Mike Griese <migrie@microsoft.com>
…osoft#15582) As a shortcut, GetLastNonSpaceCharacter can start with the last committed row. It's guaranteed that there isn't anything of worth below that point, so why bother checking? Without this, Terminal immediately commits the entire 9031-line buffer on startup while trying to--get this!--clear the screen! --------- Co-authored-by: Leonard Hecker <lhecker@microsoft.com>
…5568) I originally intended to add the Drop Validator (which is a compliance requirement) task to the build, but I quickly realized that we weren't generating a complete SBOM manifest covering every artifact that we produced. We were generating the SBOM manifest, and then re-packing the Terminal app which very likely invalidated all of the hashes and signatures in the SBOM manifest! We were also missing the unpackaged build. I've removed the `appx-PLATFORM-CONFIG` and `unpackaged-PLAT-CONF` artifacts and combined them into a single one, `terminal-PLAT-CONF`.
TODO: Apply globals.KeyAlphaMode setting to TerminalInput::CheckAlphaMode()
This comment has been minimized.
This comment has been minimized.
@microsoft-github-policy-service agree |
src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw
Outdated
Show resolved
Hide resolved
Thanks for submitting this! I have a couple architecture concerns. I have not reviewed the code in-depth yet, sorry. In our project, the It is supposed to be relatively well-contained and not call out to the OS or support any user configuration. This is because For Windows Terminal, the right place to change the input behavior is on the |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Why some check is failing (PowerScipt fail? What is it?) and some checks take so long? Over a days pass and still in progress. :( Should I re-commit to start over? |
The code formatting check failed. If you open PowerShell inside the terminal project you can execute these two lines: Import-Module .\tools\OpenConsole.psm1
Invoke-CodeFormat |
I'd also be happy to fix the PR's coding style for you. 🙂 If you'd be fine with that, just let me know once you feel like this PR works correctly for you. @DHowett Can you check your mails, if you ever got a response to your IMM/CoreText questions (#1304 (comment))? |
Import-Module .\tools\OpenConsole.psm1 Invoke-CodeFormat done
Thank you for kindly help.
I haven't receive any response on that. Now all check is passed and what should I do next? |
FYI it might take a little while to get this PR merged and shipped. One of the main developers of Windows Terminal is currently out of office and we still need to properly test it. It'll then ship in the next preview version (1.19) in a month or so. I'm sorry for the wait! |
How about a proposal mentioned here? --- to be able to interpret the escape sequence controlling the IME which had already implemented by several other terminal software. |
Such feature is separate feature from automatic IME handing of this PR, not alternative of each other, IMHO. Such feature is to let client program or remote app (like Vim editor or cmd.exe/shell ) can control the user-side local IME of terminal emulator by sending such control sequence. For example, editor can set IME off on command mode. But it requires support from the editor itself. If many shell/editor application request/support such feature, such IME-controlling control-sequence processing can be implemented with IMM routines, if needed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Structurally, this seems mostly good. I'd have probably wrapped the IMM support into a helper class / struct (rather than just some global statics), but that's minor.
I'd probably want to double-check this UX with some of our other IME experts, but I'd need to find them first 😛 If there's existing precedent for this kind of behavior, and it's toggleable with a setting, then I'd be hard pressed to say no
Code clean up per advice of @zadjii-msft
Code clean up per advice of @zadjii-msft
I won't be reviewing this. |
quick notes from the discussion we had:
Thanks for bearing with us while we sort this out! addenda: we also discussed how we really need to get our IME support figured out by an expert. Cases in point: this thread, #13681, #14407 and the long list of issues before those. |
@lhecker did this get obsoleted by your IME rewrite? |
Oh, yes it did! @qqkookie Thank you so much for the PR, but you've probably already seen my update in the corresponding issue. The new IME rewrite should be much more robust in general. |
Summary of the Pull Request
When pressing <Escape> or <Enter> key, reset (CJK) keyboard IME input state to alphabet input mode.
References and Relevant Issues
Adds new feature:
#1304 Feature Request: IME mode after pressing Escape or Enter key in CJK input.
Detailed Description of the Pull Request / Additional comments
Vim (vi)
,nano
oremacs
editor.Validation Steps Performed
This feature is widely supported in many open-source or commercial CJK-aware terminal emulator/SSH/Telnet client software or editors like Korean-localized
xterm
,hanterm
,iPuTTY
,XShell
, and someMinTTY
. It is such universally requested feature for Korean command line users.PR Checklist