code-server/lib/vscode/extensions/vscode-custom-editor-tests/customEditorMedia/textEditor.js

57 lines
1.3 KiB
JavaScript

/*---------------------------------------------------------------------------------------------
* 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);
}());