github.com/cayleygraph/cayley@v0.7.7/static/third_party/codemirror/addon/comment/continuecomment.min.js (about)

     1  (function(){function n(e){var t=e.getCursor(),n=e.getTokenAt(t);if(n.type!="comment"||e.getOption("disableInput"))return CodeMirror.Pass;var r=CodeMirror.innerMode(e.getMode(),n.state).mode,i;if(r.blockCommentStart&&r.blockCommentContinue){var s=n.string.indexOf(r.blockCommentEnd),o=e.getRange(CodeMirror.Pos(t.line,0),CodeMirror.Pos(t.line,n.end)),u;if(s==-1||s!=n.string.length-r.blockCommentEnd.length)if(n.string.indexOf(r.blockCommentStart)==0){i=o.slice(0,n.start);if(!/^\s*$/.test(i)){i="";for(var a=0;a<n.start;++a)i+=" "}}else(u=o.indexOf(r.blockCommentContinue))!=-1&&u+r.blockCommentContinue.length>n.start&&/^\s*$/.test(o.slice(0,u))&&(i=o.slice(0,u));i!=null&&(i+=r.blockCommentContinue)}if(i==null&&r.lineComment){var f=e.getLine(t.line),u=f.indexOf(r.lineComment);u>-1&&(i=f.slice(0,u),/\S/.test(i)?i=null:i+=r.lineComment+f.slice(u+r.lineComment.length).match(/^\s*/)[0])}if(i==null)return CodeMirror.Pass;e.replaceSelection("\n"+i,"end")}var e=["clike","css","javascript"];for(var t=0;t<e.length;++t)CodeMirror.extendMode(e[t],{blockCommentContinue:" * "});CodeMirror.defineOption("continueComments",null,function(e,t,r){r&&r!=CodeMirror.Init&&e.removeKeyMap("continueComment");if(t){var i={name:"continueComment"};i[typeof t=="string"?t:"Enter"]=n,e.addKeyMap(i)}})})();