Merge commit 'be3e8236086165e5e45a5a10783823874b3f3ebd' as 'lib/vscode'
This commit is contained in:
@ -0,0 +1,56 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// @ts-check
|
||||
(function () {
|
||||
// @ts-ignore
|
||||
const vscode = acquireVsCodeApi();
|
||||
|
||||
const textArea = document.querySelector('textarea');
|
||||
|
||||
const initialState = vscode.getState();
|
||||
if (initialState) {
|
||||
textArea.value = initialState.value;
|
||||
}
|
||||
|
||||
window.addEventListener('message', e => {
|
||||
switch (e.data.type) {
|
||||
case 'fakeInput':
|
||||
{
|
||||
const value = e.data.value;
|
||||
textArea.value = value;
|
||||
onInput();
|
||||
break;
|
||||
}
|
||||
|
||||
case 'setValue':
|
||||
{
|
||||
const value = e.data.value;
|
||||
textArea.value = value;
|
||||
vscode.setState({ value });
|
||||
|
||||
vscode.postMessage({
|
||||
type: 'didChangeContent',
|
||||
value: value
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const onInput = () => {
|
||||
const value = textArea.value;
|
||||
vscode.setState({ value });
|
||||
vscode.postMessage({
|
||||
type: 'edit',
|
||||
value: value
|
||||
});
|
||||
vscode.postMessage({
|
||||
type: 'didChangeContent',
|
||||
value: value
|
||||
});
|
||||
};
|
||||
|
||||
textArea.addEventListener('input', onInput);
|
||||
}());
|
Reference in New Issue
Block a user