Hex Artifact Content Вы: nobody
Вход

Artifact 535128c3b54bfb7a155e6f8e32979e51720d38ba:


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 74 65 78 74 45  pt..$uname textE
0020: 64 69 74 6f 72 45 78 74 0d 0a 24 64 6e 61 6d 65  ditorExt..$dname
0030: 20 d0 a0 d0 b0 d1 81 d1 88 d0 b8 d1 80 d0 b5 d0   ...............
0040: bd d0 b8 d0 b5 20 d1 80 d0 b5 d0 b4 d0 b0 d0 ba  ..... ..........
0050: d1 82 d0 be d1 80 d0 b0 20 d1 82 d0 b5 d0 ba d1  ........ .......
0060: 81 d1 82 d0 be d0 b2 0d 0a 24 61 64 64 69 6e 20  .........$addin 
0070: 67 6c 6f 62 61 6c 0d 0a 24 61 64 64 69 6e 20 73  global..$addin s
0080: 74 64 6c 69 62 0d 0a 0d 0a 2f 2a 20 3d 3d 3d 3d  tdlib..../* ====
0090: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00d0: 3d 3d 0d 0a 0d 0a 41 55 54 48 4f 52 3a 20 d0 92  ==....AUTHOR: ..
00e0: d0 b0 d1 81 d0 b8 d0 bb d0 b8 d0 b9 20 d0 a4 d1  ............ ...
00f0: 80 d0 be d0 bb d0 be d0 b2 20 61 6b 61 20 d0 9f  ......... aka ..
0100: d0 b0 d0 bb d1 8b d1 87 2c 20 70 61 6c 79 74 73  ........, palyts
0110: 68 40 6d 61 69 6c 2e 72 75 0d 0a 0d 0a 44 41 54  h@mail.ru....DAT
0120: 45 3a 20 30 32 2e 30 39 2e 32 30 31 31 0d 0a 0d  E: 02.09.2011...
0130: 0a 43 4f 4d 4d 45 4e 54 3a 20 0d 0a 0d 0a 20 20  .COMMENT: ....  
0140: 20 31 2e 20 d0 9c d0 b0 d0 ba d1 80 d0 be d1 81   1. ............
0150: d1 8b 20 d0 9d d0 b0 d0 b9 d1 82 d0 b8 d0 92 d1  .. .............
0160: 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd d1 8b d0  ................
0170: b9 d0 a2 d0 b5 d0 ba d1 81 d1 82 d0 92 d0 bd d0  ................
0180: b8 d0 b7 20 d0 b8 20 d0 9d d0 b0 d0 b9 d1 82 d0  ... .. .........
0190: b8 d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0  ................
01a0: bd d1 8b d0 b9 d0 a2 d0 b5 d0 ba d1 81 d1 82 d0  ................
01b0: 92 d0 b2 d0 b5 d1 80 d1 85 2e 20 0d 0a d0 93 d0  .......... .....
01c0: be d1 80 d1 8f d1 87 d0 b8 d0 b5 20 d0 ba d0 bb  ........... ....
01d0: d0 b0 d0 b2 d0 b8 d1 88 d0 b8 20 43 74 72 6c 20  .......... Ctrl 
01e0: 2b 20 44 6f 77 6e 20 d0 b8 20 43 74 72 6c 20 2b  + Down .. Ctrl +
01f0: 20 55 70 2e 0d 0a 0d 0a 20 20 20 32 2e 20 d0 9c   Up.....   2. ..
0200: d0 b0 d0 ba d1 80 d0 be d1 81 20 d0 9a d0 bb d0  .......... .....
0210: be d0 bd d0 b8 d1 80 d0 be d0 b2 d0 b0 d1 82 d1  ................
0220: 8c d0 a2 d0 b5 d0 ba d1 81 d1 82 2e 20 d0 9f d0  ............ ...
0230: be d0 b7 d0 b2 d0 be d0 bb d1 8f d0 b5 d1 82 20  ............... 
0240: d1 81 d0 ba d0 be d0 bf d0 b8 d1 80 d0 be d0 b2  ................
0250: d0 b0 d1 82 d1 8c 20 d0 b2 d1 8b d0 b4 d0 b5 d0  ...... .........
0260: bb d0 b5 d0 bd d0 bd d1 8b d0 b9 20 d1 84 d1 80  ........... ....
0270: d0 b0 d0 b3 d0 bc d0 b5 d0 bd d1 82 20 0d 0a d1  ............ ...
0280: 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 20 d0 b1 d0 b5  ........... ....
0290: d0 b7 20 d0 b8 d1 81 d0 bf d0 be d0 bb d1 8c d0  .. .............
02a0: b7 d0 be d0 b2 d0 b0 d0 bd d0 b8 d1 8f 20 d0 b1  ............. ..
02b0: d1 83 d1 84 d0 b5 d1 80 d0 b0 20 d0 be d0 b1 d0  .......... .....
02c0: bc d0 b5 d0 bd d0 b0 2e 20 d0 93 d0 be d1 80 d1  ........ .......
02d0: 8f d1 87 d0 b8 d0 b5 20 d0 ba d0 bb d0 b0 d0 b2  ....... ........
02e0: d0 b8 d1 88 d0 b8 20 43 74 72 6c 20 2b 20 44 2e  ...... Ctrl + D.
02f0: 0d 0a 0d 0a 20 20 20 33 2e 20 d0 9c d0 b0 d0 ba  ....   3. ......
0300: d1 80 d0 be d1 81 d1 8b 20 4f 6e 50 72 65 73 73  ........ OnPress
0310: 45 6e 74 65 72 49 6e 43 6f 6d 6d 65 6e 74 2c 20  EnterInComment, 
0320: 4f 6e 50 72 65 73 73 42 61 63 6b 73 70 61 63 65  OnPressBackspace
0330: 49 6e 43 6f 6d 6d 65 6e 74 2c 20 0d 0a 4f 6e 50  InComment, ..OnP
0340: 72 65 73 73 44 65 6c 65 74 65 49 6e 43 6f 6d 6d  ressDeleteInComm
0350: 65 6e 74 20 d0 bf d1 80 d0 b5 d0 b4 d0 bd d0 b0  ent ............
0360: d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d1 8b 20 d0  .............. .
0370: b4 d0 bb d1 8f 20 d0 b1 d0 be d0 bb d0 b5 d0 b5  ..... ..........
0380: 20 d1 83 d0 b4 d0 be d0 b1 d0 bd d0 be d0 b3 d0   ...............
0390: be 20 d1 80 d0 b5 d0 b4 d0 b0 d0 ba d1 82 d0 b8  . ..............
03a0: d1 80 d0 be d0 b2 d0 b0 d0 bd d0 b8 d1 8f 20 0d  .............. .
03b0: 0a d0 bc d0 bd d0 be d0 b3 d0 be d1 81 d1 82 d1  ................
03c0: 80 d0 be d1 87 d0 bd d1 8b d1 85 20 d0 ba d0 be  ........... ....
03d0: d0 bc d0 bc d0 b5 d0 bd d1 82 d0 b0 d1 80 d0 b8  ................
03e0: d0 b5 d0 b2 2e 20 d0 92 d1 8b d0 b7 d1 8b d0 b2  ..... ..........
03f0: d0 b0 d1 8e d1 82 d1 81 d1 8f 20 d0 bd d0 b5 d1  .......... .....
0400: 8f d0 b2 d0 bd d0 be 20 d0 bf d1 80 d0 b8 20 d0  ....... ...... .
0410: bd d0 b0 d0 b6 d0 b0 d1 82 d0 b8 d0 b8 20 d1 81  ............. ..
0420: d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 82  ................
0430: d0 b2 d1 83 d1 8e d1 89 d0 b8 d1 85 20 0d 0a d0  ............ ...
0440: ba d0 bb d0 b0 d0 b2 d0 b8 d1 88 2e 0d 0a 0d 0a  ................
0450: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0460: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0470: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0480: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0490: 3d 3d 3d 3d 3d 3d 3d 3d 3d 20 2a 2f 0d 0a 0d 0a  ========= */....
04a0: 67 6c 6f 62 61 6c 2e 63 6f 6e 6e 65 63 74 47 6c  global.connectGl
04b0: 6f 62 61 6c 73 28 53 65 6c 66 53 63 72 69 70 74  obals(SelfScript
04c0: 29 3b 0d 0a 0d 0a 73 74 64 6c 69 62 2e 72 65 71  );....stdlib.req
04d0: 75 69 72 65 28 27 54 65 78 74 57 69 6e 64 6f 77  uire('TextWindow
04e0: 2e 6a 73 27 2c 20 53 65 6c 66 53 63 72 69 70 74  .js', SelfScript
04f0: 29 3b 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 67  );....function g
0500: 65 74 50 72 65 64 65 66 69 6e 65 64 48 6f 74 6b  etPredefinedHotk
0510: 65 79 73 28 70 72 65 64 65 66 29 7b 0d 0a 20 20  eys(predef){..  
0520: 20 20 70 72 65 64 65 66 2e 73 65 74 56 65 72 73    predef.setVers
0530: 69 6f 6e 28 37 29 3b 0d 0a 20 20 20 20 70 72 65  ion(7);..    pre
0540: 64 65 66 2e 61 64 64 28 22 d0 9d d0 b0 d0 b9 d1  def.add(".......
0550: 82 d0 b8 d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0  ................
0560: bd d0 bd d1 8b d0 b9 d0 a2 d0 b5 d0 ba d1 81 d1  ................
0570: 82 d0 92 d0 bd d0 b8 d0 b7 22 2c 20 22 43 74 72  .........", "Ctr
0580: 6c 20 2b 20 44 6f 77 6e 22 29 3b 0d 0a 20 20 20  l + Down");..   
0590: 20 70 72 65 64 65 66 2e 61 64 64 28 22 d0 9d d0   predef.add("...
05a0: b0 d0 b9 d1 82 d0 b8 d0 92 d1 8b d0 b4 d0 b5 d0  ................
05b0: bb d0 b5 d0 bd d0 bd d1 8b d0 b9 d0 a2 d0 b5 d0  ................
05c0: ba d1 81 d1 82 d0 92 d0 b2 d0 b5 d1 80 d1 85 22  ..............."
05d0: 2c 20 22 43 74 72 6c 20 2b 20 55 70 22 29 3b 0d  , "Ctrl + Up");.
05e0: 0a 20 20 20 20 70 72 65 64 65 66 2e 61 64 64 28  .    predef.add(
05f0: 22 d0 9a d0 bb d0 be d0 bd d0 b8 d1 80 d0 be d0  "...............
0600: b2 d0 b0 d1 82 d1 8c d0 a2 d0 b5 d0 ba d1 81 d1  ................
0610: 82 22 2c 20 22 43 74 72 6c 20 2b 20 44 22 29 3b  .", "Ctrl + D");
0620: 0d 0a 20 20 20 20 70 72 65 64 65 66 2e 61 64 64  ..    predef.add
0630: 28 22 4f 6e 50 72 65 73 73 45 6e 74 65 72 49 6e  ("OnPressEnterIn
0640: 43 6f 6d 6d 65 6e 74 22 2c 20 22 45 6e 74 65 72  Comment", "Enter
0650: 22 29 3b 0d 0a 20 20 20 20 70 72 65 64 65 66 2e  ");..    predef.
0660: 61 64 64 28 22 4f 6e 50 72 65 73 73 44 65 6c 65  add("OnPressDele
0670: 74 65 49 6e 43 6f 6d 6d 65 6e 74 22 2c 20 22 44  teInComment", "D
0680: 65 6c 22 29 3b 0d 0a 20 20 20 20 70 72 65 64 65  el");..    prede
0690: 66 2e 61 64 64 28 22 4f 6e 50 72 65 73 73 42 61  f.add("OnPressBa
06a0: 63 6b 73 70 61 63 65 49 6e 43 6f 6d 6d 65 6e 74  ckspaceInComment
06b0: 22 2c 20 22 42 6b 53 70 61 63 65 22 29 3b 0d 0a  ", "BkSpace");..
06c0: 20 20 20 20 70 72 65 64 65 66 2e 61 64 64 28 22      predef.add("
06d0: 4f 6e 50 72 65 73 73 42 61 63 6b 73 70 61 63 65  OnPressBackspace
06e0: 49 6e 42 72 61 63 6b 65 74 22 2c 20 22 42 6b 53  InBracket", "BkS
06f0: 70 61 63 65 22 29 3b 0d 0a 20 20 20 20 70 72 65  pace");..    pre
0700: 64 65 66 2e 61 64 64 28 22 4f 6e 50 72 65 73 73  def.add("OnPress
0710: 44 65 6c 49 6e 42 72 61 63 6b 65 74 22 2c 20 22  DelInBracket", "
0720: 44 65 6c 22 29 3b 0d 0a 20 20 20 20 70 72 65 64  Del");..    pred
0730: 65 66 2e 61 64 64 28 22 d0 9f d1 80 d0 b5 d0 be  ef.add("........
0740: d0 b1 d1 80 d0 b0 d0 b7 d0 be d0 b2 d0 b0 d1 82  ................
0750: d1 8c 20 d1 80 d0 b5 d0 b3 d0 b8 d1 81 d1 82 d1  .. .............
0760: 80 3a 20 d0 9f d0 a0 d0 9e d0 9f d0 98 d0 a1 d0  .: .............
0770: 9d d0 ab d0 95 22 2c 20 22 43 74 72 6c 20 2b 20  .....", "Ctrl + 
0780: 53 68 69 66 74 20 2b 20 55 22 29 3b 0d 0a 20 20  Shift + U");..  
0790: 20 20 70 72 65 64 65 66 2e 61 64 64 28 22 d0 9f    predef.add("..
07a0: d1 80 d0 b5 d0 be d0 b1 d1 80 d0 b0 d0 b7 d0 be  ................
07b0: d0 b2 d0 b0 d1 82 d1 8c 20 d1 80 d0 b5 d0 b3 d0  ........ .......
07c0: b8 d1 81 d1 82 d1 80 3a 20 d1 81 d1 82 d1 80 d0  .......: .......
07d0: be d1 87 d0 bd d1 8b d0 b5 22 2c 20 22 43 74 72  .........", "Ctr
07e0: 6c 20 2b 20 55 22 29 3b 0d 0a 7d 0d 0a 0d 0a 66  l + U");..}....f
07f0: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 d0 9d  unction macros..
0800: d0 b0 d0 b9 d1 82 d0 b8 d0 92 d1 8b d0 b4 d0 b5  ................
0810: d0 bb d0 b5 d0 bd d0 bd d1 8b d0 b9 d0 a2 d0 b5  ................
0820: d0 ba d1 81 d1 82 d0 92 d0 bd d0 b8 d0 b7 28 29  ..............()
0830: 7b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 73 65  {..    return se
0840: 6c 65 63 74 4e 65 78 74 50 61 74 74 65 72 6e 28  lectNextPattern(
0850: 31 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69  1);..}....functi
0860: 6f 6e 20 6d 61 63 72 6f 73 d0 9d d0 b0 d0 b9 d1  on macros.......
0870: 82 d0 b8 d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0  ................
0880: bd d0 bd d1 8b d0 b9 d0 a2 d0 b5 d0 ba d1 81 d1  ................
0890: 82 d0 92 d0 b2 d0 b5 d1 80 d1 85 28 29 7b 0d 0a  ...........(){..
08a0: 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 65 63      return selec
08b0: 74 4e 65 78 74 50 61 74 74 65 72 6e 28 2d 31 29  tNextPattern(-1)
08c0: 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e  ;..}....function
08d0: 20 6d 61 63 72 6f 73 d0 9f d0 be d0 bc d0 b5 d0   macros.........
08e0: bd d1 8f d1 82 d1 8c d0 9e d0 bf d0 b5 d1 80 d0  ................
08f0: b0 d0 bd d0 b4 d1 8b d0 9f d1 80 d0 b8 d1 81 d0  ................
0900: b2 d0 b0 d0 b8 d0 b2 d0 b0 d0 bd d0 b8 d1 8f d0  ................
0910: 9c d0 b5 d1 81 d1 82 d0 b0 d0 bc d0 b8 28 29 20  .............() 
0920: 7b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72  {..    ..    var
0930: 20 77 20 3d 20 47 65 74 54 65 78 74 57 69 6e 64   w = GetTextWind
0940: 6f 77 28 29 3b 20 0d 0a 20 20 20 20 69 66 20 28  ow(); ..    if (
0950: 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d 6f  !w || windows.mo
0960: 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f 6e  dalMode != msNon
0970: 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b  e) return false;
0980: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20  ..    ..    var 
0990: 73 65 6c 54 65 78 74 20 3d 20 77 2e 47 65 74 53  selText = w.GetS
09a0: 65 6c 65 63 74 65 64 54 65 78 74 28 29 3b 0d 0a  electedText();..
09b0: 20 20 20 20 69 66 20 28 73 65 6c 54 65 78 74 20      if (selText 
09c0: 3d 3d 20 27 27 29 20 72 65 74 75 72 6e 20 66 61  == '') return fa
09d0: 6c 73 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20  lse;..    ..    
09e0: 76 61 72 20 73 65 6c 20 3d 20 77 2e 47 65 74 53  var sel = w.GetS
09f0: 65 6c 65 63 74 69 6f 6e 28 29 3b 0d 0a 20 20 20  election();..   
0a00: 20 0d 0a 20 20 20 20 76 61 72 20 6c 69 6e 65 73   ..    var lines
0a10: 20 3d 20 53 74 72 69 6e 67 55 74 69 6c 73 2e 74   = StringUtils.t
0a20: 6f 4c 69 6e 65 73 28 73 65 6c 54 65 78 74 29 3b  oLines(selText);
0a30: 0d 0a 20 20 20 20 66 6f 72 28 76 61 72 20 6c 69  ..    for(var li
0a40: 6e 65 4e 6f 20 3d 20 30 3b 20 6c 69 6e 65 4e 6f  neNo = 0; lineNo
0a50: 20 3c 20 6c 69 6e 65 73 2e 6c 65 6e 67 74 68 3b   < lines.length;
0a60: 20 6c 69 6e 65 4e 6f 2b 2b 29 0d 0a 20 20 20 20   lineNo++)..    
0a70: 20 20 20 20 6c 69 6e 65 73 5b 6c 69 6e 65 4e 6f      lines[lineNo
0a80: 5d 20 3d 20 6c 69 6e 65 73 5b 6c 69 6e 65 4e 6f  ] = lines[lineNo
0a90: 5d 2e 72 65 70 6c 61 63 65 28 2f 28 5c 73 2a 29  ].replace(/(\s*)
0aa0: 28 5c 53 2a 2e 2b 3f 29 5c 73 2a 3d 5c 73 2a 28  (\S*.+?)\s*=\s*(
0ab0: 5c 53 2a 2e 2b 29 5c 73 2a 3b 2f 2c 20 22 24 31  \S*.+)\s*;/, "$1
0ac0: 24 33 3d 24 32 3b 22 29 3b 0d 0a 20 20 20 20 0d  $3=$2;");..    .
0ad0: 0a 20 20 20 20 77 2e 53 65 74 53 65 6c 65 63 74  .    w.SetSelect
0ae0: 65 64 54 65 78 74 28 53 74 72 69 6e 67 55 74 69  edText(StringUti
0af0: 6c 73 2e 66 72 6f 6d 4c 69 6e 65 73 28 6c 69 6e  ls.fromLines(lin
0b00: 65 73 29 29 3b 0d 0a 20 20 20 20 2f 2f 20 d0 92  es));..    // ..
0b10: d0 be d1 81 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2  ................
0b20: d0 b8 d0 bc 20 d0 b8 d1 81 d1 85 d0 be d0 b4 d0  .... ...........
0b30: bd d0 be d0 b5 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb  ..... ..........
0b40: d0 b5 d0 bd d0 b8 d0 b5 2e 0d 0a 20 20 20 20 77  ...........    w
0b50: 2e 53 65 74 53 65 6c 65 63 74 69 6f 6e 28 73 65  .SetSelection(se
0b60: 6c 2e 62 65 67 69 6e 52 6f 77 2c 20 73 65 6c 2e  l.beginRow, sel.
0b70: 62 65 67 69 6e 43 6f 6c 2c 20 73 65 6c 2e 65 6e  beginCol, sel.en
0b80: 64 52 6f 77 2c 20 73 65 6c 2e 65 6e 64 43 6f 6c  dRow, sel.endCol
0b90: 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 69 66  );..    ..    if
0ba0: 20 28 6c 69 6e 65 73 2e 6c 65 6e 67 74 68 20 3e   (lines.length >
0bb0: 20 31 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20   1)..    {..    
0bc0: 20 20 20 20 2f 2f 20 d0 95 d1 81 d0 bb d0 b8 20      // ........ 
0bd0: d0 b1 d1 8b d0 bb d0 be 20 d0 b2 d1 8b d0 b4 d0  ........ .......
0be0: b5 d0 bb d0 b5 d0 bd d0 be 20 d0 bd d0 b5 d1 81  ......... ......
0bf0: d0 ba d0 be d0 bb d1 8c d0 ba d0 be 20 d1 81 d1  ............ ...
0c00: 82 d1 80 d0 be d0 ba 2c 20 d0 b2 d1 8b d1 80 d0  ......., .......
0c10: be d0 b2 d0 bd d1 8f d0 b5 d0 bc 20 d0 b2 20 d0  ........... .. .
0c20: bd d0 b8 d1 85 20 d0 bf d0 be 20 d0 b7 d0 bd d0  ..... .... .....
0c30: b0 d0 ba d0 b0 d0 bc 20 27 3d 27 2e 0d 0a 20 20  ....... '='...  
0c40: 20 20 20 20 20 20 76 61 72 20 66 6f 72 6d 61 74        var format
0c50: 53 63 72 69 70 74 20 3d 20 61 64 64 69 6e 73 2e  Script = addins.
0c60: 62 79 55 6e 69 71 75 65 4e 61 6d 65 28 27 66 6f  byUniqueName('fo
0c70: 72 6d 61 74 5f 73 63 72 69 70 74 27 29 3b 0d 0a  rmat_script');..
0c80: 20 20 20 20 20 20 20 20 69 66 20 28 66 6f 72 6d          if (form
0c90: 61 74 53 63 72 69 70 74 29 0d 0a 20 20 20 20 20  atScript)..     
0ca0: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20     {..          
0cb0: 20 20 66 6f 72 6d 61 74 53 63 72 69 70 74 2e 69    formatScript.i
0cc0: 6e 76 6f 6b 65 4d 61 63 72 6f 73 28 27 d0 92 d1  nvokeMacros('...
0cd0: 8b d1 80 d0 be d0 b2 d0 bd d1 8f d1 82 d1 8c d0  ................
0ce0: 97 d0 bd d0 b0 d0 ba d0 b8 d0 a0 d0 b0 d0 b2 d0  ................
0cf0: bd d0 be 27 29 3b 0d 0a 20 20 20 20 20 20 20 20  ...');..        
0d00: 20 20 20 20 2f 2f 20 d0 98 20 d1 81 d0 bd d0 be      // .. ......
0d10: d0 b2 d0 b0 20 d0 b2 d0 be d1 81 d1 81 d1 82 d0  .... ...........
0d20: b0 d0 bd d0 be d0 b2 d0 b8 d0 bc 20 d0 b8 d1 81  ........... ....
0d30: d1 85 d0 be d0 b4 d0 bd d0 be d0 b5 20 d0 b2 d1  ............ ...
0d40: 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5 2e  ................
0d50: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 2e  ..            w.
0d60: 53 65 74 53 65 6c 65 63 74 69 6f 6e 28 73 65 6c  SetSelection(sel
0d70: 2e 62 65 67 69 6e 52 6f 77 2c 20 73 65 6c 2e 62  .beginRow, sel.b
0d80: 65 67 69 6e 43 6f 6c 2c 20 73 65 6c 2e 65 6e 64  eginCol, sel.end
0d90: 52 6f 77 2c 20 73 65 6c 2e 65 6e 64 43 6f 6c 29  Row, sel.endCol)
0da0: 3b 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20  ;            .. 
0db0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d         }..    }.
0dc0: 0a 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65  .    return true
0dd0: 3b 0d 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63 72 69  ;..}....SelfScri
0de0: 70 74 2e 53 65 6c 66 5b 27 6d 61 63 72 6f 73 d0  pt.Self['macros.
0df0: 9f d1 80 d0 b5 d0 be d0 b1 d1 80 d0 b0 d0 b7 d0  ................
0e00: be d0 b2 d0 b0 d1 82 d1 8c 20 d1 80 d0 b5 d0 b3  ......... ......
0e10: d0 b8 d1 81 d1 82 d1 80 3a 20 d0 9f d0 a0 d0 9e  ........: ......
0e20: d0 9f d0 98 d0 a1 d0 9d d0 ab d0 95 27 5d 20 3d  ............'] =
0e30: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20   function() {.. 
0e40: 20 20 20 72 65 74 75 72 6e 20 70 72 6f 63 65 73     return proces
0e50: 73 53 65 6c 65 63 74 65 64 54 65 78 74 28 66 75  sSelectedText(fu
0e60: 6e 63 74 69 6f 6e 28 73 65 6c 54 65 78 74 29 7b  nction(selText){
0e70: 20 72 65 74 75 72 6e 20 73 65 6c 54 65 78 74 2e   return selText.
0e80: 74 6f 55 70 70 65 72 43 61 73 65 28 29 3b 20 7d  toUpperCase(); }
0e90: 29 3b 0d 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63 72  );..}....SelfScr
0ea0: 69 70 74 2e 53 65 6c 66 5b 27 6d 61 63 72 6f 73  ipt.Self['macros
0eb0: d0 9f d1 80 d0 b5 d0 be d0 b1 d1 80 d0 b0 d0 b7  ................
0ec0: d0 be d0 b2 d0 b0 d1 82 d1 8c 20 d1 80 d0 b5 d0  .......... .....
0ed0: b3 d0 b8 d1 81 d1 82 d1 80 3a 20 d1 81 d1 82 d1  .........: .....
0ee0: 80 d0 be d1 87 d0 bd d1 8b d0 b5 27 5d 20 3d 20  ...........'] = 
0ef0: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20  function() {..  
0f00: 20 20 72 65 74 75 72 6e 20 70 72 6f 63 65 73 73    return process
0f10: 53 65 6c 65 63 74 65 64 54 65 78 74 28 66 75 6e  SelectedText(fun
0f20: 63 74 69 6f 6e 28 73 65 6c 54 65 78 74 29 7b 20  ction(selText){ 
0f30: 72 65 74 75 72 6e 20 73 65 6c 54 65 78 74 2e 74  return selText.t
0f40: 6f 4c 6f 77 65 72 43 61 73 65 28 29 3b 20 7d 29  oLowerCase(); })
0f50: 3b 0d 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63 72 69  ;..}....SelfScri
0f60: 70 74 2e 53 65 6c 66 5b 27 6d 61 63 72 6f 73 d0  pt.Self['macros.
0f70: 92 d1 8b d0 b4 d0 b5 d0 bb d0 b8 d1 82 d1 8c 20  ............... 
0f80: d1 82 d0 b5 d0 ba d1 81 d1 82 20 d0 b2 20 d1 81  .......... .. ..
0f90: d0 ba d0 be d0 b1 d0 ba d0 b0 d1 85 27 5d 20 3d  ............'] =
0fa0: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 0d   function() {...
0fb0: 0a 20 20 20 20 76 61 72 20 77 20 3d 20 47 65 74  .    var w = Get
0fc0: 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 20 0d 0a  TextWindow(); ..
0fd0: 20 20 20 20 69 66 20 28 21 77 20 20 7c 7c 20 77      if (!w  || w
0fe0: 69 6e 64 6f 77 73 2e 6d 6f 64 61 6c 4d 6f 64 65  indows.modalMode
0ff0: 20 21 3d 20 6d 73 4e 6f 6e 65 29 20 72 65 74 75   != msNone) retu
1000: 72 6e 20 66 61 6c 73 65 3b 20 20 20 20 0d 0a 20  rn false;    .. 
1010: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 76 61 72         ..    var
1020: 20 73 65 6c 20 3d 20 77 2e 47 65 74 43 61 72 65   sel = w.GetCare
1030: 74 50 6f 73 28 29 3b 0d 0a 20 20 20 20 0d 0a 20  tPos();..    .. 
1040: 20 20 20 76 61 72 20 73 74 61 72 74 50 6f 73 20     var startPos 
1050: 3d 20 7b 20 27 72 6f 77 27 20 3a 20 73 65 6c 2e  = { 'row' : sel.
1060: 62 65 67 69 6e 52 6f 77 2d 31 2c 20 27 63 6f 6c  beginRow-1, 'col
1070: 27 20 3a 20 73 65 6c 2e 62 65 67 69 6e 43 6f 6c  ' : sel.beginCol
1080: 2d 31 20 7d 3b 0d 0a 20 20 20 20 0d 0a 20 20 20  -1 };..    ..   
1090: 20 76 61 72 20 6c 69 6e 65 73 20 3d 20 77 2e 47   var lines = w.G
10a0: 65 74 4c 69 6e 65 73 28 29 3b 20 20 20 20 0d 0a  etLines();    ..
10b0: 20 20 20 20 76 61 72 20 66 6f 75 6e 64 4f 70 65      var foundOpe
10c0: 6e 69 6e 67 42 72 61 63 65 20 3d 20 66 61 6c 73  ningBrace = fals
10d0: 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 77 68  e;..    ..    wh
10e0: 69 6c 65 20 28 74 72 75 65 29 0d 0a 20 20 20 20  ile (true)..    
10f0: 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 6c  {..        var l
1100: 69 6e 65 20 3d 20 6c 69 6e 65 73 5b 73 74 61 72  ine = lines[star
1110: 74 50 6f 73 2e 72 6f 77 5d 3b 0d 0a 20 20 20 20  tPos.row];..    
1120: 20 20 20 20 77 68 69 6c 65 20 28 73 74 61 72 74      while (start
1130: 50 6f 73 2e 63 6f 6c 20 3e 20 2d 31 29 20 0d 0a  Pos.col > -1) ..
1140: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
1150: 20 20 20 20 20 20 20 69 66 20 28 6c 69 6e 65 2e         if (line.
1160: 63 68 61 72 41 74 28 73 74 61 72 74 50 6f 73 2e  charAt(startPos.
1170: 63 6f 6c 29 20 3d 3d 20 27 28 27 29 0d 0a 20 20  col) == '(')..  
1180: 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20            {..   
1190: 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 75               fou
11a0: 6e 64 4f 70 65 6e 69 6e 67 42 72 61 63 65 20 3d  ndOpeningBrace =
11b0: 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20   true;..        
11c0: 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a          break;..
11d0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20              }.. 
11e0: 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74             start
11f0: 50 6f 73 2e 63 6f 6c 2d 2d 3b 20 0d 0a 20 20 20  Pos.col--; ..   
1200: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20       }..        
1210: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 66 6f  ..        if (fo
1220: 75 6e 64 4f 70 65 6e 69 6e 67 42 72 61 63 65 29  undOpeningBrace)
1230: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72  ..            br
1240: 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a  eak;..        ..
1250: 20 20 20 20 20 20 20 20 73 74 61 72 74 50 6f 73          startPos
1260: 2e 72 6f 77 2d 2d 3b 0d 0a 20 20 20 20 20 20 20  .row--;..       
1270: 20 69 66 20 28 73 74 61 72 74 50 6f 73 2e 72 6f   if (startPos.ro
1280: 77 20 3c 20 30 29 0d 0a 20 20 20 20 20 20 20 20  w < 0)..        
1290: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20      break;..    
12a0: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
12b0: 20 20 73 74 61 72 74 50 6f 73 2e 63 6f 6c 20 3d    startPos.col =
12c0: 20 6c 69 6e 65 73 5b 73 74 61 72 74 50 6f 73 2e   lines[startPos.
12d0: 72 6f 77 5d 2e 6c 65 6e 67 74 68 20 2d 20 31 3b  row].length - 1;
12e0: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20  ..    }..    .. 
12f0: 20 20 20 69 66 20 28 21 66 6f 75 6e 64 4f 70 65     if (!foundOpe
1300: 6e 69 6e 67 42 72 61 63 65 29 0d 0a 20 20 20 20  ningBrace)..    
1310: 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65      return false
1320: 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20  ;..        ..   
1330: 20 2f 2a 20 d0 a1 d1 87 d0 b5 d1 82 d1 87 d0 b8   /* ............
1340: d0 ba 20 d0 bd d0 b5 d0 bf d0 b0 d1 80 d0 bd d1  .. .............
1350: 8b d1 85 20 d1 81 d0 ba d0 be d0 b1 d0 be d0 ba  ... ............
1360: 2e 20 d0 95 d1 81 d0 bb d0 b8 20 d0 b2 d1 81 d1  . ........ .....
1370: 82 d1 80 d0 b5 d1 87 d0 b0 d0 b5 d1 82 d1 81 d1  ................
1380: 8f 20 d0 be d1 82 d0 ba d1 80 d1 8b d0 b2 d0 b0  . ..............
1390: d1 8e d1 89 d0 b0 d1 8f d1 81 d1 8f 20 d1 81 d0  ............ ...
13a0: ba d0 be d0 b1 d0 ba d0 b0 20 2d 20 d0 bf d1 80  ......... - ....
13b0: d0 b8 d0 b1 d0 b0 d0 b2 d0 bb d1 8f d0 b5 d0 bc  ................
13c0: 20 31 2c 20 0d 0a 20 20 20 20 d0 b5 d1 81 d0 bb   1, ..    ......
13d0: d0 b8 20 d0 b7 d0 b0 d0 ba d1 80 d1 8b d0 b2 d0  .. .............
13e0: b0 d1 8e d1 89 d0 b0 d1 8f 20 2d 20 d0 b2 d1 8b  ......... - ....
13f0: d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 31 2e 20  ............ 1. 
1400: d0 9a d0 be d0 b3 d0 b4 d0 b0 20 d0 b7 d0 bd d0  .......... .....
1410: b0 d1 87 d0 b5 d0 bd d0 b8 d0 b5 20 d1 81 d1 82  ........... ....
1420: d0 b0 d0 bd d0 be d0 b2 d0 b8 d1 82 d1 81 d1 8f  ................
1430: 20 d1 80 d0 b0 d0 b2 d0 bd d1 8b d0 bc 20 30 2c   ............ 0,
1440: 20 d0 b7 d0 bd d0 b0 d1 87 d0 b8 d1 82 20 d0 bc   ............ ..
1450: d1 8b 20 d0 bd d0 b0 d1 88 d0 bb d0 b8 20 0d 0a  .. .......... ..
1460: 20 20 20 20 d0 bf d0 b0 d1 80 d0 bd d1 83 d1 8e      ............
1470: 20 d0 b7 d0 b0 d0 ba d1 80 d1 8b d0 b2 d0 b0 d1   ...............
1480: 8e d1 89 d1 83 d1 8e 20 d1 81 d0 ba d0 be d0 b1  ....... ........
1490: d0 ba d1 83 20 d0 b8 20 d0 bf d0 be d0 b8 d1 81  .... .. ........
14a0: d0 ba 20 d0 bc d0 be d0 b6 d0 bd d0 be 20 d0 bf  .. .......... ..
14b0: d1 80 d0 b5 d0 ba d1 80 d0 b0 d1 82 d0 b8 d1 82  ................
14c0: d1 8c 2e 20 2a 2f 0d 0a 20 20 20 20 76 61 72 20  ... */..    var 
14d0: 6e 6f 74 50 61 69 72 65 64 43 6f 75 6e 74 20 3d  notPairedCount =
14e0: 20 31 3b 20 0d 0a 20 20 20 20 0d 0a 20 20 20 20   1; ..    ..    
14f0: 76 61 72 20 65 6e 64 50 6f 73 20 3d 20 7b 20 27  var endPos = { '
1500: 72 6f 77 27 20 3a 20 73 74 61 72 74 50 6f 73 2e  row' : startPos.
1510: 72 6f 77 2c 20 27 63 6f 6c 27 20 3a 20 73 74 61  row, 'col' : sta
1520: 72 74 50 6f 73 2e 63 6f 6c 20 2b 20 31 20 7d 3b  rtPos.col + 1 };
1530: 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 65 6e 64  ..    while (end
1540: 50 6f 73 2e 72 6f 77 20 3c 20 6c 69 6e 65 73 2e  Pos.row < lines.
1550: 6c 65 6e 67 74 68 29 0d 0a 20 20 20 20 7b 0d 0a  length)..    {..
1560: 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 6e 65          var line
1570: 20 3d 20 6c 69 6e 65 73 5b 65 6e 64 50 6f 73 2e   = lines[endPos.
1580: 72 6f 77 5d 3b 0d 0a 20 20 20 20 20 20 20 20 77  row];..        w
1590: 68 69 6c 65 20 28 65 6e 64 50 6f 73 2e 63 6f 6c  hile (endPos.col
15a0: 20 3c 20 6c 69 6e 65 2e 6c 65 6e 67 74 68 29 0d   < line.length).
15b0: 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20  .        {..    
15c0: 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28          switch (
15d0: 6c 69 6e 65 2e 63 68 61 72 41 74 28 65 6e 64 50  line.charAt(endP
15e0: 6f 73 2e 63 6f 6c 29 29 0d 0a 20 20 20 20 20 20  os.col))..      
15f0: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
1600: 20 20 20 20 20 63 61 73 65 20 27 28 27 3a 0d 0a       case '(':..
1610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1620: 6e 6f 74 50 61 69 72 65 64 43 6f 75 6e 74 2b 2b  notPairedCount++
1630: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ;..             
1640: 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20     break;..     
1650: 20 20 20 20 20 20 20 63 61 73 65 20 27 29 27 3a         case ')':
1660: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
1670: 20 20 6e 6f 74 50 61 69 72 65 64 43 6f 75 6e 74    notPairedCount
1680: 2d 2d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  --;..           
1690: 20 20 20 20 20 62 72 65 61 6b 3b 20 20 20 20 20       break;     
16a0: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
16b0: 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74           default
16c0: 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  :..             
16d0: 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20     break;..     
16e0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20         }..      
16f0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
1700: 20 20 20 20 69 66 20 28 21 6e 6f 74 50 61 69 72      if (!notPair
1710: 65 64 43 6f 75 6e 74 29 0d 0a 20 20 20 20 20 20  edCount)..      
1720: 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b            break;
1730: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a  ..            ..
1740: 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 50              endP
1750: 6f 73 2e 63 6f 6c 2b 2b 3b 0d 0a 20 20 20 20 20  os.col++;..     
1760: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a     }..        ..
1770: 20 20 20 20 20 20 20 20 69 66 20 28 21 6e 6f 74          if (!not
1780: 50 61 69 72 65 64 43 6f 75 6e 74 29 0d 0a 20 20  PairedCount)..  
1790: 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b            break;
17a0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a  ..            ..
17b0: 20 20 20 20 20 20 20 20 65 6e 64 50 6f 73 2e 72          endPos.r
17c0: 6f 77 2b 2b 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20  ow++;..    }..  
17d0: 20 20 0d 0a 20 20 20 20 69 66 20 28 6e 6f 74 50    ..    if (notP
17e0: 61 69 72 65 64 43 6f 75 6e 74 29 0d 0a 20 20 20  airedCount)..   
17f0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 44 6f 4d 65   {..        DoMe
1800: 73 73 61 67 65 42 6f 78 28 27 d0 9d d0 b5 20 d0  ssageBox('.... .
1810: be d0 b1 d0 bd d0 b0 d1 80 d1 83 d0 b6 d0 b5 d0  ................
1820: bd d0 be 20 d0 bf d0 b0 d1 80 d0 bd d0 be d0 b9  ... ............
1830: 20 d1 81 d0 ba d0 be d0 b1 d0 ba d0 b8 20 d0 b4   ............ ..
1840: d0 bb d1 8f 20 d1 81 d0 ba d0 be d0 b1 d0 ba d0  .... ...........
1850: b8 20 d0 b2 20 d0 bf d0 be d0 b7 d0 b8 d1 86 d0  . .. ...........
1860: b8 d0 b8 20 28 27 20 2b 20 28 73 74 61 72 74 50  ... (' + (startP
1870: 6f 73 2e 72 6f 77 20 2b 20 31 29 20 2b 20 27 2c  os.row + 1) + ',
1880: 20 27 20 2b 20 28 73 74 61 72 74 50 6f 73 2e 63   ' + (startPos.c
1890: 6f 6c 20 2b 20 31 29 20 2b 20 27 29 21 27 29 3b  ol + 1) + ')!');
18a0: 0d 0a 20 20 20 20 20 20 20 20 77 2e 53 65 74 53  ..        w.SetS
18b0: 65 6c 65 63 74 69 6f 6e 28 73 74 61 72 74 50 6f  election(startPo
18c0: 73 2e 72 6f 77 20 2b 20 31 2c 20 73 74 61 72 74  s.row + 1, start
18d0: 50 6f 73 2e 63 6f 6c 20 2b 20 31 2c 20 73 74 61  Pos.col + 1, sta
18e0: 72 74 50 6f 73 2e 72 6f 77 20 2b 20 31 2c 20 73  rtPos.row + 1, s
18f0: 74 61 72 74 50 6f 73 2e 63 6f 6c 20 2b 20 32 29  tartPos.col + 2)
1900: 3b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72  ;..        retur
1910: 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 7d 0d  n false;..    }.
1920: 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2a 20 d0 9d  .    ..    /* ..
1930: d0 b5 20 d0 b7 d0 b0 d0 b1 d1 8b d0 b2 d0 b0 d0  .. .............
1940: b5 d0 bc 2c 20 d1 87 d1 82 d0 be 20 d1 83 20 d0  ..., ...... .. .
1950: bd d0 b0 d1 81 20 d0 bd d1 83 d0 bc d0 b5 d1 80  ..... ..........
1960: d0 b0 d1 86 d0 b8 d1 8f 20 d1 81 d1 82 d1 80 d0  ........ .......
1970: be d0 ba 20 d0 b8 20 d0 ba d0 be d0 bb d0 be d0  ... .. .........
1980: bd d0 be d0 ba 20 d0 bd d0 b0 d1 87 d0 b8 d0 bd  ..... ..........
1990: d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d1 81 20 31 2c  .......... .. 1,
19a0: 20 0d 0a 20 20 20 20 d0 b0 20 d0 b8 d0 bd d0 b4   ..    .. ......
19b0: d0 b5 d0 ba d1 81 d1 8b 20 d1 8d d0 bb d0 b5 d0  ........ .......
19c0: bc d0 b5 d0 bd d1 82 d0 be d0 b2 20 d0 bc d0 b0  ........... ....
19d0: d1 81 d1 81 d0 b8 d0 b2 d0 b0 20 d0 b8 20 d0 b8  .......... .. ..
19e0: d0 bd d0 b4 d0 b5 d0 ba d1 81 d1 8b 20 d1 81 d0  ............ ...
19f0: b8 d0 bc d0 b2 d0 be d0 bb d0 be d0 b2 20 d0 b2  ............. ..
1a00: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b5 20 2d 20   ............ - 
1a10: d1 81 20 d0 bd d1 83 d0 bb d1 8f 2e 20 2a 2f 0d  .. ......... */.
1a20: 0a 20 20 20 20 77 2e 53 65 74 53 65 6c 65 63 74  .    w.SetSelect
1a30: 69 6f 6e 28 73 74 61 72 74 50 6f 73 2e 72 6f 77  ion(startPos.row
1a40: 20 2b 20 31 2c 20 73 74 61 72 74 50 6f 73 2e 63   + 1, startPos.c
1a50: 6f 6c 20 2b 20 32 2c 20 65 6e 64 50 6f 73 2e 72  ol + 2, endPos.r
1a60: 6f 77 20 2b 20 31 2c 20 65 6e 64 50 6f 73 2e 63  ow + 1, endPos.c
1a70: 6f 6c 20 2b 20 31 29 3b 0d 0a 20 20 20 20 72 65  ol + 1);..    re
1a80: 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d  turn true;..}...
1a90: 0a 53 65 6c 66 53 63 72 69 70 74 2e 53 65 6c 66  .SelfScript.Self
1aa0: 5b 27 6d 61 63 72 6f 73 d0 97 d0 b0 d0 bc d0 b5  ['macros........
1ab0: d0 bd d0 b8 d1 82 d1 8c 20 d1 82 d0 b0 d0 b1 d1  ........ .......
1ac0: 83 d0 bb d1 8f d1 86 d0 b8 d1 8e 20 d0 b2 20 d0  ........... .. .
1ad0: be d1 82 d1 81 d1 82 d1 83 d0 bf d0 b0 d1 85 20  ............... 
1ae0: d0 bd d0 b0 20 d0 bf d1 80 d0 be d0 b1 d0 b5 d0  .... ...........
1af0: bb d1 8b 27 5d 20 3d 20 66 75 6e 63 74 69 6f 6e  ...'] = function
1b00: 28 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 72 65  () {...return re
1b10: 70 6c 61 63 65 54 61 62 73 54 6f 53 70 61 63 65  placeTabsToSpace
1b20: 73 49 6e 53 65 6c 65 63 74 65 64 54 65 78 74 28  sInSelectedText(
1b30: 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f  );..}....functio
1b40: 6e 20 72 65 70 6c 61 63 65 54 61 62 73 54 6f 53  n replaceTabsToS
1b50: 70 61 63 65 73 49 6e 53 65 6c 65 63 74 65 64 54  pacesInSelectedT
1b60: 65 78 74 28 64 6f 4e 6f 74 52 65 73 74 6f 72 65  ext(doNotRestore
1b70: 53 65 6c 65 63 74 69 6f 6e 29 20 7b 09 0d 0a 20  Selection) {... 
1b80: 20 20 20 72 65 74 75 72 6e 20 70 72 6f 63 65 73     return proces
1b90: 73 53 65 6c 65 63 74 65 64 54 65 78 74 28 66 75  sSelectedText(fu
1ba0: 6e 63 74 69 6f 6e 28 73 65 6c 54 65 78 74 29 7b  nction(selText){
1bb0: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 74 61  ..        var ta
1bc0: 62 53 69 7a 65 20 3d 20 70 72 6f 66 69 6c 65 52  bSize = profileR
1bd0: 6f 6f 74 2e 67 65 74 56 61 6c 75 65 28 22 4d 6f  oot.getValue("Mo
1be0: 64 75 6c 65 54 65 78 74 45 64 69 74 6f 72 2f 54  duleTextEditor/T
1bf0: 61 62 53 69 7a 65 22 29 3b 0d 0a 20 20 20 20 20  abSize");..     
1c00: 20 20 20 76 61 72 20 73 70 61 63 65 73 20 3d 20     var spaces = 
1c10: 27 27 3b 20 66 6f 72 20 28 76 61 72 20 69 3d 30  ''; for (var i=0
1c20: 3b 20 69 3c 74 61 62 53 69 7a 65 3b 20 69 2b 2b  ; i<tabSize; i++
1c30: 29 20 7b 20 73 70 61 63 65 73 20 2b 3d 20 27 20  ) { spaces += ' 
1c40: 27 20 7d 3b 0d 0a 20 20 20 20 20 20 20 20 72 65  ' };..        re
1c50: 74 75 72 6e 20 73 65 6c 54 65 78 74 2e 72 65 70  turn selText.rep
1c60: 6c 61 63 65 28 2f 5e 28 28 3c 5b 5e 3e 5d 2b 3e  lace(/^((<[^>]+>
1c70: 7c 5c 74 29 2b 29 2f 67 6d 2c 20 66 75 6e 63 74  |\t)+)/gm, funct
1c80: 69 6f 6e 28 6d 61 74 63 68 2c 20 70 31 2c 20 6f  ion(match, p1, o
1c90: 66 66 73 65 74 2c 20 73 29 20 7b 0d 0a 20 20 20  ffset, s) {..   
1ca0: 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20           return 
1cb0: 70 31 2e 72 65 70 6c 61 63 65 28 2f 5c 74 2f 67  p1.replace(/\t/g
1cc0: 2c 20 73 70 61 63 65 73 29 3b 0d 0a 20 20 20 20  , spaces);..    
1cd0: 20 20 20 20 7d 29 3b 0d 0a 20 20 20 20 7d 2c 20      });..    }, 
1ce0: 64 6f 4e 6f 74 52 65 73 74 6f 72 65 53 65 6c 65  doNotRestoreSele
1cf0: 63 74 69 6f 6e 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75  ction);..}....fu
1d00: 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 4e 65 78  nction selectNex
1d10: 74 50 61 74 74 65 72 6e 28 64 69 72 29 7b 0d 0a  tPattern(dir){..
1d20: 20 20 20 20 2f 2f 64 65 62 75 67 67 65 72 3b 0d      //debugger;.
1d30: 0a 20 20 20 20 76 61 72 20 77 20 3d 20 47 65 74  .    var w = Get
1d40: 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 20 2f 2f  TextWindow(); //
1d50: 73 6e 65 67 6f 70 61 74 2e 61 63 74 69 76 65 54  snegopat.activeT
1d60: 65 78 74 57 69 6e 64 6f 77 28 29 3b 0d 0a 20 20  extWindow();..  
1d70: 20 20 69 66 20 28 21 77 20 7c 7c 20 77 69 6e 64    if (!w || wind
1d80: 6f 77 73 2e 6d 6f 64 61 6c 4d 6f 64 65 20 21 3d  ows.modalMode !=
1d90: 20 6d 73 4e 6f 6e 65 29 20 72 65 74 75 72 6e 20   msNone) return 
1da0: 66 61 6c 73 65 3b 0d 0a 20 20 20 20 0d 0a 2f 2f  false;..    ..//
1db0: 64 65 62 75 67 67 65 72 3b 20 20 20 20 0d 0a 20  debugger;    .. 
1dc0: 20 20 20 0d 0a 20 20 20 20 76 61 72 20 73 65 6c     ..    var sel
1dd0: 20 3d 20 77 2e 67 65 74 53 65 6c 65 63 74 69 6f   = w.getSelectio
1de0: 6e 28 29 3b 0d 0a 20 20 20 20 76 61 72 20 73 65  n();..    var se
1df0: 6c 54 65 78 74 20 3d 20 77 2e 73 65 6c 65 63 74  lText = w.select
1e00: 65 64 54 65 78 74 28 29 3b 0d 0a 20 20 20 20 69  edText();..    i
1e10: 66 20 28 73 65 6c 54 65 78 74 20 3d 3d 20 27 27  f (selText == ''
1e20: 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d  ) return false;.
1e30: 0a 0d 0a 20 20 20 20 76 61 72 20 72 6f 77 20 3d  ...    var row =
1e40: 20 64 69 72 20 3c 20 30 20 3f 20 0d 0a 20 20 20   dir < 0 ? ..   
1e50: 20 20 20 20 20 73 65 61 72 63 68 50 61 74 74 65       searchPatte
1e60: 72 6e 55 70 28 77 2c 20 73 65 6c 54 65 78 74 2c  rnUp(w, selText,
1e70: 20 73 65 6c 2e 62 65 67 69 6e 52 6f 77 29 20 3a   sel.beginRow) :
1e80: 0d 0a 20 20 20 20 20 20 20 20 73 65 61 72 63 68  ..        search
1e90: 50 61 74 74 65 72 6e 44 6f 77 6e 28 77 2c 20 73  PatternDown(w, s
1ea0: 65 6c 54 65 78 74 2c 20 73 65 6c 2e 62 65 67 69  elText, sel.begi
1eb0: 6e 52 6f 77 29 3b 0d 0a 20 20 20 20 0d 0a 20 20  nRow);..    ..  
1ec0: 20 20 69 66 20 28 21 72 6f 77 29 20 72 65 74 75    if (!row) retu
1ed0: 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 76  rn false;..    v
1ee0: 61 72 20 73 74 72 20 3d 20 77 2e 6c 69 6e 65 28  ar str = w.line(
1ef0: 72 6f 77 29 3b 0d 0a 20 20 20 20 76 61 72 20 63  row);..    var c
1f00: 6f 6c 20 3d 20 31 20 2b 20 73 74 72 2e 69 6e 64  ol = 1 + str.ind
1f10: 65 78 4f 66 28 73 65 6c 54 65 78 74 29 3b 0d 0a  exOf(selText);..
1f20: 20 20 20 20 0d 0a 20 20 20 20 77 2e 73 65 74 43      ..    w.setC
1f30: 61 72 65 74 50 6f 73 28 31 2c 20 31 29 3b 0d 0a  aretPos(1, 1);..
1f40: 20 20 20 20 77 2e 73 65 74 53 65 6c 65 63 74 69      w.setSelecti
1f50: 6f 6e 28 72 6f 77 2c 20 63 6f 6c 2c 20 72 6f 77  on(row, col, row
1f60: 2c 20 63 6f 6c 20 2b 20 73 65 6c 54 65 78 74 2e  , col + selText.
1f70: 6c 65 6e 67 74 68 29 3b 0d 0a 20 20 20 20 77 2e  length);..    w.
1f80: 73 65 74 43 61 72 65 74 50 6f 73 28 72 6f 77 2c  setCaretPos(row,
1f90: 20 63 6f 6c 29 3b 0d 0a 20 20 20 20 77 2e 73 65   col);..    w.se
1fa0: 74 53 65 6c 65 63 74 69 6f 6e 28 72 6f 77 2c 20  tSelection(row, 
1fb0: 63 6f 6c 2c 20 72 6f 77 2c 20 63 6f 6c 20 2b 20  col, row, col + 
1fc0: 73 65 6c 54 65 78 74 2e 6c 65 6e 67 74 68 29 3b  selText.length);
1fd0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 72 65 74 75  ..    ..    retu
1fe0: 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a 66  rn true;..}....f
1ff0: 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 50 61  unction searchPa
2000: 74 74 65 72 6e 44 6f 77 6e 28 64 6f 63 2c 20 70  tternDown(doc, p
2010: 61 74 74 65 72 6e 2c 20 73 74 61 72 74 52 6f 77  attern, startRow
2020: 29 7b 0d 0a 20 20 20 20 76 61 72 20 71 20 3d 20  ){..    var q = 
2030: 30 3b 0d 0a 20 20 20 20 66 6f 72 20 28 76 61 72  0;..    for (var
2040: 20 69 20 3d 20 73 74 61 72 74 52 6f 77 20 2b 20   i = startRow + 
2050: 31 3b 20 69 20 3c 3d 20 64 6f 63 2e 6c 69 6e 65  1; i <= doc.line
2060: 73 43 6f 75 6e 74 28 29 3b 20 69 2b 2b 29 7b 0d  sCount(); i++){.
2070: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20  .        ..     
2080: 20 20 20 69 66 20 28 2b 2b 71 20 3e 20 31 30 30     if (++q > 100
2090: 30 30 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b  00) return null;
20a0: 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20  ..        ..    
20b0: 20 20 20 20 76 61 72 20 73 74 72 20 3d 20 64 6f      var str = do
20c0: 63 2e 6c 69 6e 65 28 69 29 3b 0d 0a 20 20 20 20  c.line(i);..    
20d0: 20 20 20 20 76 61 72 20 6a 20 3d 20 73 74 72 2e      var j = str.
20e0: 69 6e 64 65 78 4f 66 28 70 61 74 74 65 72 6e 29  indexOf(pattern)
20f0: 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 6a  ;..        if (j
2100: 20 3e 20 2d 31 29 20 72 65 74 75 72 6e 20 69 3b   > -1) return i;
2110: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 74  ..    }..    ret
2120: 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 7d 0d 0a 0d 0a  urn null;..}....
2130: 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 50  function searchP
2140: 61 74 74 65 72 6e 55 70 28 64 6f 63 2c 20 70 61  atternUp(doc, pa
2150: 74 74 65 72 6e 2c 20 73 74 61 72 74 52 6f 77 29  ttern, startRow)
2160: 7b 0d 0a 2f 2f 64 65 62 75 67 67 65 72 3b 20 20  {..//debugger;  
2170: 20 20 0d 0a 20 20 20 20 76 61 72 20 71 20 3d 20    ..    var q = 
2180: 30 3b 0d 0a 20 20 20 20 66 6f 72 20 28 76 61 72  0;..    for (var
2190: 20 69 20 3d 20 73 74 61 72 74 52 6f 77 20 2d 20   i = startRow - 
21a0: 31 3b 20 69 20 3e 3d 20 31 3b 20 69 2d 2d 29 7b  1; i >= 1; i--){
21b0: 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20  ..        ..    
21c0: 20 20 20 20 69 66 20 28 2b 2b 71 20 3e 20 31 30      if (++q > 10
21d0: 30 30 30 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c  000) return null
21e0: 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20  ;..        ..   
21f0: 20 20 20 20 20 76 61 72 20 73 74 72 20 3d 20 64       var str = d
2200: 6f 63 2e 6c 69 6e 65 28 69 29 3b 0d 0a 20 20 20  oc.line(i);..   
2210: 20 20 20 20 20 76 61 72 20 6a 20 3d 20 73 74 72       var j = str
2220: 2e 69 6e 64 65 78 4f 66 28 70 61 74 74 65 72 6e  .indexOf(pattern
2230: 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28  );..        if (
2240: 6a 20 3e 20 2d 31 29 20 72 65 74 75 72 6e 20 69  j > -1) return i
2250: 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65  ;..    }..    re
2260: 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 7d 0d 0a 0d  turn null;..}...
2270: 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73  .function macros
2280: d0 9a d0 bb d0 be d0 bd d0 b8 d1 80 d0 be d0 b2  ................
2290: d0 b0 d1 82 d1 8c d0 a2 d0 b5 d0 ba d1 81 d1 82  ................
22a0: 28 29 7b 0d 0a 20 20 20 20 76 61 72 20 77 20 3d  (){..    var w =
22b0: 20 47 65 74 54 65 78 74 57 69 6e 64 6f 77 28 29   GetTextWindow()
22c0: 3b 2f 2f 73 6e 65 67 6f 70 61 74 2e 61 63 74 69  ;//snegopat.acti
22d0: 76 65 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 0d  veTextWindow();.
22e0: 0a 20 20 20 20 69 66 20 28 21 77 20 7c 7c 20 77  .    if (!w || w
22f0: 69 6e 64 6f 77 73 2e 6d 6f 64 61 6c 4d 6f 64 65  indows.modalMode
2300: 20 21 3d 20 6d 73 4e 6f 6e 65 29 20 72 65 74 75   != msNone) retu
2310: 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 0d  rn false;..    .
2320: 0a 20 20 20 20 76 61 72 20 73 65 6c 20 3d 20 77  .    var sel = w
2330: 2e 67 65 74 53 65 6c 65 63 74 69 6f 6e 28 29 3b  .getSelection();
2340: 0d 0a 20 20 20 20 76 61 72 20 73 65 6c 54 65 78  ..    var selTex
2350: 74 20 3d 20 77 2e 73 65 6c 65 63 74 65 64 54 65  t = w.selectedTe
2360: 78 74 28 29 3b 0d 0a 20 20 20 20 69 66 20 28 73  xt();..    if (s
2370: 65 6c 54 65 78 74 20 21 3d 20 27 27 29 7b 20 20  elText != ''){  
2380: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
2390: 20 20 20 20 77 2e 53 65 74 53 65 6c 65 63 74 65      w.SetSelecte
23a0: 64 54 65 78 74 28 73 65 6c 54 65 78 74 20 2b 20  dText(selText + 
23b0: 22 5c 6e 22 20 2b 20 73 65 6c 54 65 78 74 29 3b  "\n" + selText);
23c0: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 65 6c 73  ..    }..    els
23d0: 65 7b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0  e{..        // .
23e0: 95 d1 81 d0 bb d0 b8 20 d0 bd d0 b8 d1 87 d0 b5  ....... ........
23f0: d0 b3 d0 be 20 d0 bd d0 b5 20 d0 b2 d1 8b d0 b4  .... .... ......
2400: d0 b5 d0 bb d0 b5 d0 bd d0 be 2c 20 d1 81 d0 ba  .........., ....
2410: d0 bb d0 be d0 bd d0 b8 d1 80 d1 83 d0 b5 d0 bc  ................
2420: 20 d1 82 d0 b5 d0 ba d1 83 d1 89 d1 83 d1 8e 20   .............. 
2430: d1 81 d1 82 d1 80 d0 be d0 ba d1 83 0d 0a 20 20  ..............  
2440: 20 20 20 20 20 20 76 61 72 20 70 6f 73 20 3d 20        var pos = 
2450: 77 2e 67 65 74 43 61 72 65 74 50 6f 73 28 29 3b  w.getCaretPos();
2460: 0d 0a 20 20 20 20 20 20 20 20 77 2e 73 65 74 53  ..        w.setS
2470: 65 6c 65 63 74 69 6f 6e 28 70 6f 73 2e 62 65 67  election(pos.beg
2480: 69 6e 52 6f 77 2c 20 31 2c 20 70 6f 73 2e 62 65  inRow, 1, pos.be
2490: 67 69 6e 52 6f 77 2c 20 31 20 2b 20 77 2e 6c 69  ginRow, 1 + w.li
24a0: 6e 65 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 29  ne(pos.beginRow)
24b0: 2e 6c 65 6e 67 74 68 29 3b 0d 0a 20 20 20 20 20  .length);..     
24c0: 20 20 20 77 2e 53 65 74 53 65 6c 65 63 74 65 64     w.SetSelected
24d0: 54 65 78 74 28 77 2e 73 65 6c 65 63 74 65 64 54  Text(w.selectedT
24e0: 65 78 74 28 29 20 2b 20 22 5c 6e 22 20 2b 20 77  ext() + "\n" + w
24f0: 2e 73 65 6c 65 63 74 65 64 54 65 78 74 28 29 29  .selectedText())
2500: 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65  ;..    }..    re
2510: 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d  turn true;..}...
2520: 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73  .function macros
2530: 4f 6e 50 72 65 73 73 45 6e 74 65 72 49 6e 43 6f  OnPressEnterInCo
2540: 6d 6d 65 6e 74 28 29 7b 0d 0a 20 20 20 20 76 61  mment(){..    va
2550: 72 20 77 20 3d 20 47 65 74 54 65 78 74 57 69 6e  r w = GetTextWin
2560: 64 6f 77 28 29 3b 2f 2f 73 6e 65 67 6f 70 61 74  dow();//snegopat
2570: 2e 61 63 74 69 76 65 54 65 78 74 57 69 6e 64 6f  .activeTextWindo
2580: 77 28 29 3b 0d 0a 20 20 20 20 69 66 20 28 21 77  w();..    if (!w
2590: 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d 6f 64 61   || windows.moda
25a0: 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f 6e 65 29  lMode != msNone)
25b0: 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a   return false;..
25c0: 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 70 6f      ..    var po
25d0: 73 20 3d 20 77 2e 67 65 74 43 61 72 65 74 50 6f  s = w.getCaretPo
25e0: 73 28 29 3b 0d 0a 20 20 20 20 76 61 72 20 73 74  s();..    var st
25f0: 72 20 3d 20 77 2e 6c 69 6e 65 28 70 6f 73 2e 62  r = w.line(pos.b
2600: 65 67 69 6e 52 6f 77 29 3b 0d 0a 20 20 20 20 69  eginRow);..    i
2610: 66 20 28 73 74 72 2e 6d 61 74 63 68 28 2f 5e 5c  f (str.match(/^\
2620: 73 2a 5c 2f 5c 2f 5c 73 2a 5b 5e 5c 73 5d 2b 2f  s*\/\/\s*[^\s]+/
2630: 69 67 29 29 20 7b 20 20 20 20 20 0d 0a 0d 0a 20  ig)) {     .... 
2640: 20 20 20 20 20 20 20 2f 2f 20 d0 95 d1 81 d0 bb         // ......
2650: d0 b8 20 d0 ba d1 83 d1 80 d1 81 d0 be d1 80 20  .. ............ 
2660: d1 83 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0 bb  ................
2670: d0 b5 d0 bd 20 d0 bb d0 b5 d0 b2 d0 b5 d0 b5 20  .... .......... 
2680: d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb d0 be d0 b2  ................
2690: 20 d0 ba d0 be d0 bc d0 bc d0 b5 d0 bd d1 82 d0   ...............
26a0: b0 d1 80 d0 b8 d1 8f 2c 20 d1 82 d0 be 20 d0 bd  ......., .... ..
26b0: d0 b5 20 d0 be d0 b1 d1 80 d0 b0 d0 b1 d0 b0 d1  .. .............
26c0: 82 d1 8b d0 b2 d0 b0 d0 b5 d0 bc 20 d0 bd d0 b0  ........... ....
26d0: d0 b6 d0 b0 d1 82 d0 b8 d0 b5 2c 0d 0a 20 20 20  ..........,..   
26e0: 20 20 20 20 20 2f 2f 20 d1 87 d1 82 d0 be d0 b1       // ........
26f0: d1 8b 20 d0 b4 d0 be d0 b1 d0 b0 d0 b2 d0 bb d1  .. .............
2700: 8f d0 bb d0 b0 d1 81 d1 8c 20 d0 bf d1 83 d1 81  ......... ......
2710: d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0  ...... .........
2720: ba d0 b0 2c 20 d0 ba d0 b0 d0 ba 20 d0 b8 20 d0  ..., ...... .. .
2730: be d0 b6 d0 b8 d0 b4 d0 b0 d0 b5 d1 82 d1 81 d1  ................
2740: 8f 2e 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28  ....        if (
2750: 70 6f 73 2e 62 65 67 69 6e 43 6f 6c 20 3c 3d 20  pos.beginCol <= 
2760: 73 74 72 2e 73 65 61 72 63 68 28 27 2f 2f 27 29  str.search('//')
2770: 20 2b 20 31 29 0d 0a 20 20 20 20 20 20 20 20 20   + 1)..         
2780: 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b     return false;
2790: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0  ....        // .
27a0: ad d1 82 d0 be 20 d0 bd d0 b5 d0 bf d1 83 d1 81  ..... ..........
27b0: d1 82 d0 be d0 b9 20 d0 ba d0 be d0 bc d0 bc d0  ...... .........
27c0: b5 d0 bd d1 82 d0 b0 d1 80 d0 b8 d0 b9 20 2d 20  ............. - 
27d0: d0 b4 d0 be d0 b1 d0 b0 d0 b2 d0 bb d1 8f d0 b5  ................
27e0: d0 bc 20 d0 ba d0 be d0 bc d0 bc d0 b5 d0 bd d1  .. .............
27f0: 82 d0 b0 d1 80 d0 b8 d0 b9 20 d0 bd d0 b8 d0 b6  ......... ......
2800: d0 b5 20 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20  .. ..        // 
2810: d1 81 20 d0 be d1 82 d1 81 d1 82 d1 83 d0 bf d0  .. .............
2820: be d0 bc 20 d0 ba d0 b0 d0 ba 20 d0 b2 20 d0 bf  ... ...... .. ..
2830: d1 80 d0 b5 d0 b4 d1 8b d0 b4 d1 83 d1 89 d0 b5  ................
2840: d0 b9 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b5 2e  .. .............
2850: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 6e 65  ..        var ne
2860: 77 53 74 72 20 3d 20 67 65 74 43 6f 6d 6d 65 6e  wStr = getCommen
2870: 74 53 74 72 69 6e 67 48 65 61 64 65 72 28 73 74  tStringHeader(st
2880: 72 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f  r);....        /
2890: 2f 20 d0 95 d1 81 d0 bb d0 b8 20 d1 81 d0 bf d1  / ........ .....
28a0: 80 d0 b0 d0 b2 d0 b0 20 d0 be d1 82 20 d0 ba d1  ....... .... ...
28b0: 83 d1 80 d1 81 d0 be d1 80 d0 b0 20 d0 b5 d1 81  ........... ....
28c0: d1 82 d1 8c 20 d1 82 d0 b5 d0 ba d1 81 d1 82 2c  .... ..........,
28d0: 20 d0 bf d0 b5 d1 80 d0 b5 d0 bd d0 b5 d1 81 d0   ...............
28e0: b5 d0 bc 20 d0 b5 d0 b3 d0 be 20 0d 0a 20 20 20  ... ...... ..   
28f0: 20 20 20 20 20 2f 2f 20 d0 bd d0 b0 20 d0 bd d0       // .... ...
2900: be d0 b2 d1 83 d1 8e 20 d1 81 d1 82 d1 80 d0 be  ....... ........
2910: d0 ba d1 83 20 d0 ba d0 be d0 bc d0 bc d0 b5 d0  .... ...........
2920: bd d1 82 d0 b0 d1 80 d0 b8 d1 8f 2e 0d 0a 20 20  ..............  
2930: 20 20 20 20 20 20 69 66 20 28 73 74 72 2e 6c 65        if (str.le
2940: 6e 67 74 68 20 3e 3d 20 70 6f 73 2e 65 6e 64 43  ngth >= pos.endC
2950: 6f 6c 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20  ol) {..         
2960: 20 20 20 76 61 72 20 74 61 69 6c 20 3d 20 73 74     var tail = st
2970: 72 2e 73 75 62 73 74 72 28 70 6f 73 2e 62 65 67  r.substr(pos.beg
2980: 69 6e 43 6f 6c 20 2d 20 31 2c 20 73 74 72 2e 6c  inCol - 1, str.l
2990: 65 6e 67 74 68 20 2d 20 70 6f 73 2e 62 65 67 69  ength - pos.begi
29a0: 6e 43 6f 6c 20 2b 20 31 29 3b 0d 0a 20 20 20 20  nCol + 1);..    
29b0: 20 20 20 20 20 20 20 20 77 2e 52 65 70 6c 61 63          w.Replac
29c0: 65 4c 69 6e 65 28 70 6f 73 2e 62 65 67 69 6e 52  eLine(pos.beginR
29d0: 6f 77 2c 20 73 74 72 2e 73 75 62 73 74 72 28 30  ow, str.substr(0
29e0: 2c 20 70 6f 73 2e 62 65 67 69 6e 43 6f 6c 20 2d  , pos.beginCol -
29f0: 20 31 29 29 3b 20 20 20 20 2f 2f 20 d0 be d1 82   1));    // ....
2a00: d1 80 d0 b5 d0 b7 d0 b0 d0 b5 d0 bc 20 d1 85 d0  ............ ...
2a10: b2 d0 be d1 81 d1 82 20 d0 be d1 82 20 d1 82 d0  ....... .... ...
2a20: b5 d0 ba d1 83 d1 89 d0 b5 d0 b9 20 d1 81 d1 82  ........... ....
2a30: d1 80 d0 be d0 ba d0 b8 0d 0a 20 20 20 20 20 20  ..........      
2a40: 20 20 20 20 20 20 6e 65 77 53 74 72 20 3d 20 6e        newStr = n
2a50: 65 77 53 74 72 20 2b 20 74 61 69 6c 2e 72 65 70  ewStr + tail.rep
2a60: 6c 61 63 65 28 2f 5e 5c 73 2a 2f 69 67 2c 20 22  lace(/^\s*/ig, "
2a70: 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a  ");..        }..
2a80: 20 20 20 20 20 20 20 20 76 61 72 20 6e 65 77 43          var newC
2a90: 61 72 65 74 52 6f 77 20 3d 20 31 20 2b 20 70 6f  aretRow = 1 + po
2aa0: 73 2e 62 65 67 69 6e 52 6f 77 3b 0d 0a 20 20 20  s.beginRow;..   
2ab0: 20 20 20 20 20 77 2e 49 6e 73 65 72 74 4c 69 6e       w.InsertLin
2ac0: 65 28 6e 65 77 43 61 72 65 74 52 6f 77 2c 20 6e  e(newCaretRow, n
2ad0: 65 77 53 74 72 29 3b 0d 0a 20 20 20 20 20 20 20  ewStr);..       
2ae0: 20 77 2e 73 65 74 43 61 72 65 74 50 6f 73 28 6e   w.setCaretPos(n
2af0: 65 77 43 61 72 65 74 52 6f 77 2c 20 31 20 2b 20  ewCaretRow, 1 + 
2b00: 6e 65 77 53 74 72 2e 6c 65 6e 67 74 68 29 3b 0d  newStr.length);.
2b10: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  .        return 
2b20: 74 72 75 65 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20  true;..    }..  
2b30: 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d    return false;.
2b40: 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d  .}....function m
2b50: 61 63 72 6f 73 4f 6e 50 72 65 73 73 44 65 6c 65  acrosOnPressDele
2b60: 74 65 49 6e 43 6f 6d 6d 65 6e 74 28 29 7b 0d 0a  teInComment(){..
2b70: 20 20 20 20 76 61 72 20 77 20 3d 20 47 65 74 54      var w = GetT
2b80: 65 78 74 57 69 6e 64 6f 77 28 29 3b 2f 2f 73 6e  extWindow();//sn
2b90: 65 67 6f 70 61 74 2e 61 63 74 69 76 65 54 65 78  egopat.activeTex
2ba0: 74 57 69 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20  tWindow();..    
2bb0: 69 66 20 28 21 77 20 7c 7c 20 77 69 6e 64 6f 77  if (!w || window
2bc0: 73 2e 6d 6f 64 61 6c 4d 6f 64 65 20 21 3d 20 6d  s.modalMode != m
2bd0: 73 4e 6f 6e 65 29 20 72 65 74 75 72 6e 20 66 61  sNone) return fa
2be0: 6c 73 65 3b 0d 0a 0d 0a 20 20 20 20 69 66 20 28  lse;....    if (
2bf0: 77 2e 73 65 6c 65 63 74 65 64 54 65 78 74 28 29  w.selectedText()
2c00: 20 21 3d 20 22 22 29 7b 0d 0a 20 20 20 20 20 20   != ""){..      
2c10: 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 20    return false; 
2c20: 20 20 20 2f 2f 2f 20 54 4f 44 4f 3a 20 d0 be d0     /// TODO: ...
2c30: b1 d1 80 d0 b0 d0 b1 d0 be d1 82 d0 b0 d1 82 d1  ................
2c40: 8c 20 d1 8d d1 82 d0 be d1 82 20 d0 b2 d0 b0 d1  . ........ .....
2c50: 80 d0 b8 d0 b0 d0 bd d1 82 2e 0d 0a 20 20 20 20  ............    
2c60: 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72  }..    ..    var
2c70: 20 70 6f 73 20 3d 20 77 2e 67 65 74 43 61 72 65   pos = w.getCare
2c80: 74 50 6f 73 28 29 3b 0d 0a 20 20 20 20 0d 0a 20  tPos();..    .. 
2c90: 20 20 20 69 66 20 28 70 6f 73 2e 62 65 67 69 6e     if (pos.begin
2ca0: 52 6f 77 20 3d 3d 20 77 2e 6c 69 6e 65 73 43 6f  Row == w.linesCo
2cb0: 75 6e 74 29 20 72 65 74 75 72 6e 20 66 61 6c 73  unt) return fals
2cc0: 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61  e;..    ..    va
2cd0: 72 20 73 74 72 20 3d 20 77 2e 6c 69 6e 65 28 70  r str = w.line(p
2ce0: 6f 73 2e 62 65 67 69 6e 52 6f 77 29 3b 0d 0a 20  os.beginRow);.. 
2cf0: 20 20 20 0d 0a 20 20 20 20 69 66 20 28 21 69 73     ..    if (!is
2d00: 43 6f 6d 6d 65 6e 74 53 74 72 69 6e 67 28 73 74  CommentString(st
2d10: 72 29 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65  r)) return false
2d20: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 69 66 20  ;..    ..    if 
2d30: 28 70 6f 73 2e 65 6e 64 43 6f 6c 20 3e 20 73 74  (pos.endCol > st
2d40: 72 2e 6c 65 6e 67 74 68 29 7b 0d 0a 20 20 20 20  r.length){..    
2d50: 20 20 20 20 2f 2f 20 d0 9a d1 83 d1 80 d1 81 d0      // .........
2d60: be d1 80 20 d1 81 d1 82 d0 be d0 b8 d1 82 20 d0  ... .......... .
2d70: b2 20 d1 81 d0 b0 d0 bc d0 be d0 bc 20 d0 ba d0  . .......... ...
2d80: be d0 bd d1 86 d0 b5 20 d1 81 d1 82 d1 80 d0 be  ....... ........
2d90: d0 ba d0 b8 20 d0 b8 20 d0 bf d1 80 d0 b8 20 d0  .... .. ...... .
2da0: bd d0 b0 d0 b6 d0 b0 d1 82 d0 b8 d0 b8 20 0d 0a  ............. ..
2db0: 20 20 20 20 20 20 20 20 2f 2f 20 44 65 6c 65 74          // Delet
2dc0: 65 20 d1 81 d0 bb d0 b5 d0 b4 d1 83 d1 8e d1 89  e ..............
2dd0: d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0  .... ...........
2de0: b0 20 d0 b4 d0 be d0 bb d0 b6 d0 bd d0 b0 20 d0  . ............ .
2df0: bf d1 80 d0 b8 d0 ba d0 bb d0 b5 d0 b8 d1 82 d1  ................
2e00: 8c d1 81 d1 8f 20 d0 b2 20 d0 ba d0 be d0 bd d0  ..... .. .......
2e10: b5 d1 86 20 d1 82 d0 b5 d0 ba d1 83 d1 89 d0 b5  ... ............
2e20: d0 b9 2e 0d 0a 20 20 20 20 20 20 20 20 76 61 72  .....        var
2e30: 20 6e 65 77 54 61 69 6c 20 3d 20 77 2e 6c 69 6e   newTail = w.lin
2e40: 65 28 31 20 2b 20 70 6f 73 2e 62 65 67 69 6e 52  e(1 + pos.beginR
2e50: 6f 77 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a  ow);..        ..
2e60: 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 43          if (!isC
2e70: 6f 6d 6d 65 6e 74 53 74 72 69 6e 67 28 6e 65 77  ommentString(new
2e80: 54 61 69 6c 29 29 20 72 65 74 75 72 6e 20 66 61  Tail)) return fa
2e90: 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a  lse;..        ..
2ea0: 20 20 20 20 20 20 20 20 6e 65 77 54 61 69 6c 20          newTail 
2eb0: 3d 20 6e 65 77 54 61 69 6c 2e 72 65 70 6c 61 63  = newTail.replac
2ec0: 65 28 2f 5e 5c 73 2a 5c 2f 5c 2f 2a 5c 2f 5c 73  e(/^\s*\/\/*\/\s
2ed0: 2a 2f 69 67 2c 20 22 22 29 3b 20 0d 0a 20 20 20  */ig, ""); ..   
2ee0: 20 20 20 20 20 69 66 20 28 73 74 72 2e 6d 61 74       if (str.mat
2ef0: 63 68 28 2f 5b 5e 5c 73 5d 24 2f 69 67 29 29 20  ch(/[^\s]$/ig)) 
2f00: 6e 65 77 54 61 69 6c 20 3d 20 22 20 22 20 2b 20  newTail = " " + 
2f10: 6e 65 77 54 61 69 6c 3b 0d 0a 20 20 20 20 20 20  newTail;..      
2f20: 20 20 0d 0a 20 20 20 20 20 20 20 20 77 2e 52 65    ..        w.Re
2f30: 70 6c 61 63 65 4c 69 6e 65 28 70 6f 73 2e 62 65  placeLine(pos.be
2f40: 67 69 6e 52 6f 77 2c 20 73 74 72 20 2b 20 6e 65  ginRow, str + ne
2f50: 77 54 61 69 6c 29 3b 0d 0a 20 20 20 20 20 20 20  wTail);..       
2f60: 20 77 2e 44 65 6c 65 74 65 4c 69 6e 65 28 31 20   w.DeleteLine(1 
2f70: 2b 20 70 6f 73 2e 62 65 67 69 6e 52 6f 77 29 3b  + pos.beginRow);
2f80: 0d 0a 20 20 20 20 20 20 20 20 77 2e 73 65 74 43  ..        w.setC
2f90: 61 72 65 74 50 6f 73 28 70 6f 73 2e 62 65 67 69  aretPos(pos.begi
2fa0: 6e 52 6f 77 2c 20 70 6f 73 2e 62 65 67 69 6e 43  nRow, pos.beginC
2fb0: 6f 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 72 65  ol);..        re
2fc0: 74 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20  turn true;..    
2fd0: 7d 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 66 61  }..    return fa
2fe0: 6c 73 65 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74  lse;..}....funct
2ff0: 69 6f 6e 20 6d 61 63 72 6f 73 4f 6e 50 72 65 73  ion macrosOnPres
3000: 73 42 61 63 6b 73 70 61 63 65 49 6e 43 6f 6d 6d  sBackspaceInComm
3010: 65 6e 74 28 29 7b 0d 0a 20 20 20 20 76 61 72 20  ent(){..    var 
3020: 77 20 3d 20 47 65 74 54 65 78 74 57 69 6e 64 6f  w = GetTextWindo
3030: 77 28 29 3b 2f 2f 73 6e 65 67 6f 70 61 74 2e 61  w();//snegopat.a
3040: 63 74 69 76 65 54 65 78 74 57 69 6e 64 6f 77 28  ctiveTextWindow(
3050: 29 3b 0d 0a 20 20 20 20 69 66 20 28 21 77 20 7c  );..    if (!w |
3060: 7c 20 77 69 6e 64 6f 77 73 2e 6d 6f 64 61 6c 4d  | windows.modalM
3070: 6f 64 65 20 21 3d 20 6d 73 4e 6f 6e 65 29 20 72  ode != msNone) r
3080: 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 0d 0a  eturn false;....
3090: 20 20 20 20 69 66 20 28 77 2e 73 65 6c 65 63 74      if (w.select
30a0: 65 64 54 65 78 74 28 29 20 21 3d 20 22 22 29 7b  edText() != ""){
30b0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  ..        return
30c0: 20 66 61 6c 73 65 3b 20 20 20 20 2f 2f 2f 20 54   false;    /// T
30d0: 4f 44 4f 3a 20 d0 be d0 b1 d1 80 d0 b0 d0 b1 d0  ODO: ...........
30e0: be d1 82 d0 b0 d1 82 d1 8c 20 d1 8d d1 82 d0 be  ......... ......
30f0: d1 82 20 d0 b2 d0 b0 d1 80 d0 b8 d0 b0 d0 bd d1  .. .............
3100: 82 2e 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d  ....    }..    .
3110: 0a 20 20 20 20 76 61 72 20 70 6f 73 20 3d 20 77  .    var pos = w
3120: 2e 67 65 74 43 61 72 65 74 50 6f 73 28 29 3b 0d  .getCaretPos();.
3130: 0a 20 20 20 20 69 66 20 28 70 6f 73 2e 62 65 67  .    if (pos.beg
3140: 69 6e 52 6f 77 20 3d 3d 20 31 29 20 72 65 74 75  inRow == 1) retu
3150: 72 6e 20 66 61 6c 73 65 3b 20 20 20 20 2f 2f 20  rn false;    // 
3160: d0 98 20 d1 82 d0 b0 d0 ba 20 d1 83 d0 b6 d0 b5  .. ...... ......
3170: 20 d1 81 d1 82 d0 be d0 b8 d0 bc 20 d0 b2 20 d0   .......... .. .
3180: bf d0 b5 d1 80 d0 b2 d0 be d0 b9 20 d1 81 d1 82  ........... ....
3190: d1 80 d0 be d0 ba d0 b5 2e 0d 0a 20 20 20 20 0d  ...........    .
31a0: 0a 20 20 20 20 2f 2f 20 d0 9e d0 b1 d1 80 d0 b0  .    // ........
31b0: d0 b1 d0 b0 d1 82 d1 8b d0 b2 d0 b0 d0 b5 d0 bc  ................
31c0: 20 d1 82 d0 be d0 bb d1 8c d0 ba d0 be 20 d0 b5   ............ ..
31d0: d1 81 d0 bb d0 b8 20 d1 81 d1 82 d0 be d0 b8 d0  ...... .........
31e0: bc 20 20 d0 b2 20 d1 81 d0 b0 d0 bc d0 be d0 bc  .  .. ..........
31f0: 20 d0 bd d0 b0 d1 87 d0 b0 d0 bb d0 b5 20 d1 81   ............ ..
3200: d1 82 d1 80 d0 be d0 ba d0 b8 20 d0 b8 20 0d 0a  .......... .. ..
3210: 20 20 20 20 2f 2f 20 d0 b5 d1 81 d0 bb d0 b8 20      // ........ 
3220: d1 8d d1 82 d0 b0 20 d0 b8 20 d0 bf d1 80 d0 b5  ...... .. ......
3230: d0 b4 d1 8b d0 b4 d1 83 d1 89 d0 b0 d1 8f 20 d1  .............. .
3240: 81 d1 82 d1 80 d0 be d0 ba d0 b8 20 d1 8f d0 b2  ........... ....
3250: d0 bb d1 8f d1 8e d1 82 d1 81 d1 8f 20 d0 ba d0  ............ ...
3260: be d0 bc d0 bc d0 b5 d0 bd d1 82 d0 b0 d1 80 d0  ................
3270: b8 d1 8f d0 bc d0 b8 2e 0d 0a 20 20 20 20 69 66  ..........    if
3280: 20 28 70 6f 73 2e 62 65 67 69 6e 43 6f 6c 20 3e   (pos.beginCol >
3290: 20 31 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65   1) return false
32a0: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72  ;..    ..    var
32b0: 20 73 74 72 20 3d 20 77 2e 6c 69 6e 65 28 70 6f   str = w.line(po
32c0: 73 2e 62 65 67 69 6e 52 6f 77 29 3b 0d 0a 20 20  s.beginRow);..  
32d0: 20 20 69 66 20 28 21 69 73 43 6f 6d 6d 65 6e 74    if (!isComment
32e0: 53 74 72 69 6e 67 28 73 74 72 29 29 20 72 65 74  String(str)) ret
32f0: 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20  urn false;..    
3300: 0d 0a 20 20 20 20 76 61 72 20 70 72 65 76 53 74  ..    var prevSt
3310: 72 20 3d 20 77 2e 6c 69 6e 65 28 70 6f 73 2e 62  r = w.line(pos.b
3320: 65 67 69 6e 52 6f 77 20 2d 20 31 29 3b 0d 0a 20  eginRow - 1);.. 
3330: 20 20 20 69 66 20 28 21 69 73 43 6f 6d 6d 65 6e     if (!isCommen
3340: 74 53 74 72 69 6e 67 28 70 72 65 76 53 74 72 29  tString(prevStr)
3350: 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d  ) return false;.
3360: 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 9a  .    ..    // ..
3370: d1 83 d1 80 d1 81 d0 be d1 80 20 d1 81 d1 82 d0  .......... .....
3380: be d0 b8 d1 82 20 d0 b2 20 d1 81 d0 b0 d0 bc d0  ..... .. .......
3390: be d0 bc 20 d0 bd d0 b0 d1 87 d0 b0 d0 bb d0 b5  ... ............
33a0: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8 20 d0 b8   ............ ..
33b0: 20 d0 bf d1 80 d0 b8 20 d0 bd d0 b0 d0 b6 d0 b0   ...... ........
33c0: d1 82 d0 b8 d0 b8 20 0d 0a 20 20 20 20 2f 2f 20  ...... ..    // 
33d0: 42 61 63 6b 73 70 61 63 65 20 d1 82 d0 b5 d0 ba  Backspace ......
33e0: d1 83 d1 89 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0  ........ .......
33f0: be d0 ba d0 b0 20 d0 b4 d0 be d0 bb d0 b6 d0 bd  ..... ..........
3400: d0 b0 20 d0 bf d1 80 d0 b8 d0 ba d0 bb d0 b5 d0  .. .............
3410: b8 d1 82 d1 8c d1 81 d1 8f 20 d0 b2 20 d0 ba d0  ......... .. ...
3420: be d0 bd d0 b5 d1 86 20 d0 bf d1 80 d0 b5 d0 b4  ....... ........
3430: d1 8b d0 b4 d1 83 d1 89 d0 b5 d0 b9 2e 0d 0a 20  ............... 
3440: 20 20 20 76 61 72 20 6e 65 77 54 61 69 6c 20 3d     var newTail =
3450: 20 73 74 72 2e 72 65 70 6c 61 63 65 28 2f 5e 5c   str.replace(/^\
3460: 73 2a 5c 2f 5c 2f 2a 5c 2f 5c 73 2a 2f 69 67 2c  s*\/\/*\/\s*/ig,
3470: 20 22 22 29 3b 20 0d 0a 20 20 20 20 69 66 20 28   ""); ..    if (
3480: 70 72 65 76 53 74 72 2e 6d 61 74 63 68 28 2f 5b  prevStr.match(/[
3490: 5e 5c 73 5d 24 2f 69 67 29 29 20 6e 65 77 54 61  ^\s]$/ig)) newTa
34a0: 69 6c 20 3d 20 22 20 22 20 2b 20 6e 65 77 54 61  il = " " + newTa
34b0: 69 6c 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 77  il;..    ..    w
34c0: 2e 73 65 74 53 65 6c 65 63 74 69 6f 6e 28 70 6f  .setSelection(po
34d0: 73 2e 62 65 67 69 6e 52 6f 77 20 2d 20 31 2c 20  s.beginRow - 1, 
34e0: 31 2c 20 70 6f 73 2e 62 65 67 69 6e 52 6f 77 2c  1, pos.beginRow,
34f0: 20 0d 0a 20 20 20 20 20 20 20 20 77 2e 6c 69 6e   ..        w.lin
3500: 65 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 29 2e  e(pos.beginRow).
3510: 6c 65 6e 67 74 68 20 2b 20 31 29 3b 0d 0a 20 20  length + 1);..  
3520: 20 20 77 2e 53 65 74 53 65 6c 65 63 74 65 64 54    w.SetSelectedT
3530: 65 78 74 28 70 72 65 76 53 74 72 20 2b 20 6e 65  ext(prevStr + ne
3540: 77 54 61 69 6c 29 3b 0d 0a 20 20 20 20 0d 0a 20  wTail);..    .. 
3550: 20 20 20 77 2e 73 65 74 43 61 72 65 74 50 6f 73     w.setCaretPos
3560: 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 20 2d 20  (pos.beginRow - 
3570: 31 2c 20 31 20 2b 20 70 72 65 76 53 74 72 2e 6c  1, 1 + prevStr.l
3580: 65 6e 67 74 68 29 3b 0d 0a 20 20 20 20 0d 0a 20  ength);..    .. 
3590: 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0d     return true;.
35a0: 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 69  .}....function i
35b0: 73 43 6f 6d 6d 65 6e 74 53 74 72 69 6e 67 28 73  sCommentString(s
35c0: 74 72 29 7b 0d 0a 20 20 20 20 72 65 74 75 72 6e  tr){..    return
35d0: 20 6e 75 6c 6c 20 21 3d 20 73 74 72 2e 6d 61 74   null != str.mat
35e0: 63 68 28 2f 5e 5c 73 2a 5c 2f 5c 2f 2f 69 67 29  ch(/^\s*\/\//ig)
35f0: 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e  ;..}....function
3600: 20 67 65 74 54 65 78 74 42 6c 6f 63 6b 4f 66 66   getTextBlockOff
3610: 73 65 74 28 73 74 72 29 7b 0d 0a 20 20 20 20 76  set(str){..    v
3620: 61 72 20 6d 61 74 63 68 20 3d 20 73 74 72 2e 6d  ar match = str.m
3630: 61 74 63 68 28 2f 5e 28 5b 5c 73 5d 2b 29 2f 69  atch(/^([\s]+)/i
3640: 67 29 3b 0d 0a 20 20 20 20 76 61 72 20 72 65 73  g);..    var res
3650: 20 3d 20 21 6d 61 74 63 68 20 3f 20 22 22 20 3a   = !match ? "" :
3660: 20 6d 61 74 63 68 5b 30 5d 3b 0d 0a 20 20 20 20   match[0];..    
3670: 72 65 74 75 72 6e 20 72 65 73 3b 0d 0a 7d 0d 0a  return res;..}..
3680: 0d 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f  ..function getCo
3690: 6d 6d 65 6e 74 53 74 72 69 6e 67 48 65 61 64 65  mmentStringHeade
36a0: 72 28 73 74 72 29 7b 0d 0a 20 20 20 20 76 61 72  r(str){..    var
36b0: 20 6d 61 74 63 68 20 3d 20 73 74 72 2e 6d 61 74   match = str.mat
36c0: 63 68 28 2f 5e 28 5b 5c 73 5d 2a 5c 2f 5c 2f 2a  ch(/^([\s]*\/\/*
36d0: 5c 2f 5b 5c 73 5d 3f 29 2a 2f 69 67 29 3b 0d 0a  \/[\s]?)*/ig);..
36e0: 20 20 20 20 76 61 72 20 72 65 73 20 3d 20 21 6d      var res = !m
36f0: 61 74 63 68 20 3f 20 22 22 20 3a 20 6d 61 74 63  atch ? "" : matc
3700: 68 5b 30 5d 3b 0d 0a 20 20 20 20 72 65 74 75 72  h[0];..    retur
3710: 6e 20 72 65 73 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e  n res;..}....fun
3720: 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 53 65 6c  ction processSel
3730: 65 63 74 65 64 54 65 78 74 28 73 65 6c 54 65 78  ectedText(selTex
3740: 74 48 61 6e 64 6c 65 72 2c 20 64 6f 4e 6f 74 52  tHandler, doNotR
3750: 65 73 74 6f 72 65 53 65 6c 65 63 74 69 6f 6e 29  estoreSelection)
3760: 20 7b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61   {..    ..    va
3770: 72 20 77 20 3d 20 47 65 74 54 65 78 74 57 69 6e  r w = GetTextWin
3780: 64 6f 77 28 29 3b 20 0d 0a 20 20 20 20 69 66 20  dow(); ..    if 
3790: 28 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d  (!w || windows.m
37a0: 6f 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f  odalMode != msNo
37b0: 6e 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65  ne) return false
37c0: 3b 20 20 20 20 0d 0a 20 20 20 20 0d 0a 20 20 20  ;    ..    ..   
37d0: 20 76 61 72 20 73 65 6c 20 3d 20 77 2e 47 65 74   var sel = w.Get
37e0: 53 65 6c 65 63 74 69 6f 6e 28 29 3b 20 20 20 20  Selection();    
37f0: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 76 61          ..    va
3800: 72 20 73 65 6c 54 65 78 74 20 3d 20 77 2e 47 65  r selText = w.Ge
3810: 74 53 65 6c 65 63 74 65 64 54 65 78 74 28 29 3b  tSelectedText();
3820: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 72 79 20  ..    ..    try 
3830: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20  ..    {..       
3840: 20 73 65 6c 54 65 78 74 20 3d 20 73 65 6c 54 65   selText = selTe
3850: 78 74 48 61 6e 64 6c 65 72 2e 63 61 6c 6c 28 6e  xtHandler.call(n
3860: 75 6c 6c 2c 20 73 65 6c 54 65 78 74 29 3b 0d 0a  ull, selText);..
3870: 20 20 20 20 7d 0d 0a 20 20 20 20 63 61 74 63 68      }..    catch
3880: 20 28 65 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20   (e)..    {..   
3890: 20 20 20 20 4d 65 73 73 61 67 65 28 65 2e 64 65      Message(e.de
38a0: 73 63 72 69 70 74 69 6f 6e 29 3b 0d 0a 20 20 20  scription);..   
38b0: 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65      return false
38c0: 3b 0d 0a 20 20 20 20 7d 20 20 20 20 20 20 20 20  ;..    }        
38d0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 77 2e 53 65  ..    ..    w.Se
38e0: 74 53 65 6c 65 63 74 65 64 54 65 78 74 28 73 65  tSelectedText(se
38f0: 6c 54 65 78 74 29 3b 0d 0a 20 20 20 20 0d 0a 20  lText);..    .. 
3900: 20 20 20 2f 2f 20 d0 92 d0 be d1 81 d1 81 d1 82     // ..........
3910: d0 b0 d0 bd d0 be d0 b2 d0 b8 d0 bc 20 d0 b8 d1  ............ ...
3920: 81 d1 85 d0 be d0 b4 d0 bd d0 be d0 b5 20 d0 b2  ............. ..
3930: d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5  ................
3940: 2e 0d 0a 20 20 20 20 69 66 20 28 21 64 6f 4e 6f  ...    if (!doNo
3950: 74 52 65 73 74 6f 72 65 53 65 6c 65 63 74 69 6f  tRestoreSelectio
3960: 6e 29 0d 0a 20 20 20 20 20 20 20 20 77 2e 53 65  n)..        w.Se
3970: 74 53 65 6c 65 63 74 69 6f 6e 28 73 65 6c 2e 62  tSelection(sel.b
3980: 65 67 69 6e 52 6f 77 2c 20 73 65 6c 2e 62 65 67  eginRow, sel.beg
3990: 69 6e 43 6f 6c 2c 20 73 65 6c 2e 65 6e 64 52 6f  inCol, sel.endRo
39a0: 77 2c 20 73 65 6c 2e 65 6e 64 43 6f 6c 29 3b 0d  w, sel.endCol);.
39b0: 0a 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65  .    return true
39c0: 3b 0d 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63 72 69  ;..}....SelfScri
39d0: 70 74 2e 53 65 6c 66 5b 27 6d 61 63 72 6f 73 d0  pt.Self['macros.
39e0: a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0 b8 d1  ................
39f0: 82 d1 8c 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb  ... ............
3a00: 20 7c 20 d0 b2 20 d1 81 d1 82 d1 80 d0 be d0 ba   | .. ..........
3a10: d0 b5 2f d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0  ../.............
3a20: bd d0 b8 d0 b8 27 5d 20 3d 20 66 75 6e 63 74 69  .....'] = functi
3a30: 6f 6e 28 29 20 7b 0d 0a 20 20 20 0d 0a 20 20 20  on() {..   ..   
3a40: 20 76 61 72 20 77 20 3d 20 47 65 74 54 65 78 74   var w = GetText
3a50: 57 69 6e 64 6f 77 28 29 3b 20 2f 2f d0 9f d0 be  Window(); //....
3a60: d0 bb d1 83 d1 87 d0 b8 d0 bc 20 d0 b0 d0 ba d1  .......... .....
3a70: 82 d0 b8 d0 b2 d0 bd d0 be d0 b5 20 d1 82 d0 b5  ........... ....
3a80: d0 ba d1 81 d1 82 d0 be d0 b2 d0 be d0 b5 20 d0  .............. .
3a90: be d0 ba d0 bd d0 be 0d 0a 20 20 20 20 69 66 20  .........    if 
3aa0: 28 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d  (!w || windows.m
3ab0: 6f 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f  odalMode != msNo
3ac0: 6e 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65  ne) return false
3ad0: 3b 20 20 20 0d 0a 20 20 20 0d 0a 20 20 20 20 2f  ;   ..   ..    /
3ae0: 2f 20 d0 9f d1 80 d0 be d0 b2 d0 b5 d1 80 d0 b5  / ..............
3af0: d0 bc 20 d0 b5 d1 81 d1 82 d1 8c 20 d0 bb d0 b8  .. ........ ....
3b00: 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0   ...............
3b10: bd d1 8b d0 b9 20 d1 82 d0 b5 d0 ba d1 81 2c 20  ..... ........, 
3b20: d0 b5 d1 81 d0 bb d0 b8 20 d0 bd d0 b5 d1 82 2c  ........ ......,
3b30: 20 d1 82 d0 be 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb   .... ..........
3b40: d0 b8 d0 bc 20 d1 82 d0 b5 d0 ba d1 83 d1 89 d1  .... ...........
3b50: 83 d1 8e 20 d1 81 d1 82 d1 80 d0 be d0 ba d1 83  ... ............
3b60: 20 2c 20 d0 b2 20 d1 80 d0 b5 d0 b7 d1 83 d0 bb   , .. ..........
3b70: d1 8c d1 82 d0 b0 d1 82 d0 b5 20 d0 be d0 b1 d1  .......... .....
3b80: 80 d0 b0 d0 b1 d0 be d1 82 d0 b0 d0 b5 d0 bc 20  ............... 
3b90: d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd  ................
3ba0: d1 8b d0 b9 20 d1 82 d0 b5 d0 ba d1 81 d1 82 20  .... .......... 
3bb0: d0 b8 20 d0 b2 d0 b5 d1 80 d0 bd d0 b5 d0 bc 20  .. ............ 
3bc0: d0 bd d0 b0 20 d0 bc d0 b5 d1 81 d1 82 d0 be 2e  .... ...........
3bd0: 0d 0a 20 20 20 20 76 61 72 20 73 65 6c 54 65 78  ..    var selTex
3be0: 74 20 3d 20 77 2e 47 65 74 53 65 6c 65 63 74 65  t = w.GetSelecte
3bf0: 64 54 65 78 74 28 29 3b 0d 0a 20 20 20 20 69 66  dText();..    if
3c00: 20 28 73 65 6c 54 65 78 74 2e 6c 65 6e 67 74 68   (selText.length
3c10: 3d 3d 30 29 20 7b 0d 0a 20 20 20 20 20 20 20 20  ==0) {..        
3c20: 76 61 72 20 70 6f 73 20 3d 20 77 2e 67 65 74 43  var pos = w.getC
3c30: 61 72 65 74 50 6f 73 28 29 3b 0d 0a 20 20 20 20  aretPos();..    
3c40: 20 20 20 20 77 2e 73 65 74 53 65 6c 65 63 74 69      w.setSelecti
3c50: 6f 6e 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 2c  on(pos.beginRow,
3c60: 20 31 2c 20 70 6f 73 2e 62 65 67 69 6e 52 6f 77   1, pos.beginRow
3c70: 2c 20 31 20 2b 20 77 2e 6c 69 6e 65 28 70 6f 73  , 1 + w.line(pos
3c80: 2e 62 65 67 69 6e 52 6f 77 29 2e 6c 65 6e 67 74  .beginRow).lengt
3c90: 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 72  h);..        var
3ca0: 20 74 65 78 74 20 3d 20 77 2e 47 65 74 53 65 6c   text = w.GetSel
3cb0: 65 63 74 65 64 54 65 78 74 28 29 3b 0d 0a 20 20  ectedText();..  
3cc0: 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20    } else {..    
3cd0: 20 20 20 20 76 61 72 20 74 65 78 74 20 3d 20 73      var text = s
3ce0: 65 6c 54 65 78 74 3b 0d 0a 20 20 20 20 7d 0d 0a  elText;..    }..
3cf0: 20 20 20 20 77 2e 53 65 74 53 65 6c 65 63 74 65      w.SetSelecte
3d00: 64 54 65 78 74 28 73 65 74 53 79 6d 62 6f 6c 49  dText(setSymbolI
3d10: 6e 42 65 67 69 6e 6e 4c 69 6e 65 28 74 65 78 74  nBeginnLine(text
3d20: 2c 20 22 7c 20 22 29 29 3b 0d 0a 20 20 20 20 72  , "| "));..    r
3d30: 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a  eturn true;..}..
3d40: 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 79  ..function setSy
3d50: 6d 62 6f 6c 49 6e 42 65 67 69 6e 6e 4c 69 6e 65  mbolInBeginnLine
3d60: 28 74 65 78 74 2c 20 73 79 6d 62 6f 6c 29 7b 0d  (text, symbol){.
3d70: 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 20  .    var result 
3d80: 3d 20 22 22 3b 0d 0a 20 20 20 20 76 61 72 20 4c  = "";..    var L
3d90: 69 6e 65 73 20 3d 20 74 65 78 74 2e 73 70 6c 69  ines = text.spli
3da0: 74 28 27 5c 6e 27 29 3b 0d 0a 20 20 20 20 69 66  t('\n');..    if
3db0: 20 28 4c 69 6e 65 73 2e 6c 65 6e 67 74 68 20 3d   (Lines.length =
3dc0: 3d 20 30 20 26 26 20 73 74 72 2e 69 6e 64 65 78  = 0 && str.index
3dd0: 4f 66 28 73 79 6d 62 6f 6c 29 20 3d 3d 20 2d 31  Of(symbol) == -1
3de0: 29 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75  ){..        resu
3df0: 6c 74 20 3d 20 72 65 73 75 6c 74 2b 74 65 78 74  lt = result+text
3e00: 2e 72 65 70 6c 61 63 65 28 2f 5e 5c 73 2a 2f 2c  .replace(/^\s*/,
3e10: 20 22 24 26 22 2b 22 22 2b 73 79 6d 62 6f 6c 2b   "$&"+""+symbol+
3e20: 22 22 29 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20  "");..    }..   
3e30: 20 66 6f 72 20 28 76 61 72 20 69 3d 30 3b 20 69   for (var i=0; i
3e40: 3c 4c 69 6e 65 73 2e 6c 65 6e 67 74 68 3b 20 69  <Lines.length; i
3e50: 2b 2b 29 7b 0d 0a 20 20 20 20 20 20 20 20 76 61  ++){..        va
3e60: 72 20 73 74 72 20 3d 20 4c 69 6e 65 73 5b 69 5d  r str = Lines[i]
3e70: 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 73  ;..        if (s
3e80: 74 72 2e 69 6e 64 65 78 4f 66 28 73 79 6d 62 6f  tr.indexOf(symbo
3e90: 6c 29 20 3d 3d 20 2d 31 29 0d 0a 20 20 20 20 20  l) == -1)..     
3ea0: 20 20 20 20 20 20 20 73 74 72 20 3d 20 73 74 72         str = str
3eb0: 2e 72 65 70 6c 61 63 65 28 2f 5e 5c 73 2a 2f 2c  .replace(/^\s*/,
3ec0: 20 22 24 26 22 2b 22 22 2b 73 79 6d 62 6f 6c 2b   "$&"+""+symbol+
3ed0: 22 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  "");..          
3ee0: 20 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c   ..        resul
3ef0: 74 20 3d 20 72 65 73 75 6c 74 2b 73 74 72 2b 28  t = result+str+(
3f00: 28 28 4c 69 6e 65 73 2e 6c 65 6e 67 74 68 2d 31  ((Lines.length-1
3f10: 29 3d 3d 69 29 3f 22 22 3a 22 5c 6e 22 29 3b 0d  )==i)?"":"\n");.
3f20: 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 74 75  .    }..    retu
3f30: 72 6e 20 72 65 73 75 6c 74 0d 0a 7d 0d 0a 0d 0a  rn result..}....
3f40: 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 4f  function macrosO
3f50: 6e 50 72 65 73 73 42 61 63 6b 73 70 61 63 65 49  nPressBackspaceI
3f60: 6e 42 72 61 63 6b 65 74 28 29 7b 0d 0a 20 20 20  nBracket(){..   
3f70: 20 76 61 72 20 77 20 3d 20 47 65 74 54 65 78 74   var w = GetText
3f80: 57 69 6e 64 6f 77 28 29 3b 2f 2f 73 6e 65 67 6f  Window();//snego
3f90: 70 61 74 2e 61 63 74 69 76 65 54 65 78 74 57 69  pat.activeTextWi
3fa0: 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20 69 66 20  ndow();..    if 
3fb0: 28 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d  (!w || windows.m
3fc0: 6f 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f  odalMode != msNo
3fd0: 6e 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65  ne) return false
3fe0: 3b 0d 0a 0d 0a 20 20 20 20 69 66 20 28 77 2e 73  ;....    if (w.s
3ff0: 65 6c 65 63 74 65 64 54 65 78 74 28 29 20 21 3d  electedText() !=
4000: 20 22 22 29 7b 0d 0a 20 20 20 20 20 20 20 20 72   ""){..        r
4010: 65 74 75 72 6e 20 66 61 6c 73 65 3b 20 20 20 20  eturn false;    
4020: 2f 2f 2f 20 54 4f 44 4f 3a 20 d0 be d0 b1 d1 80  /// TODO: ......
4030: d0 b0 d0 b1 d0 be d1 82 d0 b0 d1 82 d1 8c 20 d1  .............. .
4040: 8d d1 82 d0 be d1 82 20 d0 b2 d0 b0 d1 80 d0 b8  ....... ........
4050: d0 b0 d0 bd d1 82 2e 0d 0a 20 20 20 20 7d 0d 0a  .........    }..
4060: 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 70 6f      ..    var po
4070: 73 20 3d 20 77 2e 67 65 74 43 61 72 65 74 50 6f  s = w.getCaretPo
4080: 73 28 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20  s();..    ..    
4090: 76 61 72 20 62 65 67 69 6e 52 6f 77 20 3d 20 70  var beginRow = p
40a0: 6f 73 2e 62 65 67 69 6e 52 6f 77 3b 0d 0a 20 20  os.beginRow;..  
40b0: 20 20 76 61 72 20 77 6f 72 64 42 65 67 50 6f 73    var wordBegPos
40c0: 20 3d 20 70 6f 73 2e 62 65 67 69 6e 43 6f 6c 20   = pos.beginCol 
40d0: 2d 20 31 3b 0d 0a 20 20 20 20 76 61 72 20 6c 69  - 1;..    var li
40e0: 6e 65 20 3d 20 77 2e 47 65 74 4c 69 6e 65 28 70  ne = w.GetLine(p
40f0: 6f 73 2e 62 65 67 69 6e 52 6f 77 29 3b 0d 0a 20  os.beginRow);.. 
4100: 20 20 20 76 61 72 20 63 75 72 43 68 61 72 20 3d     var curChar =
4110: 20 6c 69 6e 65 2e 63 68 61 72 41 74 28 77 6f 72   line.charAt(wor
4120: 64 42 65 67 50 6f 73 29 3b 0d 0a 20 20 20 20 69  dBegPos);..    i
4130: 66 20 28 77 6f 72 64 42 65 67 50 6f 73 3e 30 29  f (wordBegPos>0)
4140: 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20   {..        var 
4150: 77 6f 72 64 42 61 63 6b 73 70 20 3d 20 77 6f 72  wordBacksp = wor
4160: 64 42 65 67 50 6f 73 2d 31 3b 0d 0a 20 20 20 20  dBegPos-1;..    
4170: 20 20 20 20 69 66 20 28 63 75 72 43 68 61 72 3d      if (curChar=
4180: 3d 22 29 22 20 26 26 20 6c 69 6e 65 2e 63 68 61  =")" && line.cha
4190: 72 41 74 28 77 6f 72 64 42 61 63 6b 73 70 29 3d  rAt(wordBacksp)=
41a0: 3d 22 28 22 29 20 7b 0d 0a 20 20 20 20 20 20 20  ="(") {..       
41b0: 20 20 20 20 20 2f 2f 64 65 62 75 67 67 65 72 3b       //debugger;
41c0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 2e  ..            w.
41d0: 53 65 74 53 65 6c 65 63 74 69 6f 6e 28 70 6f 73  SetSelection(pos
41e0: 2e 62 65 67 69 6e 52 6f 77 2c 20 77 6f 72 64 42  .beginRow, wordB
41f0: 61 63 6b 73 70 2b 31 2c 20 70 6f 73 2e 62 65 67  acksp+1, pos.beg
4200: 69 6e 52 6f 77 2c 20 77 6f 72 64 42 65 67 50 6f  inRow, wordBegPo
4210: 73 2b 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 20  s+2);..         
4220: 20 20 20 77 2e 53 65 74 53 65 6c 65 63 74 65 64     w.SetSelected
4230: 54 65 78 74 28 22 22 29 3b 0d 0a 20 20 20 20 20  Text("");..     
4240: 20 20 20 20 20 20 20 77 2e 73 65 74 43 61 72 65         w.setCare
4250: 74 50 6f 73 28 70 6f 73 2e 62 65 67 69 6e 52 6f  tPos(pos.beginRo
4260: 77 2c 20 28 6c 69 6e 65 2e 63 68 61 72 41 74 28  w, (line.charAt(
4270: 77 6f 72 64 42 65 67 50 6f 73 2b 31 29 3d 3d 22  wordBegPos+1)=="
4280: 3b 22 29 3f 77 6f 72 64 42 65 67 50 6f 73 2b 31  ;")?wordBegPos+1
4290: 3a 77 6f 72 64 42 61 63 6b 73 70 2b 31 29 3b 0d  :wordBacksp+1);.
42a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74  .            ret
42b0: 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20 20  urn true;..     
42c0: 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20     } else {..   
42d0: 20 20 20 20 20 20 20 20 20 69 66 20 28 77 6f 72           if (wor
42e0: 64 42 61 63 6b 73 70 3e 30 20 0d 0a 20 20 20 20  dBacksp>0 ..    
42f0: 20 20 20 20 20 20 20 20 20 20 20 20 26 26 20 6c              && l
4300: 69 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64 42  ine.charAt(wordB
4310: 61 63 6b 73 70 29 3d 3d 22 29 22 20 0d 0a 20 20  acksp)==")" ..  
4320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 26                &&
4330: 20 6c 69 6e 65 2e 63 68 61 72 41 74 28 77 6f 72   line.charAt(wor
4340: 64 42 61 63 6b 73 70 2d 31 29 3d 3d 22 28 22 29  dBacksp-1)=="(")
4350: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  {..             
4360: 20 20 20 77 2e 53 65 74 53 65 6c 65 63 74 69 6f     w.SetSelectio
4370: 6e 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 2c 20  n(pos.beginRow, 
4380: 77 6f 72 64 42 61 63 6b 73 70 2c 20 70 6f 73 2e  wordBacksp, pos.
4390: 62 65 67 69 6e 52 6f 77 2c 20 77 6f 72 64 42 65  beginRow, wordBe
43a0: 67 50 6f 73 2b 31 29 3b 0d 0a 20 20 20 20 20 20  gPos+1);..      
43b0: 20 20 20 20 20 20 20 20 20 20 77 2e 53 65 74 53            w.SetS
43c0: 65 6c 65 63 74 65 64 54 65 78 74 28 22 22 29 3b  electedText("");
43d0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
43e0: 20 20 77 2e 73 65 74 43 61 72 65 74 50 6f 73 28    w.setCaretPos(
43f0: 70 6f 73 2e 62 65 67 69 6e 52 6f 77 2c 20 28 6c  pos.beginRow, (l
4400: 69 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64 42  ine.charAt(wordB
4410: 61 63 6b 73 70 2b 31 29 3d 3d 22 3b 22 29 3f 77  acksp+1)==";")?w
4420: 6f 72 64 42 61 63 6b 73 70 2b 31 3a 77 6f 72 64  ordBacksp+1:word
4430: 42 61 63 6b 73 70 29 3b 0d 0a 20 20 20 20 20 20  Backsp);..      
4440: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e            return
4450: 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20   true;..        
4460: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d      }..        }
4470: 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 72  ..    }....    r
4480: 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20  eturn false;..  
4490: 20 20 0d 0a 7d 0d 0a 66 75 6e 63 74 69 6f 6e 20    ..}..function 
44a0: 6d 61 63 72 6f 73 4f 6e 50 72 65 73 73 44 65 6c  macrosOnPressDel
44b0: 49 6e 42 72 61 63 6b 65 74 28 29 7b 0d 0a 20 20  InBracket(){..  
44c0: 20 20 76 61 72 20 77 20 3d 20 47 65 74 54 65 78    var w = GetTex
44d0: 74 57 69 6e 64 6f 77 28 29 3b 2f 2f 73 6e 65 67  tWindow();//sneg
44e0: 6f 70 61 74 2e 61 63 74 69 76 65 54 65 78 74 57  opat.activeTextW
44f0: 69 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20 69 66  indow();..    if
4500: 20 28 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e   (!w || windows.
4510: 6d 6f 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e  modalMode != msN
4520: 6f 6e 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73  one) return fals
4530: 65 3b 0d 0a 0d 0a 20 20 20 20 69 66 20 28 77 2e  e;....    if (w.
4540: 73 65 6c 65 63 74 65 64 54 65 78 74 28 29 20 21  selectedText() !
4550: 3d 20 22 22 29 7b 0d 0a 20 20 20 20 20 20 20 20  = ""){..        
4560: 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 20 20 20  return false;   
4570: 20 2f 2f 2f 20 54 4f 44 4f 3a 20 d0 be d0 b1 d1   /// TODO: .....
4580: 80 d0 b0 d0 b1 d0 be d1 82 d0 b0 d1 82 d1 8c 20  ............... 
4590: d1 8d d1 82 d0 be d1 82 20 d0 b2 d0 b0 d1 80 d0  ........ .......
45a0: b8 d0 b0 d0 bd d1 82 2e 0d 0a 20 20 20 20 7d 0d  ..........    }.
45b0: 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 70  .    ..    var p
45c0: 6f 73 20 3d 20 77 2e 67 65 74 43 61 72 65 74 50  os = w.getCaretP
45d0: 6f 73 28 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20  os();..    ..   
45e0: 20 76 61 72 20 62 65 67 69 6e 52 6f 77 20 3d 20   var beginRow = 
45f0: 70 6f 73 2e 62 65 67 69 6e 52 6f 77 3b 0d 0a 20  pos.beginRow;.. 
4600: 20 20 20 76 61 72 20 77 6f 72 64 42 65 67 50 6f     var wordBegPo
4610: 73 20 3d 20 70 6f 73 2e 62 65 67 69 6e 43 6f 6c  s = pos.beginCol
4620: 20 2d 20 31 3b 0d 0a 20 20 20 20 76 61 72 20 77   - 1;..    var w
4630: 6f 72 64 41 66 74 65 72 50 6f 73 20 3d 20 70 6f  ordAfterPos = po
4640: 73 2e 62 65 67 69 6e 43 6f 6c 3b 0d 0a 20 20 20  s.beginCol;..   
4650: 20 76 61 72 20 6c 69 6e 65 20 3d 20 77 2e 47 65   var line = w.Ge
4660: 74 4c 69 6e 65 28 70 6f 73 2e 62 65 67 69 6e 52  tLine(pos.beginR
4670: 6f 77 29 3b 0d 0a 20 20 20 20 69 66 20 28 6c 69  ow);..    if (li
4680: 6e 65 2e 6c 65 6e 67 74 68 20 3c 20 77 6f 72 64  ne.length < word
4690: 41 66 74 65 72 50 6f 73 20 7c 7c 20 77 6f 72 64  AfterPos || word
46a0: 42 65 67 50 6f 73 2d 31 20 3c 20 30 29 20 72 65  BegPos-1 < 0) re
46b0: 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20  turn false;..   
46c0: 20 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72   ..    ..    var
46d0: 20 63 75 72 43 68 61 72 20 3d 20 6c 69 6e 65 2e   curChar = line.
46e0: 63 68 61 72 41 74 28 77 6f 72 64 42 65 67 50 6f  charAt(wordBegPo
46f0: 73 29 3b 20 0d 0a 20 20 20 20 69 66 20 28 63 75  s); ..    if (cu
4700: 72 43 68 61 72 20 3d 3d 20 22 29 22 20 26 26 20  rChar == ")" && 
4710: 6c 69 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64  line.charAt(word
4720: 42 65 67 50 6f 73 2d 31 29 3d 3d 22 28 22 29 20  BegPos-1)=="(") 
4730: 20 7b 0d 0a 20 20 20 20 20 20 20 20 77 2e 53 65   {..        w.Se
4740: 74 53 65 6c 65 63 74 69 6f 6e 28 70 6f 73 2e 62  tSelection(pos.b
4750: 65 67 69 6e 52 6f 77 2c 20 77 6f 72 64 42 65 67  eginRow, wordBeg
4760: 50 6f 73 2c 20 70 6f 73 2e 62 65 67 69 6e 52 6f  Pos, pos.beginRo
4770: 77 2c 20 77 6f 72 64 42 65 67 50 6f 73 2b 32 29  w, wordBegPos+2)
4780: 3b 0d 0a 20 20 20 20 20 20 20 20 77 2e 53 65 74  ;..        w.Set
4790: 53 65 6c 65 63 74 65 64 54 65 78 74 28 22 22 29  SelectedText("")
47a0: 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 77 2e 73  ;..        //w.s
47b0: 65 74 43 61 72 65 74 50 6f 73 28 70 6f 73 2e 62  etCaretPos(pos.b
47c0: 65 67 69 6e 52 6f 77 2c 20 28 6c 69 6e 65 2e 63  eginRow, (line.c
47d0: 68 61 72 41 74 28 77 6f 72 64 42 65 67 50 6f 73  harAt(wordBegPos
47e0: 2b 31 29 3d 3d 22 3b 22 29 3f 77 6f 72 64 42 65  +1)==";")?wordBe
47f0: 67 50 6f 73 2b 31 3a 77 6f 72 64 42 65 67 50 6f  gPos+1:wordBegPo
4800: 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 77 2e 73  s);..        w.s
4810: 65 74 43 61 72 65 74 50 6f 73 28 70 6f 73 2e 62  etCaretPos(pos.b
4820: 65 67 69 6e 52 6f 77 2c 20 77 6f 72 64 42 65 67  eginRow, wordBeg
4830: 50 6f 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 72  Pos);..        r
4840: 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20  eturn true;..   
4850: 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20   } else {..     
4860: 20 20 20 20 20 20 20 69 66 20 28 63 75 72 43 68         if (curCh
4870: 61 72 20 3d 3d 20 22 28 22 20 0d 0a 20 20 20 20  ar == "(" ..    
4880: 20 20 20 20 20 20 20 20 26 26 20 6c 69 6e 65 2e          && line.
4890: 63 68 61 72 41 74 28 77 6f 72 64 41 66 74 65 72  charAt(wordAfter
48a0: 50 6f 73 29 3d 3d 22 29 22 29 20 7b 0d 0a 20 20  Pos)==")") {..  
48b0: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
48c0: 20 20 20 20 20 20 20 20 77 2e 53 65 74 53 65 6c          w.SetSel
48d0: 65 63 74 69 6f 6e 28 70 6f 73 2e 62 65 67 69 6e  ection(pos.begin
48e0: 52 6f 77 2c 20 77 6f 72 64 42 65 67 50 6f 73 2b  Row, wordBegPos+
48f0: 31 2c 20 70 6f 73 2e 62 65 67 69 6e 52 6f 77 2c  1, pos.beginRow,
4900: 20 77 6f 72 64 42 65 67 50 6f 73 2b 33 29 3b 0d   wordBegPos+3);.
4910: 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 53  .            w.S
4920: 65 74 53 65 6c 65 63 74 65 64 54 65 78 74 28 22  etSelectedText("
4930: 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ");..           
4940: 20 77 2e 73 65 74 43 61 72 65 74 50 6f 73 28 70   w.setCaretPos(p
4950: 6f 73 2e 62 65 67 69 6e 52 6f 77 2c 20 77 6f 72  os.beginRow, wor
4960: 64 42 65 67 50 6f 73 2b 31 29 3b 0d 0a 20 20 20  dBegPos+1);..   
4970: 20 20 20 20 20 20 20 20 20 2f 2f 77 2e 73 65 74           //w.set
4980: 43 61 72 65 74 50 6f 73 28 70 6f 73 2e 62 65 67  CaretPos(pos.beg
4990: 69 6e 52 6f 77 2c 20 28 6c 69 6e 65 2e 63 68 61  inRow, (line.cha
49a0: 72 41 74 28 77 6f 72 64 41 66 74 65 72 50 6f 73  rAt(wordAfterPos
49b0: 2b 31 29 3d 3d 22 3b 22 29 3f 77 6f 72 64 42 65  +1)==";")?wordBe
49c0: 67 50 6f 73 2b 32 3a 77 6f 72 64 42 65 67 50 6f  gPos+2:wordBegPo
49d0: 73 2b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 20  s+1);..         
49e0: 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0d     return true;.
49f0: 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20  .        }..    
4a00: 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 72 65 74  }..    ..    ret
4a10: 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20  urn false;..    
4a20: 0d 0a 7d 0d 0a 0d 0a 0d 0a                       ..}......