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