|
17 | 17 |
|
18 | 18 | CodeMirror.customOverlayMode = function (base, overlay, combine) { |
19 | 19 | return { |
20 | | - startState: function () { |
21 | | - return { |
22 | | - base: CodeMirror.startState(base), |
23 | | - overlay: CodeMirror.startState(overlay), |
24 | | - basePos: 0, |
25 | | - baseCur: null, |
26 | | - overlayPos: 0, |
27 | | - overlayCur: null, |
28 | | - streamSeen: null, |
29 | | - }; |
30 | | - }, |
31 | | - copyState: function (state) { |
32 | | - return { |
33 | | - base: CodeMirror.copyState(base, state.base), |
34 | | - overlay: CodeMirror.copyState(overlay, state.overlay), |
35 | | - basePos: state.basePos, |
36 | | - baseCur: null, |
37 | | - overlayPos: state.overlayPos, |
38 | | - overlayCur: null, |
39 | | - }; |
40 | | - }, |
| 20 | + startState: () => ({ |
| 21 | + base: CodeMirror.startState(base), |
| 22 | + overlay: CodeMirror.startState(overlay), |
| 23 | + basePos: 0, |
| 24 | + baseCur: null, |
| 25 | + overlayPos: 0, |
| 26 | + overlayCur: null, |
| 27 | + streamSeen: null, |
| 28 | + }), |
| 29 | + copyState: state => ({ |
| 30 | + base: CodeMirror.copyState(base, state.base), |
| 31 | + overlay: CodeMirror.copyState(overlay, state.overlay), |
| 32 | + basePos: state.basePos, |
| 33 | + baseCur: null, |
| 34 | + overlayPos: state.overlayPos, |
| 35 | + overlayCur: null, |
| 36 | + }), |
41 | 37 |
|
42 | | - token: function (stream, state) { |
| 38 | + token: (stream, state) => { |
43 | 39 | if (stream != state.streamSeen || Math.min(state.basePos, state.overlayPos) < stream.start) { |
44 | 40 | state.streamSeen = stream; |
45 | 41 | state.basePos = state.overlayPos = stream.start; |
|
56 | 52 | } |
57 | 53 | stream.pos = Math.min(state.basePos, state.overlayPos); |
58 | 54 |
|
59 | | - // // Edge case for codeblocks in templater mode |
60 | | - // if ( |
61 | | - // state.baseCur && |
62 | | - // state.overlayCur && |
63 | | - // state.baseCur.contains("line-HyperMD-codeblock") |
64 | | - // ) { |
65 | | - // state.overlayCur = state.overlayCur.replace( |
66 | | - // "line-templater-inline", |
67 | | - // "" |
68 | | - // ); |
69 | | - // state.overlayCur += ` line-background-HyperMD-codeblock-bg`; |
70 | | - // } |
71 | | - |
72 | 55 | // state.overlay.combineTokens always takes precedence over combine, |
73 | 56 | // unless set to null |
74 | | - if (state.overlayCur == null) return state.baseCur; |
75 | | - else if ((state.baseCur != null && state.overlay.combineTokens) || (combine && state.overlay.combineTokens == null)) return state.baseCur + ' ' + state.overlayCur; |
76 | | - else return state.overlayCur; |
| 57 | + if (state.overlayCur == null) { |
| 58 | + return state.baseCur; |
| 59 | + } else if ((state.baseCur != null && state.overlay.combineTokens) || (combine && state.overlay.combineTokens == null)) { |
| 60 | + return state.baseCur + ' ' + state.overlayCur; |
| 61 | + } else { |
| 62 | + return state.overlayCur; |
| 63 | + } |
77 | 64 | }, |
78 | 65 |
|
79 | | - indent: |
80 | | - base.indent && |
81 | | - function (state, textAfter, line) { |
82 | | - return base.indent(state.base, textAfter, line); |
83 | | - }, |
| 66 | + indent: base.indent && ((state, textAfter, line) => base.indent(state.base, textAfter, line)), |
| 67 | + |
84 | 68 | electricChars: base.electricChars, |
85 | 69 |
|
86 | | - innerMode: function (state) { |
87 | | - return { state: state.base, mode: base }; |
88 | | - }, |
| 70 | + innerMode: state => ({ state: state.base, mode: base }), |
89 | 71 |
|
90 | | - blankLine: function (state) { |
91 | | - var baseToken, overlayToken; |
| 72 | + blankLine: state => { |
| 73 | + let baseToken, overlayToken; |
92 | 74 | if (base.blankLine) baseToken = base.blankLine(state.base); |
93 | 75 | if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay); |
94 | 76 |
|
|
0 commit comments