UNPKG

@ryusei/code

Version:

<div align="center"> <a href="https://code.ryuseijs.com"> <img alt="RyuseiCode" src="https://code.ryuseijs.com/images/svg/logo.svg" width="70"> </a>

15 lines (14 loc) 4.77 kB
!function(n,t){"function"==typeof define&&define.amd?define([],t):"undefined"!=typeof exports?t():(t(),n.unknown={})}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,function(){"use strict";function r(n,t){return(r=Object.setPrototypeOf||function(n,t){return n.__proto__=t,n})(n,t)}function e(n,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}} /*! * RyuseiCode.js * Version : 0.1.17 * License : MIT * Copyright: 2021 Naotoshi Fujita */ /*! * RyuseiLight.js * Version : 1.2.0 * License : MIT * Copyright: 2020 Naotoshi Fujita */ var u="bracket";function o(n){return null!==n&&"object"==typeof n}function v(n){return void 0===n}function f(n,t){if(n)for(var i=Object.keys(n),r=0;r<i.length&&!1!==t(n[i[r]],i[r]);r++);return n}function s(r){for(var n=arguments.length,t=new Array(1<n?n-1:0),i=1;i<n;i++)t[i-1]=arguments[i];return t.forEach(function(i){o(i)&&f(i,function(n,t){v(i[t])||(r[t]=i[t])})}),r}var c=new WeakMap;function h(r,e,u,o,f){var s,c;function n(){o&&a();for(var n=arguments.length,t=new Array(n),i=0;i<n;i++)t[i]=arguments[i];c=h.bind.apply(h,[this].concat(t)),s||(v(s)&&u?c():s=f?requestAnimationFrame(c):setTimeout(c,e))}function h(){for(var n=arguments.length,t=new Array(n),i=0;i<n;i++)t[i]=arguments[i];r.apply(this,t),a()}function a(){(f?cancelAnimationFrame:clearTimeout)(s),s=null}return n.cancel=a,n.invoke=function(){s&&c()},n}function a(n){return n.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}var l={brackets:[["(","[","{","<"],[")","]","}",">"]],maxScanLines:1e3},d="brackets",n=function(e){var n;function t(){return e.apply(this,arguments)||this}i=e,(n=t).prototype=Object.create(i.prototype),r(n.prototype.constructor=n,i);var i=t.prototype;return i.mount=function(n){var t,i=this,r=this.getOptions("bracketMatching",l);this.n=r.brackets,this.t=r.maxScanLines,e.prototype.mount.call(this,n),this.i=h(function(){i.Range.clear(d)},50,!1,!0),this.r=h(this.r.bind(this),0,t,!1,!0),this.on("selected",this.e,this),this.on("blur",this.i),this.on("readOnly",function(n,t){t&&i.i()})},i.e=function(n,t){t.is(2,5,6)?this.i():t.is(3)&&!this.Editor.readOnly&&t.isCollapsed()&&this.r()},i.r=function(){var t=this,n=this.Selection.focus,i=0<n[1]?[n[0],n[1]-1]:null;this.i.invoke(),[i,n].some(function(n){if(n&&t.Scope.inCategory(u,n))return t.u(n[0],t.lines.getInfoAt(n)),!0})},i.u=function(n,t){var i,r=this.o(!1,n,t)||this.o(!0,n,t);r&&((i=this.Range).clear(d),i.register(d,[this.f(n,t),this.f(r.row,r.info)]))},i.o=function(n,t,i){var r=this.n,e=r[Number(!n)].indexOf(i.code);if(-1<e){e=r[Number(n)][e];return this.lines["scan"+(n?"Down":"Up")]([t,i.from],[u,new RegExp(a(e))],[u,new RegExp(a(i.code))],1,this.t)}},i.f=function(n,t){return{start:[n,t.from],end:[n,t.to]}},t}(function(){function n(n){this.Editor=n,this.event=n.event,this.options=n.options,this.language=n.language}var t,i,r=n.prototype;return r.mount=function(n){var i=this;this.elements=n,f(this.Editor.Components,function(n,t){i[t]=n})},r.destroy=function(){!function t(i,n,r){"function"==typeof r?n.split(" ").forEach(function(n){i.removeEventListener(n,r)}):(n=c.get(r))&&(n.forEach(function(n){t(n.elm,n.events,n.callback)}),c.delete(r))}(null,"",this)},r.on=function(n,t,i,r){this.event.on(n,i?t.bind(i):t,this,r)},r.off=function(n){this.event.off(n,this)},r.emit=function(n){for(var t,i=arguments.length,r=new Array(1<i?i-1:0),e=1;e<i;e++)r[e-1]=arguments[e];(t=this.event).emit.apply(t,[n].concat(r))},r.bind=function(n,t,i,r){var e,u,o,f;e=n,u=t,o=r?i.bind(r):i,f=this,u.split(" ").forEach(function(n){e.addEventListener(n,o),f&&((n=c.get(f)||[]).push({elm:e,events:u,callback:o}),c.set(f,n))})},r.getLanguage=function(n){n=n||this.Selection.focus;var t=this.language,n=this.lines.getInfoAt(n);return n&&n.language&&t.use&&t.use[n.language]?t.use[n.language].config:t},r.invoke=function(n,t){for(var i,r=arguments.length,e=new Array(2<r?r-2:0),u=2;u<r;u++)e[u-2]=arguments[u];return(i=this.Editor).invoke.apply(i,[n,t].concat(e))},r.require=function(n){return this.Editor.require(n)},r.addIcons=function(n){var t=this.options;t.icons=s({},n,t.icons)},r.addI18n=function(n){var t=this.options;t.i18n=s({},n,t.i18n)},r.addKeyBindings=function(n){var t=this.options;t.keymap=s({},n,t.keymap)},r.getOptions=function(n,t){n=this.options[n];return v(n)||!0===n?t||{}:o(n)?s({},t,n):void function(n,t){if(void 0===t&&(t=""),!n)throw new Error("[ryuseicode] "+t)}(!1)},t=n,(r=[{key:"lines",get:function(){return this.Code.Lines}},{key:"i18n",get:function(){return this.options.i18n}}])&&e(t.prototype,r),i&&e(t,i),n}());"undefined"!=typeof window&&window.RyuseiCode&&window.RyuseiCode.compose({BracketMatching:n})});