oimp
Version:
A CLI tool for generating OI problem and packages
76 lines (68 loc) • 2.84 kB
JavaScript
import { initMonacoEditor } from './ide-modules/ide-monaco.js'
import { initMdEditor } from './ide-modules/ide-mdeditor.js';
import { initProblemStatus } from './ide-modules/ide-status.js';
import { initTerminal } from './ide-modules/ide-terminal.js';
import { initWorkFlow } from './ide-modules/ide-workflow.js';
import { initFileTree } from './ide-modules/ide-jstree.js';
import { initWebSocket } from './ide-modules/ide-ws.js';
import { initScrollbar } from './ide-modules/ide-scrollbar.js';
import { showSaveMsg } from './ide-modules/ide-message.js';
// 添加全局变量
let isRestoringTreeSelection = false; // 是否正在恢复文件树选择
let codeEditor; // 编辑器对象
let mdEditor; // markdown编辑器对象
let mdTextarea; // markdown编辑器文本域对象
let currentFile = ''; // 当前打开的文件
let isDirty = false; // 文件是否被修改
let pendingTreeData = null; // 待刷新的文件树数据
window.pendingTreeData = pendingTreeData;
let isRefreshingTree = false; // 是否正在刷新文件树
window.isRefreshingTree = isRefreshingTree;
let debounceTreeChangedTimer = null; // 刷新文件树防抖定时器
window.debounceTreeChangedTimer = debounceTreeChangedTimer;
let problemFile = ''; // 题目文件名称
window.problemFile = problemFile;
let problemFileContent = ''; // 题目文件内容
window.problemFileContent = problemFileContent;
let isMdDirty = false; // md文件是否被修改
let lastSavedContent = ''; // md文件最后保存的内容
window.lastSavedContent = lastSavedContent;
let currentIsMarkdown = false; // 当前是否是md文件
let fileTree ; // 文件树
window.isDirty = isDirty; // 当前文件codeEditor中是否被修改
window.isMdDirty = isMdDirty; // 当前文件mdEditor中是否被修改
window.isRestoringTreeSelection = isRestoringTreeSelection;
window.currentFile = currentFile;
window.currentIsMarkdown = currentIsMarkdown;
// 初始化
async function init() {
// 1. 初始化monaco 编辑器
codeEditor = await initMonacoEditor('editor');
window.codeEditor = codeEditor;
console.log('init Monaco Editor success');
// 2. 初始化md编辑器
mdTextarea = await initMdEditor('md-textarea');
mdEditor = mdTextarea;
window.mdEditor = mdTextarea;
window.mdTextarea = mdTextarea;
// 3. 初始化题目状态栏
initProblemStatus();
// 4. 初始化terminal
initTerminal('terminal', 'terminal-fit');
// 5. 初始化工作流
initWorkFlow();
// 6: init jstree
fileTree = initFileTree();
window.fileTree = fileTree;
// 7. 初始化webSocket
initWebSocket();
// 8. init scroll bar
initScrollbar();
};
// 页面加载完成
document.addEventListener("DOMContentLoaded", function () {
console.log('DOMContentLoaded');
init();
// 测试用
});