📄 syntax.js
字号:
function syntaxSQL(div) { var cur=div.innerHTML.replace(/<br>|<p>/ig, '\n').replace(/<[^>]*>/g, ''); var matchStr=[]; var quota=[ '\'[^\']*\'', '"[^"]*"' ]; for (var i=quota.length; i--;) { var reg=new RegExp('('+quota[i].replace(/[ ]/, '[ \t]+')+')', 'gi'); var match=cur.match(reg); if (match) { matchStr.splice(0, matchStr.length); for (var p=0; p < 10; p++) { if (match[p]) matchStr.push(match[p]); } if (matchStr) { var uStr=arrayUnique(matchStr); for (var p=uStr.length; p--;) { uStr[p]=trim(uStr[p]); var replace=new RegExp(uStr[p], 'g'); cur=cur.replace(replace, '<span class="quota">'+uStr[p]+'</span>'); } } } } var sql=[ 'ALTER TABLE ', ' RENAME TO ', ' ADD COLUMN ', 'ANALYZE ', 'ATTACH DATABASE ', 'BEGIN TRANSACTION ', 'COMMIT TRANSACTION ', 'COPY ', 'CREATE INDEX ', 'CREATE TABLE ', ' TEMP ', ' TEMPORARY ', ' CONSTRAINT ', 'CREATE TRIGGER ', ' BEFORE ', ' AFTER ', ' FOR EACH ROW( WHEN)? ', ' FOR EACH STATEMENT( WHEN)? ', 'CREATE VIEW ', ' AS ', 'DELETE ', ' FROM ', 'DETACH DATABASE ', 'DROP INDEX ', 'DROP TABLE ', 'DROP TRIGGER ', 'DROP VIEW ', 'END TRANSACTION ', 'EXPLAIN ', 'INSERT (OR REPLACE )?INTO ', ' VALUES', 'ON CONFLICT clause ', 'PRAGMA ', 'REINDEX ', 'REPLACE ', 'ROLLBACK TRANSACTION ', 'SELECT ', 'UPDATE ', ' SET ', 'VACUUM ', 'BEGIN', 'END', 'SHOW DATABASE', 'SHOW USER', 'SHOW TABLE', 'SHOW INDEX', 'SHOW TRIGGER', 'SHOW STATUS', 'SHOW VERSION', 'DESC ', 'CREATE DATABASE', 'DROP DATABASE', 'CREATE USER', 'DROP USER', 'GRANT (CREATE )?', 'REVOKE (CREATE )?' ]; for (var i=sql.length; i--;) { var reg=new RegExp('('+sql[i].replace(/[ ]/, '[ \t]*')+')', 'gi'); var match=cur.match(reg); if (match) { matchStr.splice(0, matchStr.length); for (var p=0; p < 10; p++) { if (match[p]) matchStr.push(match[p]); } if (matchStr) { var uStr=arrayUnique(matchStr); for (var p=uStr.length; p--;) { uStr[p]=trim(uStr[p]); var replace=new RegExp(uStr[p], 'g'); cur=cur.replace(replace, '<span class="SQL">'+uStr[p]+'</span>'); } } } } var types=[ ' int', ' integer', ' float', ' real', ' text', ' blob', ' not null', ' default', ' primary key', ' autoincrement', ' new\.', ' old\.' ]; for (var i=types.length; i--;) { var reg=new RegExp('('+types[i].replace(/[ ]/, '[ \t]+')+')', 'gi'); var match=cur.match(reg); if (match) { matchStr.splice(0, matchStr.length); for (var p=0; p < 10; p++) { if (match[p]) matchStr.push(match[p]); } if (matchStr) { var uStr=arrayUnique(matchStr); for (var p=uStr.length; p--;) { uStr[p]=trim(uStr[p]); var replace=new RegExp(uStr[p], 'g'); cur=cur.replace(replace, '<span class="types">'+uStr[p]+'</span>'); } } } } cur=cur.replace(/\n/g, '<br>'); div.innerHTML=cur;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -