您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Basic Syntax Highlighting and Auto-Completion. Enter key intelligently Auto-completes or Auto-Runs the query. Table names completion NYI.
- // ==UserScript==
- // @name Oracle iAcademy suckless
- // @namespace http://tampermonkey.net/
- // @version 0.2.2
- // @description Basic Syntax Highlighting and Auto-Completion. Enter key intelligently Auto-completes or Auto-Runs the query. Table names completion NYI.
- // @author You
- // @match https://iacademy.oracle.com/*
- // @require https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/codemirror.js
- // @require https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/addon/hint/show-hint.js
- // @require https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/addon/hint/sql-hint.js
- // @require https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/mode/sql/sql.js
- // @require https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/addon/selection/active-line.js
- // @require https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/addon/edit/matchbrackets.js
- // ==/UserScript==
- // Like this? Share with your class! Send them a link to:
- // https://greasyfork.org/en/scripts/25355-oracle-iacademy-suckless
- // Know javascript? Please Takeover! I wrote this on the last day of class, there is lots of room for improvement!
- // Post your forks on greasyfork and send me a link in feedback. I will redirect people to the most up-to-date script.
- function importScript(src) {
- var script = document.createElement('script');
- script.type = "text/javascript";
- script.src = src;
- document.body.appendChild(script);
- return script;
- }
- function importCSS(src) {
- var script = document.createElement('link');
- script.type = "text/css";
- script.rel='stylesheet';
- script.href = src;
- document.head.appendChild(script);
- return script;
- }
- importCSS("https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/codemirror.css");
- importCSS("https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/addon/hint/show-hint.css");
- importCSS("https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/theme/neonsyntax.css");
- //importScript();
- // Wait a second or lineNumber will develop a overlaping problem
- setTimeout(function() {
- var ExcludedIntelliSenseTriggerKeys =
- {
- "8": "backspace",
- "9": "tab",
- "13": "enter",
- "16": "shift",
- "17": "ctrl",
- "18": "alt",
- "19": "pause",
- "20": "capslock",
- "27": "escape",
- "33": "pageup",
- "34": "pagedown",
- "35": "end",
- "36": "home",
- "37": "left",
- "38": "up",
- "39": "right",
- "40": "down",
- "45": "insert",
- "46": "delete",
- "91": "left window key",
- "92": "right window key",
- "93": "select",
- "107": "add",
- "109": "subtract",
- "110": "decimal point",
- "111": "divide",
- "112": "f1",
- "113": "f2",
- "114": "f3",
- "115": "f4",
- "116": "f5",
- "117": "f6",
- "118": "f7",
- "119": "f8",
- "120": "f9",
- "121": "f10",
- "122": "f11",
- "123": "f12",
- "144": "numlock",
- "145": "scrolllock",
- "186": "semicolon",
- "187": "equalsign",
- "188": "comma",
- "189": "dash",
- "190": "period",
- "191": "slash",
- "192": "graveaccent",
- "220": "backslash",
- "222": "quote"
- };
- var RunBtn = document.getElementsByClassName('aButton hotButton')[0];
- var RunSQL_Cmd;
- if (RunBtn.textContent == 'Run') {
- RunSQL_Cmd = RunBtn.onclick;
- }
- var SQL_Box = document.getElementById('P1003_SQL_COMMAND1');
- CodeMirror.commands.autocomplete = function(cm) {
- CodeMirror.showHint(cm, CodeMirror.hint.sql);
- };
- var SQL_Mirror = CodeMirror.fromTextArea(SQL_Box, {
- mode: "text/x-sql",
- //theme: "neonsyntax",
- lineWrapping: true,
- lineNumbers: true,
- styleActiveLine: true,
- extraKeys: {
- "Ctrl-Space": "autocomplete"
- },
- matchBrackets: true,
- });
- SQL_Mirror.on("keyup", function(editor, event) {
- var __Cursor = editor.getDoc().getCursor();
- var __Token = editor.getTokenAt(__Cursor);
- if (!editor.state.completionActive &&
- !ExcludedIntelliSenseTriggerKeys[(event.keyCode || event.which).toString()] &&
- (__Token.type == "tag" || __Token.string == " " || __Token.string == "<" || __Token.string == "/" ))
- {
- CodeMirror.commands.autocomplete(editor, null, { completeSingle: false });
- } else if (event.keyCode == 13 && event.shiftKey === false) {
- RunSQL_Cmd();
- // TODO eat the enter keypress
- }
- });
- SQL_Mirror.setSize(SQL_Box.style.width, '100%');
- SQL_Mirror.on("change", function(cm, change) { cm.save(); });
- }, 1000);