64 lines
1.6 KiB
JavaScript
64 lines
1.6 KiB
JavaScript
let vs_socket = null;
|
|
let debounceTimeout;
|
|
|
|
// 缓冲器函数(防抖)
|
|
function debounceSendToServer(data, delay) {
|
|
if (debounceTimeout) {
|
|
clearTimeout(debounceTimeout);
|
|
}
|
|
debounceTimeout = setTimeout(() => {
|
|
sendToServer(data);
|
|
}, delay);
|
|
}
|
|
|
|
|
|
|
|
function sendToServer(data){
|
|
try {
|
|
if (!vs_socket) {
|
|
return;
|
|
}
|
|
console.log('Sending data to Flask server:', data);
|
|
vs_socket.emit('message', data)
|
|
} catch (error) {
|
|
console.error('Error sending data to Flask server:', error);
|
|
}
|
|
}
|
|
function ChangeActiveTextEditor(path){ //打开文件
|
|
console.log(`Current open file: ${path}`);
|
|
sendToServer({
|
|
type: 'activeFile',
|
|
filePath: path,
|
|
config: code_like_config,
|
|
});
|
|
}
|
|
function ChangeWorkspacefileTree(fileTree) {
|
|
if (fileTree){
|
|
sendToServer({
|
|
type: 'workspaceFolders',
|
|
fileTree: fileTree,
|
|
config: code_like_config,
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
// vscode.window.showInformationMessage('Connecting to server...');
|
|
|
|
vs_socket = io('wss://hsamooc.com/vscode');
|
|
vs_socket.on('connect', () => {
|
|
// vscode.window.showInformationMessage('Connected to server');
|
|
console.log('Connected to server');
|
|
vs_socket.emit('login', { config: code_like_config });
|
|
});
|
|
vs_socket.on('disconnect', () => {
|
|
// vscode.window.showInformationMessage('Disconnected from server');
|
|
console.log('Disconnected from server');
|
|
});
|
|
vs_socket.on('terminal',(data)=>{
|
|
// vscode.window.showInformationMessage('Terminal command received'+data);
|
|
socket.emit("pty_input", {"input": data.data+'\r\n'}, function(response) {
|
|
});
|
|
})
|
|
|