!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}((function(t){"use strict";var e="CodeMirror-lint-markers";function n(t){t.parentNode&&t.parentNode.removeChild(t)}function o(e,o,i,r){var a=function(e,n,o){var i=document.createElement("div");function r(e){if(!i.parentNode)return t.off(document,"mousemove",r);i.style.top=Math.max(0,e.clientY-i.offsetHeight-5)+"px",i.style.left=e.clientX+5+"px"}return i.className="CodeMirror-lint-tooltip cm-s-"+e.options.theme,i.appendChild(o.cloneNode(!0)),e.state.lint.options.selfContain?e.getWrapperElement().appendChild(i):document.body.appendChild(i),t.on(document,"mousemove",r),r(n),null!=i.style.opacity&&(i.style.opacity=1),i}(e,o,i);function s(){var e;t.off(r,"mouseout",s),a&&((e=a).parentNode&&(null==e.style.opacity&&n(e),e.style.opacity=0,setTimeout((function(){n(e)}),600)),a=null)}var l=setInterval((function(){if(a)for(var t=r;;t=t.parentNode){if(t&&11==t.nodeType&&(t=t.host),t==document.body)return;if(!t){s();break}}if(!a)return clearInterval(l)}),400);t.on(r,"mouseout",s)}function i(t,e,n){for(var i in this.marked=[],e instanceof Function&&(e={getAnnotations:e}),e&&!0!==e||(e={}),this.options={},this.linterOptions=e.options||{},r)this.options[i]=r[i];for(var i in e)r.hasOwnProperty(i)?null!=e[i]&&(this.options[i]=e[i]):e.options||(this.linterOptions[i]=e[i]);this.timeout=null,this.hasGutter=n,this.onMouseOver=function(e){!function(t,e){var n=e.target||e.srcElement;if(!/\bCodeMirror-lint-mark-/.test(n.className))return;for(var i=n.getBoundingClientRect(),r=(i.left+i.right)/2,a=(i.top+i.bottom)/2,s=t.findMarksAt(t.coordsChar({left:r,top:a},"client")),u=[],c=0;c-1)&&p.push(t.message)}));for(var d=null,h=o.hasGutter&&document.createDocumentFragment(),g=0;g1,i.tooltips)),i.highlightLines&&t.addLineClass(f,"wrap","CodeMirror-lint-line-"+d)}}i.onUpdateLinting&&i.onUpdateLinting(n,c,t)}}function f(t){var e=t.state.lint;e&&(clearTimeout(e.timeout),e.timeout=setTimeout((function(){u(t)}),e.options.delay))}t.defineOption("lint",!1,(function(n,o,r){if(r&&r!=t.Init&&(a(n),!1!==n.state.lint.options.lintOnChange&&n.off("change",f),t.off(n.getWrapperElement(),"mouseover",n.state.lint.onMouseOver),clearTimeout(n.state.lint.timeout),delete n.state.lint),o){for(var s=n.getOption("gutters"),l=!1,c=0;c