forked from phcode-dev/staging.phcode.dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.js
More file actions
1 lines (1 loc) · 2.39 KB
/
Copy pathmain.js
File metadata and controls
1 lines (1 loc) · 2.39 KB
1
define(function(require,exports,module){var EditorManager=brackets.getModule("editor/EditorManager"),ExtensionUtils=brackets.getModule("utils/ExtensionUtils"),Strings=brackets.getModule("strings"),Mustache=brackets.getModule("thirdparty/mustache/mustache"),InlineTimingFunctionEditor=require("InlineTimingFunctionEditor").InlineTimingFunctionEditor,TimingFunctionUtils=require("TimingFunctionUtils"),Localized=require("text!Localized.css");function prepareEditorForProvider(hostEditor,pos){var cursorLine,sel,startPos,endPos,startBookmark,endBookmark,currentMatch,cm=hostEditor._codeMirror;if((sel=hostEditor.getSelection()).start.line!==sel.end.line)return{timingFunction:null,reason:null};if(!(cursorLine=hostEditor.document.getLine(pos.line)).match(/cubic-bezier|linear|ease|step/))return{timingFunction:null,reason:null};if(!(currentMatch=TimingFunctionUtils.timingFunctionMatch(cursorLine,!1)))return{timingFunction:null,reason:Strings.ERROR_TIMINGQUICKEDIT_INVALIDSYNTAX};for(var lineOffset=0,matchLength=currentMatch.originalString&¤tMatch.originalString.length||currentMatch[0].length;pos.ch>currentMatch.index+matchLength+lineOffset;){var restOfLine=cursorLine.substring(currentMatch.index+matchLength+lineOffset),newMatch=TimingFunctionUtils.timingFunctionMatch(restOfLine,!1);if(!newMatch)break;lineOffset+=currentMatch.index+matchLength,currentMatch=$.extend(!0,[],newMatch)}return currentMatch.lineOffset=lineOffset,startPos={line:pos.line,ch:lineOffset+currentMatch.index},endPos={line:pos.line,ch:lineOffset+currentMatch.index+matchLength},startBookmark=cm.setBookmark(startPos),endBookmark=cm.setBookmark(endPos),hostEditor.setSelection(startPos,endPos),{timingFunction:currentMatch,start:startBookmark,end:endBookmark}}function inlineTimingFunctionEditorProvider(hostEditor,pos){var context=prepareEditorForProvider(hostEditor,pos),inlineTimingFunctionEditor,result;return context.timingFunction?((inlineTimingFunctionEditor=new InlineTimingFunctionEditor(context.timingFunction,context.start,context.end)).load(hostEditor),(result=new $.Deferred).resolve(inlineTimingFunctionEditor),result.promise()):context.reason||null}function init(){ExtensionUtils.loadStyleSheet(module,"main.less"),ExtensionUtils.addEmbeddedStyleSheet(Mustache.render(Localized,Strings)),EditorManager.registerInlineEditProvider(inlineTimingFunctionEditorProvider)}init(),exports.inlineTimingFunctionEditorProvider=inlineTimingFunctionEditorProvider});