1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2025-11-08 11:32:59 +00:00
Files
TiddlyWiki5/plugins/tiddlywiki/codemirror-keymap-sublime-text/files/keymap/sublime.js
Leilei332 cd480de280 Bump codemirror 5 plugin version to 5.65.19 (#9114)
* Bump codemirror 5 plugin version to 5.65.19

* Update autocomplete

* Update closebrackets

* Update fullscreen

* Update keymap

* Update modes

* Update search

* Update trailingspace

* Fix broken markdown mode

* Add all codemirror plugins to codemirrordemo edition
2025-06-28 16:18:42 +01:00

1 line
15 KiB
JavaScript
Executable File

!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/edit/matchbrackets")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/edit/matchbrackets"],e):e(CodeMirror)}(function(h){"use strict";var r=h.commands,C=h.Pos;function t(d,m){d.extendSelectionsBy(function(e){if(d.display.shift||d.doc.extend||e.empty()){var t=d.doc,n=e.head,r=m;if(r<0&&0==n.ch)return t.clipPos(C(n.line-1));var o=t.getLine(n.line);if(0<r&&n.ch>=o.length)return t.clipPos(C(n.line+1,0));for(var i,l="start",s=n.ch,a=s,c=r<0?0:o.length;a!=c;a+=r){var f=o.charAt(r<0?a-1:a),u="_"!=f&&h.isWordChar(f)?"w":"o";if("w"==u&&f.toUpperCase()==f&&(u="W"),"start"==l)"o"!=u?(l="in",i=u):s=a+r;else if("in"==l&&i!=u){if("w"==i&&"W"==u&&r<0&&a--,"W"==i&&"w"==u&&0<r){if(a==s+1){i="w";continue}a--}break}}return C(n.line,a)}return m<0?e.from():e.to()})}function n(l,s){if(l.isReadOnly())return h.Pass;l.operation(function(){for(var e=l.listSelections().length,t=[],n=-1,r=0;r<e;r++){var o,i=l.listSelections()[r].head;i.line<=n||(o=C(i.line+(s?0:1),0),l.replaceRange("\n",o,null,"+insertLine"),l.indentLine(o.line,null,!0),t.push({head:o,anchor:o}),n=i.line+1)}l.setSelections(t)}),l.execCommand("indentAuto")}function c(e,t){for(var n=t.ch,r=n,o=e.getLine(t.line);n&&h.isWordChar(o.charAt(n-1));)--n;for(;r<o.length&&h.isWordChar(o.charAt(r));)++r;return{from:C(t.line,n),to:C(t.line,r),word:o.slice(n,r)}}function o(e,t){for(var n=e.listSelections(),r=[],o=0;o<n.length;o++){var i=n[o],l=e.findPosV(i.anchor,t,"line",i.anchor.goalColumn),s=e.findPosV(i.head,t,"line",i.head.goalColumn),l=(l.goalColumn=null!=i.anchor.goalColumn?i.anchor.goalColumn:e.cursorCoords(i.anchor,"div").left,s.goalColumn=null!=i.head.goalColumn?i.head.goalColumn:e.cursorCoords(i.head,"div").left,{anchor:l,head:s});r.push(i),r.push(l)}e.setSelections(r)}r.goSubwordLeft=function(e){t(e,-1)},r.goSubwordRight=function(e){t(e,1)},r.scrollLineUp=function(e){var t,n=e.getScrollInfo();e.somethingSelected()||(t=e.lineAtHeight(n.top+n.clientHeight,"local"),e.getCursor().line>=t&&e.execCommand("goLineUp")),e.scrollTo(null,n.top-e.defaultTextHeight())},r.scrollLineDown=function(e){var t,n=e.getScrollInfo();e.somethingSelected()||(t=e.lineAtHeight(n.top,"local")+1,e.getCursor().line<=t&&e.execCommand("goLineDown")),e.scrollTo(null,n.top+e.defaultTextHeight())},r.splitSelectionByLine=function(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++)for(var o=t[r].from(),i=t[r].to(),l=o.line;l<=i.line;++l)i.line>o.line&&l==i.line&&0==i.ch||n.push({anchor:l==o.line?o:C(l,0),head:l==i.line?i:C(l)});e.setSelections(n,0)},r.singleSelectionTop=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},r.selectLine=function(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){var o=t[r];n.push({anchor:C(o.from().line,0),head:C(o.to().line+1,0)})}e.setSelections(n)},r.insertLineAfter=function(e){return n(e,!1)},r.insertLineBefore=function(e){return n(e,!0)},r.selectNextOccurrence=function(e){var t=e.getCursor("from"),n=e.getCursor("to"),r=e.state.sublimeFindFullWord==e.doc.sel;if(0==h.cmpPos(t,n)){var o=c(e,t);if(!o.word)return;e.setSelection(o.from,o.to),r=!0}else{o=e.getRange(t,n),t=r?new RegExp("\\b"+o+"\\b"):o,o=e.getSearchCursor(t,n);if(!(o.findNext()||(o=e.getSearchCursor(t,C(e.firstLine(),0))).findNext())||function(e,t,n){for(var r=0;r<e.length;r++)if(0==h.cmpPos(e[r].from(),t)&&0==h.cmpPos(e[r].to(),n))return 1;return}(e.listSelections(),o.from(),o.to()))return;e.addSelection(o.from(),o.to())}r&&(e.state.sublimeFindFullWord=e.doc.sel)},r.skipAndSelectNextOccurrence=function(e){var t=e.getCursor("anchor"),n=e.getCursor("head");r.selectNextOccurrence(e),0!=h.cmpPos(t,n)&&e.doc.setSelections(e.doc.listSelections().filter(function(e){return e.anchor!=t||e.head!=n}))},r.addCursorToPrevLine=function(e){o(e,-1)},r.addCursorToNextLine=function(e){o(e,1)};var f="(){}[]";function i(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){var o=t[r],i=o.head,l=e.scanForBracket(i,-1);if(!l)return;for(;;){var s=e.scanForBracket(i,1);if(!s)return;if(s.ch==f.charAt(f.indexOf(l.ch)+1)){var a=C(l.pos.line,l.pos.ch+1);if(0!=h.cmpPos(a,o.from())||0!=h.cmpPos(s.pos,o.to())){n.push({anchor:a,head:s.pos});break}if(!(l=e.scanForBracket(l.pos,-1)))return}i=C(s.pos.line,s.pos.ch+1)}}return e.setSelections(n),1}function l(e){return e?/\bpunctuation\b/.test(e)?e:void 0:null}function s(l,s,a){if(l.isReadOnly())return h.Pass;for(var c,e=l.listSelections(),f=[],t=0;t<e.length;t++){var n=e[t];if(!n.empty()){for(var r=n.from().line,o=n.to().line;t<e.length-1&&e[t+1].from().line==o;)o=e[++t].to().line;e[t].to().ch||o--,f.push(r,o)}}f.length?c=!0:f.push(l.firstLine(),l.lastLine()),l.operation(function(){for(var e=[],t=0;t<f.length;t+=2){var n=f[t],r=f[t+1],n=C(n,0),o=C(r),i=l.getRange(n,o,!1);s?i.sort(function(e,t){return e<t?-a:e==t?0:a}):i.sort(function(e,t){var n=e.toUpperCase(),r=t.toUpperCase();return n!=r&&(e=n,t=r),e<t?-a:e==t?0:a}),l.replaceRange(i,n,o),c&&e.push({anchor:n,head:C(r+1,0)})}c&&l.setSelections(e,0)})}function a(s,a){s.operation(function(){for(var e=s.listSelections(),t=[],n=[],r=0;r<e.length;r++)(l=e[r]).empty()?(t.push(r),n.push("")):n.push(a(s.getRange(l.from(),l.to())));s.replaceSelections(n,"around","case");for(r=t.length-1;0<=r;r--){var o,i,l=e[t[r]];i&&0<h.cmpPos(l.head,i)||(i=(o=c(s,l.head)).from,s.replaceRange(a(o.word),o.from,o.to))}})}function u(e){var t=e.getCursor("from"),n=e.getCursor("to");if(0==h.cmpPos(t,n)){var r=c(e,t);if(!r.word)return;t=r.from,n=r.to}return{from:t,to:n,query:e.getRange(t,n),word:r}}function d(e,t){var n,r,o=u(e);o&&(n=o.query,r=e.getSearchCursor(n,t?o.to:o.from),(t?r.findNext():r.findPrevious())?e.setSelection(r.from(),r.to()):(r=e.getSearchCursor(n,t?C(e.firstLine(),0):e.clipPos(C(e.lastLine()))),(t?r.findNext():r.findPrevious())?e.setSelection(r.from(),r.to()):o.word&&e.setSelection(o.from,o.to)))}r.selectScope=function(e){i(e)||e.execCommand("selectAll")},r.selectBetweenBrackets=function(e){if(!i(e))return h.Pass},r.goToBracket=function(n){n.extendSelectionsBy(function(e){var t=n.scanForBracket(e.head,1,l(n.getTokenTypeAt(e.head)));if(t&&0!=h.cmpPos(t.pos,e.head))return t.pos;t=n.scanForBracket(e.head,-1,l(n.getTokenTypeAt(C(e.head.line,e.head.ch+1))));return t&&C(t.pos.line,t.pos.ch+1)||e.head})},r.swapLineUp=function(o){if(o.isReadOnly())return h.Pass;for(var e=o.listSelections(),i=[],t=o.firstLine()-1,l=[],n=0;n<e.length;n++){var r=e[n],s=r.from().line-1,a=r.to().line;l.push({anchor:C(r.anchor.line-1,r.anchor.ch),head:C(r.head.line-1,r.head.ch)}),0!=r.to().ch||r.empty()||--a,t<s?i.push(s,a):i.length&&(i[i.length-1]=a),t=a}o.operation(function(){for(var e=0;e<i.length;e+=2){var t=i[e],n=i[e+1],r=o.getLine(t);o.replaceRange("",C(t,0),C(t+1,0),"+swapLine"),n>o.lastLine()?o.replaceRange("\n"+r,C(o.lastLine()),null,"+swapLine"):o.replaceRange(r+"\n",C(n,0),null,"+swapLine")}o.setSelections(l),o.scrollIntoView()})},r.swapLineDown=function(o){if(o.isReadOnly())return h.Pass;for(var e=o.listSelections(),i=[],t=o.lastLine()+1,n=e.length-1;0<=n;n--){var r=e[n],l=r.to().line+1,s=r.from().line;0!=r.to().ch||r.empty()||l--,l<t?i.push(l,s):i.length&&(i[i.length-1]=s),t=s}o.operation(function(){for(var e=i.length-2;0<=e;e-=2){var t=i[e],n=i[e+1],r=o.getLine(t);t==o.lastLine()?o.replaceRange("",C(t-1),C(t),"+swapLine"):o.replaceRange("",C(t,0),C(t+1,0),"+swapLine"),o.replaceRange(r+"\n",C(n,0),null,"+swapLine")}o.scrollIntoView()})},r.toggleCommentIndented=function(e){e.toggleComment({indent:!0})},r.joinLines=function(a){for(var e=a.listSelections(),c=[],t=0;t<e.length;t++){for(var n=e[t],r=n.from(),o=r.line,i=n.to().line;t<e.length-1&&e[t+1].from().line==i;)i=e[++t].to().line;c.push({start:o,end:i,anchor:!n.empty()&&r})}a.operation(function(){for(var e=0,t=[],n=0;n<c.length;n++){for(var r,o=c[n],i=o.anchor&&C(o.anchor.line-e,o.anchor.ch),l=o.start;l<=o.end;l++){var s=l-e;l==o.end&&(r=C(s,a.getLine(s).length+1)),s<a.lastLine()&&(a.replaceRange(" ",C(s),C(1+s,/^\s*/.exec(a.getLine(1+s))[0].length)),++e)}t.push({anchor:i||r,head:r})}a.setSelections(t,0)})},r.duplicateLine=function(r){r.operation(function(){for(var e=r.listSelections().length,t=0;t<e;t++){var n=r.listSelections()[t];n.empty()?r.replaceRange(r.getLine(n.head.line)+"\n",C(n.head.line,0)):r.replaceRange(r.getRange(n.from(),n.to()),n.from())}r.scrollIntoView()})},r.sortLines=function(e){s(e,!0,1)},r.reverseSortLines=function(e){s(e,!0,-1)},r.sortLinesInsensitive=function(e){s(e,!1,1)},r.reverseSortLinesInsensitive=function(e){s(e,!1,-1)},r.nextBookmark=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){var n=t.shift(),r=n.find();if(r)return t.push(n),e.setSelection(r.from,r.to)}},r.prevBookmark=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){t.unshift(t.pop());var n=t[t.length-1].find();if(n)return e.setSelection(n.from,n.to);t.pop()}},r.toggleBookmark=function(e){for(var t=e.listSelections(),n=e.state.sublimeBookmarks||(e.state.sublimeBookmarks=[]),r=0;r<t.length;r++){for(var o=t[r].from(),i=t[r].to(),l=t[r].empty()?e.findMarksAt(o):e.findMarks(o,i),s=0;s<l.length;s++)if(l[s].sublimeBookmark){l[s].clear();for(var a=0;a<n.length;a++)n[a]==l[s]&&n.splice(a--,1);break}s==l.length&&n.push(e.markText(o,i,{sublimeBookmark:!0,clearWhenEmpty:!1}))}},r.clearBookmarks=function(e){var t=e.state.sublimeBookmarks;if(t)for(var n=0;n<t.length;n++)t[n].clear();t.length=0},r.selectBookmarks=function(e){var t=e.state.sublimeBookmarks,n=[];if(t)for(var r=0;r<t.length;r++){var o=t[r].find();o?n.push({anchor:o.from,head:o.to}):t.splice(r--,0)}n.length&&e.setSelections(n,0)},r.smartBackspace=function(s){if(s.somethingSelected())return h.Pass;s.operation(function(){for(var e=s.listSelections(),t=s.getOption("indentUnit"),n=e.length-1;0<=n;n--){var r=e[n].head,o=s.getRange({line:r.line,ch:0},r),i=h.countColumn(o,null,s.getOption("tabSize")),l=s.findPosH(r,-1,"char",!1);!o||/\S/.test(o)||i%t!=0||(o=new C(r.line,h.findColumn(o,i-t,t))).ch!=r.ch&&(l=o),s.replaceRange("",l,r,"+delete")}})},r.delLineRight=function(n){n.operation(function(){for(var e=n.listSelections(),t=e.length-1;0<=t;t--)n.replaceRange("",e[t].anchor,C(e[t].to().line),"+delete");n.scrollIntoView()})},r.upcaseAtCursor=function(e){a(e,function(e){return e.toUpperCase()})},r.downcaseAtCursor=function(e){a(e,function(e){return e.toLowerCase()})},r.setSublimeMark=function(e){e.state.sublimeMark&&e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor())},r.selectToSublimeMark=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&e.setSelection(e.getCursor(),t)},r.deleteToSublimeMark=function(e){var t,n,r=e.state.sublimeMark&&e.state.sublimeMark.find();r&&(n=e.getCursor(),0<h.cmpPos(n,r=r)&&(t=r,r=n,n=t),e.state.sublimeKilled=e.getRange(n,r),e.replaceRange("",n,r))},r.swapWithSublimeMark=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&(e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor()),e.setCursor(t))},r.sublimeYank=function(e){null!=e.state.sublimeKilled&&e.replaceSelection(e.state.sublimeKilled,null,"paste")},r.showInCenter=function(e){var t=e.cursorCoords(null,"local");e.scrollTo(null,(t.top+t.bottom)/2-e.getScrollInfo().clientHeight/2)},r.findUnder=function(e){d(e,!0)},r.findUnderPrevious=function(e){d(e,!1)},r.findAllUnder=function(e){var t=u(e);if(t){for(var n=e.getSearchCursor(t.query),r=[],o=-1;n.findNext();)r.push({anchor:n.from(),head:n.to()}),n.from().line<=t.from.line&&n.from().ch<=t.from.ch&&o++;e.setSelections(r,o)}};var e=h.keyMap,m=(e.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","Shift-F5":"reverseSortLines","Cmd-F5":"sortLinesInsensitive","Shift-Cmd-F5":"reverseSortLinesInsensitive",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"},h.normalizeKeyMap(e.macSublime),e.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","Shift-F9":"reverseSortLines","Ctrl-F9":"sortLinesInsensitive","Shift-Ctrl-F9":"reverseSortLinesInsensitive",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"},h.normalizeKeyMap(e.pcSublime),e.default==e.macDefault);e.sublime=m?e.macSublime:e.pcSublime});