mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-08 22:51:25 +08:00
编辑器全屏功能,窗口模式调整
This commit is contained in:
parent
3252ad3909
commit
85a923c438
@ -1,10 +1,11 @@
|
||||
let getDB = id => {
|
||||
!function () {
|
||||
getDB = id => {
|
||||
var db = utools.db.get(id),
|
||||
dbData = db ? db.data : {};
|
||||
return dbData;
|
||||
}
|
||||
|
||||
let putDB = (code, pushData, id) => {
|
||||
putDB = (code, pushData, id) => {
|
||||
var db = utools.db.get(id);
|
||||
if (db) {
|
||||
var rev = db._rev
|
||||
@ -60,7 +61,6 @@ let exportAll = () => {
|
||||
window.saveFile(options, JSON.stringify(json));
|
||||
}
|
||||
|
||||
|
||||
let clearAll = () => {
|
||||
Swal.fire({
|
||||
text: '将会清空所有命令,请确认!',
|
||||
@ -79,7 +79,7 @@ let clearAll = () => {
|
||||
})
|
||||
}
|
||||
|
||||
let programs = {
|
||||
programs = {
|
||||
shell: {
|
||||
bin: 'bash',
|
||||
argv: '',
|
||||
@ -166,7 +166,7 @@ let programs = {
|
||||
}
|
||||
}
|
||||
|
||||
let showOptions = (tag = "默认") => {
|
||||
showOptions = (tag = "默认") => {
|
||||
$("#options").empty().fadeIn();
|
||||
var currentFts = utools.getFeatures(),
|
||||
customFts = getDB('customFts');
|
||||
@ -185,21 +185,25 @@ let showOptions = (tag = "默认") => {
|
||||
if (!fts.tags) return false
|
||||
if (!fts.tags.includes(tag)) return false
|
||||
}
|
||||
var cmds = '', rules;
|
||||
var cmds = '', rules = features.cmds[0].match;
|
||||
if (features.cmds[0].type == 'regex') {
|
||||
rules = features.cmds[0].match;
|
||||
if (rules.length > 15) rules = rules.slice(0, 15) + '...';
|
||||
cmds = `<div class="topchild">正则</div><div><span class="keyword re">${rules}</span></div>`;
|
||||
} else if (features.cmds[0].type == 'window') {
|
||||
rules = features.cmds[0].match.app.join(",")
|
||||
if(rules.length > 15) rules = rules.slice(0, 15) + '...';
|
||||
cmds += `<div class="topchild">窗口</div><div>`
|
||||
if (!rules) {
|
||||
cmds += `<span class="keyword win">所有窗口</span>`
|
||||
} else if (rules.title || rules.class) {
|
||||
cmds += `<span class="keyword win">${JSON.stringify(rules).slice(0, 15) + '...'}</span>`;
|
||||
} else if (rules.app) {
|
||||
rules = rules.app.join(",")
|
||||
if(rules.length > 15) rules = rules.slice(0, 15) + '...';
|
||||
rules.split(',').forEach(r => {
|
||||
cmds += `<span class="keyword win">${r}</span>`;
|
||||
});
|
||||
}
|
||||
cmds += `</div>`
|
||||
} else if (features.cmds[0].type == 'files') {
|
||||
rules = features.cmds[0].match
|
||||
if (rules.length > 15) rules = rules.slice(0, 15) + '...';
|
||||
cmds = `<div class="topchild">文件</div><div><span class="keyword fil">${rules}</span></div>`;
|
||||
} else {
|
||||
@ -227,7 +231,7 @@ let showOptions = (tag = "默认") => {
|
||||
<div class="topchild">${features.explain}</div>
|
||||
<div>
|
||||
<span class="info">
|
||||
<span style="margin: 0; color: ${fts.program == 'quickcommand' ? "#00af2c;" : programs[fts.program].color}">●</span>
|
||||
<span style="margin: 0; font-size: smaller; color: ${fts.program == 'quickcommand' ? "#00af2c;" : programs[fts.program].color}">●</span>
|
||||
${fts.program} | ${platformIcons.join('')}
|
||||
</div>
|
||||
</td>
|
||||
@ -345,7 +349,7 @@ let showCustomize = (readonly = false) => {
|
||||
<img id="win32" class="platform" src="./img/win32.svg">
|
||||
<img id="darwin" class="platform" src="./img/darwin.svg">
|
||||
<img id="linux" class="platform" src="./img/linux.svg">
|
||||
${readonly ? '' : '<button class="button cmdBtn save">保存</button>'}
|
||||
${(readonly && !fofoCommon.isDev()) ? '' : '<button class="button cmdBtn save">保存</button>'}
|
||||
<button class="button cmdBtn run">运行</button>
|
||||
<button class="button cmdBtn cancel">取消</button>
|
||||
</p>`
|
||||
@ -373,13 +377,13 @@ let showCustomize = (readonly = false) => {
|
||||
maximumSelectionLength: 3,
|
||||
dropdownParent: $("#customize")
|
||||
}).on("select2:unselecting", e => {
|
||||
(e.params.args.data.text == "默认") && e.preventDefault();
|
||||
(e.params.args.data.text == "默认") && !fofoCommon.isDev() && e.preventDefault();
|
||||
}).on("select2:selecting", e => {
|
||||
(e.params.args.data.text == "默认" || e.params.args.data.text == "未分类") && e.preventDefault();
|
||||
(e.params.args.data.text == "默认" || e.params.args.data.text == "未分类") && !fofoCommon.isDev() && e.preventDefault();
|
||||
})
|
||||
}
|
||||
|
||||
createEditor = () => {
|
||||
let createEditor = () => {
|
||||
window.editor = CodeMirror.fromTextArea(document.getElementById("cmd"), {
|
||||
lineNumbers: true,
|
||||
matchBrackets: true,
|
||||
@ -389,8 +393,10 @@ createEditor = () => {
|
||||
keyMap: "sublime",
|
||||
theme: "mdn-like",
|
||||
extraKeys: {
|
||||
"Alt-Enter": cm => {
|
||||
cm.setOption("fullScreen", !cm.getOption("fullScreen"));
|
||||
"Alt-Enter": () => {
|
||||
$('.CodeMirror').hasClass('CodeMirror-fullscreen') &&
|
||||
$('.CodeMirror').removeClass('CodeMirror-fullscreen') ||
|
||||
$('.CodeMirror').addClass('CodeMirror-fullscreen')
|
||||
},
|
||||
"Ctrl-B": () => {
|
||||
runCurrentCommand()
|
||||
@ -414,7 +420,7 @@ createEditor = () => {
|
||||
window.editor.setOption("mode", 'javascript');
|
||||
}
|
||||
|
||||
let showHint = () => {
|
||||
showHint = () => {
|
||||
editor.showHint({ completeSingle: false });
|
||||
}
|
||||
|
||||
@ -473,7 +479,7 @@ let typeCheck = () => {
|
||||
$("#ruleWord").html("进 程");
|
||||
$(".var.regex, .var.files").prop("disabled", true)
|
||||
$(".var.window").prop("disabled", false)
|
||||
$("#rule").prop("placeholder", '窗口的进程名,多个用逗号隔开');
|
||||
$("#rule").prop("placeholder", '多个窗口进程逗号隔开,留空匹配所有窗口');
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -604,7 +610,9 @@ $("#options").on('click', '.editBtn', function () {
|
||||
if (cmds.type == 'regex' || cmds.type == 'files') {
|
||||
$('#rule').val(cmds.match);
|
||||
} else if (cmds.type == 'window') {
|
||||
$('#rule').val(cmds.match.app);
|
||||
if (!cmds.match) $('#rule').val('');
|
||||
else if (cmds.match.title || cmds.match.class) $('#rule').val(JSON.stringify(cmds.match));
|
||||
else $('#rule').val(cmds.match.app);
|
||||
} else {
|
||||
$('#type').val('key').trigger("change")
|
||||
$('#rule').val(data.features.cmds.toString());
|
||||
@ -745,15 +753,15 @@ $("#options").on('click', '#icon, #iconame', function () {
|
||||
}
|
||||
})
|
||||
|
||||
let SaveCurrentCommand = async (debug = false) => {
|
||||
let SaveCurrentCommand = async () => {
|
||||
if ($('#tags').is(":parent")) {
|
||||
var type = $('#type').val(),
|
||||
code = $("#code").val(),
|
||||
tags = $('#tags').val(),
|
||||
rule = $('#rule').val(),
|
||||
cmd = window.editor.getValue();
|
||||
if (tags && tags.includes("默认") && !debug) return
|
||||
if (!rule) return swal.fire(`${$('#ruleWord').text().replace(" ", "")} 不能留空!`)
|
||||
if (tags && tags.includes("默认") && !fofoCommon.isDev()) return
|
||||
if (type != "window" && !rule) return swal.fire(`${$('#ruleWord').text().replace(" ", "")} 不能留空!`)
|
||||
if (!cmdCheck(type, cmd)) return
|
||||
if (!code) {
|
||||
// 生成唯一code
|
||||
@ -972,7 +980,6 @@ let runCurrentCommand = async () => {
|
||||
}
|
||||
|
||||
let killCurrentCommand = () => {
|
||||
|
||||
}
|
||||
|
||||
let quitCurrentCommand = () => {
|
||||
@ -994,6 +1001,7 @@ let highlightIfKnown = ext => {
|
||||
showCodeEditor = file => {
|
||||
let options = `<option>${Object.keys(programs).join('</option><option>')}</option>`
|
||||
var customWindow = `
|
||||
|
||||
<div id="customize">
|
||||
<select id="program">
|
||||
<option value="quickcommand">quickcommand</option>
|
||||
@ -1013,12 +1021,12 @@ showCodeEditor = file => {
|
||||
<span id="addKey" class="footBtn robot">﹢按键</span>
|
||||
<span id="showHelp" class="footBtn robot">?帮助</span>
|
||||
</span>
|
||||
<textarea id="cmd" placeholder="可以直接拖放脚本文件至此处, 支持VSCode快捷键\nCtrl+B 运行\nCtrl+F 搜索\nShift+Alt+F 格式化(仅JS/PY)"></textarea>
|
||||
<textarea id="cmd" placeholder="可以直接拖放脚本文件至此处, 支持VSCode快捷键\nCtrl+B 运行\nCtrl+F 搜索\nAlt+Enter 全屏\nShift+Alt+F 格式化(仅JS/PY)"></textarea>
|
||||
</div>
|
||||
`
|
||||
$("#options").html(customWindow)
|
||||
createEditor()
|
||||
$(".CodeMirror").css({ bottom: "0", top: "33px", left: "0", right: "0" })
|
||||
$(".CodeMirror").addClass('CodeMirror-coderunner')
|
||||
$("#customize").css({ top: '0px', padding: '0px' });
|
||||
$("span.customscript > input").css({"height": "30px"})
|
||||
var db = getDB('codeHistory')
|
||||
@ -1044,7 +1052,7 @@ showCodeEditor = file => {
|
||||
}
|
||||
programCheck()
|
||||
$('#program').select2({
|
||||
width: 130,
|
||||
width: 140,
|
||||
minimumResultsForSearch: Infinity,
|
||||
dropdownParent: $("#customize"),
|
||||
dropdownAutoWidth: true
|
||||
@ -1122,3 +1130,4 @@ Mousetrap.bind('ctrl+b', () => {
|
||||
runCurrentCommand()
|
||||
return false
|
||||
});
|
||||
}()
|
Loading…
x
Reference in New Issue
Block a user