UNPKG

oimp

Version:

A CLI tool for generating OI problem and packages

76 lines (68 loc) 2.84 kB
"use strict" 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(); // 测试用 });