forked from mkaminsky11/codeyourcloud
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcomment.min.js
More file actions
1 lines (1 loc) · 1.83 KB
/
Copy pathcomment.min.js
File metadata and controls
1 lines (1 loc) · 1.83 KB
1
(function(mod){if(typeof exports=="object"&&typeof module=="object")return mod(exports);if(typeof define=="function"&&define.amd)return define(["exports"],mod);mod(tern.comment||(tern.comment={}))})(function(exports){function isSpace(ch){return ch<14&&ch>8||ch===32||ch===160}function onOwnLine(text,pos){for(;pos>0;--pos){var ch=text.charCodeAt(pos-1);if(ch==10)break;if(!isSpace(ch))return false}return true}exports.commentsBefore=function(text,pos){var found=null,emptyLines=0,topIsLineComment;out:while(pos>0){var prev=text.charCodeAt(pos-1);if(prev==10){for(var scan=--pos,sawNonWS=false;scan>0;--scan){prev=text.charCodeAt(scan-1);if(prev==47&&text.charCodeAt(scan-2)==47){if(!onOwnLine(text,scan-2))break out;var content=text.slice(scan,pos);if(!emptyLines&&topIsLineComment)found[0]=content+"\n"+found[0];else(found||(found=[])).unshift(content);topIsLineComment=true;emptyLines=0;pos=scan-2;break}else if(prev==10){if(!sawNonWS&&++emptyLines>1)break out;break}else if(!sawNonWS&&!isSpace(prev)){sawNonWS=true}}}else if(prev==47&&text.charCodeAt(pos-2)==42){for(var scan=pos-2;scan>1;--scan){if(text.charCodeAt(scan-1)==42&&text.charCodeAt(scan-2)==47){if(!onOwnLine(text,scan-2))break out;(found||(found=[])).unshift(text.slice(scan,pos-2));topIsLineComment=false;emptyLines=0;break}}pos=scan-2}else if(isSpace(prev)){--pos}else{break}}return found};exports.commentAfter=function(text,pos){while(pos<text.length){var next=text.charCodeAt(pos);if(next==47){var after=text.charCodeAt(pos+1),end;if(after==47)end=text.indexOf("\n",pos+2);else if(after==42)end=text.indexOf("*/",pos+2);else return;return text.slice(pos+2,end<0?text.length:end)}else if(isSpace(next)){++pos}}};exports.ensureCommentsBefore=function(text,node){if(node.hasOwnProperty("commentsBefore"))return node.commentsBefore;return node.commentsBefore=exports.commentsBefore(text,node.start)}});