Artifact
3d7e434a1395dca95aff00ff8643bd502bcdfc45:
- File
format.js
— part of check-in
[0809a8a59d]
at
2013-04-19 09:17:00
on branch trunk
— Выравнивает знаки = и знаки ==, !=, <=, => = не разрывая их.
Теперь выравнивание происходит не по дальнему знаку =, а по минимально-необходимому расстоянию для самой длинной строчки кода.
(user:
Slider
size: 11895)
0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69 ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 66 6f 72 6d 61 pt..$uname forma
0020: 74 5f 73 63 72 69 70 74 0d 0a 24 64 6e 61 6d 65 t_script..$dname
0030: 20 d0 a4 d0 be d1 80 d0 bc d0 b0 d1 82 d0 b8 d1 ...............
0040: 80 d0 be d0 b2 d0 b0 d0 bd d0 b8 d0 b5 20 d0 bc ............. ..
0050: d0 be d0 b4 d1 83 d0 bb d1 8f 0d 0a 0d 0a 2f 2f ..............//
0060: 20 28 d1 81 29 20 d0 90 d0 bb d0 b5 d0 ba d1 81 (..) ..........
0070: d0 b0 d0 bd d0 b4 d1 80 20 d0 9e d1 80 d0 b5 d1 ........ .......
0080: 84 d0 ba d0 be d0 b2 20 6f 72 65 66 6b 6f 76 40 ....... orefkov@
0090: 67 6d 61 69 6c 2e 63 6f 6d 0d 0a 2f 2f 20 d0 a1 gmail.com..// ..
00a0: d0 ba d1 80 d0 b8 d0 bf d1 82 20 d1 81 20 d1 80 .......... .. ..
00b0: d0 b0 d0 b7 d0 bd d1 8b d0 bc d0 b8 20 d0 bf d0 ............ ...
00c0: be d0 bb d0 b5 d0 b7 d0 bd d1 8b d0 bc d0 b8 20 ...............
00d0: d0 b4 d0 bb d1 8f 20 d1 84 d0 be d1 80 d0 bc d0 ...... .........
00e0: b0 d1 82 d0 b8 d1 80 d0 be d0 b2 d0 b0 d0 bd d0 ................
00f0: b8 d1 8f 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 ... ............
0100: 20 d0 bc d0 be d0 b4 d1 83 d0 bb d1 8f 20 d0 bc ............ ..
0110: d0 b0 d0 ba d1 80 d0 be d1 81 d0 b0 d0 bc d0 b8 ................
0120: 0d 0a 0d 0a 2f 2f 20 d0 bf d1 80 d0 be d0 b2 d0 ....// .........
0130: b5 d1 80 d1 8f d0 b5 d1 82 20 d0 bd d0 b0 d0 bb ......... ......
0140: d0 b8 d1 87 d0 b8 d0 b5 20 d1 80 d0 b0 d0 b7 d0 ........ .......
0150: bb d0 b8 d1 87 d0 bd d1 8b d1 85 20 d1 81 d0 be ........... ....
0160: d1 87 d0 b8 d1 82 d0 b0 d0 bd d0 b8 d0 b9 20 d1 .............. .
0170: 81 d0 be 20 d0 b7 d0 bd d0 b0 d0 ba d0 be d0 bc ... ............
0180: 20 d1 80 d0 b0 d0 b2 d0 bd d0 be 20 d0 b2 20 d1 .......... .. .
0190: 81 d1 82 d1 80 d0 be d0 ba d0 b5 2e 20 3e 3d 20 ............ >=
01a0: 3c 3d 20 21 3d 20 d0 b8 d1 82 d0 b4 0d 0a 66 75 <= != ........fu
01b0: 6e 63 74 69 6f 6e 20 69 73 45 71 43 6f 6d 62 69 nction isEqCombi
01c0: 6e 61 74 69 6f 6e 28 20 69 6e 70 75 74 4c 69 6e nation( inputLin
01d0: 65 20 29 0d 0a 7b 0d 0a 09 76 61 72 20 6c 69 6e e )..{...var lin
01e0: 65 3d 20 7b 20 74 65 78 74 3a 20 69 6e 70 75 74 e= { text: input
01f0: 4c 69 6e 65 20 7d 0d 0a 09 65 71 50 6f 73 09 3d Line }...eqPos.=
0200: 20 6c 69 6e 65 2e 74 65 78 74 2e 69 6e 64 65 78 line.text.index
0210: 4f 66 28 22 3d 22 29 0d 0a 09 69 66 20 28 20 65 Of("=")...if ( e
0220: 71 50 6f 73 20 3e 3d 20 30 20 29 0d 0a 09 7b 0d qPos >= 0 )...{.
0230: 0a 09 09 69 66 20 28 6c 69 6e 65 2e 74 65 78 74 ...if (line.text
0240: 2e 63 68 61 72 41 74 28 20 65 71 50 6f 73 20 2d .charAt( eqPos -
0250: 20 31 20 29 20 3d 3d 20 22 3e 22 20 7c 7c 20 6c 1 ) == ">" || l
0260: 69 6e 65 2e 74 65 78 74 2e 63 68 61 72 41 74 28 ine.text.charAt(
0270: 20 65 71 50 6f 73 20 2d 20 31 20 29 20 3d 3d 20 eqPos - 1 ) ==
0280: 22 3c 22 20 7c 7c 20 0d 0a 09 09 09 6c 69 6e 65 "<" || .....line
0290: 2e 74 65 78 74 2e 63 68 61 72 41 74 28 20 65 71 .text.charAt( eq
02a0: 50 6f 73 20 2d 20 31 20 29 20 3d 3d 20 22 3d 22 Pos - 1 ) == "="
02b0: 20 7c 7c 20 6c 69 6e 65 2e 74 65 78 74 2e 63 68 || line.text.ch
02c0: 61 72 41 74 28 20 65 71 50 6f 73 20 2d 20 31 20 arAt( eqPos - 1
02d0: 29 20 3d 3d 20 22 21 22 20 7c 7c 20 0d 0a 09 09 ) == "!" || ....
02e0: 09 6c 69 6e 65 2e 74 65 78 74 2e 63 68 61 72 41 .line.text.charA
02f0: 74 28 20 65 71 50 6f 73 20 2d 20 31 20 29 20 3d t( eqPos - 1 ) =
0300: 3d 20 22 2b 22 20 7c 7c 20 6c 69 6e 65 2e 74 65 = "+" || line.te
0310: 78 74 2e 63 68 61 72 41 74 28 20 65 71 50 6f 73 xt.charAt( eqPos
0320: 20 2d 20 31 20 29 20 3d 3d 20 22 2d 22 20 29 0d - 1 ) == "-" ).
0330: 0a 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 0d ....return true.
0340: 0a 09 09 65 6c 73 65 0d 0a 09 09 09 72 65 74 75 ...else.....retu
0350: 72 6e 20 66 61 6c 73 65 0d 0a 09 7d 0d 0a 09 65 rn false...}...e
0360: 6c 73 65 09 09 09 09 09 09 20 20 0d 0a 09 09 72 lse...... ....r
0370: 65 74 75 72 6e 20 66 61 6c 73 65 0d 0a 7d 0d 0a eturn false..}..
0380: 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 69 6c 6c 4c ..function fillL
0390: 69 6e 65 28 73 79 6d 62 6f 6c 2c 20 63 6f 75 6e ine(symbol, coun
03a0: 74 29 0d 0a 7b 09 0d 0a 09 69 66 20 28 20 63 6f t)..{....if ( co
03b0: 75 6e 74 20 3c 20 30 20 29 0d 0a 09 09 72 65 74 unt < 0 )....ret
03c0: 75 72 6e 20 22 22 09 09 0d 0a 20 20 20 20 76 61 urn "".... va
03d0: 72 20 74 65 78 74 20 09 3d 20 22 22 0d 0a 20 20 r text .= ""..
03e0: 20 20 77 68 69 6c 65 28 63 6f 75 6e 74 2d 2d 29 while(count--)
03f0: 0d 0a 20 20 20 20 20 20 20 20 74 65 78 74 20 2b .. text +
0400: 3d 20 73 79 6d 62 6f 6c 0d 0a 20 20 20 20 72 65 = symbol.. re
0410: 74 75 72 6e 20 74 65 78 74 0d 0a 7d 0d 0a 0d 0a turn text..}....
0420: 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 function macrosT
0430: 65 73 74 28 29 0d 0a 7b 0d 0a 09 2f 2f d0 bf d1 est()..{...//...
0440: 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0 b8 20 d0 bf ............. ..
0450: d0 be d0 b4 d0 b3 d0 be d1 82 d0 be d0 b2 d0 ba ................
0460: d0 b8 0d 0a 20 20 20 20 76 61 72 20 74 78 74 57 .... var txtW
0470: 6e 64 20 09 3d 20 73 6e 65 67 6f 70 61 74 2e 61 nd .= snegopat.a
0480: 63 74 69 76 65 54 65 78 74 57 69 6e 64 6f 77 28 ctiveTextWindow(
0490: 29 0d 0a 09 69 66 28 21 74 78 74 57 6e 64 29 0d )...if(!txtWnd).
04a0: 0a 09 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 ..{.. ret
04b0: 75 72 6e 0d 0a 09 7d 0d 0a 20 20 20 20 76 61 72 urn...}.. var
04c0: 20 73 65 6c 20 09 3d 20 74 78 74 57 6e 64 2e 67 sel .= txtWnd.g
04d0: 65 74 53 65 6c 65 63 74 69 6f 6e 28 29 0d 0a 20 etSelection()..
04e0: 20 20 20 76 61 72 20 65 6e 64 52 6f 77 20 09 3d var endRow .=
04f0: 20 73 65 6c 2e 65 6e 64 52 6f 77 09 0d 0a 20 20 sel.endRow...
0500: 20 20 69 66 28 73 65 6c 2e 65 6e 64 43 6f 6c 20 if(sel.endCol
0510: 3d 3d 20 31 29 0d 0a 20 20 20 20 20 20 20 20 65 == 1).. e
0520: 6e 64 52 6f 77 2d 2d 20 20 20 20 20 20 20 20 0d ndRow-- .
0530: 0a 20 20 20 20 0d 0a 09 2f 2f 20 d1 86 d0 b8 d0 . ...// .....
0540: ba d0 bb 20 d0 bf d0 be 20 d1 81 d1 82 d1 80 d0 ... .... .......
0550: be d1 87 d0 ba d0 b0 d0 bc 20 d0 b2 20 d0 bf d0 ......... .. ...
0560: be d0 b8 d1 81 d0 ba d0 b0 d1 85 20 d0 bc d0 b0 ........... ....
0570: d0 ba d1 81 d0 b8 d0 bc d0 b0 d0 bb d1 8c d0 bd ................
0580: d0 be d0 b9 20 d0 bf d0 be d0 b7 d0 b8 d1 86 d0 .... ...........
0590: b8 d0 b8 20 d0 b7 d0 bd d0 b0 d0 ba d0 b0 20 d0 ... .......... .
05a0: a0 d0 b0 d0 b2 d0 bd d0 be 0d 0a 20 20 20 20 66 ........... f
05b0: 6f 72 28 76 61 72 20 6c 20 3d 20 73 65 6c 2e 62 or(var l = sel.b
05c0: 65 67 69 6e 52 6f 77 3b 20 6c 20 3c 3d 20 65 6e eginRow; l <= en
05d0: 64 52 6f 77 3b 20 6c 2b 2b 29 0d 0a 20 20 20 20 dRow; l++)..
05e0: 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 6c {.. var l
05f0: 69 6e 65 20 3d 20 7b 74 65 78 74 3a 20 74 78 74 ine = {text: txt
0600: 57 6e 64 2e 6c 69 6e 65 28 6c 29 7d 20 0d 0a 09 Wnd.line(l)} ...
0610: 09 70 6f 73 69 74 69 6f 6e 20 3d 20 67 65 74 45 .position = getE
0620: 71 41 64 65 71 75 61 74 65 50 6f 73 69 74 69 6f qAdequatePositio
0630: 6e 28 20 6c 69 6e 65 2e 74 65 78 74 20 29 0d 0a n( line.text )..
0640: 20 20 20 20 7d 0d 0a 20 20 20 0d 0a 7d 0d 0a 0d }.. ..}...
0650: 0a 2f 2f 20 d0 bc d0 b8 d0 bd d0 b8 d0 bc d0 b0 .// ............
0660: d0 bb d1 8c d0 bd d0 be 2d d0 bd d0 b5 d0 be d0 ........-.......
0670: b1 d1 85 d0 be d0 b4 d0 b8 d0 bc d0 be d0 b5 20 ...............
0680: d1 80 d0 b0 d0 b7 d0 bc d0 b5 d1 89 d0 b5 d0 bd ................
0690: d0 b8 d0 b5 20 d0 b7 d0 bd d0 b0 d0 ba d0 b0 20 .... ..........
06a0: d0 a0 d0 90 d0 92 d0 9d d0 9e 0d 0a 66 75 6e 63 ............func
06b0: 74 69 6f 6e 20 67 65 74 45 71 41 64 65 71 75 61 tion getEqAdequa
06c0: 74 65 50 6f 73 69 74 69 6f 6e 28 20 69 6e 70 75 tePosition( inpu
06d0: 74 4c 69 6e 65 20 29 0d 0a 7b 09 0d 0a 20 20 20 tLine )..{...
06e0: 20 76 61 72 20 74 61 62 53 69 7a 65 09 3d 20 70 var tabSize.= p
06f0: 72 6f 66 69 6c 65 52 6f 6f 74 2e 67 65 74 56 61 rofileRoot.getVa
0700: 6c 75 65 28 22 4d 6f 64 75 6c 65 54 65 78 74 45 lue("ModuleTextE
0710: 64 69 74 6f 72 2f 54 61 62 53 69 7a 65 22 29 3b ditor/TabSize");
0720: 0d 0a 09 76 61 72 20 6c 69 6e 65 09 3d 20 7b 20 ...var line.= {
0730: 74 65 78 74 3a 20 69 6e 70 75 74 4c 69 6e 65 20 text: inputLine
0740: 7d 0d 0a 09 75 73 65 72 66 75 6c 49 6e 64 65 78 }...userfulIndex
0750: 3d 20 66 69 72 73 74 55 73 65 66 75 6c 4f 6e 54 = firstUsefulOnT
0760: 68 65 4c 65 66 74 28 20 69 6e 70 75 74 4c 69 6e heLeft( inputLin
0770: 65 20 29 09 0d 0a 09 70 6f 73 69 74 69 6f 6e 20 e )....position
0780: 09 3d 20 30 09 0d 0a 09 66 6f 72 28 20 76 61 72 .= 0....for( var
0790: 20 6b 20 3d 20 30 3b 20 6b 20 3c 3d 20 75 73 65 k = 0; k <= use
07a0: 72 66 75 6c 49 6e 64 65 78 3b 20 6b 2b 2b 20 29 rfulIndex; k++ )
07b0: 0d 0a 09 7b 0d 0a 09 09 69 66 28 20 6c 69 6e 65 ...{....if( line
07c0: 2e 74 65 78 74 2e 63 68 61 72 41 74 28 6b 29 20 .text.charAt(k)
07d0: 3d 3d 20 22 5c 74 22 20 29 20 0d 0a 09 09 09 70 == "\t" ) .....p
07e0: 6f 73 69 74 69 6f 6e 3d 70 6f 73 69 74 69 6f 6e osition=position
07f0: 20 2b 20 74 61 62 53 69 7a 65 0d 0a 09 09 65 6c + tabSize....el
0800: 73 65 0d 0a 09 09 09 70 6f 73 69 74 69 6f 6e 3d se.....position=
0810: 70 6f 73 69 74 69 6f 6e 2b 31 09 09 09 0d 0a 09 position+1......
0820: 7d 09 0d 0a 09 72 65 74 75 72 6e 20 70 6f 73 69 }....return posi
0830: 74 69 6f 6e 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 d0 tion;..}....// .
0840: 9d d0 b0 d0 b9 d1 82 d0 b8 20 d0 b2 20 d0 bb d0 ......... .. ...
0850: b5 d0 b2 d0 be d0 b9 20 d1 87 d0 b0 d1 81 d1 82 ....... ........
0860: d0 b8 20 d0 bf d1 80 d0 b8 d1 81 d0 b2 d0 be d0 .. .............
0870: b5 d0 bd d0 b8 d1 8f 20 d0 b8 d0 bd d0 b4 d0 b5 ....... ........
0880: d0 ba d1 81 20 d0 bf d0 b5 d1 80 d0 b2 d0 be d0 .... ...........
0890: b3 d0 be 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb ... ............
08a0: d0 b0 2c 20 d0 ba d0 be d1 82 d0 be d1 80 d1 8b .., ............
08b0: d0 b9 20 d0 bd d0 b5 20 d1 8f d0 b2 d0 bb d1 8f .. .... ........
08c0: d0 b5 d1 82 d1 81 d1 8f 20 d0 bf d1 80 d0 be d0 ........ .......
08d0: b1 d0 b5 d0 bb d0 be d0 bc 20 d0 b8 d0 bb d0 b8 ......... ......
08e0: 20 d1 82 d0 b0 d0 b1 d0 be d0 bc 2e 0d 0a 2f 2f .............//
08f0: 20 d0 b8 d0 bd d0 b4 d0 b5 d0 ba d1 81 d1 8b 20 ..............
0900: d0 b2 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 d1 .. .............
0910: 85 20 d0 b8 d0 b4 d1 83 d1 82 20 d1 81 20 30 2e . ........ .. 0.
0920: 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 69 72 73 74 ..function first
0930: 55 73 65 66 75 6c 4f 6e 54 68 65 4c 65 66 74 28 UsefulOnTheLeft(
0940: 20 69 6e 70 75 74 4c 69 6e 65 20 29 0d 0a 7b 09 inputLine )..{.
0950: 09 0d 0a 09 76 61 72 20 6c 69 6e 65 09 3d 20 7b ....var line.= {
0960: 20 74 65 78 74 3a 20 69 6e 70 75 74 4c 69 6e 65 text: inputLine
0970: 20 7d 0d 0a 09 65 71 52 65 61 6c 50 6f 73 09 3d }...eqRealPos.=
0980: 20 6c 69 6e 65 2e 74 65 78 74 2e 69 6e 64 65 78 line.text.index
0990: 4f 66 28 22 3d 22 29 0d 0a 09 0d 0a 09 69 66 20 Of("=")......if
09a0: 28 20 69 73 45 71 43 6f 6d 62 69 6e 61 74 69 6f ( isEqCombinatio
09b0: 6e 28 20 6c 69 6e 65 2e 74 65 78 74 20 29 20 29 n( line.text ) )
09c0: 0d 0a 09 09 73 65 61 72 63 68 50 6f 73 20 3d 20 ....searchPos =
09d0: 65 71 52 65 61 6c 50 6f 73 20 2d 20 32 0d 0a 09 eqRealPos - 2...
09e0: 65 6c 73 65 0d 0a 09 09 73 65 61 72 63 68 50 6f else....searchPo
09f0: 73 20 3d 20 65 71 52 65 61 6c 50 6f 73 20 2d 20 s = eqRealPos -
0a00: 31 0d 0a 09 09 0d 0a 09 66 6f 72 28 20 76 61 72 1.......for( var
0a10: 20 6b 20 3d 20 73 65 61 72 63 68 50 6f 73 3b 20 k = searchPos;
0a20: 6b 20 3e 3d 20 30 3b 20 6b 2d 2d 20 29 0d 0a 09 k >= 0; k-- )...
0a30: 7b 0d 0a 09 09 69 66 28 20 6c 69 6e 65 2e 74 65 {....if( line.te
0a40: 78 74 2e 63 68 61 72 41 74 28 20 6b 20 29 20 21 xt.charAt( k ) !
0a50: 3d 20 22 5c 74 22 20 26 26 20 6c 69 6e 65 2e 74 = "\t" && line.t
0a60: 65 78 74 2e 63 68 61 72 41 74 28 20 6b 20 29 20 ext.charAt( k )
0a70: 21 3d 20 22 20 22 20 20 29 20 0d 0a 09 09 09 72 != " " ) .....r
0a80: 65 74 75 72 6e 20 6b 3b 09 09 09 0d 0a 09 7d 0d eturn k;......}.
0a90: 0a 09 0d 0a 09 72 65 74 75 72 6e 20 2d 31 3b 0d .....return -1;.
0aa0: 0a 7d 0d 0a 20 0d 0a 2f 2f 20 d0 ba d0 b0 d0 ba .}.. ..// ......
0ab0: d0 be d0 b9 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 .... ...........
0ac0: bb 20 d0 a0 d0 90 d0 92 d0 9d d0 9e 20 d0 b8 d1 . .......... ...
0ad0: 81 d0 bf d0 be d0 bb d1 8c d0 b7 d1 83 d0 b5 d1 ................
0ae0: 82 d1 81 d1 8f 20 d0 b2 20 d1 81 d1 82 d1 80 d0 ..... .. .......
0af0: be d0 ba d0 b5 2e 20 3c 3d 2c 20 21 3d 20 d0 b8 ...... <=, != ..
0b00: d1 82 d0 b4 0d 0a 66 75 6e 63 74 69 6f 6e 20 65 ......function e
0b10: 71 53 79 6d 62 6f 6c 49 6e 4c 69 6e 65 28 20 69 qSymbolInLine( i
0b20: 6e 70 75 74 4c 69 6e 65 20 29 0d 0a 7b 0d 0a 09 nputLine )..{...
0b30: 63 6f 6d 62 69 6e 61 74 69 6f 6e 09 3d 20 22 3d combination.= "=
0b40: 22 3b 0d 0a 09 76 61 72 20 6c 69 6e 65 09 3d 20 ";...var line.=
0b50: 7b 20 74 65 78 74 3a 20 69 6e 70 75 74 4c 69 6e { text: inputLin
0b60: 65 20 7d 0d 0a 09 65 71 50 6f 73 09 09 3d 20 6c e }...eqPos..= l
0b70: 69 6e 65 2e 74 65 78 74 2e 69 6e 64 65 78 4f 66 ine.text.indexOf
0b80: 28 22 3d 22 29 09 0d 0a 09 69 66 20 28 20 69 73 ("=")....if ( is
0b90: 45 71 43 6f 6d 62 69 6e 61 74 69 6f 6e 28 20 6c EqCombination( l
0ba0: 69 6e 65 2e 74 65 78 74 20 29 20 29 09 09 0d 0a ine.text ) )....
0bb0: 09 09 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 3d 20 ..combination =
0bc0: 6c 69 6e 65 2e 74 65 78 74 2e 63 68 61 72 41 74 line.text.charAt
0bd0: 28 65 71 50 6f 73 2d 31 29 20 2b 20 22 3d 22 3b (eqPos-1) + "=";
0be0: 0d 0a 09 09 0d 0a 09 72 65 74 75 72 6e 20 63 6f .......return co
0bf0: 6d 62 69 6e 61 74 69 6f 6e 3b 0d 0a 7d 0d 0a 0d mbination;..}...
0c00: 0a 2f 2a 0d 0a 20 2a 20 d0 9c d0 b0 d0 ba d1 80 ./*.. * ........
0c10: d0 be d1 81 20 d0 b4 d0 bb d1 8f 20 d0 b2 d1 8b .... ...... ....
0c20: d1 80 d0 b0 d0 b2 d0 bd d0 b8 d0 b2 d0 b0 d0 bd ................
0c30: d0 b8 d1 8f 20 d0 b7 d0 bd d0 b0 d0 ba d0 be d0 .... ...........
0c40: b2 20 3d 0d 0a 20 2a 20 d0 92 d1 8b d1 81 d1 82 . =.. * ........
0c50: d1 80 d0 b0 d0 b8 d0 b2 d0 b0 d0 b5 d1 82 20 d0 .............. .
0c60: b7 d0 bd d0 b0 d0 ba d0 b8 20 3d 20 d0 b2 20 d0 ......... = .. .
0c70: b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd d0 ................
0c80: be d0 bc 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b5 ... ............
0c90: 20 d0 b2 20 d0 be d0 b4 d0 bd d1 83 20 d0 ba d0 .. ........ ...
0ca0: be d0 bb d0 be d0 bd d0 ba d1 83 2e 0d 0a 20 2a .............. *
0cb0: 20 0d 0a 20 2a 2f 0d 0a 0d 0a 66 75 6e 63 74 69 .. */....functi
0cc0: 6f 6e 20 6d 61 63 72 6f 73 d0 92 d1 8b d1 80 d0 on macros.......
0cd0: be d0 b2 d0 bd d1 8f d1 82 d1 8c d0 97 d0 bd d0 ................
0ce0: b0 d0 ba d0 b8 d0 a0 d0 b0 d0 b2 d0 bd d0 be 28 ...............(
0cf0: 29 0d 0a 7b 09 0d 0a 09 2f 2f d0 bf d1 80 d0 be )..{....//......
0d00: d0 b2 d0 b5 d1 80 d0 ba d0 b8 20 d0 bf d0 be d0 .......... .....
0d10: b4 d0 b3 d0 be d1 82 d0 be d0 b2 d0 ba d0 b8 0d ................
0d20: 0a 20 20 20 20 76 61 72 20 74 78 74 57 6e 64 20 . var txtWnd
0d30: 09 3d 20 73 6e 65 67 6f 70 61 74 2e 61 63 74 69 .= snegopat.acti
0d40: 76 65 54 65 78 74 57 69 6e 64 6f 77 28 29 0d 0a veTextWindow()..
0d50: 20 20 20 20 69 66 28 21 74 78 74 57 6e 64 29 0d if(!txtWnd).
0d60: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d . return.
0d70: 0a 20 20 20 20 76 61 72 20 73 65 6c 20 09 3d 20 . var sel .=
0d80: 74 78 74 57 6e 64 2e 67 65 74 53 65 6c 65 63 74 txtWnd.getSelect
0d90: 69 6f 6e 28 29 0d 0a 20 20 20 20 76 61 72 20 65 ion().. var e
0da0: 6e 64 52 6f 77 20 09 3d 20 73 65 6c 2e 65 6e 64 ndRow .= sel.end
0db0: 52 6f 77 0d 0a 20 20 20 20 69 66 28 73 65 6c 2e Row.. if(sel.
0dc0: 65 6e 64 43 6f 6c 20 3d 3d 20 31 29 0d 0a 20 20 endCol == 1)..
0dd0: 20 20 20 20 20 20 65 6e 64 52 6f 77 2d 2d 0d 0a endRow--..
0de0: 20 20 20 20 69 66 28 65 6e 64 52 6f 77 20 3c 3d if(endRow <=
0df0: 20 73 65 6c 2e 62 65 67 69 6e 52 6f 77 29 0d 0a sel.beginRow)..
0e00: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a return..
0e10: 20 20 20 20 76 61 72 20 74 61 62 53 69 7a 65 09 var tabSize.
0e20: 09 09 09 3d 20 70 72 6f 66 69 6c 65 52 6f 6f 74 ...= profileRoot
0e30: 2e 67 65 74 56 61 6c 75 65 28 22 4d 6f 64 75 6c .getValue("Modul
0e40: 65 54 65 78 74 45 64 69 74 6f 72 2f 54 61 62 53 eTextEditor/TabS
0e50: 69 7a 65 22 29 3b 0d 0a 20 20 20 20 76 61 72 20 ize");.. var
0e60: 72 65 70 6c 61 63 65 54 61 62 4f 6e 49 6e 70 75 replaceTabOnInpu
0e70: 74 09 3d 20 70 72 6f 66 69 6c 65 52 6f 6f 74 2e t.= profileRoot.
0e80: 67 65 74 56 61 6c 75 65 28 22 4d 6f 64 75 6c 65 getValue("Module
0e90: 54 65 78 74 45 64 69 74 6f 72 2f 52 65 70 6c 61 TextEditor/Repla
0ea0: 63 65 54 61 62 4f 6e 49 6e 70 75 74 22 29 3b 0d ceTabOnInput");.
0eb0: 0a 20 20 20 20 6c 69 6e 65 73 09 09 09 09 09 3d . lines.....=
0ec0: 20 6e 65 77 20 41 72 72 61 79 28 29 20 2f 2f 20 new Array() //
0ed0: d0 bc d0 b0 d1 81 d1 81 d0 b8 d0 b2 20 d0 b8 d0 ............ ...
0ee0: bd d1 84 d0 be d1 80 d0 bc d0 b0 d1 86 d0 b8 d0 ................
0ef0: b8 20 d0 be 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 . .. ...........
0f00: b0 d1 85 0d 0a 20 20 20 20 76 61 72 20 6d 61 78 ..... var max
0f10: 45 71 75 61 6c 50 6f 73 09 09 09 3d 20 2d 31 20 EqualPos...= -1
0f20: 2f 2f 20 d0 bc d0 b0 d0 ba d1 81 d0 b8 d0 bc d0 // .............
0f30: b0 d0 bb d1 8c d0 bd d0 b0 d1 8f 20 d0 bf d0 be ........... ....
0f40: d0 b7 d0 b8 d1 86 d0 b8 d1 8f 20 d0 b7 d0 bd d0 .......... .....
0f50: b0 d0 ba d0 b0 20 d0 a0 d0 b0 d0 b2 d0 bd d0 be ..... ..........
0f60: 0d 0a 09 0d 0a 09 2f 2f 20 d1 86 d0 b8 d0 ba d0 ......// .......
0f70: bb 20 d0 bf d0 be 20 d1 81 d1 82 d1 80 d0 be d1 . .... .........
0f80: 87 d0 ba d0 b0 d0 bc 20 d0 b2 20 d0 bf d0 be d0 ....... .. .....
0f90: b8 d1 81 d0 ba d0 b0 d1 85 20 d0 bc d0 b0 d0 ba ......... ......
0fa0: d1 81 d0 b8 d0 bc d0 b0 d0 bb d1 8c d0 bd d0 be ................
0fb0: d0 b9 20 d0 bf d0 be d0 b7 d0 b8 d1 86 d0 b8 d0 .. .............
0fc0: b8 20 d0 b7 d0 bd d0 b0 d0 ba d0 b0 20 d0 a0 d0 . .......... ...
0fd0: b0 d0 b2 d0 bd d0 be 0d 0a 20 20 20 20 66 6f 72 ......... for
0fe0: 28 76 61 72 20 6c 20 3d 20 73 65 6c 2e 62 65 67 (var l = sel.beg
0ff0: 69 6e 52 6f 77 3b 20 6c 20 3c 3d 20 65 6e 64 52 inRow; l <= endR
1000: 6f 77 3b 20 6c 2b 2b 29 0d 0a 20 20 20 20 7b 0d ow; l++).. {.
1010: 0a 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 6e . var lin
1020: 65 09 09 09 09 09 3d 20 7b 74 65 78 74 3a 20 74 e.....= {text: t
1030: 78 74 57 6e 64 2e 6c 69 6e 65 28 6c 29 7d 20 0d xtWnd.line(l)} .
1040: 0a 20 20 20 20 20 20 20 20 6c 69 6e 65 2e 65 71 . line.eq
1050: 52 65 61 6c 50 6f 73 09 09 09 09 3d 20 6c 69 6e RealPos....= lin
1060: 65 2e 74 65 78 74 2e 69 6e 64 65 78 4f 66 28 22 e.text.indexOf("
1070: 3d 22 29 20 2f 2f 20 d0 b3 d0 b4 d0 b5 20 d0 b2 =") // ...... ..
1080: 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 ...............
1090: bd d0 be d0 b9 20 d1 81 d1 82 d1 80 d0 be d1 87 ..... ..........
10a0: d0 ba d0 b5 20 d0 b7 d0 bd d0 b0 d0 ba 20 d1 80 .... ........ ..
10b0: d0 b0 d0 b2 d0 bd d0 be 3f 0d 0a 09 09 6c 69 6e ........?....lin
10c0: 65 2e 65 71 55 73 65 66 75 6c 49 6e 64 65 78 09 e.eqUsefulIndex.
10d0: 09 09 3d 20 66 69 72 73 74 55 73 65 66 75 6c 4f ..= firstUsefulO
10e0: 6e 54 68 65 4c 65 66 74 28 20 6c 69 6e 65 2e 74 nTheLeft( line.t
10f0: 65 78 74 20 29 09 0d 0a 09 09 6c 69 6e 65 2e 65 ext ).....line.e
1100: 71 41 64 65 71 75 61 74 65 50 6f 73 49 6e 53 70 qAdequatePosInSp
1110: 61 63 65 73 09 3d 20 67 65 74 45 71 41 64 65 71 aces.= getEqAdeq
1120: 75 61 74 65 50 6f 73 69 74 69 6f 6e 28 20 6c 69 uatePosition( li
1130: 6e 65 2e 74 65 78 74 20 29 0d 0a 09 09 0d 0a 09 ne.text ).......
1140: 09 69 66 28 20 6c 69 6e 65 2e 65 71 52 65 61 6c .if( line.eqReal
1150: 50 6f 73 20 09 3e 3d 20 30 20 29 20 0d 0a 20 20 Pos .>= 0 ) ..
1160: 20 20 20 20 20 20 7b 09 09 09 20 20 20 20 20 0d {... .
1170: 0a 09 09 09 6c 69 6e 65 2e 73 68 6f 75 6c 64 52 ....line.shouldR
1180: 65 6e 64 65 72 09 3d 20 31 0d 0a 09 09 09 6c 69 ender.= 1.....li
1190: 6e 65 2e 65 71 53 79 6d 62 6f 6c 49 6e 4c 69 6e ne.eqSymbolInLin
11a0: 65 09 3d 20 65 71 53 79 6d 62 6f 6c 49 6e 4c 69 e.= eqSymbolInLi
11b0: 6e 65 28 20 6c 69 6e 65 2e 74 65 78 74 20 29 0d ne( line.text ).
11c0: 0a 09 09 09 69 66 20 28 20 6c 69 6e 65 2e 65 71 ....if ( line.eq
11d0: 41 64 65 71 75 61 74 65 50 6f 73 49 6e 53 70 61 AdequatePosInSpa
11e0: 63 65 73 20 3e 20 6d 61 78 45 71 75 61 6c 50 6f ces > maxEqualPo
11f0: 73 20 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 s )..
1200: 20 09 6d 61 78 45 71 75 61 6c 50 6f 73 20 3d 20 .maxEqualPos =
1210: 6c 69 6e 65 2e 65 71 41 64 65 71 75 61 74 65 50 line.eqAdequateP
1220: 6f 73 49 6e 53 70 61 63 65 73 0d 0a 20 20 20 20 osInSpaces..
1230: 20 20 20 20 7d 0d 0a 09 09 65 6c 73 65 0d 0a 09 }....else...
1240: 09 09 6c 69 6e 65 2e 73 68 6f 75 6c 64 52 65 6e ..line.shouldRen
1250: 64 65 72 20 3d 20 30 0d 0a 09 09 09 0d 0a 20 20 der = 0.......
1260: 20 20 20 20 20 20 6c 69 6e 65 73 2e 70 75 73 68 lines.push
1270: 28 6c 69 6e 65 29 0d 0a 20 20 20 20 7d 09 0d 0a (line).. }...
1280: 09 0d 0a 09 76 61 72 20 74 65 78 74 20 3d 20 22 ....var text = "
1290: 22 20 09 09 09 09 20 20 20 2f 2f 20 d1 80 d0 b5 " .... // ....
12a0: d0 b7 d1 83 d0 bb d1 8c d1 82 d0 b8 d1 80 d1 83 ................
12b0: d1 8e d1 89 d0 b8 d0 b9 20 d1 82 d0 b5 d0 ba d1 ........ .......
12c0: 81 d1 82 2c 20 d0 ba d0 be d1 82 d0 be d1 80 d1 ..., ...........
12d0: 8b d0 b9 20 d0 b1 d1 83 d0 b4 d0 b5 d1 82 20 d0 ... .......... .
12e0: b2 d1 81 d1 82 d0 b0 d0 b2 d0 bb d0 b5 d0 bd 20 ...............
12f0: d0 b2 d0 bc d0 b5 d1 81 d1 82 d0 be 20 d0 b2 d1 ............ ...
1300: 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd d0 be d0 ................
1310: b3 d0 be 09 0d 0a 09 6d 61 78 45 71 75 61 6c 50 .......maxEqualP
1320: 6f 73 20 3d 20 6d 61 78 45 71 75 61 6c 50 6f 73 os = maxEqualPos
1330: 20 2b 20 31 3b 20 2f 2f 20 d1 83 d0 b2 d0 b5 d0 + 1; // .......
1340: bb d0 b8 d1 87 d0 b8 d1 82 d1 8c 20 d0 bd d0 b0 ........... ....
1350: 20 31 2c 20 d1 87 d1 82 d0 be d0 b1 d1 8b 20 d0 1, .......... .
1360: b3 d0 b0 d1 80 d0 b0 d0 bd d1 82 d0 b8 d1 80 d0 ................
1370: be d0 b2 d0 b0 d1 82 d1 8c 20 d0 be d0 b4 d0 b8 ......... ......
1380: d0 bd 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb 20 .. ............
1390: d1 82 d0 b0 d0 b1 d0 b0 20 d0 b8 d0 bb d0 b8 20 ........ ......
13a0: d0 bf d1 80 d0 be d0 b1 d0 b5 d0 bb d0 b0 20 d0 .............. .
13b0: b4 d0 be 20 d0 b7 d0 bd d0 b0 d0 ba d0 b0 20 d0 ... .......... .
13c0: a0 d0 90 d0 92 d0 9d d0 9e 0d 0a 20 20 20 20 69 ........... i
13d0: 66 20 28 20 21 72 65 70 6c 61 63 65 54 61 62 4f f ( !replaceTabO
13e0: 6e 49 6e 70 75 74 20 20 29 7b 0d 0a 20 20 20 20 nInput ){..
13f0: 20 20 20 20 6d 61 78 45 71 75 61 6c 50 6f 73 20 maxEqualPos
1400: 3d 20 4d 61 74 68 2e 63 65 69 6c 28 20 6d 61 78 = Math.ceil( max
1410: 45 71 75 61 6c 50 6f 73 2f 74 61 62 53 69 7a 65 EqualPos/tabSize
1420: 20 29 20 2a 20 74 61 62 53 69 7a 65 3b 0d 0a 20 ) * tabSize;..
1430: 20 20 20 7d 09 09 0d 0a 09 0d 0a 09 2f 2f 20 d1 }........// .
1440: 86 d0 b8 d0 ba d0 bb 20 d0 bf d0 be 20 d0 b2 d1 ....... .... ...
1450: 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd d1 8b d0 ................
1460: bc 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 d0 bc . ..............
1470: 0d 0a 09 2f 2f 20 d0 bf d0 b5 d1 80 d0 b5 d1 81 ...// ..........
1480: d0 be d0 b1 d1 80 d0 b0 d1 82 d1 8c 20 d1 81 d1 ............ ...
1490: 82 d1 80 d0 be d0 ba d1 83 20 d0 bf d0 b5 d1 80 ......... ......
14a0: d0 b5 d1 81 d1 87 d0 b8 d1 82 d0 b0 d0 b2 20 d1 .............. .
14b0: 81 d0 b8 d0 bc d0 b2 d0 be d0 bb d1 8b 20 d0 b4 ............. ..
14c0: d0 be 20 d0 b7 d0 bd d0 b0 d0 ba d0 b0 20 d0 a0 .. .......... ..
14d0: d0 90 d0 92 d0 9d d0 9e 0d 0a 20 20 20 20 66 6f .......... fo
14e0: 72 28 76 61 72 20 6c 20 69 6e 20 6c 69 6e 65 73 r(var l in lines
14f0: 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 ).. {..
1500: 20 20 76 61 72 20 6c 69 6e 65 09 09 3d 20 6c 69 var line..= li
1510: 6e 65 73 5b 20 6c 20 5d 0d 0a 20 20 20 20 20 20 nes[ l ]..
1520: 20 20 76 61 72 20 73 79 6d 62 6f 6c 09 09 3d 20 var symbol..=
1530: 72 65 70 6c 61 63 65 54 61 62 4f 6e 49 6e 70 75 replaceTabOnInpu
1540: 74 20 3f 20 27 20 27 3a 27 5c 74 27 20 09 2f 2f t ? ' ':'\t' .//
1550: 20 d1 87 d1 82 d0 be 20 d0 b2 d1 81 d1 82 d0 b0 ...... ........
1560: d0 b2 d0 bb d1 8f d1 82 d1 8c 2e 20 d0 9b d0 b8 ........... ....
1570: d0 b1 d0 be 20 d0 bf d1 80 d0 be d0 b1 d0 b5 d0 .... ...........
1580: bb d1 8b 20 d0 bb d0 b8 d0 b1 d0 be 20 d1 82 d0 ... ........ ...
1590: b0 d0 b1 d1 8b 09 09 09 09 09 0d 0a 09 09 76 61 ..............va
15a0: 72 20 73 79 6d 62 6f 6c 73 4e 75 6d 09 3d 20 28 r symbolsNum.= (
15b0: 6d 61 78 45 71 75 61 6c 50 6f 73 20 2d 20 6c 69 maxEqualPos - li
15c0: 6e 65 2e 65 71 41 64 65 71 75 61 74 65 50 6f 73 ne.eqAdequatePos
15d0: 49 6e 53 70 61 63 65 73 29 20 2f 2f 20 d0 ba d0 InSpaces) // ...
15e0: be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 ................
15f0: be 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb d0 be . ..............
1600: d0 b2 28 d1 82 d0 b0 d0 b1 20 d0 b8 d0 bb d0 b8 ..(...... ......
1610: 20 d0 bf d1 80 d0 be d0 b1 d0 b5 d0 bb 29 2c 20 ............),
1620: d0 ba d0 be d1 82 d0 be d1 80 d1 8b d0 b5 20 d0 .............. .
1630: b8 d0 bc d0 b5 d0 bd d0 bd d0 be 20 d0 b4 d0 bb ........... ....
1640: d1 8f 20 d1 8d d1 82 d0 be d0 b9 20 d1 81 d1 82 .. ........ ....
1650: d1 80 d0 be d0 ba d0 b8 20 d0 bd d1 83 d0 b6 d0 ........ .......
1660: bd d0 be 20 d0 b4 d0 be d0 b1 d0 b0 d0 b2 d0 b8 ... ............
1670: d1 82 d1 8c 20 d0 b4 d0 be 20 d0 b4 d0 b0 d0 bb .... .... ......
1680: d1 8c d0 bd d0 b5 d0 b3 d0 be 20 d0 b7 d0 bd d0 .......... .....
1690: b0 d0 ba d0 b0 20 d1 80 d0 b0 d0 b2 d0 bd d0 be ..... ..........
16a0: 2e 0d 0a 09 09 0d 0a 20 20 20 20 20 20 20 20 69 ....... i
16b0: 66 20 28 21 72 65 70 6c 61 63 65 54 61 62 4f 6e f (!replaceTabOn
16c0: 49 6e 70 75 74 29 0d 0a 20 20 20 20 20 20 20 20 Input)..
16d0: 20 20 20 20 73 79 6d 62 6f 6c 73 4e 75 6d 20 3d symbolsNum =
16e0: 20 4d 61 74 68 2e 63 65 69 6c 28 20 73 79 6d 62 Math.ceil( symb
16f0: 6f 6c 73 4e 75 6d 2f 74 61 62 53 69 7a 65 20 29 olsNum/tabSize )
1700: 0d 0a 09 09 09 0d 0a 09 0d 0a 09 09 69 66 20 28 ............if (
1710: 20 6c 69 6e 65 2e 73 68 6f 75 6c 64 52 65 6e 64 line.shouldRend
1720: 65 72 20 29 0d 0a 09 09 7b 09 09 09 09 0d 0a 09 er )....{.......
1730: 09 09 63 6f 70 79 41 6d 6d 6f 75 6e 74 09 09 09 ..copyAmmount...
1740: 3d 20 6c 69 6e 65 2e 65 71 55 73 65 66 75 6c 49 = line.eqUsefulI
1750: 6e 64 65 78 20 2b 20 31 0d 0a 09 09 09 73 74 72 ndex + 1.....str
1760: 42 65 66 6f 72 65 45 71 09 09 09 3d 20 6c 69 6e BeforeEq...= lin
1770: 65 2e 74 65 78 74 2e 73 75 62 73 74 72 28 20 30 e.text.substr( 0
1780: 2c 20 63 6f 70 79 41 6d 6d 6f 75 6e 74 20 29 09 , copyAmmount ).
1790: 09 09 09 0d 0a 09 09 09 73 74 72 41 66 74 65 72 ........strAfter
17a0: 45 71 09 09 09 3d 20 6c 69 6e 65 2e 74 65 78 74 Eq...= line.text
17b0: 2e 73 75 62 73 74 72 28 20 6c 69 6e 65 2e 65 71 .substr( line.eq
17c0: 52 65 61 6c 50 6f 73 20 2b 20 31 20 29 0d 0a 09 RealPos + 1 )...
17d0: 09 09 61 64 64 69 74 69 6f 6e 61 6c 53 79 6d 62 ..additionalSymb
17e0: 6f 6c 73 09 3d 20 66 69 6c 6c 4c 69 6e 65 28 73 ols.= fillLine(s
17f0: 79 6d 62 6f 6c 2c 20 73 79 6d 62 6f 6c 73 4e 75 ymbol, symbolsNu
1800: 6d 29 0d 0a 09 20 20 20 20 20 20 20 20 6e 65 77 m)... new
1810: 4c 69 6e 65 09 09 09 09 3d 20 73 74 72 42 65 66 Line....= strBef
1820: 6f 72 65 45 71 20 20 2b 20 61 64 64 69 74 69 6f oreEq + additio
1830: 6e 61 6c 53 79 6d 62 6f 6c 73 20 2b 20 6c 69 6e nalSymbols + lin
1840: 65 2e 65 71 53 79 6d 62 6f 6c 49 6e 4c 69 6e 65 e.eqSymbolInLine
1850: 20 2b 20 73 74 72 41 66 74 65 72 45 71 20 2b 20 + strAfterEq +
1860: 22 5c 6e 22 0d 0a 09 09 7d 0d 0a 09 09 65 6c 73 "\n"....}....els
1870: 65 0d 0a 09 09 09 6e 65 77 4c 69 6e 65 20 3d 20 e.....newLine =
1880: 6c 69 6e 65 2e 74 65 78 74 20 2b 20 22 5c 6e 22 line.text + "\n"
1890: 0d 0a 09 09 09 0d 0a 20 20 20 20 20 20 20 20 74 ....... t
18a0: 65 78 74 20 2b 3d 20 6e 65 77 4c 69 6e 65 0d 0a ext += newLine..
18b0: 20 20 20 20 7d 0d 0a 09 0d 0a 20 20 20 20 74 78 }..... tx
18c0: 74 57 6e 64 2e 73 65 74 53 65 6c 65 63 74 69 6f tWnd.setSelectio
18d0: 6e 28 73 65 6c 2e 62 65 67 69 6e 52 6f 77 2c 20 n(sel.beginRow,
18e0: 31 2c 20 65 6e 64 52 6f 77 20 2b 20 31 2c 20 31 1, endRow + 1, 1
18f0: 29 0d 0a 20 20 20 20 74 78 74 57 6e 64 2e 73 65 ).. txtWnd.se
1900: 6c 65 63 74 65 64 54 65 78 74 20 3d 20 74 65 78 lectedText = tex
1910: 74 0d 0a 20 20 20 20 74 78 74 57 6e 64 2e 73 65 t.. txtWnd.se
1920: 74 43 61 72 65 74 50 6f 73 28 73 65 6c 2e 62 65 tCaretPos(sel.be
1930: 67 69 6e 52 6f 77 2b 6c 69 6e 65 73 2e 6c 65 6e ginRow+lines.len
1940: 67 74 68 2d 31 2c 20 6e 65 77 4c 69 6e 65 2e 6c gth-1, newLine.l
1950: 65 6e 67 74 68 29 3b 0d 0a 09 0d 0a 7d 0d 0a 0d ength);.....}...
1960: 0a 2f 2a 0d 0a 20 2a 20 d0 9c d0 b0 d0 ba d1 80 ./*.. * ........
1970: d0 be d1 81 20 d0 b4 d0 bb d1 8f 20 d1 81 d0 b4 .... ...... ....
1980: d0 b2 d0 b8 d0 b3 d0 b0 20 d1 82 d0 b5 d0 ba d1 ........ .......
1990: 81 d1 82 d0 b0 20 d0 b7 d0 b0 20 d1 81 d0 b8 d0 ..... .... .....
19a0: bc d0 b2 d0 be d0 bb d0 be d0 bc 20 7c 20 28 d0 ........... | (.
19b0: b4 d0 bb d1 8f 20 d1 84 d0 be d1 80 d0 bc d0 b0 ..... ..........
19c0: d1 82 d0 b8 d1 80 d0 be d0 b2 d0 b0 d0 bd d0 b8 ................
19d0: d1 8f 20 d0 b7 d0 b0 d0 bf d1 80 d0 be d1 81 d0 .. .............
19e0: be d0 b2 29 0d 0a 20 2a 20 d0 a1 d0 b4 d0 b2 d0 ...).. * .......
19f0: b8 d0 b3 d0 b0 d0 b5 d1 82 20 d1 82 d0 b5 d0 ba ......... ......
1a00: d1 81 d1 82 20 d0 b2 d0 bf d1 80 d0 b0 d0 b2 d0 .... ...........
1a10: be 2f d0 b2 d0 bb d0 b5 d0 b2 d0 be 20 d0 b2 d1 ./.......... ...
1a20: 81 d1 82 d0 b0 d0 b2 d0 bb d1 8f d1 8f 2f d1 83 ............./..
1a30: d0 b4 d0 b0 d0 bb d1 8f d1 8f 20 d0 bf d1 80 d0 .......... .....
1a40: b8 20 d1 8d d1 82 d0 be d0 bc 20 d0 b7 d0 b0 d0 . ........ .....
1a50: b4 d0 b0 d0 bd d0 bd d1 8b d0 b9 20 d1 81 d0 b8 ........... ....
1a60: d0 bc d0 b2 d0 be d0 bb 0d 0a 20 2a 2f 0d 0a 66 .......... */..f
1a70: 75 6e 63 74 69 6f 6e 20 4d 6f 76 65 42 6c 6f 63 unction MoveBloc
1a80: 6b 28 74 6f 4c 65 66 74 2c 20 73 70 61 63 65 43 k(toLeft, spaceC
1a90: 68 61 72 29 0d 0a 7b 20 20 20 20 0d 0a 20 20 20 har)..{ ..
1aa0: 20 76 61 72 20 74 78 74 57 6e 64 20 3d 20 73 6e var txtWnd = sn
1ab0: 65 67 6f 70 61 74 2e 61 63 74 69 76 65 54 65 78 egopat.activeTex
1ac0: 74 57 69 6e 64 6f 77 28 29 0d 0a 20 20 20 20 69 tWindow().. i
1ad0: 66 28 21 74 78 74 57 6e 64 20 7c 7c 20 74 78 74 f(!txtWnd || txt
1ae0: 57 6e 64 2e 69 73 52 65 61 64 4f 6e 6c 79 29 0d Wnd.isReadOnly).
1af0: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d . return.
1b00: 0a 20 20 20 20 76 61 72 20 73 65 6c 09 09 3d 20 . var sel..=
1b10: 74 78 74 57 6e 64 2e 67 65 74 53 65 6c 65 63 74 txtWnd.getSelect
1b20: 69 6f 6e 28 29 0d 0a 20 20 20 20 76 61 72 20 65 ion().. var e
1b30: 6e 64 52 6f 77 09 3d 20 73 65 6c 2e 65 6e 64 52 ndRow.= sel.endR
1b40: 6f 77 0d 0a 20 2f 2f 20 20 20 69 66 28 73 65 6c ow.. // if(sel
1b50: 2e 65 6e 64 43 6f 6c 20 3d 3d 20 31 29 0d 0a 20 .endCol == 1)..
1b60: 20 20 20 20 20 20 20 65 6e 64 52 6f 77 2d 2d 0d endRow--.
1b70: 0a 20 20 20 20 69 66 28 65 6e 64 52 6f 77 20 3c . if(endRow <
1b80: 20 73 65 6c 2e 62 65 67 69 6e 52 6f 77 29 0d 0a sel.beginRow)..
1b90: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a return..
1ba0: 20 20 20 20 76 61 72 20 74 65 78 74 20 3d 20 22 var text = "
1bb0: 22 0d 0a 20 20 20 20 66 6f 72 28 76 61 72 20 6c ".. for(var l
1bc0: 20 3d 20 73 65 6c 2e 62 65 67 69 6e 52 6f 77 3b = sel.beginRow;
1bd0: 20 6c 20 3c 3d 20 65 6e 64 52 6f 77 3b 20 6c 2b l <= endRow; l+
1be0: 2b 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 +).. {..
1bf0: 20 20 20 76 61 72 20 73 74 72 09 09 09 3d 20 74 var str...= t
1c00: 78 74 57 6e 64 2e 6c 69 6e 65 28 6c 29 0d 0a 20 xtWnd.line(l)..
1c10: 20 20 20 20 20 20 20 76 61 72 20 76 6c 52 65 61 var vlRea
1c20: 6c 50 6f 73 09 3d 20 73 74 72 2e 69 6e 64 65 78 lPos.= str.index
1c30: 4f 66 28 22 7c 22 29 0d 0a 20 20 20 20 20 20 20 Of("|")..
1c40: 20 69 66 28 76 6c 52 65 61 6c 50 6f 73 20 3e 3d if(vlRealPos >=
1c50: 20 30 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 0).. {..
1c60: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
1c70: 74 6f 4c 65 66 74 29 20 2f 2f 74 6f 20 6c 65 66 toLeft) //to lef
1c80: 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 t..
1c90: 20 20 20 73 74 72 20 3d 20 73 74 72 2e 72 65 70 str = str.rep
1ca0: 6c 61 63 65 28 22 7c 22 20 2b 20 73 70 61 63 65 lace("|" + space
1cb0: 43 68 61 72 2c 20 22 7c 22 29 0d 0a 20 20 20 20 Char, "|")..
1cc0: 20 20 20 20 20 20 20 20 65 6c 73 65 20 2f 2f 74 else //t
1cd0: 6f 20 72 69 67 68 74 0d 0a 20 20 20 20 20 20 20 o right..
1ce0: 20 20 20 20 20 20 20 20 20 73 74 72 20 3d 20 73 str = s
1cf0: 74 72 2e 72 65 70 6c 61 63 65 28 22 7c 22 2c 20 tr.replace("|",
1d00: 22 7c 22 20 2b 20 73 70 61 63 65 43 68 61 72 29 "|" + spaceChar)
1d10: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 .. }..
1d20: 20 20 20 20 20 74 65 78 74 20 2b 3d 20 73 74 72 text += str
1d30: 20 2b 20 22 5c 6e 22 0d 0a 20 20 20 20 7d 0d 0a + "\n".. }..
1d40: 20 20 20 20 74 78 74 57 6e 64 2e 73 65 74 53 65 txtWnd.setSe
1d50: 6c 65 63 74 69 6f 6e 28 73 65 6c 2e 62 65 67 69 lection(sel.begi
1d60: 6e 52 6f 77 2c 20 31 2c 20 65 6e 64 52 6f 77 20 nRow, 1, endRow
1d70: 2b 20 31 2c 20 31 29 0d 0a 20 20 20 20 74 78 74 + 1, 1).. txt
1d80: 57 6e 64 2e 73 65 6c 65 63 74 65 64 54 65 78 74 Wnd.selectedText
1d90: 20 3d 20 74 65 78 74 0d 0a 20 20 20 20 74 78 74 = text.. txt
1da0: 57 6e 64 2e 73 65 74 53 65 6c 65 63 74 69 6f 6e Wnd.setSelection
1db0: 28 73 65 6c 2e 62 65 67 69 6e 52 6f 77 2c 20 31 (sel.beginRow, 1
1dc0: 2c 20 65 6e 64 52 6f 77 20 2b 20 31 2c 20 31 29 , endRow + 1, 1)
1dd0: 0d 0a 7d 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 ..}..function ma
1de0: 63 72 6f 73 d0 a1 d0 b4 d0 b2 d0 b8 d0 bd d1 83 cros............
1df0: d1 82 d1 8c d0 91 d0 bb d0 be d0 ba d0 92 d0 bb ................
1e00: d0 b5 d0 b2 d0 be d0 9d d0 b0 d0 9f d1 80 d0 be ................
1e10: d0 b1 d0 b5 d0 bb 28 29 20 2f 2f 68 6f 74 6b 65 ......() //hotke
1e20: 79 3a 20 63 74 72 6c 2b 3b 0d 0a 7b 0d 0a 20 20 y: ctrl+;..{..
1e30: 20 20 4d 6f 76 65 42 6c 6f 63 6b 28 74 72 75 65 MoveBlock(true
1e40: 2c 20 22 20 22 29 0d 0a 7d 0d 0a 66 75 6e 63 74 , " ")..}..funct
1e50: 69 6f 6e 20 6d 61 63 72 6f 73 d0 a1 d0 b4 d0 b2 ion macros......
1e60: d0 b8 d0 bd d1 83 d1 82 d1 8c d0 91 d0 bb d0 be ................
1e70: d0 ba d0 92 d0 bf d1 80 d0 b0 d0 b2 d0 be d0 9d ................
1e80: d0 b0 d0 9f d1 80 d0 be d0 b1 d0 b5 d0 bb 28 29 ..............()
1e90: 20 2f 2f 68 6f 74 6b 65 79 3a 20 63 74 72 6c 2b //hotkey: ctrl+
1ea0: 27 0d 0a 7b 0d 0a 20 20 20 20 4d 6f 76 65 42 6c '..{.. MoveBl
1eb0: 6f 63 6b 28 66 61 6c 73 65 2c 20 22 20 22 29 0d ock(false, " ").
1ec0: 0a 7d 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 .}..function mac
1ed0: 72 6f 73 d0 a1 d0 b4 d0 b2 d0 b8 d0 bd d1 83 d1 ros.............
1ee0: 82 d1 8c d0 91 d0 bb d0 be d0 ba d0 92 d0 bb d0 ................
1ef0: b5 d0 b2 d0 be d0 9d d0 b0 d0 a2 d0 b0 d0 b1 28 ...............(
1f00: 29 20 2f 2f 68 6f 74 6b 65 79 3a 20 63 74 72 6c ) //hotkey: ctrl
1f10: 2b 73 68 69 66 74 2b 3b 0d 0a 7b 0d 0a 20 20 20 +shift+;..{..
1f20: 20 4d 6f 76 65 42 6c 6f 63 6b 28 74 72 75 65 2c MoveBlock(true,
1f30: 20 22 5c 74 22 29 0d 0a 7d 0d 0a 66 75 6e 63 74 "\t")..}..funct
1f40: 69 6f 6e 20 6d 61 63 72 6f 73 d0 a1 d0 b4 d0 b2 ion macros......
1f50: d0 b8 d0 bd d1 83 d1 82 d1 8c d0 91 d0 bb d0 be ................
1f60: d0 ba d0 92 d0 bf d1 80 d0 b0 d0 b2 d0 be d0 9d ................
1f70: d0 b0 d0 a2 d0 b0 d0 b1 28 29 20 2f 2f 68 6f 74 ........() //hot
1f80: 6b 65 79 3a 20 63 74 72 6c 2b 73 68 69 66 74 2b key: ctrl+shift+
1f90: 27 0d 0a 7b 0d 0a 20 20 20 20 4d 6f 76 65 42 6c '..{.. MoveBl
1fa0: 6f 63 6b 28 66 61 6c 73 65 2c 20 22 5c 74 22 29 ock(false, "\t")
1fb0: 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 d0 9c d0 b0 d0 ba ..}....// ......
1fc0: d1 80 d0 be d1 81 20 d1 83 d0 b4 d0 b0 d0 bb d1 ...... .........
1fd0: 8f d0 b5 d1 82 20 77 68 69 74 65 2d 73 70 61 63 ..... white-spac
1fe0: 65 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb d1 8b e ..............
1ff0: 20 d0 b2 20 d0 ba d0 be d0 bd d1 86 d0 b5 20 d1 .. .......... .
2000: 81 d1 82 d1 80 d0 be d0 ba 2c 20 d0 b0 20 d1 82 ........., .. ..
2010: d0 b0 d0 ba d0 b6 d0 b5 20 d0 b7 d0 b0 d0 bc d0 ........ .......
2020: b5 d0 bd d1 8f d0 b5 d1 82 20 d0 b2 d1 81 d0 b5 ......... ......
2030: 20 5c 72 5c 6e 20 d0 bd d0 b0 20 5c 6e 0d 0a 66 \r\n .... \n..f
2040: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 d0 a3 unction macros..
2050: d0 b4 d0 b0 d0 bb d0 b8 d1 82 d1 8c d0 9a d0 be ................
2060: d0 bd d1 86 d0 b5 d0 b2 d1 8b d0 b5 d0 9f d1 80 ................
2070: d0 be d0 b1 d0 b5 d0 bb d1 8b 28 29 0d 0a 7b 0d ..........()..{.
2080: 0a 20 20 20 20 76 61 72 20 74 78 74 57 6e 64 20 . var txtWnd
2090: 3d 20 73 6e 65 67 6f 70 61 74 2e 61 63 74 69 76 = snegopat.activ
20a0: 65 54 65 78 74 57 69 6e 64 6f 77 28 29 0d 0a 20 eTextWindow()..
20b0: 20 20 20 69 66 28 21 74 78 74 57 6e 64 20 7c 7c if(!txtWnd ||
20c0: 20 74 78 74 57 6e 64 2e 69 73 52 65 61 64 4f 6e txtWnd.isReadOn
20d0: 6c 79 29 0d 0a 20 20 20 20 20 20 20 20 72 65 74 ly).. ret
20e0: 75 72 6e 0d 0a 20 20 20 20 76 61 72 20 72 65 70 urn.. var rep
20f0: 6c 61 63 65 73 20 3d 20 30 2c 20 73 79 6d 62 6f laces = 0, symbo
2100: 6c 73 20 3d 20 30 2c 20 63 72 6e 6c 20 3d 20 30 ls = 0, crnl = 0
2110: 0d 0a 20 20 20 20 76 61 72 20 74 65 78 74 20 3d .. var text =
2120: 20 74 78 74 57 6e 64 2e 74 65 78 74 2e 72 65 70 txtWnd.text.rep
2130: 6c 61 63 65 28 2f 5b 20 5c 74 5d 2b 5c 72 2a 5c lace(/[ \t]+\r*\
2140: 6e 2f 67 2c 20 66 75 6e 63 74 69 6f 6e 28 73 74 n/g, function(st
2150: 72 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 r).. {..
2160: 20 20 20 20 20 20 20 20 20 20 20 72 65 70 6c 61 repla
2170: 63 65 73 2b 2b 0d 0a 20 20 20 20 20 20 20 20 20 ces++..
2180: 20 20 20 73 79 6d 62 6f 6c 73 20 2b 3d 20 73 74 symbols += st
2190: 72 2e 6c 65 6e 67 74 68 20 2d 20 31 0d 0a 20 20 r.length - 1..
21a0: 20 20 20 20 20 20 20 20 20 20 69 66 28 73 74 72 if(str
21b0: 2e 6c 65 6e 67 74 68 20 3e 20 32 20 26 26 20 73 .length > 2 && s
21c0: 74 72 2e 63 68 61 72 41 74 28 73 74 72 2e 6c 65 tr.charAt(str.le
21d0: 6e 67 74 68 20 2d 20 32 29 20 3d 3d 20 27 5c 72 ngth - 2) == '\r
21e0: 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ')..
21f0: 20 20 20 20 63 72 6e 6c 2b 2b 2c 20 73 79 6d 62 crnl++, symb
2200: 6f 6c 73 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 ols--..
2210: 20 20 20 72 65 74 75 72 6e 20 27 5c 6e 27 0d 0a return '\n'..
2220: 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 29 }.. )
2230: 0d 0a 20 20 20 20 69 66 28 72 65 70 6c 61 63 65 .. if(replace
2240: 73 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 s).. {..
2250: 20 20 20 4d 65 73 73 61 67 65 28 22 d0 98 d1 81 Message("....
2260: d0 bf d1 80 d0 b0 d0 b2 d0 bb d0 b5 d0 bd d0 be ................
2270: 20 63 d1 82 d1 80 d0 be d0 ba 3a 20 22 20 2b 20 c........: " +
2280: 72 65 70 6c 61 63 65 73 20 2b 20 22 5c 6e d0 a3 replaces + "\n..
2290: d0 b1 d1 80 d0 b0 d0 bd d0 be 20 d1 81 d0 b8 d0 .......... .....
22a0: bc d0 b2 d0 be d0 bb d0 be d0 b2 3a 20 22 20 2b ...........: " +
22b0: 20 73 79 6d 62 6f 6c 73 20 2b 20 22 5c 6e d0 a3 symbols + "\n..
22c0: d0 b1 d1 80 d0 b0 d0 bd d0 be 20 43 52 3a 20 22 .......... CR: "
22d0: 20 2b 20 63 72 6e 6c 29 0d 0a 20 20 20 20 20 20 + crnl)..
22e0: 20 20 76 61 72 20 63 61 72 65 74 50 6f 73 20 3d var caretPos =
22f0: 20 74 78 74 57 6e 64 2e 67 65 74 43 61 72 65 74 txtWnd.getCaret
2300: 50 6f 73 28 29 0d 0a 20 20 20 20 20 20 20 20 74 Pos().. t
2310: 78 74 57 6e 64 2e 73 65 74 53 65 6c 65 63 74 69 xtWnd.setSelecti
2320: 6f 6e 28 31 2c 20 31 2c 20 74 78 74 57 6e 64 2e on(1, 1, txtWnd.
2330: 6c 69 6e 65 73 43 6f 75 6e 74 20 2b 20 31 2c 20 linesCount + 1,
2340: 31 29 0d 0a 20 20 20 20 20 20 20 20 74 78 74 57 1).. txtW
2350: 6e 64 2e 73 65 6c 65 63 74 65 64 54 65 78 74 20 nd.selectedText
2360: 3d 20 74 65 78 74 3b 0d 0a 20 20 20 20 20 20 20 = text;..
2370: 20 74 78 74 57 6e 64 2e 73 65 74 43 61 72 65 74 txtWnd.setCaret
2380: 50 6f 73 28 63 61 72 65 74 50 6f 73 2e 62 65 67 Pos(caretPos.beg
2390: 69 6e 52 6f 77 2c 20 63 61 72 65 74 50 6f 73 2e inRow, caretPos.
23a0: 62 65 67 69 6e 43 6f 6c 29 0d 0a 20 20 20 20 7d beginCol).. }
23b0: 0d 0a 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 .. else..
23c0: 20 20 20 20 4d 65 73 73 61 67 65 28 22 d0 92 d1 Message("...
23d0: 81 d0 b5 20 d1 87 d0 b8 d1 81 d1 82 d0 be 22 29 ... ..........")
23e0: 0d 0a 7d 0d 0a 0d 0a 2f 2a 0d 0a 20 2a 20 d0 9c ..}..../*.. * ..
23f0: d0 b0 d0 ba d1 80 d0 be d1 81 20 d0 b4 d0 bb d1 .......... .....
2400: 8f 20 d0 b2 d1 8b d1 80 d0 b0 d0 b2 d0 bd d0 b8 . ..............
2410: d0 b2 d0 b0 d0 bd d0 b8 d1 8f 20 d1 82 d0 b5 d0 .......... .....
2420: ba d1 81 d1 82 d0 b0 20 d0 bf d0 be 20 d0 bf d0 ....... .... ...
2430: b5 d1 80 d0 b2 d0 be d0 b9 20 d0 b7 d0 b0 d0 bf ......... ......
2440: d1 8f d1 82 d0 be d0 b9 0d 0a 20 2a 20 d0 92 d1 .......... * ...
2450: 8b d1 81 d1 82 d1 80 d0 b0 d0 b8 d0 b2 d0 b0 d0 ................
2460: b5 d1 82 20 d0 b7 d0 bd d0 b0 d0 ba d0 b8 20 3d ... .......... =
2470: 20 d0 b2 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 .. ............
2480: d0 bd d0 bd d0 be d0 bc 20 d1 82 d0 b5 d0 ba d1 ........ .......
2490: 81 d1 82 d0 b5 20 d0 b2 20 d0 be d0 b4 d0 bd d1 ..... .. .......
24a0: 83 20 d0 ba d0 be d0 bb d0 be d0 bd d0 ba d1 83 . ..............
24b0: 2e 0d 0a 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e ... */..function
24c0: 20 6d 61 63 72 6f 73 d0 92 d1 8b d1 80 d0 be d0 macros.........
24d0: b2 d0 bd d1 8f d1 82 d1 8c d0 9f d0 be d0 9f d0 ................
24e0: b5 d1 80 d0 b2 d0 be d0 b9 d0 97 d0 b0 d0 bf d1 ................
24f0: 8f d1 82 d0 be d0 b9 28 29 0d 0a 7b 0d 0a 20 20 .......()..{..
2500: 20 20 76 61 72 20 74 78 74 57 6e 64 20 3d 20 73 var txtWnd = s
2510: 6e 65 67 6f 70 61 74 2e 61 63 74 69 76 65 54 65 negopat.activeTe
2520: 78 74 57 69 6e 64 6f 77 28 29 0d 0a 20 20 20 20 xtWindow()..
2530: 69 66 28 21 74 78 74 57 6e 64 29 0d 0a 20 20 20 if(!txtWnd)..
2540: 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 20 20 20 return..
2550: 20 76 61 72 20 73 65 6c 20 3d 20 74 78 74 57 6e var sel = txtWn
2560: 64 2e 67 65 74 53 65 6c 65 63 74 69 6f 6e 28 29 d.getSelection()
2570: 0d 0a 20 20 20 20 76 61 72 20 65 6e 64 52 6f 77 .. var endRow
2580: 20 3d 20 73 65 6c 2e 65 6e 64 52 6f 77 0d 0a 20 = sel.endRow..
2590: 20 20 20 69 66 28 73 65 6c 2e 65 6e 64 43 6f 6c if(sel.endCol
25a0: 20 3d 3d 20 31 29 0d 0a 20 20 20 20 20 20 20 20 == 1)..
25b0: 65 6e 64 52 6f 77 2d 2d 0d 0a 20 20 20 20 69 66 endRow--.. if
25c0: 28 65 6e 64 52 6f 77 20 3c 3d 20 73 65 6c 2e 62 (endRow <= sel.b
25d0: 65 67 69 6e 52 6f 77 29 0d 0a 20 20 20 20 20 20 eginRow)..
25e0: 20 20 72 65 74 75 72 6e 0d 0a 20 20 20 20 76 61 return.. va
25f0: 72 20 74 61 62 53 69 7a 65 20 3d 20 70 72 6f 66 r tabSize = prof
2600: 69 6c 65 52 6f 6f 74 2e 67 65 74 56 61 6c 75 65 ileRoot.getValue
2610: 28 22 4d 6f 64 75 6c 65 54 65 78 74 45 64 69 74 ("ModuleTextEdit
2620: 6f 72 2f 54 61 62 53 69 7a 65 22 29 0d 0a 20 20 or/TabSize")..
2630: 20 20 76 61 72 20 72 65 70 6c 61 63 65 54 61 62 var replaceTab
2640: 4f 6e 49 6e 70 75 74 20 3d 20 70 72 6f 66 69 6c OnInput = profil
2650: 65 52 6f 6f 74 2e 67 65 74 56 61 6c 75 65 28 22 eRoot.getValue("
2660: 4d 6f 64 75 6c 65 54 65 78 74 45 64 69 74 6f 72 ModuleTextEditor
2670: 2f 52 65 70 6c 61 63 65 54 61 62 4f 6e 49 6e 70 /ReplaceTabOnInp
2680: 75 74 22 29 3b 0d 0a 20 20 20 20 6c 69 6e 65 73 ut");.. lines
2690: 20 3d 20 6e 65 77 20 41 72 72 61 79 28 29 0d 0a = new Array()..
26a0: 20 20 20 20 76 61 72 20 6d 61 78 45 71 75 61 6c var maxEqual
26b0: 50 6f 73 20 3d 20 2d 31 0d 0a 20 20 20 20 66 6f Pos = -1.. fo
26c0: 72 28 76 61 72 20 6c 20 3d 20 73 65 6c 2e 62 65 r(var l = sel.be
26d0: 67 69 6e 52 6f 77 3b 20 6c 20 3c 3d 20 65 6e 64 ginRow; l <= end
26e0: 52 6f 77 3b 20 6c 2b 2b 29 0d 0a 20 20 20 20 7b Row; l++).. {
26f0: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 .. var li
2700: 6e 65 20 3d 20 7b 74 65 78 74 3a 20 74 78 74 57 ne = {text: txtW
2710: 6e 64 2e 6c 69 6e 65 28 6c 29 7d 0d 0a 20 20 20 nd.line(l)}..
2720: 20 20 20 20 20 6c 69 6e 65 2e 65 71 52 65 61 6c line.eqReal
2730: 50 6f 73 20 3d 20 6c 69 6e 65 2e 74 65 78 74 2e Pos = line.text.
2740: 69 6e 64 65 78 4f 66 28 22 2c 22 29 0d 0a 20 20 indexOf(",")..
2750: 20 20 20 20 20 20 69 66 28 6c 69 6e 65 2e 65 71 if(line.eq
2760: 52 65 61 6c 50 6f 73 20 3e 3d 20 30 29 0d 0a 20 RealPos >= 0)..
2770: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 {..
2780: 20 20 20 20 20 20 6c 69 6e 65 2e 65 71 50 6f 73 line.eqPos
2790: 49 6e 53 70 61 63 65 73 20 3d 20 30 0d 0a 20 20 InSpaces = 0..
27a0: 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 76 61 for(va
27b0: 72 20 6b 20 3d 20 30 3b 20 6b 20 3c 20 6c 69 6e r k = 0; k < lin
27c0: 65 2e 65 71 52 65 61 6c 50 6f 73 3b 20 6b 2b 2b e.eqRealPos; k++
27d0: 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b ).. {
27e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
27f0: 20 20 69 66 28 6c 69 6e 65 2e 74 65 78 74 2e 63 if(line.text.c
2800: 68 61 72 41 74 28 6b 29 20 3d 3d 20 22 5c 74 22 harAt(k) == "\t"
2810: 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 )..
2820: 20 20 20 20 20 20 20 6c 69 6e 65 2e 65 71 50 6f line.eqPo
2830: 73 49 6e 53 70 61 63 65 73 20 2b 3d 20 74 61 62 sInSpaces += tab
2840: 53 69 7a 65 20 2d 20 28 6c 69 6e 65 2e 65 71 50 Size - (line.eqP
2850: 6f 73 49 6e 53 70 61 63 65 73 20 25 20 74 61 62 osInSpaces % tab
2860: 53 69 7a 65 29 0d 0a 20 20 20 20 20 20 20 20 20 Size)..
2870: 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 else..
2880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2890: 20 6c 69 6e 65 2e 65 71 50 6f 73 49 6e 53 70 61 line.eqPosInSpa
28a0: 63 65 73 2b 2b 0d 0a 20 20 20 20 20 20 20 20 20 ces++..
28b0: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 }..
28c0: 20 20 69 66 28 6c 69 6e 65 2e 65 71 50 6f 73 49 if(line.eqPosI
28d0: 6e 53 70 61 63 65 73 20 3e 20 6d 61 78 45 71 75 nSpaces > maxEqu
28e0: 61 6c 50 6f 73 29 0d 0a 20 20 20 20 20 20 20 20 alPos)..
28f0: 20 20 20 20 20 20 20 20 6d 61 78 45 71 75 61 6c maxEqual
2900: 50 6f 73 20 3d 20 6c 69 6e 65 2e 65 71 50 6f 73 Pos = line.eqPos
2910: 49 6e 53 70 61 63 65 73 0d 0a 20 20 20 20 20 20 InSpaces..
2920: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 6c 69 6e }.. lin
2930: 65 73 2e 70 75 73 68 28 6c 69 6e 65 29 0d 0a 20 es.push(line)..
2940: 20 20 20 7d 0d 0a 20 20 20 20 76 61 72 20 74 65 }.. var te
2950: 78 74 20 3d 20 22 22 0d 0a 20 20 20 20 69 66 20 xt = "".. if
2960: 28 21 72 65 70 6c 61 63 65 54 61 62 4f 6e 49 6e (!replaceTabOnIn
2970: 70 75 74 29 7b 0d 0a 20 20 20 20 20 20 20 20 6d put){.. m
2980: 61 78 45 71 75 61 6c 50 6f 73 20 3d 20 4d 61 74 axEqualPos = Mat
2990: 68 2e 63 65 69 6c 28 6d 61 78 45 71 75 61 6c 50 h.ceil(maxEqualP
29a0: 6f 73 2f 74 61 62 53 69 7a 65 29 2a 74 61 62 53 os/tabSize)*tabS
29b0: 69 7a 65 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 ize;.. }..
29c0: 20 66 6f 72 28 76 61 72 20 6c 20 69 6e 20 6c 69 for(var l in li
29d0: 6e 65 73 29 0d 0a 20 20 20 20 7b 0d 0a 0d 0a 20 nes).. {....
29e0: 20 20 20 20 20 20 20 76 61 72 20 6c 69 6e 65 20 var line
29f0: 3d 20 6c 69 6e 65 73 5b 6c 5d 0d 0a 0d 0a 20 20 = lines[l]....
2a00: 20 20 20 20 20 20 76 61 72 20 73 79 6d 62 6f 6c var symbol
2a10: 09 3d 20 72 65 70 6c 61 63 65 54 61 62 4f 6e 49 .= replaceTabOnI
2a20: 6e 70 75 74 20 3f 20 27 20 27 3a 27 5c 74 27 3b nput ? ' ':'\t';
2a30: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 63 6f .. var co
2a40: 75 6e 74 09 3d 20 28 6d 61 78 45 71 75 61 6c 50 unt.= (maxEqualP
2a50: 6f 73 20 2d 20 6c 69 6e 65 2e 65 71 50 6f 73 49 os - line.eqPosI
2a60: 6e 53 70 61 63 65 73 29 3b 0d 0a 20 20 20 20 20 nSpaces);..
2a70: 20 20 20 69 66 20 28 21 72 65 70 6c 61 63 65 54 if (!replaceT
2a80: 61 62 4f 6e 49 6e 70 75 74 29 7b 0d 0a 20 20 20 abOnInput){..
2a90: 20 20 20 20 20 20 20 20 20 63 6f 75 6e 74 20 3d count =
2aa0: 20 4d 61 74 68 2e 63 65 69 6c 28 63 6f 75 6e 74 Math.ceil(count
2ab0: 2f 74 61 62 53 69 7a 65 29 3b 0d 0a 20 20 20 20 /tabSize);..
2ac0: 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 }....
2ad0: 20 2f 2f 63 6f 75 6e 74 20 3d 20 28 63 6f 75 6e //count = (coun
2ae0: 74 3d 3d 30 29 20 3f 20 31 20 3a 20 63 6f 75 6e t==0) ? 1 : coun
2af0: 74 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 76 61 t;.... va
2b00: 72 20 74 31 20 3d 20 6c 69 6e 65 2e 74 65 78 74 r t1 = line.text
2b10: 2e 73 75 62 73 74 72 28 30 2c 20 6c 69 6e 65 2e .substr(0, line.
2b20: 65 71 52 65 61 6c 50 6f 73 20 2b 20 31 29 0d 0a eqRealPos + 1)..
2b30: 20 20 20 20 20 20 20 20 76 61 72 20 74 32 20 3d var t2 =
2b40: 20 6c 69 6e 65 2e 74 65 78 74 2e 73 75 62 73 74 line.text.subst
2b50: 72 28 6c 69 6e 65 2e 65 71 52 65 61 6c 50 6f 73 r(line.eqRealPos
2b60: 20 2b 20 31 29 2e 72 65 70 6c 61 63 65 28 2f 5e + 1).replace(/^
2b70: 5c 73 2b 2f 2c 20 22 22 29 0d 0a 20 20 20 20 20 \s+/, "")..
2b80: 20 20 20 6e 65 77 4c 69 6e 65 20 3d 20 74 31 20 newLine = t1
2b90: 2b 20 66 69 6c 6c 4c 69 6e 65 28 22 20 22 2c 20 + fillLine(" ",
2ba0: 6d 61 78 45 71 75 61 6c 50 6f 73 20 2d 20 6c 69 maxEqualPos - li
2bb0: 6e 65 2e 65 71 50 6f 73 49 6e 53 70 61 63 65 73 ne.eqPosInSpaces
2bc0: 20 2b 20 31 29 20 2b 20 74 32 20 2b 20 22 5c 6e + 1) + t2 + "\n
2bd0: 22 0d 0a 20 20 20 20 20 20 20 20 74 65 78 74 20 ".. text
2be0: 2b 3d 20 6e 65 77 4c 69 6e 65 3b 0d 0a 0d 0a 20 += newLine;....
2bf0: 20 20 20 7d 0d 0a 20 20 20 20 74 78 74 57 6e 64 }.. txtWnd
2c00: 2e 73 65 74 53 65 6c 65 63 74 69 6f 6e 28 73 65 .setSelection(se
2c10: 6c 2e 62 65 67 69 6e 52 6f 77 2c 20 31 2c 20 65 l.beginRow, 1, e
2c20: 6e 64 52 6f 77 20 2b 20 31 2c 20 31 29 0d 0a 20 ndRow + 1, 1)..
2c30: 20 20 20 74 78 74 57 6e 64 2e 73 65 6c 65 63 74 txtWnd.select
2c40: 65 64 54 65 78 74 20 3d 20 74 65 78 74 0d 0a 20 edText = text..
2c50: 20 20 20 74 78 74 57 6e 64 2e 73 65 74 43 61 72 txtWnd.setCar
2c60: 65 74 50 6f 73 28 73 65 6c 2e 62 65 67 69 6e 52 etPos(sel.beginR
2c70: 6f 77 2b 6c 69 6e 65 73 2e 6c 65 6e 67 74 68 2d ow+lines.length-
2c80: 31 2c 20 6e 65 77 4c 69 6e 65 2e 6c 65 6e 67 74 1, newLine.lengt
2c90: 68 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 h);..}....functi
2ca0: 6f 6e 20 67 65 74 50 72 65 64 65 66 69 6e 65 64 on getPredefined
2cb0: 48 6f 74 6b 65 79 73 28 70 72 65 64 65 66 29 0d Hotkeys(predef).
2cc0: 0a 7b 0d 0a 20 20 20 20 70 72 65 64 65 66 2e 73 .{.. predef.s
2cd0: 65 74 56 65 72 73 69 6f 6e 28 30 29 0d 0a 20 20 etVersion(0)..
2ce0: 20 20 70 72 65 64 65 66 2e 61 64 64 28 22 d0 92 predef.add("..
2cf0: d1 8b d1 80 d0 be d0 b2 d0 bd d1 8f d1 82 d1 8c ................
2d00: d0 97 d0 bd d0 b0 d0 ba d0 b8 d0 a0 d0 b0 d0 b2 ................
2d10: d0 bd d0 be 22 2c 20 22 43 74 72 6c 20 2b 20 3d ....", "Ctrl + =
2d20: 22 29 0d 0a 20 20 20 20 70 72 65 64 65 66 2e 61 ").. predef.a
2d30: 64 64 28 22 d0 a1 d0 b4 d0 b2 d0 b8 d0 bd d1 83 dd("............
2d40: d1 82 d1 8c d0 91 d0 bb d0 be d0 ba d0 92 d0 bb ................
2d50: d0 b5 d0 b2 d0 be d0 9d d0 b0 d0 9f d1 80 d0 be ................
2d60: d0 b1 d0 b5 d0 bb 22 2c 20 22 43 74 72 6c 20 2b ......", "Ctrl +
2d70: 20 3b 22 29 0d 0a 20 20 20 20 70 72 65 64 65 66 ;").. predef
2d80: 2e 61 64 64 28 22 d0 a1 d0 b4 d0 b2 d0 b8 d0 bd .add("..........
2d90: d1 83 d1 82 d1 8c d0 91 d0 bb d0 be d0 ba d0 92 ................
2da0: d0 bf d1 80 d0 b0 d0 b2 d0 be d0 9d d0 b0 d0 9f ................
2db0: d1 80 d0 be d0 b1 d0 b5 d0 bb 22 2c 20 22 43 74 ..........", "Ct
2dc0: 72 6c 20 2b 20 27 22 29 0d 0a 20 20 20 20 70 72 rl + '").. pr
2dd0: 65 64 65 66 2e 61 64 64 28 22 d0 a1 d0 b4 d0 b2 edef.add("......
2de0: d0 b8 d0 bd d1 83 d1 82 d1 8c d0 91 d0 bb d0 be ................
2df0: d0 ba d0 92 d0 bb d0 b5 d0 b2 d0 be d0 9d d0 b0 ................
2e00: d0 a2 d0 b0 d0 b1 22 2c 20 22 43 74 72 6c 20 2b ......", "Ctrl +
2e10: 20 53 68 69 66 74 20 2b 20 3b 22 29 0d 0a 20 20 Shift + ;")..
2e20: 20 20 70 72 65 64 65 66 2e 61 64 64 28 22 d0 a1 predef.add("..
2e30: d0 b4 d0 b2 d0 b8 d0 bd d1 83 d1 82 d1 8c d0 91 ................
2e40: d0 bb d0 be d0 ba d0 92 d0 bf d1 80 d0 b0 d0 b2 ................
2e50: d0 be d0 9d d0 b0 d0 a2 d0 b0 d0 b1 22 2c 20 22 ............", "
2e60: 43 74 72 6c 20 2b 20 53 68 69 66 74 20 2b 20 27 Ctrl + Shift + '
2e70: 22 29 0d 0a 7d 0d 0a ")..}..