Hex Artifact Content Вы: nobody
Вход

Artifact 3d7e434a1395dca95aff00ff8643bd502bcdfc45:


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                             ")..}..