您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
EYanIDE 优化
当前为
// ==UserScript== // @name OptiYan // @namespace http://lunarine.cc/ // @version 2024-08-17.5 // @description EYanIDE 优化 // @author Liu Baicheng // @match http://121.36.38.167/ // @icon https://www.google.com/s2/favicons?sz=64&domain=tampermonkey.net // @grant unsafeWindow // @license MIT // @resource css https://unpkg.com/[email protected]/dist/css/mdui.min.css // @grant GM_getResourceURL // @grant GM_getResourceText // @grant GM_addStyle // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/js/mdui.min.js // ==/UserScript== (function () { 'use strict'; function classOptimize() { var compilerOptionsInput = document.getElementById('compiler-options'); compilerOptionsInput.value = "-O3"; var comilerArgsInput = document.getElementById('command-line-arguments'); comilerArgsInput.remove(); } function formatCppTemplateLine(line) { const templateRegex = /(\btemplate\b|\bvector\b|\bmap\b|\bset\b|\bp(?:air|queue)\b|<.*>)/; if (templateRegex.test(line.trim())) { return line .replace(/\s*(<|>)\s*/g, '$1') .replace(/>(\w)/g, '> $1'); } return line; } function formatCppCode(code) { code = code.replace(/\/\*[\s\S]*?\*\//g, ''); code = code.replace(/\/\/.*$/gm, ''); const lines = code.split('\n'); let formattedLines = []; let indentLevel = 0; const indentSpace = ' '; let inStruct = false; for (let i = 0; i < lines.length; i++) { let line = lines[i].trim(); const isEndOfStructWithVar = line.match(/}\s*[a-zA-Z_][a-zA-Z0-9_]*\s*\[?\s*[^;]*;/); if (line.includes('{') && !line.endsWith('{')) { line = line.replace(/\s*{\s*/g, ' {\n' + indentSpace.repeat(indentLevel + 1)); } if (line.startsWith('struct')) { inStruct = true; formattedLines.push(indentSpace.repeat(indentLevel) + line); indentLevel++; continue; } if (line.endsWith('};') || isEndOfStructWithVar) { if (indentLevel) indentLevel--; formattedLines.push(indentSpace.repeat(indentLevel) + line); inStruct = false; if (isEndOfStructWithVar) { continue; } formattedLines.push(''); continue; } if (inStruct) { formattedLines.push(indentSpace.repeat(indentLevel) + line); continue; } if (line.startsWith('#include')) { line = line.replace(/#include\s*<\s*([\w./+-]+)\s*>/g, '#include <$1>'); formattedLines.push(line); continue; } if (line === 'using namespace std;') { formattedLines.push(indentSpace.repeat(indentLevel) + line); formattedLines.push(''); continue; } if (line.endsWith(')') && lines[i + 1] && lines[i + 1].trim() === '{') { line += ' {'; i++; } line = line.replace(/\s*([+\-*/=<>&|]+)\s*/g, ' $1 '); line = line.replace(/\s*,\s*/g, ', '); line = line.replace(/\s*([+\-]{2})\s*/g, '$1'); line = line.replace(/\s*;\s*/g, '; '); line = line.replace(/\)\s*(?=[a-zA-Z+\-*/])/g, ') '); line = line.replace(/(?<=[+\*/])\s*\(/g, ' ('); line = line.replace(/(?<!\S)-\s*\(/g, '-('); line = line.replace(/\b(for|while|if|else|switch|case|do)\s*(?=[({])/g, '$1 '); line = formatCppTemplateLine(line); if (line.endsWith('}')) { if (indentLevel) indentLevel--; formattedLines.push(indentSpace.repeat(indentLevel) + line); if (indentLevel === 0 && !inStruct && line.endsWith('}')) { formattedLines.push(''); } continue; } if (line.includes("}")) { indentLevel--; } if (line.includes(') {')) { if (indentLevel === 0 && !inStruct && formattedLines[formattedLines.length - 1] != '') { formattedLines.push(''); formattedLines.push(indentSpace.repeat(indentLevel) + line); indentLevel++; continue; } } if (line) { formattedLines.push(indentSpace.repeat(indentLevel) + line); } if (line.endsWith('{')) { indentLevel++; } } return formattedLines.join('\n').trim(); } function formatCode() { const res = formatCppCode(unsafeWindow.sourceEditor.getValue()); unsafeWindow.sourceEditor.setValue(res); } classOptimize(); document.addEventListener('keydown', function (event) { if (event.ctrlKey && event.altKey) { formatCode(); // 调用目标函数 mdui.snackbar({ message: '代码格式化成功' }); } else if (event.keyCode === 122) { // F11 event.preventDefault(); unsafeWindow.run(); } else if (event.keyCode === 116) { // F5 event.preventDefault(); } else if (event.ctrlKey && event.keyCode === 82) { // Ctrl+R event.preventDefault(); } else if (event.ctrlKey && event.keyCode === 121) { // Ctrl+R event.preventDefault(); } }); unsafeWindow.formatCppCode = formatCppCode; formatCode(); window.addEventListener('load', function () { var footer = document.querySelector('#site-footer'); if (footer) { var span = document.createElement('span'); span.id = 'optiyan-line'; span.textContent = 'OptiYan 已加载 Version: V1.0.4'; span.style.color = "#fff"; span.style.float = "left"; span.style.left = "0"; span.style.textAlign = "left"; span.style.width = "fit-content"; footer.appendChild(span); } var runBtn = document.getElementById('run-btn-label'); runBtn.textContent = 'Run (F11 / Ctrl + ↵)'; }); function updateColor() { let status = document.getElementById("status-line"); if (status) { if (status.innerText.includes('Error')) { const sitefooter = document.querySelector('#site-footer'); const linefooter = document.querySelector('#status-line'); sitefooter.style.backgroundColor = "#c14343"; linefooter.style.backgroundColor = "#c14343"; } else if (status.innerText.includes('Accept')) { const sitefooter = document.querySelector('#site-footer'); const linefooter = document.querySelector('#status-line'); sitefooter.style.backgroundColor = "#05a705"; linefooter.style.backgroundColor = "#05a705"; } else { const sitefooter = document.querySelector('#site-footer'); const linefooter = document.querySelector('#status-line'); sitefooter.style.backgroundColor = "#9775fa"; linefooter.style.backgroundColor = "#9775fa"; } } else { const sitefooter = document.querySelector('#site-footer'); const linefooter = document.querySelector('#status-line'); sitefooter.style.backgroundColor = "#9775fa"; linefooter.style.backgroundColor = "#9775fa"; } } let script = document.createElement('script'); script.src = "https://unpkg.com/[email protected]/dist/js/mdui.min.js?v=20240817"; script.onload = function () { console.log('mdui 已加载'); }; document.body.appendChild(script); console.log(GM_getResourceURL("css"), GM_getResourceText("css")); GM_addStyle(GM_getResourceText("css")); setInterval(updateColor, 100); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址