MCPcopy Create free account
hub / github.com/TruthHun/BookStack / indenter

Function indenter

static/editor.md/lib/codemirror/mode/erlang/erlang.js:506–547  ·  view source on GitHub ↗
(state,textAfter)

Source from the content-addressed store, hash-verified

504// indenter
505
506 function indenter(state,textAfter) {
507 var t;
508 var unit = cmCfg.indentUnit;
509 var wordAfter = wordafter(textAfter);
510 var currT = peekToken(state,1);
511 var prevT = peekToken(state,2);
512
513 if (state.in_string || state.in_atom) {
514 return CodeMirror.Pass;
515 }else if (!prevT) {
516 return 0;
517 }else if (currT.token == "when") {
518 return currT.column+unit;
519 }else if (wordAfter === "when" && prevT.type === "function") {
520 return prevT.indent+unit;
521 }else if (wordAfter === "(" && currT.token === "fun") {
522 return currT.column+3;
523 }else if (wordAfter === "catch" && (t = getToken(state,["try"]))) {
524 return t.column;
525 }else if (is_member(wordAfter,["end","after","of"])) {
526 t = getToken(state,["begin","case","fun","if","receive","try"]);
527 return t ? t.column : CodeMirror.Pass;
528 }else if (is_member(wordAfter,closeParenWords)) {
529 t = getToken(state,openParenWords);
530 return t ? t.column : CodeMirror.Pass;
531 }else if (is_member(currT.token,[",","|","||"]) ||
532 is_member(wordAfter,[",","|","||"])) {
533 t = postcommaToken(state);
534 return t ? t.column+t.token.length : unit;
535 }else if (currT.token == "->") {
536 if (is_member(prevT.token, ["receive","case","if","try"])) {
537 return prevT.column+unit+unit;
538 }else{
539 return prevT.column+unit;
540 }
541 }else if (is_member(currT.token,openParenWords)) {
542 return currT.column+currT.token.length;
543 }else{
544 t = defaultToken(state);
545 return truthy(t) ? t.column+unit : 0;
546 }
547 }
548
549 function wordafter(str) {
550 var m = str.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);

Callers 1

erlang.jsFile · 0.85

Calls 7

wordafterFunction · 0.85
peekTokenFunction · 0.85
getTokenFunction · 0.85
is_memberFunction · 0.85
postcommaTokenFunction · 0.85
defaultTokenFunction · 0.85
truthyFunction · 0.85

Tested by

no test coverage detected