Moved from https://github.com/MicrosoftDocs/vsonline/issues/68
From @sadasant
I'm using VSCode online, the web version, and I'm unable to type single quotes, double quotes and symbols like `.
I am using US International as my keyboard layout locally. The online editor does let me write accented letters, like: 谩茅铆贸煤, etc.
So far I've been managing by copying and pasting these symbols. It hasn't stopped me from using the site, but it is kind of weird.
I'm using Chrome version 78.0.3904.70 (Official Build) (64-bit) on the latest available Window version.
This must be a recent regression since the editor at https://microsoft.github.io/monaco-editor/ allows quotes to be typed.
This must be a recent regression since the editor at https://microsoft.github.io/monaco-editor/ allows quotes to be typed.
I can confirm this too! 馃尀
I cannot reproduce when loading only the standalone editor, but I can reproduce when loading the entire workbench.
Also, interestingly, no native <input> accepts an accent like ' + space. The results is always a space in the <input>...
Interestingly, this has to do with the keybinding service where if I comment out the following section I can type again quotes:
Ok, further progress... commenting out this specific line will allow typing quotes to work again -- https://github.com/microsoft/vscode/blob/308ff31f9585211a12e95afbab6829c088b2bc72/src/vs/workbench/services/keybinding/browser/keybindingService.ts#L415
OK, @rebornix, AFAICT the following is happening:
QuoteQuote does not produce ', because it is a dead key in this context navigator.keyboard.getLayoutMap()MapVirtualKeyW. As part of doing that, you must clear the current keyboard state...TL;DR -- two issues:
navigator.keyboard.getLayoutMap() while composition is taking place ruins the keyboard state @alexandrudima thanks for the detailed analysis. That's what's happening indeed.
Just to report something else: This also happens with some symbols, like ` and ^. I'm guessing this is related to accentuation, but 谩茅铆贸煤 work, for example.
Verified that now VS Code Web handles ' or ` the same as native app.