(function(a){if(typeof exports=="object"&&typeof module=="object")a(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/edit/matchbrackets"));else if(typeof define=="function"&&define.amd)define(["../lib/codemirror","../addon/search/searchcursor","../addon/edit/matchbrackets"],a);else a(CodeMirror)})(function(a){"use strict";var b=a.commands;var c=a.Pos;function d(b,d,e){if(e<0&&d.ch==0)return b.clipPos(c(d.line-1));var f=b.getLine(d.line);if(e>0&&d.ch>=f.length)return b.clipPos(c(d.line+1,0));var g="start",h,i=d.ch;for(var j=i,k=e<0?0:f.length,l=0;j!=k;j+=e,l++){var m=f.charAt(e<0?j-1:j);var n=m!="_"&&a.isWordChar(m)?"w":"o";if(n=="w"&&m.toUpperCase()==m)n="W";if(g=="start"){if(n!="o"){g="in";h=n}else i=j+e}else if(g=="in"){if(h!=n){if(h=="w"&&n=="W"&&e<0)j--;if(h=="W"&&n=="w"&&e>0){if(j==i+1){h="w";continue}else j--}break}}}return c(d.line,j)}function e(a,b){a.extendSelectionsBy(function(c){if(a.display.shift||a.doc.extend||c.empty())return d(a.doc,c.head,b);else return b<0?c.from():c.to()})}b.goSubwordLeft=function(a){e(a,-1)};b.goSubwordRight=function(a){e(a,1)};b.scrollLineUp=function(a){var b=a.getScrollInfo();if(!a.somethingSelected()){var c=a.lineAtHeight(b.top+b.clientHeight,"local");if(a.getCursor().line>=c)a.execCommand("goLineUp")}a.scrollTo(null,b.top-a.defaultTextHeight())};b.scrollLineDown=function(a){var b=a.getScrollInfo();if(!a.somethingSelected()){var c=a.lineAtHeight(b.top,"local")+1;if(a.getCursor().line<=c)a.execCommand("goLineDown")}a.scrollTo(null,b.top+a.defaultTextHeight())};b.splitSelectionByLine=function(a){var b=a.listSelections(),d=[];for(var e=0;ef.line&&h==g.line&&g.ch==0))d.push({anchor:h==f.line?f:c(h,0),head:h==g.line?g:c(h)})}a.setSelections(d,0)};b.singleSelectionTop=function(a){var b=a.listSelections()[0];a.setSelection(b.anchor,b.head,{scroll:false})};b.selectLine=function(a){var b=a.listSelections(),d=[];for(var e=0;ef)e.push(j,k);else if(e.length)e[e.length-1]=k;f=k}b.operation(function(){for(var a=0;ab.lastLine())b.replaceRange("\n"+h,c(b.lastLine()),null,"+swapLine");else b.replaceRange(h+"\n",c(f,0),null,"+swapLine")}b.setSelections(g);b.scrollIntoView()})};b.swapLineDown=function(b){if(b.isReadOnly())return a.Pass;var d=b.listSelections(),e=[],f=b.lastLine()+1;for(var g=d.length-1;g>=0;g--){var h=d[g],i=h.to().line+1,j=h.from().line;if(h.to().ch==0&&!h.empty())i--;if(i=0;a-=2){var d=e[a],f=e[a+1];var g=b.getLine(d);if(d==b.lastLine())b.replaceRange("",c(d-1),c(d),"+swapLine");else b.replaceRange("",c(d,0),c(d+1,0),"+swapLine");b.replaceRange(g+"\n",c(f,0),null,"+swapLine")}b.scrollIntoView()})};b.toggleCommentIndented=function(a){a.toggleComment({indent:true})};b.joinLines=function(a){var b=a.listSelections(),d=[];for(var e=0;e=0;h--){var i=d[e[h]];if(j&&a.cmpPos(i.head,j)>0)continue;var k=g(b,i.head);j=k.from;b.replaceRange(c(k.word),k.from,k.to)}})}b.smartBackspace=function(b){if(b.somethingSelected())return a.Pass;b.operation(function(){var d=b.listSelections();var e=b.getOption("indentUnit");for(var f=d.length-1;f>=0;f--){var g=d[f].head;var h=b.getRange({line:g.line,ch:0},g);var i=a.countColumn(h,null,b.getOption("tabSize"));var j=b.findPosH(g,-1,"char",false);if(h&&!/\S/.test(h)&&i%e==0){var k=new c(g.line,a.findColumn(h,i-e,e));if(k.ch!=g.ch)j=k}b.replaceRange("",j,g,"+delete")}})};b.delLineRight=function(a){a.operation(function(){var b=a.listSelections();for(var d=b.length-1;d>=0;d--)a.replaceRange("",b[d].anchor,c(b[d].to().line),"+delete");a.scrollIntoView()})};b.upcaseAtCursor=function(a){n(a,function(a){return a.toUpperCase()})};b.downcaseAtCursor=function(a){n(a,function(a){return a.toLowerCase()})};b.setSublimeMark=function(a){if(a.state.sublimeMark)a.state.sublimeMark.clear();a.state.sublimeMark=a.setBookmark(a.getCursor())};b.selectToSublimeMark=function(a){var b=a.state.sublimeMark&&a.state.sublimeMark.find();if(b)a.setSelection(a.getCursor(),b)};b.deleteToSublimeMark=function(b){var c=b.state.sublimeMark&&b.state.sublimeMark.find();if(c){var d=b.getCursor(),e=c;if(a.cmpPos(d,e)>0){var f=e;e=d;d=f}b.state.sublimeKilled=b.getRange(d,e);b.replaceRange("",d,e)}};b.swapWithSublimeMark=function(a){var b=a.state.sublimeMark&&a.state.sublimeMark.find();if(b){a.state.sublimeMark.clear();a.state.sublimeMark=a.setBookmark(a.getCursor());a.setCursor(b)}};b.sublimeYank=function(a){if(a.state.sublimeKilled!=null)a.replaceSelection(a.state.sublimeKilled,null,"paste")};b.showInCenter=function(a){var b=a.cursorCoords(null,"local");a.scrollTo(null,(b.top+b.bottom)/2-a.getScrollInfo().clientHeight/2)};function o(b){var c=b.getCursor("from"),d=b.getCursor("to");if(a.cmpPos(c,d)==0){var e=g(b,c);if(!e.word)return;c=e.from;d=e.to}return{from:c,to:d,query:b.getRange(c,d),word:e}}function p(a,b){var d=o(a);if(!d)return;var e=d.query;var f=a.getSearchCursor(e,b?d.to:d.from);if(b?f.findNext():f.findPrevious()){a.setSelection(f.from(),f.to())}else{f=a.getSearchCursor(e,b?c(a.firstLine(),0):a.clipPos(c(a.lastLine())));if(b?f.findNext():f.findPrevious())a.setSelection(f.from(),f.to());else if(d.word)a.setSelection(d.from,d.to)}}b.findUnder=function(a){p(a,true)};b.findUnderPrevious=function(a){p(a,false)};b.findAllUnder=function(a){var b=o(a);if(!b)return;var c=a.getSearchCursor(b.query);var d=[];var e=-1;while(c.findNext()){d.push({anchor:c.from(),head:c.to()});if(c.from().line<=b.from.line&&c.from().ch<=b.from.ch)e++}a.setSelections(d,e)};var q=a.keyMap;q.macSublime={"Cmd-Left":"goLineStartSmart","Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-Left":"goSubwordLeft","Ctrl-Right":"goSubwordRight","Ctrl-Alt-Up":"scrollLineUp","Ctrl-Alt-Down":"scrollLineDown","Cmd-L":"selectLine","Shift-Cmd-L":"splitSelectionByLine",Esc:"singleSelectionTop","Cmd-Enter":"insertLineAfter","Shift-Cmd-Enter":"insertLineBefore","Cmd-D":"selectNextOccurrence","Shift-Cmd-Space":"selectScope","Shift-Cmd-M":"selectBetweenBrackets","Cmd-M":"goToBracket","Cmd-Ctrl-Up":"swapLineUp","Cmd-Ctrl-Down":"swapLineDown","Cmd-/":"toggleCommentIndented","Cmd-J":"joinLines","Shift-Cmd-D":"duplicateLine",F5:"sortLines","Cmd-F5":"sortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Cmd-F2":"toggleBookmark","Shift-Cmd-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Cmd-K Cmd-D":"skipAndSelectNextOccurrence","Cmd-K Cmd-K":"delLineRight","Cmd-K Cmd-U":"upcaseAtCursor","Cmd-K Cmd-L":"downcaseAtCursor","Cmd-K Cmd-Space":"setSublimeMark","Cmd-K Cmd-A":"selectToSublimeMark","Cmd-K Cmd-W":"deleteToSublimeMark","Cmd-K Cmd-X":"swapWithSublimeMark","Cmd-K Cmd-Y":"sublimeYank","Cmd-K Cmd-C":"showInCenter","Cmd-K Cmd-G":"clearBookmarks","Cmd-K Cmd-Backspace":"delLineLeft","Cmd-K Cmd-1":"foldAll","Cmd-K Cmd-0":"unfoldAll","Cmd-K Cmd-J":"unfoldAll","Ctrl-Shift-Up":"addCursorToPrevLine","Ctrl-Shift-Down":"addCursorToNextLine","Cmd-F3":"findUnder","Shift-Cmd-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Cmd-[":"fold","Shift-Cmd-]":"unfold","Cmd-I":"findIncremental","Shift-Cmd-I":"findIncrementalReverse","Cmd-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"macDefault"};a.normalizeKeyMap(q.macSublime);q.pcSublime={"Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-T":"transposeChars","Alt-Left":"goSubwordLeft","Alt-Right":"goSubwordRight","Ctrl-Up":"scrollLineUp","Ctrl-Down":"scrollLineDown","Ctrl-L":"selectLine","Shift-Ctrl-L":"splitSelectionByLine",Esc:"singleSelectionTop","Ctrl-Enter":"insertLineAfter","Shift-Ctrl-Enter":"insertLineBefore","Ctrl-D":"selectNextOccurrence","Shift-Ctrl-Space":"selectScope","Shift-Ctrl-M":"selectBetweenBrackets","Ctrl-M":"goToBracket","Shift-Ctrl-Up":"swapLineUp","Shift-Ctrl-Down":"swapLineDown","Ctrl-/":"toggleCommentIndented","Ctrl-J":"joinLines","Shift-Ctrl-D":"duplicateLine",F9:"sortLines","Ctrl-F9":"sortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Ctrl-F2":"toggleBookmark","Shift-Ctrl-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Ctrl-K Ctrl-D":"skipAndSelectNextOccurrence","Ctrl-K Ctrl-K":"delLineRight","Ctrl-K Ctrl-U":"upcaseAtCursor","Ctrl-K Ctrl-L":"downcaseAtCursor","Ctrl-K Ctrl-Space":"setSublimeMark","Ctrl-K Ctrl-A":"selectToSublimeMark","Ctrl-K Ctrl-W":"deleteToSublimeMark","Ctrl-K Ctrl-X":"swapWithSublimeMark","Ctrl-K Ctrl-Y":"sublimeYank","Ctrl-K Ctrl-C":"showInCenter","Ctrl-K Ctrl-G":"clearBookmarks","Ctrl-K Ctrl-Backspace":"delLineLeft","Ctrl-K Ctrl-1":"foldAll","Ctrl-K Ctrl-0":"unfoldAll","Ctrl-K Ctrl-J":"unfoldAll","Ctrl-Alt-Up":"addCursorToPrevLine","Ctrl-Alt-Down":"addCursorToNextLine","Ctrl-F3":"findUnder","Shift-Ctrl-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Ctrl-[":"fold","Shift-Ctrl-]":"unfold","Ctrl-I":"findIncremental","Shift-Ctrl-I":"findIncrementalReverse","Ctrl-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"pcDefault"};a.normalizeKeyMap(q.pcSublime);var r=q.default==q.macDefault;q.sublime=r?q.macSublime:q.pcSublime}); //# sourceMappingURL=sublime.min.js.map