Hex Artifact Content Вы: nobody
Вход

Artifact 2775a36345d35c237466ea550c2a0f0684dfe0a3:


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 39 29 3b 0d 0a 20 20 20 20 70 72 65  ion(9);..    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 2f 2f 46 49 58 4d 45 3a 20 d0  ..    //FIXME: .
0630: bf d0 be d0 ba d0 b0 20 d1 83 d0 b4 d0 b0 d0 bb  ....... ........
0640: d1 8e 2c 20 d0 bd d0 b5 20 d1 80 d0 b0 d0 b1 d0  .., .... .......
0650: be d1 82 d0 b0 d0 b5 d1 82 20 d0 bd d0 be d1 80  ......... ......
0660: d0 bc d0 b0 d0 bb d1 8c d0 bd d0 be 20 d0 bf d1  ............ ...
0670: 80 d0 b8 20 d0 bd d0 b0 d1 85 d0 be d0 b6 d0 b4  ... ............
0680: d0 b5 d0 bd d0 b8 d0 b8 20 d0 ba d1 80 d1 83 d1  ........ .......
0690: 81 d0 be d1 80 d0 b0 20 d0 b2 20 d0 ba d0 be d0  ....... .. .....
06a0: bc d0 bc d0 b5 d0 bd d1 82 d0 b0 d1 80 d0 b8 d0  ................
06b0: b8 20 d0 b8 20 d0 b2 d1 8b d0 b1 d0 be d1 80 d0  . .. ...........
06c0: b0 20 d0 b8 d0 b7 20 d1 81 d0 bf d0 b8 d1 81 d0  . .... .........
06d0: ba d0 b0 20 d0 bf d1 80 d0 be d1 86 d0 b5 d0 b4  ... ............
06e0: d1 83 d1 80 2e 20 0d 0a 20 20 20 20 2f 2f 70 72  ..... ..    //pr
06f0: 65 64 65 66 2e 61 64 64 28 22 4f 6e 50 72 65 73  edef.add("OnPres
0700: 73 45 6e 74 65 72 49 6e 43 6f 6d 6d 65 6e 74 22  sEnterInComment"
0710: 2c 20 22 45 6e 74 65 72 22 29 3b 20 0d 0a 20 20  , "Enter"); ..  
0720: 20 20 70 72 65 64 65 66 2e 61 64 64 28 22 4f 6e    predef.add("On
0730: 50 72 65 73 73 44 65 6c 65 74 65 49 6e 43 6f 6d  PressDeleteInCom
0740: 6d 65 6e 74 22 2c 20 22 44 65 6c 22 29 3b 0d 0a  ment", "Del");..
0750: 20 20 20 20 70 72 65 64 65 66 2e 61 64 64 28 22      predef.add("
0760: 4f 6e 50 72 65 73 73 42 61 63 6b 73 70 61 63 65  OnPressBackspace
0770: 49 6e 43 6f 6d 6d 65 6e 74 22 2c 20 22 42 6b 53  InComment", "BkS
0780: 70 61 63 65 22 29 3b 0d 0a 20 20 20 20 70 72 65  pace");..    pre
0790: 64 65 66 2e 61 64 64 28 22 4f 6e 50 72 65 73 73  def.add("OnPress
07a0: 42 61 63 6b 73 70 61 63 65 49 6e 42 72 61 63 6b  BackspaceInBrack
07b0: 65 74 22 2c 20 22 42 6b 53 70 61 63 65 22 29 3b  et", "BkSpace");
07c0: 0d 0a 20 20 20 20 70 72 65 64 65 66 2e 61 64 64  ..    predef.add
07d0: 28 22 4f 6e 50 72 65 73 73 44 65 6c 49 6e 42 72  ("OnPressDelInBr
07e0: 61 63 6b 65 74 22 2c 20 22 44 65 6c 22 29 3b 0d  acket", "Del");.
07f0: 0a 20 20 20 20 70 72 65 64 65 66 2e 61 64 64 28  .    predef.add(
0800: 22 d0 9f d1 80 d0 b5 d0 be d0 b1 d1 80 d0 b0 d0  "...............
0810: b7 d0 be d0 b2 d0 b0 d1 82 d1 8c 20 d1 80 d0 b5  ........... ....
0820: d0 b3 d0 b8 d1 81 d1 82 d1 80 3a 20 d0 9f d0 a0  ..........: ....
0830: d0 9e d0 9f d0 98 d0 a1 d0 9d d0 ab d0 95 22 2c  ..............",
0840: 20 22 43 74 72 6c 20 2b 20 53 68 69 66 74 20 2b   "Ctrl + Shift +
0850: 20 55 22 29 3b 0d 0a 20 20 20 20 70 72 65 64 65   U");..    prede
0860: 66 2e 61 64 64 28 22 d0 9f d1 80 d0 b5 d0 be d0  f.add(".........
0870: b1 d1 80 d0 b0 d0 b7 d0 be d0 b2 d0 b0 d1 82 d1  ................
0880: 8c 20 d1 80 d0 b5 d0 b3 d0 b8 d1 81 d1 82 d1 80  . ..............
0890: 3a 20 d1 81 d1 82 d1 80 d0 be d1 87 d0 bd d1 8b  : ..............
08a0: d0 b5 22 2c 20 22 43 74 72 6c 20 2b 20 55 22 29  ..", "Ctrl + U")
08b0: 3b 0d 0a 20 20 20 20 70 72 65 64 65 66 2e 61 64  ;..    predef.ad
08c0: 64 28 22 d0 a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0  d(".............
08d0: b2 d0 b8 d1 82 d1 8c 20 d0 ba d0 b0 d0 b2 d1 8b  ....... ........
08e0: d1 87 d0 ba d0 b8 22 2c 20 22 53 68 69 66 74 20  ......", "Shift 
08f0: 2b 20 32 22 29 3b 0d 0a 20 20 20 20 70 72 65 64  + 2");..    pred
0900: 65 66 2e 61 64 64 28 22 d0 a3 d1 81 d1 82 d0 b0  ef.add("........
0910: d0 bd d0 be d0 b2 d0 b8 d1 82 d1 8c 20 d0 ba d0  ............ ...
0920: b0 d0 b2 d1 8b d1 87 d0 ba d0 b8 20 32 22 2c 20  ........... 2", 
0930: 22 53 68 69 66 74 20 2b 20 27 22 29 3b 0d 0a 20  "Shift + '");.. 
0940: 20 20 20 70 72 65 64 65 66 2e 61 64 64 28 22 d0     predef.add(".
0950: a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0 b8 d1  ................
0960: 82 d1 8c 20 d1 81 d0 ba d0 be d0 b1 d0 ba d0 b8  ... ............
0970: 22 2c 20 22 53 68 69 66 74 20 2b 20 39 22 29 3b  ", "Shift + 9");
0980: 0d 0a 20 20 20 20 70 72 65 64 65 66 2e 61 64 64  ..    predef.add
0990: 28 22 d0 a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2  ("..............
09a0: d0 b8 d1 82 d1 8c 20 d1 81 d0 ba d0 be d0 b1 d0  ...... .........
09b0: ba d0 b8 20 32 22 2c 20 22 53 68 69 66 74 20 2b  ... 2", "Shift +
09c0: 20 30 22 29 3b 0d 0a 0d 0a 0d 0a 7d 0d 0a 0d 0a   0");......}....
09d0: 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 d0  function macros.
09e0: 9d d0 b0 d0 b9 d1 82 d0 b8 d0 92 d1 8b d0 b4 d0  ................
09f0: b5 d0 bb d0 b5 d0 bd d0 bd d1 8b d0 b9 d0 a2 d0  ................
0a00: b5 d0 ba d1 81 d1 82 d0 92 d0 bd d0 b8 d0 b7 28  ...............(
0a10: 29 7b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 73  ){..    return s
0a20: 65 6c 65 63 74 4e 65 78 74 50 61 74 74 65 72 6e  electNextPattern
0a30: 28 31 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74  (1);..}....funct
0a40: 69 6f 6e 20 6d 61 63 72 6f 73 d0 9d d0 b0 d0 b9  ion macros......
0a50: d1 82 d0 b8 d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 b5  ................
0a60: d0 bd d0 bd d1 8b d0 b9 d0 a2 d0 b5 d0 ba d1 81  ................
0a70: d1 82 d0 92 d0 b2 d0 b5 d1 80 d1 85 28 29 7b 0d  ............(){.
0a80: 0a 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 65  .    return sele
0a90: 63 74 4e 65 78 74 50 61 74 74 65 72 6e 28 2d 31  ctNextPattern(-1
0aa0: 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f  );..}....functio
0ab0: 6e 20 6d 61 63 72 6f 73 d0 9f d0 be d0 bc d0 b5  n macros........
0ac0: d0 bd d1 8f d1 82 d1 8c d0 9e d0 bf d0 b5 d1 80  ................
0ad0: d0 b0 d0 bd d0 b4 d1 8b d0 9f d1 80 d0 b8 d1 81  ................
0ae0: d0 b2 d0 b0 d0 b8 d0 b2 d0 b0 d0 bd d0 b8 d1 8f  ................
0af0: d0 9c d0 b5 d1 81 d1 82 d0 b0 d0 bc d0 b8 28 29  ..............()
0b00: 20 7b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61   {..    ..    va
0b10: 72 20 77 20 3d 20 47 65 74 54 65 78 74 57 69 6e  r w = GetTextWin
0b20: 64 6f 77 28 29 3b 20 0d 0a 20 20 20 20 69 66 20  dow(); ..    if 
0b30: 28 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d  (!w || windows.m
0b40: 6f 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f  odalMode != msNo
0b50: 6e 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65  ne) return false
0b60: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72  ;..    ..    var
0b70: 20 73 65 6c 54 65 78 74 20 3d 20 77 2e 47 65 74   selText = w.Get
0b80: 53 65 6c 65 63 74 65 64 54 65 78 74 28 29 3b 0d  SelectedText();.
0b90: 0a 20 20 20 20 69 66 20 28 73 65 6c 54 65 78 74  .    if (selText
0ba0: 20 3d 3d 20 27 27 29 20 72 65 74 75 72 6e 20 66   == '') return f
0bb0: 61 6c 73 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20  alse;..    ..   
0bc0: 20 76 61 72 20 73 65 6c 20 3d 20 77 2e 47 65 74   var sel = w.Get
0bd0: 53 65 6c 65 63 74 69 6f 6e 28 29 3b 0d 0a 20 20  Selection();..  
0be0: 20 20 0d 0a 20 20 20 20 76 61 72 20 6c 69 6e 65    ..    var line
0bf0: 73 20 3d 20 53 74 72 69 6e 67 55 74 69 6c 73 2e  s = StringUtils.
0c00: 74 6f 4c 69 6e 65 73 28 73 65 6c 54 65 78 74 29  toLines(selText)
0c10: 3b 0d 0a 20 20 20 20 66 6f 72 28 76 61 72 20 6c  ;..    for(var l
0c20: 69 6e 65 4e 6f 20 3d 20 30 3b 20 6c 69 6e 65 4e  ineNo = 0; lineN
0c30: 6f 20 3c 20 6c 69 6e 65 73 2e 6c 65 6e 67 74 68  o < lines.length
0c40: 3b 20 6c 69 6e 65 4e 6f 2b 2b 29 0d 0a 20 20 20  ; lineNo++)..   
0c50: 20 20 20 20 20 6c 69 6e 65 73 5b 6c 69 6e 65 4e       lines[lineN
0c60: 6f 5d 20 3d 20 6c 69 6e 65 73 5b 6c 69 6e 65 4e  o] = lines[lineN
0c70: 6f 5d 2e 72 65 70 6c 61 63 65 28 2f 28 5c 73 2a  o].replace(/(\s*
0c80: 29 28 5c 53 2a 2e 2b 3f 29 5c 73 2a 3d 5c 73 2a  )(\S*.+?)\s*=\s*
0c90: 28 5c 53 2a 2e 2b 29 5c 73 2a 3b 2f 2c 20 22 24  (\S*.+)\s*;/, "$
0ca0: 31 24 33 3d 24 32 3b 22 29 3b 0d 0a 20 20 20 20  1$3=$2;");..    
0cb0: 0d 0a 20 20 20 20 77 2e 53 65 74 53 65 6c 65 63  ..    w.SetSelec
0cc0: 74 65 64 54 65 78 74 28 53 74 72 69 6e 67 55 74  tedText(StringUt
0cd0: 69 6c 73 2e 66 72 6f 6d 4c 69 6e 65 73 28 6c 69  ils.fromLines(li
0ce0: 6e 65 73 29 29 3b 0d 0a 20 20 20 20 2f 2f 20 d0  nes));..    // .
0cf0: 92 d0 be d1 81 d1 81 d1 82 d0 b0 d0 bd d0 be d0  ................
0d00: b2 d0 b8 d0 bc 20 d0 b8 d1 81 d1 85 d0 be d0 b4  ..... ..........
0d10: d0 bd d0 be d0 b5 20 d0 b2 d1 8b d0 b4 d0 b5 d0  ...... .........
0d20: bb d0 b5 d0 bd d0 b8 d0 b5 2e 0d 0a 20 20 20 20  ............    
0d30: 77 2e 53 65 74 53 65 6c 65 63 74 69 6f 6e 28 73  w.SetSelection(s
0d40: 65 6c 2e 62 65 67 69 6e 52 6f 77 2c 20 73 65 6c  el.beginRow, sel
0d50: 2e 62 65 67 69 6e 43 6f 6c 2c 20 73 65 6c 2e 65  .beginCol, sel.e
0d60: 6e 64 52 6f 77 2c 20 73 65 6c 2e 65 6e 64 43 6f  ndRow, sel.endCo
0d70: 6c 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 69  l);..    ..    i
0d80: 66 20 28 6c 69 6e 65 73 2e 6c 65 6e 67 74 68 20  f (lines.length 
0d90: 3e 20 31 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20  > 1)..    {..   
0da0: 20 20 20 20 20 2f 2f 20 d0 95 d1 81 d0 bb d0 b8       // ........
0db0: 20 d0 b1 d1 8b d0 bb d0 be 20 d0 b2 d1 8b d0 b4   ........ ......
0dc0: d0 b5 d0 bb d0 b5 d0 bd d0 be 20 d0 bd d0 b5 d1  .......... .....
0dd0: 81 d0 ba d0 be d0 bb d1 8c d0 ba d0 be 20 d1 81  ............. ..
0de0: d1 82 d1 80 d0 be d0 ba 2c 20 d0 b2 d1 8b d1 80  ........, ......
0df0: d0 be d0 b2 d0 bd d1 8f d0 b5 d0 bc 20 d0 b2 20  ............ .. 
0e00: d0 bd d0 b8 d1 85 20 d0 bf d0 be 20 d0 b7 d0 bd  ...... .... ....
0e10: d0 b0 d0 ba d0 b0 d0 bc 20 27 3d 27 2e 0d 0a 20  ........ '='... 
0e20: 20 20 20 20 20 20 20 76 61 72 20 66 6f 72 6d 61         var forma
0e30: 74 53 63 72 69 70 74 20 3d 20 61 64 64 69 6e 73  tScript = addins
0e40: 2e 62 79 55 6e 69 71 75 65 4e 61 6d 65 28 27 66  .byUniqueName('f
0e50: 6f 72 6d 61 74 5f 73 63 72 69 70 74 27 29 3b 0d  ormat_script');.
0e60: 0a 20 20 20 20 20 20 20 20 69 66 20 28 66 6f 72  .        if (for
0e70: 6d 61 74 53 63 72 69 70 74 29 0d 0a 20 20 20 20  matScript)..    
0e80: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20      {..         
0e90: 20 20 20 66 6f 72 6d 61 74 53 63 72 69 70 74 2e     formatScript.
0ea0: 69 6e 76 6f 6b 65 4d 61 63 72 6f 73 28 27 d0 92  invokeMacros('..
0eb0: d1 8b d1 80 d0 be d0 b2 d0 bd d1 8f d1 82 d1 8c  ................
0ec0: d0 97 d0 bd d0 b0 d0 ba d0 b8 d0 a0 d0 b0 d0 b2  ................
0ed0: d0 bd d0 be 27 29 3b 0d 0a 20 20 20 20 20 20 20  ....');..       
0ee0: 20 20 20 20 20 2f 2f 20 d0 98 20 d1 81 d0 bd d0       // .. .....
0ef0: be d0 b2 d0 b0 20 d0 b2 d0 be d1 81 d1 81 d1 82  ..... ..........
0f00: d0 b0 d0 bd d0 be d0 b2 d0 b8 d0 bc 20 d0 b8 d1  ............ ...
0f10: 81 d1 85 d0 be d0 b4 d0 bd d0 be d0 b5 20 d0 b2  ............. ..
0f20: d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5  ................
0f30: 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77  ...            w
0f40: 2e 53 65 74 53 65 6c 65 63 74 69 6f 6e 28 73 65  .SetSelection(se
0f50: 6c 2e 62 65 67 69 6e 52 6f 77 2c 20 73 65 6c 2e  l.beginRow, sel.
0f60: 62 65 67 69 6e 43 6f 6c 2c 20 73 65 6c 2e 65 6e  beginCol, sel.en
0f70: 64 52 6f 77 2c 20 73 65 6c 2e 65 6e 64 43 6f 6c  dRow, sel.endCol
0f80: 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a  );            ..
0f90: 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d          }..    }
0fa0: 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 74 72 75  ..    return tru
0fb0: 65 3b 0d 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63 72  e;..}....SelfScr
0fc0: 69 70 74 2e 53 65 6c 66 5b 27 6d 61 63 72 6f 73  ipt.Self['macros
0fd0: d0 9f d1 80 d0 b5 d0 be d0 b1 d1 80 d0 b0 d0 b7  ................
0fe0: d0 be d0 b2 d0 b0 d1 82 d1 8c 20 d1 80 d0 b5 d0  .......... .....
0ff0: b3 d0 b8 d1 81 d1 82 d1 80 3a 20 d0 9f d0 a0 d0  .........: .....
1000: 9e d0 9f d0 98 d0 a1 d0 9d d0 ab d0 95 27 5d 20  .............'] 
1010: 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a  = function() {..
1020: 20 20 20 20 72 65 74 75 72 6e 20 70 72 6f 63 65      return proce
1030: 73 73 53 65 6c 65 63 74 65 64 54 65 78 74 28 66  ssSelectedText(f
1040: 75 6e 63 74 69 6f 6e 28 73 65 6c 54 65 78 74 29  unction(selText)
1050: 7b 20 72 65 74 75 72 6e 20 73 65 6c 54 65 78 74  { return selText
1060: 2e 74 6f 55 70 70 65 72 43 61 73 65 28 29 3b 20  .toUpperCase(); 
1070: 7d 29 3b 0d 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63  });..}....SelfSc
1080: 72 69 70 74 2e 53 65 6c 66 5b 27 6d 61 63 72 6f  ript.Self['macro
1090: 73 d0 a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0  s...............
10a0: b8 d1 82 d1 8c 20 d0 ba d0 b0 d0 b2 d1 8b d1 87  ..... ..........
10b0: d0 ba d0 b8 27 5d 20 3d 20 66 75 6e 63 74 69 6f  ....'] = functio
10c0: 6e 28 29 20 7b 0d 0a 20 20 20 20 72 65 74 75 72  n() {..    retur
10d0: 6e 20 70 72 6f 63 65 73 73 53 65 6c 65 63 74 65  n processSelecte
10e0: 64 54 65 78 74 28 66 75 6e 63 74 69 6f 6e 28 73  dText(function(s
10f0: 65 6c 54 65 78 74 29 7b 20 72 65 74 75 72 6e 20  elText){ return 
1100: 27 22 27 2b 73 65 6c 54 65 78 74 2b 27 22 27 3b  '"'+selText+'"';
1110: 20 7d 2c 20 74 72 75 65 29 3b 0d 0a 7d 0d 0a 76   }, true);..}..v
1120: 61 72 20 66 69 78 3b 0d 0a 53 65 6c 66 53 63 72  ar fix;..SelfScr
1130: 69 70 74 2e 53 65 6c 66 5b 27 6d 61 63 72 6f 73  ipt.Self['macros
1140: d0 a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0 b8  ................
1150: d1 82 d1 8c 20 d0 ba d0 b0 d0 b2 d1 8b d1 87 d0  .... ...........
1160: ba d0 b8 20 32 27 5d 20 3d 20 66 75 6e 63 74 69  ... 2'] = functi
1170: 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 76 61 72 20  on() {..    var 
1180: 77 20 3d 20 47 65 74 54 65 78 74 57 69 6e 64 6f  w = GetTextWindo
1190: 77 28 29 3b 20 0d 0a 20 20 20 20 66 69 78 20 3d  w(); ..    fix =
11a0: 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 69 66 20 28   null;..    if (
11b0: 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d 6f  !w || windows.mo
11c0: 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f 6e  dalMode != msNon
11d0: 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b  e) return false;
11e0: 20 20 20 20 0d 0a 20 20 20 20 0d 0a 20 20 20 20      ..    ..    
11f0: 76 61 72 20 73 65 6c 20 3d 20 77 2e 47 65 74 53  var sel = w.GetS
1200: 65 6c 65 63 74 69 6f 6e 28 29 3b 20 20 20 20 20  election();     
1210: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 76 61 72         ..    var
1220: 20 73 65 6c 54 65 78 74 20 3d 20 77 2e 47 65 74   selText = w.Get
1230: 53 65 6c 65 63 74 65 64 54 65 78 74 28 29 3b 0d  SelectedText();.
1240: 0a 20 20 20 20 69 66 20 28 73 65 6c 54 65 78 74  .    if (selText
1250: 2e 6c 65 6e 67 74 68 3e 30 29 7b 0d 0a 20 20 20  .length>0){..   
1260: 20 20 20 20 20 66 69 78 20 3d 20 73 65 6c 54 65       fix = selTe
1270: 78 74 3b 0d 0a 20 20 20 20 20 20 20 20 65 76 65  xt;..        eve
1280: 6e 74 73 2e 63 6f 6e 6e 65 63 74 28 44 65 73 69  nts.connect(Desi
1290: 67 6e 65 72 2c 20 22 6f 6e 49 64 6c 65 22 2c 20  gner, "onIdle", 
12a0: 53 65 6c 66 53 63 72 69 70 74 2e 73 65 6c 66 29  SelfScript.self)
12b0: 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65  ;..    }..    re
12c0: 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20  turn false;..   
12d0: 20 0d 0a 20 20 20 20 2f 2f 72 65 74 75 72 6e 20   ..    //return 
12e0: 70 72 6f 63 65 73 73 53 65 6c 65 63 74 65 64 54  processSelectedT
12f0: 65 78 74 28 66 75 6e 63 74 69 6f 6e 28 73 65 6c  ext(function(sel
1300: 54 65 78 74 29 7b 20 72 65 74 75 72 6e 20 27 22  Text){ return '"
1310: 27 2b 73 65 6c 54 65 78 74 2b 27 22 27 3b 20 7d  '+selText+'"'; }
1320: 2c 20 74 72 75 65 29 3b 0d 0a 7d 0d 0a 0d 0a 66  , true);..}....f
1330: 75 6e 63 74 69 6f 6e 20 6f 6e 49 64 6c 65 28 29  unction onIdle()
1340: 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20 77 20 3d  ..{..    var w =
1350: 20 47 65 74 54 65 78 74 57 69 6e 64 6f 77 28 29   GetTextWindow()
1360: 3b 20 0d 0a 20 20 20 20 69 66 20 28 21 77 20 7c  ; ..    if (!w |
1370: 7c 20 77 69 6e 64 6f 77 73 2e 6d 6f 64 61 6c 4d  | windows.modalM
1380: 6f 64 65 20 21 3d 20 6d 73 4e 6f 6e 65 20 7c 7c  ode != msNone ||
1390: 20 21 66 69 78 29 7b 0d 0a 20 20 20 20 20 20 20   !fix){..       
13a0: 20 65 76 65 6e 74 73 2e 64 69 73 63 6f 6e 6e 65   events.disconne
13b0: 63 74 28 44 65 73 69 67 6e 65 72 2c 20 22 6f 6e  ct(Designer, "on
13c0: 49 64 6c 65 22 2c 20 53 65 6c 66 53 63 72 69 70  Idle", SelfScrip
13d0: 74 2e 73 65 6c 66 29 3b 0d 0a 20 20 20 20 20 20  t.self);..      
13e0: 20 20 72 65 74 75 72 6e 3b 20 20 20 20 0d 0a 20    return;    .. 
13f0: 20 20 20 7d 20 0d 0a 20 20 20 20 76 61 72 20 70     } ..    var p
1400: 6f 73 20 3d 20 77 2e 47 65 74 43 61 72 65 74 50  os = w.GetCaretP
1410: 6f 73 28 29 3b 0d 0a 0d 0a 20 20 20 20 76 61 72  os();....    var
1420: 20 62 65 67 69 6e 52 6f 77 20 3d 20 70 6f 73 2e   beginRow = pos.
1430: 62 65 67 69 6e 52 6f 77 3b 0d 0a 20 20 20 20 76  beginRow;..    v
1440: 61 72 20 77 6f 72 64 42 65 67 50 6f 73 20 3d 20  ar wordBegPos = 
1450: 70 6f 73 2e 62 65 67 69 6e 43 6f 6c 20 2d 20 32  pos.beginCol - 2
1460: 3b 0d 0a 0d 0a 20 20 20 20 76 61 72 20 6c 69 6e  ;....    var lin
1470: 65 20 3d 20 77 2e 47 65 74 4c 69 6e 65 28 70 6f  e = w.GetLine(po
1480: 73 2e 62 65 67 69 6e 52 6f 77 29 3b 0d 0a 20 20  s.beginRow);..  
1490: 20 20 69 66 20 28 77 6f 72 64 42 65 67 50 6f 73    if (wordBegPos
14a0: 20 3e 20 6c 69 6e 65 2e 6c 65 6e 67 74 68 29 7b   > line.length){
14b0: 0d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a  ..    } else {..
14c0: 20 20 20 20 20 20 20 20 73 74 72 20 3d 20 6c 69          str = li
14d0: 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64 42 65  ne.charAt(wordBe
14e0: 67 50 6f 73 29 3b 0d 0a 20 20 20 20 20 20 20 20  gPos);..        
14f0: 69 66 20 28 73 74 72 3d 3d 27 22 27 29 7b 0d 0a  if (str=='"'){..
1500: 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 73 65              w.se
1510: 74 53 65 6c 65 63 74 69 6f 6e 28 70 6f 73 2e 62  tSelection(pos.b
1520: 65 67 69 6e 52 6f 77 2c 20 70 6f 73 2e 62 65 67  eginRow, pos.beg
1530: 69 6e 43 6f 6c 2d 31 2c 20 70 6f 73 2e 65 6e 64  inCol-1, pos.end
1540: 52 6f 77 2c 20 70 6f 73 2e 65 6e 64 43 6f 6c 29  Row, pos.endCol)
1550: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77  ;..            w
1560: 2e 53 65 74 53 65 6c 65 63 74 65 64 54 65 78 74  .SetSelectedText
1570: 28 27 22 27 2b 66 69 78 2b 27 22 27 29 3b 0d 0a  ('"'+fix+'"');..
1580: 20 20 20 20 20 20 20 20 7d 20 20 20 0d 0a 20 20          }   ..  
1590: 20 20 7d 0d 0a 20 20 20 20 2f 2f 20 d0 9e d1 82    }..    // ....
15a0: d0 bf d0 b8 d1 81 d1 8b d0 b2 d0 b0 d0 b5 d0 bc  ................
15b0: d1 81 d1 8f 20 d0 be d1 82 20 d1 81 d0 be d0 b1  .... .... ......
15c0: d1 8b d1 82 d0 b8 d1 8f 0d 0a 20 20 20 20 65 76  ..........    ev
15d0: 65 6e 74 73 2e 64 69 73 63 6f 6e 6e 65 63 74 28  ents.disconnect(
15e0: 44 65 73 69 67 6e 65 72 2c 20 22 6f 6e 49 64 6c  Designer, "onIdl
15f0: 65 22 2c 20 53 65 6c 66 53 63 72 69 70 74 2e 73  e", SelfScript.s
1600: 65 6c 66 29 0d 0a 7d 0d 0a 0d 0a 0d 0a 53 65 6c  elf)..}......Sel
1610: 66 53 63 72 69 70 74 2e 53 65 6c 66 5b 27 6d 61  fScript.Self['ma
1620: 63 72 6f 73 d0 a3 d1 81 d1 82 d0 b0 d0 bd d0 be  cros............
1630: d0 b2 d0 b8 d1 82 d1 8c 20 d1 81 d0 ba d0 be d0  ........ .......
1640: b1 d0 ba d0 b8 27 5d 20 3d 20 66 75 6e 63 74 69  .....'] = functi
1650: 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 72 65 74 75  on() {..    retu
1660: 72 6e 20 70 72 6f 63 65 73 73 53 65 6c 65 63 74  rn processSelect
1670: 65 64 54 65 78 74 28 66 75 6e 63 74 69 6f 6e 28  edText(function(
1680: 73 65 6c 54 65 78 74 29 7b 20 72 65 74 75 72 6e  selText){ return
1690: 20 27 28 27 2b 73 65 6c 54 65 78 74 2b 27 29 27   '('+selText+')'
16a0: 3b 20 7d 2c 20 74 72 75 65 29 3b 0d 0a 7d 0d 0a  ; }, true);..}..
16b0: 53 65 6c 66 53 63 72 69 70 74 2e 53 65 6c 66 5b  SelfScript.Self[
16c0: 27 6d 61 63 72 6f 73 d0 a3 d1 81 d1 82 d0 b0 d0  'macros.........
16d0: bd d0 be d0 b2 d0 b8 d1 82 d1 8c 20 d1 81 d0 ba  ........... ....
16e0: d0 be d0 b1 d0 ba d0 b8 20 32 27 5d 20 3d 20 66  ........ 2'] = f
16f0: 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20  unction() {..   
1700: 20 72 65 74 75 72 6e 20 70 72 6f 63 65 73 73 53   return processS
1710: 65 6c 65 63 74 65 64 54 65 78 74 28 66 75 6e 63  electedText(func
1720: 74 69 6f 6e 28 73 65 6c 54 65 78 74 29 7b 20 72  tion(selText){ r
1730: 65 74 75 72 6e 20 27 28 27 2b 73 65 6c 54 65 78  eturn '('+selTex
1740: 74 2b 27 29 27 3b 20 7d 2c 20 74 72 75 65 29 3b  t+')'; }, true);
1750: 0d 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63 72 69 70  ..}....SelfScrip
1760: 74 2e 53 65 6c 66 5b 27 6d 61 63 72 6f 73 d0 9f  t.Self['macros..
1770: d1 80 d0 b5 d0 be d0 b1 d1 80 d0 b0 d0 b7 d0 be  ................
1780: d0 b2 d0 b0 d1 82 d1 8c 20 d1 80 d0 b5 d0 b3 d0  ........ .......
1790: b8 d1 81 d1 82 d1 80 3a 20 d1 81 d1 82 d1 80 d0  .......: .......
17a0: be d1 87 d0 bd d1 8b d0 b5 27 5d 20 3d 20 66 75  .........'] = fu
17b0: 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20  nction() {..    
17c0: 72 65 74 75 72 6e 20 70 72 6f 63 65 73 73 53 65  return processSe
17d0: 6c 65 63 74 65 64 54 65 78 74 28 66 75 6e 63 74  lectedText(funct
17e0: 69 6f 6e 28 73 65 6c 54 65 78 74 29 7b 20 72 65  ion(selText){ re
17f0: 74 75 72 6e 20 73 65 6c 54 65 78 74 2e 74 6f 4c  turn selText.toL
1800: 6f 77 65 72 43 61 73 65 28 29 3b 20 7d 29 3b 0d  owerCase(); });.
1810: 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63 72 69 70 74  .}....SelfScript
1820: 2e 53 65 6c 66 5b 27 6d 61 63 72 6f 73 d0 92 d1  .Self['macros...
1830: 8b d0 b4 d0 b5 d0 bb d0 b8 d1 82 d1 8c 20 d1 82  ............. ..
1840: d0 b5 d0 ba d1 81 d1 82 20 d0 b2 20 d1 81 d0 ba  ........ .. ....
1850: d0 be d0 b1 d0 ba d0 b0 d1 85 27 5d 20 3d 20 66  ..........'] = f
1860: 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 0d 0a 20  unction() {.... 
1870: 20 20 20 76 61 72 20 77 20 3d 20 47 65 74 54 65     var w = GetTe
1880: 78 74 57 69 6e 64 6f 77 28 29 3b 20 0d 0a 20 20  xtWindow(); ..  
1890: 20 20 69 66 20 28 21 77 20 20 7c 7c 20 77 69 6e    if (!w  || win
18a0: 64 6f 77 73 2e 6d 6f 64 61 6c 4d 6f 64 65 20 21  dows.modalMode !
18b0: 3d 20 6d 73 4e 6f 6e 65 29 20 72 65 74 75 72 6e  = msNone) return
18c0: 20 66 61 6c 73 65 3b 20 20 20 20 0d 0a 20 20 20   false;    ..   
18d0: 20 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 73       ..    var s
18e0: 65 6c 20 3d 20 77 2e 47 65 74 43 61 72 65 74 50  el = w.GetCaretP
18f0: 6f 73 28 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20  os();..    ..   
1900: 20 76 61 72 20 73 74 61 72 74 50 6f 73 20 3d 20   var startPos = 
1910: 7b 20 27 72 6f 77 27 20 3a 20 73 65 6c 2e 62 65  { 'row' : sel.be
1920: 67 69 6e 52 6f 77 2d 31 2c 20 27 63 6f 6c 27 20  ginRow-1, 'col' 
1930: 3a 20 73 65 6c 2e 62 65 67 69 6e 43 6f 6c 2d 31  : sel.beginCol-1
1940: 20 7d 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76   };..    ..    v
1950: 61 72 20 6c 69 6e 65 73 20 3d 20 77 2e 47 65 74  ar lines = w.Get
1960: 4c 69 6e 65 73 28 29 3b 20 20 20 20 0d 0a 20 20  Lines();    ..  
1970: 20 20 76 61 72 20 66 6f 75 6e 64 4f 70 65 6e 69    var foundOpeni
1980: 6e 67 42 72 61 63 65 20 3d 20 66 61 6c 73 65 3b  ngBrace = false;
1990: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 77 68 69 6c  ..    ..    whil
19a0: 65 20 28 74 72 75 65 29 0d 0a 20 20 20 20 7b 0d  e (true)..    {.
19b0: 0a 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 6e  .        var lin
19c0: 65 20 3d 20 6c 69 6e 65 73 5b 73 74 61 72 74 50  e = lines[startP
19d0: 6f 73 2e 72 6f 77 5d 3b 0d 0a 20 20 20 20 20 20  os.row];..      
19e0: 20 20 77 68 69 6c 65 20 28 73 74 61 72 74 50 6f    while (startPo
19f0: 73 2e 63 6f 6c 20 3e 20 2d 31 29 20 0d 0a 20 20  s.col > -1) ..  
1a00: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
1a10: 20 20 20 20 20 69 66 20 28 6c 69 6e 65 2e 63 68       if (line.ch
1a20: 61 72 41 74 28 73 74 61 72 74 50 6f 73 2e 63 6f  arAt(startPos.co
1a30: 6c 29 20 3d 3d 20 27 28 27 29 0d 0a 20 20 20 20  l) == '(')..    
1a40: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
1a50: 20 20 20 20 20 20 20 20 20 20 20 66 6f 75 6e 64             found
1a60: 4f 70 65 6e 69 6e 67 42 72 61 63 65 20 3d 20 74  OpeningBrace = t
1a70: 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  rue;..          
1a80: 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20        break;..  
1a90: 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20            }..   
1aa0: 20 20 20 20 20 20 20 20 20 73 74 61 72 74 50 6f           startPo
1ab0: 73 2e 63 6f 6c 2d 2d 3b 20 0d 0a 20 20 20 20 20  s.col--; ..     
1ac0: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a     }..        ..
1ad0: 20 20 20 20 20 20 20 20 69 66 20 28 66 6f 75 6e          if (foun
1ae0: 64 4f 70 65 6e 69 6e 67 42 72 61 63 65 29 0d 0a  dOpeningBrace)..
1af0: 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61              brea
1b00: 6b 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20  k;..        ..  
1b10: 20 20 20 20 20 20 73 74 61 72 74 50 6f 73 2e 72        startPos.r
1b20: 6f 77 2d 2d 3b 0d 0a 20 20 20 20 20 20 20 20 69  ow--;..        i
1b30: 66 20 28 73 74 61 72 74 50 6f 73 2e 72 6f 77 20  f (startPos.row 
1b40: 3c 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20 20  < 0)..          
1b50: 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20    break;..      
1b60: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
1b70: 73 74 61 72 74 50 6f 73 2e 63 6f 6c 20 3d 20 6c  startPos.col = l
1b80: 69 6e 65 73 5b 73 74 61 72 74 50 6f 73 2e 72 6f  ines[startPos.ro
1b90: 77 5d 2e 6c 65 6e 67 74 68 20 2d 20 31 3b 0d 0a  w].length - 1;..
1ba0: 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20      }..    ..   
1bb0: 20 69 66 20 28 21 66 6f 75 6e 64 4f 70 65 6e 69   if (!foundOpeni
1bc0: 6e 67 42 72 61 63 65 29 0d 0a 20 20 20 20 20 20  ngBrace)..      
1bd0: 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d    return false;.
1be0: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 2f  .        ..    /
1bf0: 2a 20 d0 a1 d1 87 d0 b5 d1 82 d1 87 d0 b8 d0 ba  * ..............
1c00: 20 d0 bd d0 b5 d0 bf d0 b0 d1 80 d0 bd d1 8b d1   ...............
1c10: 85 20 d1 81 d0 ba d0 be d0 b1 d0 be d0 ba 2e 20  . ............. 
1c20: d0 95 d1 81 d0 bb d0 b8 20 d0 b2 d1 81 d1 82 d1  ........ .......
1c30: 80 d0 b5 d1 87 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20  ............... 
1c40: d0 be d1 82 d0 ba d1 80 d1 8b d0 b2 d0 b0 d1 8e  ................
1c50: d1 89 d0 b0 d1 8f d1 81 d1 8f 20 d1 81 d0 ba d0  .......... .....
1c60: be d0 b1 d0 ba d0 b0 20 2d 20 d0 bf d1 80 d0 b8  ....... - ......
1c70: d0 b1 d0 b0 d0 b2 d0 bb d1 8f d0 b5 d0 bc 20 31  .............. 1
1c80: 2c 20 0d 0a 20 20 20 20 d0 b5 d1 81 d0 bb d0 b8  , ..    ........
1c90: 20 d0 b7 d0 b0 d0 ba d1 80 d1 8b d0 b2 d0 b0 d1   ...............
1ca0: 8e d1 89 d0 b0 d1 8f 20 2d 20 d0 b2 d1 8b d1 87  ....... - ......
1cb0: d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 31 2e 20 d0 9a  .......... 1. ..
1cc0: d0 be d0 b3 d0 b4 d0 b0 20 d0 b7 d0 bd d0 b0 d1  ........ .......
1cd0: 87 d0 b5 d0 bd d0 b8 d0 b5 20 d1 81 d1 82 d0 b0  ......... ......
1ce0: d0 bd d0 be d0 b2 d0 b8 d1 82 d1 81 d1 8f 20 d1  .............. .
1cf0: 80 d0 b0 d0 b2 d0 bd d1 8b d0 bc 20 30 2c 20 d0  ........... 0, .
1d00: b7 d0 bd d0 b0 d1 87 d0 b8 d1 82 20 d0 bc d1 8b  ........... ....
1d10: 20 d0 bd d0 b0 d1 88 d0 bb d0 b8 20 0d 0a 20 20   .......... ..  
1d20: 20 20 d0 bf d0 b0 d1 80 d0 bd d1 83 d1 8e 20 d0    ............ .
1d30: b7 d0 b0 d0 ba d1 80 d1 8b d0 b2 d0 b0 d1 8e d1  ................
1d40: 89 d1 83 d1 8e 20 d1 81 d0 ba d0 be d0 b1 d0 ba  ..... ..........
1d50: d1 83 20 d0 b8 20 d0 bf d0 be d0 b8 d1 81 d0 ba  .. .. ..........
1d60: 20 d0 bc d0 be d0 b6 d0 bd d0 be 20 d0 bf d1 80   .......... ....
1d70: d0 b5 d0 ba d1 80 d0 b0 d1 82 d0 b8 d1 82 d1 8c  ................
1d80: 2e 20 2a 2f 0d 0a 20 20 20 20 76 61 72 20 6e 6f  . */..    var no
1d90: 74 50 61 69 72 65 64 43 6f 75 6e 74 20 3d 20 31  tPairedCount = 1
1da0: 3b 20 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61  ; ..    ..    va
1db0: 72 20 65 6e 64 50 6f 73 20 3d 20 7b 20 27 72 6f  r endPos = { 'ro
1dc0: 77 27 20 3a 20 73 74 61 72 74 50 6f 73 2e 72 6f  w' : startPos.ro
1dd0: 77 2c 20 27 63 6f 6c 27 20 3a 20 73 74 61 72 74  w, 'col' : start
1de0: 50 6f 73 2e 63 6f 6c 20 2b 20 31 20 7d 3b 0d 0a  Pos.col + 1 };..
1df0: 20 20 20 20 77 68 69 6c 65 20 28 65 6e 64 50 6f      while (endPo
1e00: 73 2e 72 6f 77 20 3c 20 6c 69 6e 65 73 2e 6c 65  s.row < lines.le
1e10: 6e 67 74 68 29 0d 0a 20 20 20 20 7b 0d 0a 20 20  ngth)..    {..  
1e20: 20 20 20 20 20 20 76 61 72 20 6c 69 6e 65 20 3d        var line =
1e30: 20 6c 69 6e 65 73 5b 65 6e 64 50 6f 73 2e 72 6f   lines[endPos.ro
1e40: 77 5d 3b 0d 0a 20 20 20 20 20 20 20 20 77 68 69  w];..        whi
1e50: 6c 65 20 28 65 6e 64 50 6f 73 2e 63 6f 6c 20 3c  le (endPos.col <
1e60: 20 6c 69 6e 65 2e 6c 65 6e 67 74 68 29 0d 0a 20   line.length).. 
1e70: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20         {..      
1e80: 20 20 20 20 20 20 73 77 69 74 63 68 20 28 6c 69        switch (li
1e90: 6e 65 2e 63 68 61 72 41 74 28 65 6e 64 50 6f 73  ne.charAt(endPos
1ea0: 2e 63 6f 6c 29 29 0d 0a 20 20 20 20 20 20 20 20  .col))..        
1eb0: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20      {..         
1ec0: 20 20 20 63 61 73 65 20 27 28 27 3a 0d 0a 20 20     case '(':..  
1ed0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f                no
1ee0: 74 50 61 69 72 65 64 43 6f 75 6e 74 2b 2b 3b 0d  tPairedCount++;.
1ef0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1f00: 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20   break;..       
1f10: 20 20 20 20 20 63 61 73 65 20 27 29 27 3a 0d 0a       case ')':..
1f20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f30: 6e 6f 74 50 61 69 72 65 64 43 6f 75 6e 74 2d 2d  notPairedCount--
1f40: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ;..             
1f50: 20 20 20 62 72 65 61 6b 3b 20 20 20 20 20 20 20     break;       
1f60: 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20           ..     
1f70: 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0d         default:.
1f80: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1f90: 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20   break;..       
1fa0: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20       }..        
1fb0: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20      ..          
1fc0: 20 20 69 66 20 28 21 6e 6f 74 50 61 69 72 65 64    if (!notPaired
1fd0: 43 6f 75 6e 74 29 0d 0a 20 20 20 20 20 20 20 20  Count)..        
1fe0: 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a          break;..
1ff0: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20              ..  
2000: 20 20 20 20 20 20 20 20 20 20 65 6e 64 50 6f 73            endPos
2010: 2e 63 6f 6c 2b 2b 3b 0d 0a 20 20 20 20 20 20 20  .col++;..       
2020: 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20   }..        ..  
2030: 20 20 20 20 20 20 69 66 20 28 21 6e 6f 74 50 61        if (!notPa
2040: 69 72 65 64 43 6f 75 6e 74 29 0d 0a 20 20 20 20  iredCount)..    
2050: 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a          break;..
2060: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20              ..  
2070: 20 20 20 20 20 20 65 6e 64 50 6f 73 2e 72 6f 77        endPos.row
2080: 2b 2b 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20  ++;..    }..    
2090: 0d 0a 20 20 20 20 69 66 20 28 6e 6f 74 50 61 69  ..    if (notPai
20a0: 72 65 64 43 6f 75 6e 74 29 0d 0a 20 20 20 20 7b  redCount)..    {
20b0: 0d 0a 20 20 20 20 20 20 20 20 44 6f 4d 65 73 73  ..        DoMess
20c0: 61 67 65 42 6f 78 28 27 d0 9d d0 b5 20 d0 be d0  ageBox('.... ...
20d0: b1 d0 bd d0 b0 d1 80 d1 83 d0 b6 d0 b5 d0 bd d0  ................
20e0: be 20 d0 bf d0 b0 d1 80 d0 bd d0 be d0 b9 20 d1  . ............ .
20f0: 81 d0 ba d0 be d0 b1 d0 ba d0 b8 20 d0 b4 d0 bb  ........... ....
2100: d1 8f 20 d1 81 d0 ba d0 be d0 b1 d0 ba d0 b8 20  .. ............ 
2110: d0 b2 20 d0 bf d0 be d0 b7 d0 b8 d1 86 d0 b8 d0  .. .............
2120: b8 20 28 27 20 2b 20 28 73 74 61 72 74 50 6f 73  . (' + (startPos
2130: 2e 72 6f 77 20 2b 20 31 29 20 2b 20 27 2c 20 27  .row + 1) + ', '
2140: 20 2b 20 28 73 74 61 72 74 50 6f 73 2e 63 6f 6c   + (startPos.col
2150: 20 2b 20 31 29 20 2b 20 27 29 21 27 29 3b 0d 0a   + 1) + ')!');..
2160: 20 20 20 20 20 20 20 20 77 2e 53 65 74 53 65 6c          w.SetSel
2170: 65 63 74 69 6f 6e 28 73 74 61 72 74 50 6f 73 2e  ection(startPos.
2180: 72 6f 77 20 2b 20 31 2c 20 73 74 61 72 74 50 6f  row + 1, startPo
2190: 73 2e 63 6f 6c 20 2b 20 31 2c 20 73 74 61 72 74  s.col + 1, start
21a0: 50 6f 73 2e 72 6f 77 20 2b 20 31 2c 20 73 74 61  Pos.row + 1, sta
21b0: 72 74 50 6f 73 2e 63 6f 6c 20 2b 20 32 29 3b 0d  rtPos.col + 2);.
21c0: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  .        return 
21d0: 66 61 6c 73 65 3b 0d 0a 20 20 20 20 7d 0d 0a 20  false;..    }.. 
21e0: 20 20 20 0d 0a 20 20 20 20 2f 2a 20 d0 9d d0 b5     ..    /* ....
21f0: 20 d0 b7 d0 b0 d0 b1 d1 8b d0 b2 d0 b0 d0 b5 d0   ...............
2200: bc 2c 20 d1 87 d1 82 d0 be 20 d1 83 20 d0 bd d0  ., ...... .. ...
2210: b0 d1 81 20 d0 bd d1 83 d0 bc d0 b5 d1 80 d0 b0  ... ............
2220: d1 86 d0 b8 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0  ...... .........
2230: ba 20 d0 b8 20 d0 ba d0 be d0 bb d0 be d0 bd d0  . .. ...........
2240: be d0 ba 20 d0 bd d0 b0 d1 87 d0 b8 d0 bd d0 b0  ... ............
2250: d0 b5 d1 82 d1 81 d1 8f 20 d1 81 20 31 2c 20 0d  ........ .. 1, .
2260: 0a 20 20 20 20 d0 b0 20 d0 b8 d0 bd d0 b4 d0 b5  .    .. ........
2270: d0 ba d1 81 d1 8b 20 d1 8d d0 bb d0 b5 d0 bc d0  ...... .........
2280: b5 d0 bd d1 82 d0 be d0 b2 20 d0 bc d0 b0 d1 81  ......... ......
2290: d1 81 d0 b8 d0 b2 d0 b0 20 d0 b8 20 d0 b8 d0 bd  ........ .. ....
22a0: d0 b4 d0 b5 d0 ba d1 81 d1 8b 20 d1 81 d0 b8 d0  .......... .....
22b0: bc d0 b2 d0 be d0 bb d0 be d0 b2 20 d0 b2 20 d1  ........... .. .
22c0: 81 d1 82 d1 80 d0 be d0 ba d0 b5 20 2d 20 d1 81  ........... - ..
22d0: 20 d0 bd d1 83 d0 bb d1 8f 2e 20 2a 2f 0d 0a 20   ......... */.. 
22e0: 20 20 20 77 2e 53 65 74 53 65 6c 65 63 74 69 6f     w.SetSelectio
22f0: 6e 28 73 74 61 72 74 50 6f 73 2e 72 6f 77 20 2b  n(startPos.row +
2300: 20 31 2c 20 73 74 61 72 74 50 6f 73 2e 63 6f 6c   1, startPos.col
2310: 20 2b 20 32 2c 20 65 6e 64 50 6f 73 2e 72 6f 77   + 2, endPos.row
2320: 20 2b 20 31 2c 20 65 6e 64 50 6f 73 2e 63 6f 6c   + 1, endPos.col
2330: 20 2b 20 31 29 3b 0d 0a 20 20 20 20 72 65 74 75   + 1);..    retu
2340: 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a 53  rn true;..}....S
2350: 65 6c 66 53 63 72 69 70 74 2e 53 65 6c 66 5b 27  elfScript.Self['
2360: 6d 61 63 72 6f 73 d0 97 d0 b0 d0 bc d0 b5 d0 bd  macros..........
2370: d0 b8 d1 82 d1 8c 20 d1 82 d0 b0 d0 b1 d1 83 d0  ...... .........
2380: bb d1 8f d1 86 d0 b8 d1 8e 20 d0 b2 20 d0 be d1  ......... .. ...
2390: 82 d1 81 d1 82 d1 83 d0 bf d0 b0 d1 85 20 d0 bd  ............. ..
23a0: d0 b0 20 d0 bf d1 80 d0 be d0 b1 d0 b5 d0 bb d1  .. .............
23b0: 8b 27 5d 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29  .'] = function()
23c0: 20 7b 0d 0a 09 72 65 74 75 72 6e 20 72 65 70 6c   {...return repl
23d0: 61 63 65 54 61 62 73 54 6f 53 70 61 63 65 73 49  aceTabsToSpacesI
23e0: 6e 53 65 6c 65 63 74 65 64 54 65 78 74 28 29 3b  nSelectedText();
23f0: 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20  ..}....function 
2400: 72 65 70 6c 61 63 65 54 61 62 73 54 6f 53 70 61  replaceTabsToSpa
2410: 63 65 73 49 6e 53 65 6c 65 63 74 65 64 54 65 78  cesInSelectedTex
2420: 74 28 64 6f 4e 6f 74 52 65 73 74 6f 72 65 53 65  t(doNotRestoreSe
2430: 6c 65 63 74 69 6f 6e 29 20 7b 09 0d 0a 20 20 20  lection) {...   
2440: 20 72 65 74 75 72 6e 20 70 72 6f 63 65 73 73 53   return processS
2450: 65 6c 65 63 74 65 64 54 65 78 74 28 66 75 6e 63  electedText(func
2460: 74 69 6f 6e 28 73 65 6c 54 65 78 74 29 7b 0d 0a  tion(selText){..
2470: 20 20 20 20 20 20 20 20 76 61 72 20 74 61 62 53          var tabS
2480: 69 7a 65 20 3d 20 70 72 6f 66 69 6c 65 52 6f 6f  ize = profileRoo
2490: 74 2e 67 65 74 56 61 6c 75 65 28 22 4d 6f 64 75  t.getValue("Modu
24a0: 6c 65 54 65 78 74 45 64 69 74 6f 72 2f 54 61 62  leTextEditor/Tab
24b0: 53 69 7a 65 22 29 3b 0d 0a 20 20 20 20 20 20 20  Size");..       
24c0: 20 76 61 72 20 73 70 61 63 65 73 20 3d 20 27 27   var spaces = ''
24d0: 3b 20 66 6f 72 20 28 76 61 72 20 69 3d 30 3b 20  ; for (var i=0; 
24e0: 69 3c 74 61 62 53 69 7a 65 3b 20 69 2b 2b 29 20  i<tabSize; i++) 
24f0: 7b 20 73 70 61 63 65 73 20 2b 3d 20 27 20 27 20  { spaces += ' ' 
2500: 7d 3b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75  };..        retu
2510: 72 6e 20 73 65 6c 54 65 78 74 2e 72 65 70 6c 61  rn selText.repla
2520: 63 65 28 2f 5e 28 28 3c 5b 5e 3e 5d 2b 3e 7c 5c  ce(/^((<[^>]+>|\
2530: 74 29 2b 29 2f 67 6d 2c 20 66 75 6e 63 74 69 6f  t)+)/gm, functio
2540: 6e 28 6d 61 74 63 68 2c 20 70 31 2c 20 6f 66 66  n(match, p1, off
2550: 73 65 74 2c 20 73 29 20 7b 0d 0a 20 20 20 20 20  set, s) {..     
2560: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 70 31         return p1
2570: 2e 72 65 70 6c 61 63 65 28 2f 5c 74 2f 67 2c 20  .replace(/\t/g, 
2580: 73 70 61 63 65 73 29 3b 0d 0a 20 20 20 20 20 20  spaces);..      
2590: 20 20 7d 29 3b 0d 0a 20 20 20 20 7d 2c 20 64 6f    });..    }, do
25a0: 4e 6f 74 52 65 73 74 6f 72 65 53 65 6c 65 63 74  NotRestoreSelect
25b0: 69 6f 6e 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63  ion);..}....func
25c0: 74 69 6f 6e 20 73 65 6c 65 63 74 4e 65 78 74 50  tion selectNextP
25d0: 61 74 74 65 72 6e 28 64 69 72 29 7b 0d 0a 20 20  attern(dir){..  
25e0: 20 20 2f 2f 64 65 62 75 67 67 65 72 3b 0d 0a 20    //debugger;.. 
25f0: 20 20 20 76 61 72 20 77 20 3d 20 47 65 74 54 65     var w = GetTe
2600: 78 74 57 69 6e 64 6f 77 28 29 3b 20 2f 2f 73 6e  xtWindow(); //sn
2610: 65 67 6f 70 61 74 2e 61 63 74 69 76 65 54 65 78  egopat.activeTex
2620: 74 57 69 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20  tWindow();..    
2630: 69 66 20 28 21 77 20 7c 7c 20 77 69 6e 64 6f 77  if (!w || window
2640: 73 2e 6d 6f 64 61 6c 4d 6f 64 65 20 21 3d 20 6d  s.modalMode != m
2650: 73 4e 6f 6e 65 29 20 72 65 74 75 72 6e 20 66 61  sNone) return fa
2660: 6c 73 65 3b 0d 0a 20 20 20 20 0d 0a 2f 2f 64 65  lse;..    ..//de
2670: 62 75 67 67 65 72 3b 20 20 20 20 0d 0a 20 20 20  bugger;    ..   
2680: 20 0d 0a 20 20 20 20 76 61 72 20 73 65 6c 20 3d   ..    var sel =
2690: 20 77 2e 67 65 74 53 65 6c 65 63 74 69 6f 6e 28   w.getSelection(
26a0: 29 3b 0d 0a 20 20 20 20 76 61 72 20 73 65 6c 54  );..    var selT
26b0: 65 78 74 20 3d 20 77 2e 73 65 6c 65 63 74 65 64  ext = w.selected
26c0: 54 65 78 74 28 29 3b 0d 0a 20 20 20 20 69 66 20  Text();..    if 
26d0: 28 73 65 6c 54 65 78 74 20 3d 3d 20 27 27 29 20  (selText == '') 
26e0: 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 0d  return false;...
26f0: 0a 20 20 20 20 76 61 72 20 72 6f 77 20 3d 20 64  .    var row = d
2700: 69 72 20 3c 20 30 20 3f 20 0d 0a 20 20 20 20 20  ir < 0 ? ..     
2710: 20 20 20 73 65 61 72 63 68 50 61 74 74 65 72 6e     searchPattern
2720: 55 70 28 77 2c 20 73 65 6c 54 65 78 74 2c 20 73  Up(w, selText, s
2730: 65 6c 2e 62 65 67 69 6e 52 6f 77 29 20 3a 0d 0a  el.beginRow) :..
2740: 20 20 20 20 20 20 20 20 73 65 61 72 63 68 50 61          searchPa
2750: 74 74 65 72 6e 44 6f 77 6e 28 77 2c 20 73 65 6c  tternDown(w, sel
2760: 54 65 78 74 2c 20 73 65 6c 2e 62 65 67 69 6e 52  Text, sel.beginR
2770: 6f 77 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20  ow);..    ..    
2780: 69 66 20 28 21 72 6f 77 29 20 72 65 74 75 72 6e  if (!row) return
2790: 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 76 61 72   false;..    var
27a0: 20 73 74 72 20 3d 20 77 2e 6c 69 6e 65 28 72 6f   str = w.line(ro
27b0: 77 29 3b 0d 0a 20 20 20 20 76 61 72 20 63 6f 6c  w);..    var col
27c0: 20 3d 20 31 20 2b 20 73 74 72 2e 69 6e 64 65 78   = 1 + str.index
27d0: 4f 66 28 73 65 6c 54 65 78 74 29 3b 0d 0a 20 20  Of(selText);..  
27e0: 20 20 0d 0a 20 20 20 20 77 2e 73 65 74 43 61 72    ..    w.setCar
27f0: 65 74 50 6f 73 28 31 2c 20 31 29 3b 0d 0a 20 20  etPos(1, 1);..  
2800: 20 20 77 2e 73 65 74 53 65 6c 65 63 74 69 6f 6e    w.setSelection
2810: 28 72 6f 77 2c 20 63 6f 6c 2c 20 72 6f 77 2c 20  (row, col, row, 
2820: 63 6f 6c 20 2b 20 73 65 6c 54 65 78 74 2e 6c 65  col + selText.le
2830: 6e 67 74 68 29 3b 0d 0a 20 20 20 20 77 2e 73 65  ngth);..    w.se
2840: 74 43 61 72 65 74 50 6f 73 28 72 6f 77 2c 20 63  tCaretPos(row, c
2850: 6f 6c 29 3b 0d 0a 20 20 20 20 77 2e 73 65 74 53  ol);..    w.setS
2860: 65 6c 65 63 74 69 6f 6e 28 72 6f 77 2c 20 63 6f  election(row, co
2870: 6c 2c 20 72 6f 77 2c 20 63 6f 6c 20 2b 20 73 65  l, row, col + se
2880: 6c 54 65 78 74 2e 6c 65 6e 67 74 68 29 3b 0d 0a  lText.length);..
2890: 20 20 20 20 0d 0a 20 20 20 20 72 65 74 75 72 6e      ..    return
28a0: 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e   true;..}....fun
28b0: 63 74 69 6f 6e 20 73 65 61 72 63 68 50 61 74 74  ction searchPatt
28c0: 65 72 6e 44 6f 77 6e 28 64 6f 63 2c 20 70 61 74  ernDown(doc, pat
28d0: 74 65 72 6e 2c 20 73 74 61 72 74 52 6f 77 29 7b  tern, startRow){
28e0: 0d 0a 20 20 20 20 76 61 72 20 71 20 3d 20 30 3b  ..    var q = 0;
28f0: 0d 0a 20 20 20 20 66 6f 72 20 28 76 61 72 20 69  ..    for (var i
2900: 20 3d 20 73 74 61 72 74 52 6f 77 20 2b 20 31 3b   = startRow + 1;
2910: 20 69 20 3c 3d 20 64 6f 63 2e 6c 69 6e 65 73 43   i <= doc.linesC
2920: 6f 75 6e 74 28 29 3b 20 69 2b 2b 29 7b 0d 0a 20  ount(); i++){.. 
2930: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
2940: 20 69 66 20 28 2b 2b 71 20 3e 20 31 30 30 30 30   if (++q > 10000
2950: 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a  ) return null;..
2960: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
2970: 20 20 76 61 72 20 73 74 72 20 3d 20 64 6f 63 2e    var str = doc.
2980: 6c 69 6e 65 28 69 29 3b 0d 0a 20 20 20 20 20 20  line(i);..      
2990: 20 20 76 61 72 20 6a 20 3d 20 73 74 72 2e 69 6e    var j = str.in
29a0: 64 65 78 4f 66 28 70 61 74 74 65 72 6e 29 3b 0d  dexOf(pattern);.
29b0: 0a 20 20 20 20 20 20 20 20 69 66 20 28 6a 20 3e  .        if (j >
29c0: 20 2d 31 29 20 72 65 74 75 72 6e 20 69 3b 0d 0a   -1) return i;..
29d0: 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 74 75 72      }..    retur
29e0: 6e 20 6e 75 6c 6c 3b 0d 0a 7d 0d 0a 0d 0a 66 75  n null;..}....fu
29f0: 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 50 61 74  nction searchPat
2a00: 74 65 72 6e 55 70 28 64 6f 63 2c 20 70 61 74 74  ternUp(doc, patt
2a10: 65 72 6e 2c 20 73 74 61 72 74 52 6f 77 29 7b 0d  ern, startRow){.
2a20: 0a 2f 2f 64 65 62 75 67 67 65 72 3b 20 20 20 20  .//debugger;    
2a30: 0d 0a 20 20 20 20 76 61 72 20 71 20 3d 20 30 3b  ..    var q = 0;
2a40: 0d 0a 20 20 20 20 66 6f 72 20 28 76 61 72 20 69  ..    for (var i
2a50: 20 3d 20 73 74 61 72 74 52 6f 77 20 2d 20 31 3b   = startRow - 1;
2a60: 20 69 20 3e 3d 20 31 3b 20 69 2d 2d 29 7b 0d 0a   i >= 1; i--){..
2a70: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
2a80: 20 20 69 66 20 28 2b 2b 71 20 3e 20 31 30 30 30    if (++q > 1000
2a90: 30 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d  0) return null;.
2aa0: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20  .        ..     
2ab0: 20 20 20 76 61 72 20 73 74 72 20 3d 20 64 6f 63     var str = doc
2ac0: 2e 6c 69 6e 65 28 69 29 3b 0d 0a 20 20 20 20 20  .line(i);..     
2ad0: 20 20 20 76 61 72 20 6a 20 3d 20 73 74 72 2e 69     var j = str.i
2ae0: 6e 64 65 78 4f 66 28 70 61 74 74 65 72 6e 29 3b  ndexOf(pattern);
2af0: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 6a 20  ..        if (j 
2b00: 3e 20 2d 31 29 20 72 65 74 75 72 6e 20 69 3b 0d  > -1) return i;.
2b10: 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 74 75  .    }..    retu
2b20: 72 6e 20 6e 75 6c 6c 3b 0d 0a 7d 0d 0a 0d 0a 66  rn null;..}....f
2b30: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 d0 9a  unction macros..
2b40: d0 bb d0 be d0 bd d0 b8 d1 80 d0 be d0 b2 d0 b0  ................
2b50: d1 82 d1 8c d0 a2 d0 b5 d0 ba d1 81 d1 82 28 29  ..............()
2b60: 7b 0d 0a 20 20 20 20 76 61 72 20 77 20 3d 20 47  {..    var w = G
2b70: 65 74 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 2f  etTextWindow();/
2b80: 2f 73 6e 65 67 6f 70 61 74 2e 61 63 74 69 76 65  /snegopat.active
2b90: 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 0d 0a 20  TextWindow();.. 
2ba0: 20 20 20 69 66 20 28 21 77 20 7c 7c 20 77 69 6e     if (!w || win
2bb0: 64 6f 77 73 2e 6d 6f 64 61 6c 4d 6f 64 65 20 21  dows.modalMode !
2bc0: 3d 20 6d 73 4e 6f 6e 65 29 20 72 65 74 75 72 6e  = msNone) return
2bd0: 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 0d 0a 20   false;..    .. 
2be0: 20 20 20 76 61 72 20 73 65 6c 20 3d 20 77 2e 67     var sel = w.g
2bf0: 65 74 53 65 6c 65 63 74 69 6f 6e 28 29 3b 0d 0a  etSelection();..
2c00: 20 20 20 20 76 61 72 20 73 65 6c 54 65 78 74 20      var selText 
2c10: 3d 20 77 2e 73 65 6c 65 63 74 65 64 54 65 78 74  = w.selectedText
2c20: 28 29 3b 0d 0a 20 20 20 20 69 66 20 28 73 65 6c  ();..    if (sel
2c30: 54 65 78 74 20 21 3d 20 27 27 29 7b 20 20 20 20  Text != ''){    
2c40: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
2c50: 20 20 77 2e 53 65 74 53 65 6c 65 63 74 65 64 54    w.SetSelectedT
2c60: 65 78 74 28 73 65 6c 54 65 78 74 20 2b 20 22 5c  ext(selText + "\
2c70: 6e 22 20 2b 20 73 65 6c 54 65 78 74 29 3b 0d 0a  n" + selText);..
2c80: 20 20 20 20 7d 0d 0a 20 20 20 20 65 6c 73 65 7b      }..    else{
2c90: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0 95 d1  ..        // ...
2ca0: 81 d0 bb d0 b8 20 d0 bd d0 b8 d1 87 d0 b5 d0 b3  ..... ..........
2cb0: d0 be 20 d0 bd d0 b5 20 d0 b2 d1 8b d0 b4 d0 b5  .. .... ........
2cc0: d0 bb d0 b5 d0 bd d0 be 2c 20 d1 81 d0 ba d0 bb  ........, ......
2cd0: d0 be d0 bd d0 b8 d1 80 d1 83 d0 b5 d0 bc 20 d1  .............. .
2ce0: 82 d0 b5 d0 ba d1 83 d1 89 d1 83 d1 8e 20 d1 81  ............. ..
2cf0: d1 82 d1 80 d0 be d0 ba d1 83 0d 0a 20 20 20 20  ............    
2d00: 20 20 20 20 76 61 72 20 70 6f 73 20 3d 20 77 2e      var pos = w.
2d10: 67 65 74 43 61 72 65 74 50 6f 73 28 29 3b 0d 0a  getCaretPos();..
2d20: 20 20 20 20 20 20 20 20 77 2e 73 65 74 53 65 6c          w.setSel
2d30: 65 63 74 69 6f 6e 28 70 6f 73 2e 62 65 67 69 6e  ection(pos.begin
2d40: 52 6f 77 2c 20 31 2c 20 70 6f 73 2e 62 65 67 69  Row, 1, pos.begi
2d50: 6e 52 6f 77 2c 20 31 20 2b 20 77 2e 6c 69 6e 65  nRow, 1 + w.line
2d60: 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 29 2e 6c  (pos.beginRow).l
2d70: 65 6e 67 74 68 29 3b 0d 0a 20 20 20 20 20 20 20  ength);..       
2d80: 20 77 2e 53 65 74 53 65 6c 65 63 74 65 64 54 65   w.SetSelectedTe
2d90: 78 74 28 77 2e 73 65 6c 65 63 74 65 64 54 65 78  xt(w.selectedTex
2da0: 74 28 29 20 2b 20 22 5c 6e 22 20 2b 20 77 2e 73  t() + "\n" + w.s
2db0: 65 6c 65 63 74 65 64 54 65 78 74 28 29 29 3b 0d  electedText());.
2dc0: 0a 20 20 20 20 20 20 20 20 77 2e 73 65 74 43 61  .        w.setCa
2dd0: 72 65 74 50 6f 73 28 70 6f 73 2e 62 65 67 69 6e  retPos(pos.begin
2de0: 52 6f 77 2b 31 2c 20 70 6f 73 2e 62 65 67 69 6e  Row+1, pos.begin
2df0: 43 6f 6c 29 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20  Col);..    }..  
2e00: 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a    return true;..
2e10: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61  }....function ma
2e20: 63 72 6f 73 4f 6e 50 72 65 73 73 45 6e 74 65 72  crosOnPressEnter
2e30: 49 6e 43 6f 6d 6d 65 6e 74 28 29 7b 0d 0a 20 20  InComment(){..  
2e40: 20 20 76 61 72 20 77 20 3d 20 47 65 74 54 65 78    var w = GetTex
2e50: 74 57 69 6e 64 6f 77 28 29 3b 2f 2f 73 6e 65 67  tWindow();//sneg
2e60: 6f 70 61 74 2e 61 63 74 69 76 65 54 65 78 74 57  opat.activeTextW
2e70: 69 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20 69 66  indow();..    if
2e80: 20 28 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e   (!w || windows.
2e90: 6d 6f 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e  modalMode != msN
2ea0: 6f 6e 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73  one) return fals
2eb0: 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61  e;..    ..    va
2ec0: 72 20 70 6f 73 20 3d 20 77 2e 67 65 74 43 61 72  r pos = w.getCar
2ed0: 65 74 50 6f 73 28 29 3b 0d 0a 20 20 20 20 76 61  etPos();..    va
2ee0: 72 20 73 74 72 20 3d 20 77 2e 6c 69 6e 65 28 70  r str = w.line(p
2ef0: 6f 73 2e 62 65 67 69 6e 52 6f 77 29 3b 0d 0a 20  os.beginRow);.. 
2f00: 20 20 20 69 66 20 28 73 74 72 2e 6d 61 74 63 68     if (str.match
2f10: 28 2f 5e 5c 73 2a 5c 2f 5c 2f 5c 73 2a 5b 5e 5c  (/^\s*\/\/\s*[^\
2f20: 73 5d 2b 2f 69 67 29 29 20 7b 20 20 20 20 20 0d  s]+/ig)) {     .
2f30: 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0 95  ...        // ..
2f40: d1 81 d0 bb d0 b8 20 d0 ba d1 83 d1 80 d1 81 d0  ...... .........
2f50: be d1 80 20 d1 83 d1 81 d1 82 d0 b0 d0 bd d0 be  ... ............
2f60: d0 b2 d0 bb d0 b5 d0 bd 20 d0 bb d0 b5 d0 b2 d0  ........ .......
2f70: b5 d0 b5 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb  ... ............
2f80: d0 be d0 b2 20 d0 ba d0 be d0 bc d0 bc d0 b5 d0  .... ...........
2f90: bd d1 82 d0 b0 d1 80 d0 b8 d1 8f 2c 20 d1 82 d0  ..........., ...
2fa0: be 20 d0 bd d0 b5 20 d0 be d0 b1 d1 80 d0 b0 d0  . .... .........
2fb0: b1 d0 b0 d1 82 d1 8b d0 b2 d0 b0 d0 b5 d0 bc 20  ............... 
2fc0: d0 bd d0 b0 d0 b6 d0 b0 d1 82 d0 b8 d0 b5 2c 0d  ..............,.
2fd0: 0a 20 20 20 20 20 20 20 20 2f 2f 20 d1 87 d1 82  .        // ....
2fe0: d0 be d0 b1 d1 8b 20 d0 b4 d0 be d0 b1 d0 b0 d0  ...... .........
2ff0: b2 d0 bb d1 8f d0 bb d0 b0 d1 81 d1 8c 20 d0 bf  ............. ..
3000: d1 83 d1 81 d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1  .......... .....
3010: 80 d0 be d0 ba d0 b0 2c 20 d0 ba d0 b0 d0 ba 20  ......., ...... 
3020: d0 b8 20 d0 be d0 b6 d0 b8 d0 b4 d0 b0 d0 b5 d1  .. .............
3030: 82 d1 81 d1 8f 2e 0d 0a 20 20 20 20 20 20 20 20  ........        
3040: 69 66 20 28 70 6f 73 2e 62 65 67 69 6e 43 6f 6c  if (pos.beginCol
3050: 20 3c 3d 20 73 74 72 2e 73 65 61 72 63 68 28 27   <= str.search('
3060: 2f 2f 27 29 20 2b 20 31 29 0d 0a 20 20 20 20 20  //') + 1)..     
3070: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61         return fa
3080: 6c 73 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20  lse;....        
3090: 2f 2f 20 d0 ad d1 82 d0 be 20 d0 bd d0 b5 d0 bf  // ...... ......
30a0: d1 83 d1 81 d1 82 d0 be d0 b9 20 d0 ba d0 be d0  .......... .....
30b0: bc d0 bc d0 b5 d0 bd d1 82 d0 b0 d1 80 d0 b8 d0  ................
30c0: b9 20 2d 20 d0 b4 d0 be d0 b1 d0 b0 d0 b2 d0 bb  . - ............
30d0: d1 8f d0 b5 d0 bc 20 d0 ba d0 be d0 bc d0 bc d0  ...... .........
30e0: b5 d0 bd d1 82 d0 b0 d1 80 d0 b8 d0 b9 20 d0 bd  ............. ..
30f0: d0 b8 d0 b6 d0 b5 20 0d 0a 20 20 20 20 20 20 20  ...... ..       
3100: 20 2f 2f 20 d1 81 20 d0 be d1 82 d1 81 d1 82 d1   // .. .........
3110: 83 d0 bf d0 be d0 bc 20 d0 ba d0 b0 d0 ba 20 d0  ....... ...... .
3120: b2 20 d0 bf d1 80 d0 b5 d0 b4 d1 8b d0 b4 d1 83  . ..............
3130: d1 89 d0 b5 d0 b9 20 d1 81 d1 82 d1 80 d0 be d0  ...... .........
3140: ba d0 b5 2e 0d 0a 20 20 20 20 20 20 20 20 76 61  ......        va
3150: 72 20 6e 65 77 53 74 72 20 3d 20 67 65 74 43 6f  r newStr = getCo
3160: 6d 6d 65 6e 74 53 74 72 69 6e 67 48 65 61 64 65  mmentStringHeade
3170: 72 28 73 74 72 29 3b 0d 0a 0d 0a 20 20 20 20 20  r(str);....     
3180: 20 20 20 2f 2f 20 d0 95 d1 81 d0 bb d0 b8 20 d1     // ........ .
3190: 81 d0 bf d1 80 d0 b0 d0 b2 d0 b0 20 d0 be d1 82  ........... ....
31a0: 20 d0 ba d1 83 d1 80 d1 81 d0 be d1 80 d0 b0 20   .............. 
31b0: d0 b5 d1 81 d1 82 d1 8c 20 d1 82 d0 b5 d0 ba d1  ........ .......
31c0: 81 d1 82 2c 20 d0 bf d0 b5 d1 80 d0 b5 d0 bd d0  ..., ...........
31d0: b5 d1 81 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be 20 0d  ....... ...... .
31e0: 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0 bd d0 b0  .        // ....
31f0: 20 d0 bd d0 be d0 b2 d1 83 d1 8e 20 d1 81 d1 82   .......... ....
3200: d1 80 d0 be d0 ba d1 83 20 d0 ba d0 be d0 bc d0  ........ .......
3210: bc d0 b5 d0 bd d1 82 d0 b0 d1 80 d0 b8 d1 8f 2e  ................
3220: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 74  ..        if (st
3230: 72 2e 6c 65 6e 67 74 68 20 3e 3d 20 70 6f 73 2e  r.length >= pos.
3240: 65 6e 64 43 6f 6c 29 20 7b 0d 0a 20 20 20 20 20  endCol) {..     
3250: 20 20 20 20 20 20 20 76 61 72 20 74 61 69 6c 20         var tail 
3260: 3d 20 73 74 72 2e 73 75 62 73 74 72 28 70 6f 73  = str.substr(pos
3270: 2e 62 65 67 69 6e 43 6f 6c 20 2d 20 31 2c 20 73  .beginCol - 1, s
3280: 74 72 2e 6c 65 6e 67 74 68 20 2d 20 70 6f 73 2e  tr.length - pos.
3290: 62 65 67 69 6e 43 6f 6c 20 2b 20 31 29 3b 0d 0a  beginCol + 1);..
32a0: 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 52 65              w.Re
32b0: 70 6c 61 63 65 4c 69 6e 65 28 70 6f 73 2e 62 65  placeLine(pos.be
32c0: 67 69 6e 52 6f 77 2c 20 73 74 72 2e 73 75 62 73  ginRow, str.subs
32d0: 74 72 28 30 2c 20 70 6f 73 2e 62 65 67 69 6e 43  tr(0, pos.beginC
32e0: 6f 6c 20 2d 20 31 29 29 3b 20 20 20 20 2f 2f 20  ol - 1));    // 
32f0: d0 be d1 82 d1 80 d0 b5 d0 b7 d0 b0 d0 b5 d0 bc  ................
3300: 20 d1 85 d0 b2 d0 be d1 81 d1 82 20 d0 be d1 82   .......... ....
3310: 20 d1 82 d0 b5 d0 ba d1 83 d1 89 d0 b5 d0 b9 20   .............. 
3320: d1 81 d1 82 d1 80 d0 be d0 ba d0 b8 0d 0a 20 20  ..............  
3330: 20 20 20 20 20 20 20 20 20 20 6e 65 77 53 74 72            newStr
3340: 20 3d 20 6e 65 77 53 74 72 20 2b 20 74 61 69 6c   = newStr + tail
3350: 2e 72 65 70 6c 61 63 65 28 2f 5e 5c 73 2a 2f 69  .replace(/^\s*/i
3360: 67 2c 20 22 22 29 3b 0d 0a 20 20 20 20 20 20 20  g, "");..       
3370: 20 7d 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20   }..        var 
3380: 6e 65 77 43 61 72 65 74 52 6f 77 20 3d 20 31 20  newCaretRow = 1 
3390: 2b 20 70 6f 73 2e 62 65 67 69 6e 52 6f 77 3b 0d  + pos.beginRow;.
33a0: 0a 20 20 20 20 20 20 20 20 77 2e 49 6e 73 65 72  .        w.Inser
33b0: 74 4c 69 6e 65 28 6e 65 77 43 61 72 65 74 52 6f  tLine(newCaretRo
33c0: 77 2c 20 6e 65 77 53 74 72 29 3b 0d 0a 20 20 20  w, newStr);..   
33d0: 20 20 20 20 20 77 2e 73 65 74 43 61 72 65 74 50       w.setCaretP
33e0: 6f 73 28 6e 65 77 43 61 72 65 74 52 6f 77 2c 20  os(newCaretRow, 
33f0: 31 20 2b 20 6e 65 77 53 74 72 2e 6c 65 6e 67 74  1 + newStr.lengt
3400: 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 72 65 74  h);..        ret
3410: 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20 7d  urn true;..    }
3420: 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c  ..    return fal
3430: 73 65 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69  se;..}....functi
3440: 6f 6e 20 6d 61 63 72 6f 73 4f 6e 50 72 65 73 73  on macrosOnPress
3450: 44 65 6c 65 74 65 49 6e 43 6f 6d 6d 65 6e 74 28  DeleteInComment(
3460: 29 7b 0d 0a 20 20 20 20 76 61 72 20 77 20 3d 20  ){..    var w = 
3470: 47 65 74 54 65 78 74 57 69 6e 64 6f 77 28 29 3b  GetTextWindow();
3480: 2f 2f 73 6e 65 67 6f 70 61 74 2e 61 63 74 69 76  //snegopat.activ
3490: 65 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 0d 0a  eTextWindow();..
34a0: 20 20 20 20 69 66 20 28 21 77 20 7c 7c 20 77 69      if (!w || wi
34b0: 6e 64 6f 77 73 2e 6d 6f 64 61 6c 4d 6f 64 65 20  ndows.modalMode 
34c0: 21 3d 20 6d 73 4e 6f 6e 65 29 20 72 65 74 75 72  != msNone) retur
34d0: 6e 20 66 61 6c 73 65 3b 0d 0a 0d 0a 20 20 20 20  n false;....    
34e0: 69 66 20 28 77 2e 73 65 6c 65 63 74 65 64 54 65  if (w.selectedTe
34f0: 78 74 28 29 20 21 3d 20 22 22 29 7b 0d 0a 20 20  xt() != ""){..  
3500: 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c        return fal
3510: 73 65 3b 20 20 20 20 2f 2f 2f 20 54 4f 44 4f 3a  se;    /// TODO:
3520: 20 d0 be d0 b1 d1 80 d0 b0 d0 b1 d0 be d1 82 d0   ...............
3530: b0 d1 82 d1 8c 20 d1 8d d1 82 d0 be d1 82 20 d0  ..... ........ .
3540: b2 d0 b0 d1 80 d0 b8 d0 b0 d0 bd d1 82 2e 0d 0a  ................
3550: 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20      }..    ..   
3560: 20 76 61 72 20 70 6f 73 20 3d 20 77 2e 67 65 74   var pos = w.get
3570: 43 61 72 65 74 50 6f 73 28 29 3b 0d 0a 20 20 20  CaretPos();..   
3580: 20 0d 0a 20 20 20 20 69 66 20 28 70 6f 73 2e 62   ..    if (pos.b
3590: 65 67 69 6e 52 6f 77 20 3d 3d 20 77 2e 6c 69 6e  eginRow == w.lin
35a0: 65 73 43 6f 75 6e 74 29 20 72 65 74 75 72 6e 20  esCount) return 
35b0: 66 61 6c 73 65 3b 0d 0a 20 20 20 20 0d 0a 20 20  false;..    ..  
35c0: 20 20 76 61 72 20 73 74 72 20 3d 20 77 2e 6c 69    var str = w.li
35d0: 6e 65 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 29  ne(pos.beginRow)
35e0: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 69 66 20  ;..    ..    if 
35f0: 28 21 69 73 43 6f 6d 6d 65 6e 74 53 74 72 69 6e  (!isCommentStrin
3600: 67 28 73 74 72 29 29 20 72 65 74 75 72 6e 20 66  g(str)) return f
3610: 61 6c 73 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20  alse;..    ..   
3620: 20 69 66 20 28 70 6f 73 2e 65 6e 64 43 6f 6c 20   if (pos.endCol 
3630: 3e 20 73 74 72 2e 6c 65 6e 67 74 68 29 7b 0d 0a  > str.length){..
3640: 20 20 20 20 20 20 20 20 2f 2f 20 d0 9a d1 83 d1          // .....
3650: 80 d1 81 d0 be d1 80 20 d1 81 d1 82 d0 be d0 b8  ....... ........
3660: d1 82 20 d0 b2 20 d1 81 d0 b0 d0 bc d0 be d0 bc  .. .. ..........
3670: 20 d0 ba d0 be d0 bd d1 86 d0 b5 20 d1 81 d1 82   .......... ....
3680: d1 80 d0 be d0 ba d0 b8 20 d0 b8 20 d0 bf d1 80  ........ .. ....
3690: d0 b8 20 d0 bd d0 b0 d0 b6 d0 b0 d1 82 d0 b8 d0  .. .............
36a0: b8 20 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 44  . ..        // D
36b0: 65 6c 65 74 65 20 d1 81 d0 bb d0 b5 d0 b4 d1 83  elete ..........
36c0: d1 8e d1 89 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0  ........ .......
36d0: be d0 ba d0 b0 20 d0 b4 d0 be d0 bb d0 b6 d0 bd  ..... ..........
36e0: d0 b0 20 d0 bf d1 80 d0 b8 d0 ba d0 bb d0 b5 d0  .. .............
36f0: b8 d1 82 d1 8c d1 81 d1 8f 20 d0 b2 20 d0 ba d0  ......... .. ...
3700: be d0 bd d0 b5 d1 86 20 d1 82 d0 b5 d0 ba d1 83  ....... ........
3710: d1 89 d0 b5 d0 b9 2e 0d 0a 20 20 20 20 20 20 20  .........       
3720: 20 76 61 72 20 6e 65 77 54 61 69 6c 20 3d 20 77   var newTail = w
3730: 2e 6c 69 6e 65 28 31 20 2b 20 70 6f 73 2e 62 65  .line(1 + pos.be
3740: 67 69 6e 52 6f 77 29 3b 0d 0a 20 20 20 20 20 20  ginRow);..      
3750: 20 20 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28    ..        if (
3760: 21 69 73 43 6f 6d 6d 65 6e 74 53 74 72 69 6e 67  !isCommentString
3770: 28 6e 65 77 54 61 69 6c 29 29 20 72 65 74 75 72  (newTail)) retur
3780: 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20  n false;..      
3790: 20 20 0d 0a 20 20 20 20 20 20 20 20 6e 65 77 54    ..        newT
37a0: 61 69 6c 20 3d 20 6e 65 77 54 61 69 6c 2e 72 65  ail = newTail.re
37b0: 70 6c 61 63 65 28 2f 5e 5c 73 2a 5c 2f 5c 2f 2a  place(/^\s*\/\/*
37c0: 5c 2f 5c 73 2a 2f 69 67 2c 20 22 22 29 3b 20 0d  \/\s*/ig, ""); .
37d0: 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72  .        if (str
37e0: 2e 6d 61 74 63 68 28 2f 5b 5e 5c 73 5d 24 2f 69  .match(/[^\s]$/i
37f0: 67 29 29 20 6e 65 77 54 61 69 6c 20 3d 20 22 20  g)) newTail = " 
3800: 22 20 2b 20 6e 65 77 54 61 69 6c 3b 0d 0a 20 20  " + newTail;..  
3810: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
3820: 77 2e 52 65 70 6c 61 63 65 4c 69 6e 65 28 70 6f  w.ReplaceLine(po
3830: 73 2e 62 65 67 69 6e 52 6f 77 2c 20 73 74 72 20  s.beginRow, str 
3840: 2b 20 6e 65 77 54 61 69 6c 29 3b 0d 0a 20 20 20  + newTail);..   
3850: 20 20 20 20 20 77 2e 44 65 6c 65 74 65 4c 69 6e       w.DeleteLin
3860: 65 28 31 20 2b 20 70 6f 73 2e 62 65 67 69 6e 52  e(1 + pos.beginR
3870: 6f 77 29 3b 0d 0a 20 20 20 20 20 20 20 20 77 2e  ow);..        w.
3880: 73 65 74 43 61 72 65 74 50 6f 73 28 70 6f 73 2e  setCaretPos(pos.
3890: 62 65 67 69 6e 52 6f 77 2c 20 70 6f 73 2e 62 65  beginRow, pos.be
38a0: 67 69 6e 43 6f 6c 29 3b 0d 0a 20 20 20 20 20 20  ginCol);..      
38b0: 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a    return true;..
38c0: 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 74 75 72      }..    retur
38d0: 6e 20 66 61 6c 73 65 3b 0d 0a 7d 0d 0a 0d 0a 66  n false;..}....f
38e0: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 4f 6e  unction macrosOn
38f0: 50 72 65 73 73 42 61 63 6b 73 70 61 63 65 49 6e  PressBackspaceIn
3900: 43 6f 6d 6d 65 6e 74 28 29 7b 0d 0a 20 20 20 20  Comment(){..    
3910: 76 61 72 20 77 20 3d 20 47 65 74 54 65 78 74 57  var w = GetTextW
3920: 69 6e 64 6f 77 28 29 3b 2f 2f 73 6e 65 67 6f 70  indow();//snegop
3930: 61 74 2e 61 63 74 69 76 65 54 65 78 74 57 69 6e  at.activeTextWin
3940: 64 6f 77 28 29 3b 0d 0a 20 20 20 20 69 66 20 28  dow();..    if (
3950: 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d 6f  !w || windows.mo
3960: 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f 6e  dalMode != msNon
3970: 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b  e) return false;
3980: 0d 0a 0d 0a 20 20 20 20 69 66 20 28 77 2e 73 65  ....    if (w.se
3990: 6c 65 63 74 65 64 54 65 78 74 28 29 20 21 3d 20  lectedText() != 
39a0: 22 22 29 7b 0d 0a 20 20 20 20 20 20 20 20 72 65  ""){..        re
39b0: 74 75 72 6e 20 66 61 6c 73 65 3b 20 20 20 20 2f  turn false;    /
39c0: 2f 2f 20 54 4f 44 4f 3a 20 d0 be d0 b1 d1 80 d0  // TODO: .......
39d0: b0 d0 b1 d0 be d1 82 d0 b0 d1 82 d1 8c 20 d1 8d  ............. ..
39e0: d1 82 d0 be d1 82 20 d0 b2 d0 b0 d1 80 d0 b8 d0  ...... .........
39f0: b0 d0 bd d1 82 2e 0d 0a 20 20 20 20 7d 0d 0a 20  ........    }.. 
3a00: 20 20 20 0d 0a 20 20 20 20 76 61 72 20 70 6f 73     ..    var pos
3a10: 20 3d 20 77 2e 67 65 74 43 61 72 65 74 50 6f 73   = w.getCaretPos
3a20: 28 29 3b 0d 0a 20 20 20 20 69 66 20 28 70 6f 73  ();..    if (pos
3a30: 2e 62 65 67 69 6e 52 6f 77 20 3d 3d 20 31 29 20  .beginRow == 1) 
3a40: 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 20 20 20  return false;   
3a50: 20 2f 2f 20 d0 98 20 d1 82 d0 b0 d0 ba 20 d1 83   // .. ...... ..
3a60: d0 b6 d0 b5 20 d1 81 d1 82 d0 be d0 b8 d0 bc 20  .... .......... 
3a70: d0 b2 20 d0 bf d0 b5 d1 80 d0 b2 d0 be d0 b9 20  .. ............ 
3a80: d1 81 d1 82 d1 80 d0 be d0 ba d0 b5 2e 0d 0a 20  ............... 
3a90: 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 9e d0 b1     ..    // ....
3aa0: d1 80 d0 b0 d0 b1 d0 b0 d1 82 d1 8b d0 b2 d0 b0  ................
3ab0: d0 b5 d0 bc 20 d1 82 d0 be d0 bb d1 8c d0 ba d0  .... ...........
3ac0: be 20 d0 b5 d1 81 d0 bb d0 b8 20 d1 81 d1 82 d0  . ........ .....
3ad0: be d0 b8 d0 bc 20 20 d0 b2 20 d1 81 d0 b0 d0 bc  .....  .. ......
3ae0: d0 be d0 bc 20 d0 bd d0 b0 d1 87 d0 b0 d0 bb d0  .... ...........
3af0: b5 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8 20 d0  . ............ .
3b00: b8 20 0d 0a 20 20 20 20 2f 2f 20 d0 b5 d1 81 d0  . ..    // .....
3b10: bb d0 b8 20 d1 8d d1 82 d0 b0 20 d0 b8 20 d0 bf  ... ...... .. ..
3b20: d1 80 d0 b5 d0 b4 d1 8b d0 b4 d1 83 d1 89 d0 b0  ................
3b30: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8 20  .. ............ 
3b40: d1 8f d0 b2 d0 bb d1 8f d1 8e d1 82 d1 81 d1 8f  ................
3b50: 20 d0 ba d0 be d0 bc d0 bc d0 b5 d0 bd d1 82 d0   ...............
3b60: b0 d1 80 d0 b8 d1 8f d0 bc d0 b8 2e 0d 0a 20 20  ..............  
3b70: 20 20 69 66 20 28 70 6f 73 2e 62 65 67 69 6e 43    if (pos.beginC
3b80: 6f 6c 20 3e 20 31 29 20 72 65 74 75 72 6e 20 66  ol > 1) return f
3b90: 61 6c 73 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20  alse;..    ..   
3ba0: 20 76 61 72 20 73 74 72 20 3d 20 77 2e 6c 69 6e   var str = w.lin
3bb0: 65 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 29 3b  e(pos.beginRow);
3bc0: 0d 0a 20 20 20 20 69 66 20 28 21 69 73 43 6f 6d  ..    if (!isCom
3bd0: 6d 65 6e 74 53 74 72 69 6e 67 28 73 74 72 29 29  mentString(str))
3be0: 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a   return false;..
3bf0: 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 70 72      ..    var pr
3c00: 65 76 53 74 72 20 3d 20 77 2e 6c 69 6e 65 28 70  evStr = w.line(p
3c10: 6f 73 2e 62 65 67 69 6e 52 6f 77 20 2d 20 31 29  os.beginRow - 1)
3c20: 3b 0d 0a 20 20 20 20 69 66 20 28 21 69 73 43 6f  ;..    if (!isCo
3c30: 6d 6d 65 6e 74 53 74 72 69 6e 67 28 70 72 65 76  mmentString(prev
3c40: 53 74 72 29 29 20 72 65 74 75 72 6e 20 66 61 6c  Str)) return fal
3c50: 73 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f  se;..    ..    /
3c60: 2f 20 d0 9a d1 83 d1 80 d1 81 d0 be d1 80 20 d1  / ............ .
3c70: 81 d1 82 d0 be d0 b8 d1 82 20 d0 b2 20 d1 81 d0  ......... .. ...
3c80: b0 d0 bc d0 be d0 bc 20 d0 bd d0 b0 d1 87 d0 b0  ....... ........
3c90: d0 bb d0 b5 20 d1 81 d1 82 d1 80 d0 be d0 ba d0  .... ...........
3ca0: b8 20 d0 b8 20 d0 bf d1 80 d0 b8 20 d0 bd d0 b0  . .. ...... ....
3cb0: d0 b6 d0 b0 d1 82 d0 b8 d0 b8 20 0d 0a 20 20 20  .......... ..   
3cc0: 20 2f 2f 20 42 61 63 6b 73 70 61 63 65 20 d1 82   // Backspace ..
3cd0: d0 b5 d0 ba d1 83 d1 89 d0 b0 d1 8f 20 d1 81 d1  ............ ...
3ce0: 82 d1 80 d0 be d0 ba d0 b0 20 d0 b4 d0 be d0 bb  ......... ......
3cf0: d0 b6 d0 bd d0 b0 20 d0 bf d1 80 d0 b8 d0 ba d0  ...... .........
3d00: bb d0 b5 d0 b8 d1 82 d1 8c d1 81 d1 8f 20 d0 b2  ............. ..
3d10: 20 d0 ba d0 be d0 bd d0 b5 d1 86 20 d0 bf d1 80   .......... ....
3d20: d0 b5 d0 b4 d1 8b d0 b4 d1 83 d1 89 d0 b5 d0 b9  ................
3d30: 2e 0d 0a 20 20 20 20 76 61 72 20 6e 65 77 54 61  ...    var newTa
3d40: 69 6c 20 3d 20 73 74 72 2e 72 65 70 6c 61 63 65  il = str.replace
3d50: 28 2f 5e 5c 73 2a 5c 2f 5c 2f 2a 5c 2f 5c 73 2a  (/^\s*\/\/*\/\s*
3d60: 2f 69 67 2c 20 22 22 29 3b 20 0d 0a 20 20 20 20  /ig, ""); ..    
3d70: 69 66 20 28 70 72 65 76 53 74 72 2e 6d 61 74 63  if (prevStr.matc
3d80: 68 28 2f 5b 5e 5c 73 5d 24 2f 69 67 29 29 20 6e  h(/[^\s]$/ig)) n
3d90: 65 77 54 61 69 6c 20 3d 20 22 20 22 20 2b 20 6e  ewTail = " " + n
3da0: 65 77 54 61 69 6c 3b 0d 0a 20 20 20 20 0d 0a 20  ewTail;..    .. 
3db0: 20 20 20 77 2e 73 65 74 53 65 6c 65 63 74 69 6f     w.setSelectio
3dc0: 6e 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 20 2d  n(pos.beginRow -
3dd0: 20 31 2c 20 31 2c 20 70 6f 73 2e 62 65 67 69 6e   1, 1, pos.begin
3de0: 52 6f 77 2c 20 0d 0a 20 20 20 20 20 20 20 20 77  Row, ..        w
3df0: 2e 6c 69 6e 65 28 70 6f 73 2e 62 65 67 69 6e 52  .line(pos.beginR
3e00: 6f 77 29 2e 6c 65 6e 67 74 68 20 2b 20 31 29 3b  ow).length + 1);
3e10: 0d 0a 20 20 20 20 77 2e 53 65 74 53 65 6c 65 63  ..    w.SetSelec
3e20: 74 65 64 54 65 78 74 28 70 72 65 76 53 74 72 20  tedText(prevStr 
3e30: 2b 20 6e 65 77 54 61 69 6c 29 3b 0d 0a 20 20 20  + newTail);..   
3e40: 20 0d 0a 20 20 20 20 77 2e 73 65 74 43 61 72 65   ..    w.setCare
3e50: 74 50 6f 73 28 70 6f 73 2e 62 65 67 69 6e 52 6f  tPos(pos.beginRo
3e60: 77 20 2d 20 31 2c 20 31 20 2b 20 70 72 65 76 53  w - 1, 1 + prevS
3e70: 74 72 2e 6c 65 6e 67 74 68 29 3b 0d 0a 20 20 20  tr.length);..   
3e80: 20 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 74 72   ..    return tr
3e90: 75 65 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69  ue;..}....functi
3ea0: 6f 6e 20 69 73 43 6f 6d 6d 65 6e 74 53 74 72 69  on isCommentStri
3eb0: 6e 67 28 73 74 72 29 7b 0d 0a 20 20 20 20 72 65  ng(str){..    re
3ec0: 74 75 72 6e 20 6e 75 6c 6c 20 21 3d 20 73 74 72  turn null != str
3ed0: 2e 6d 61 74 63 68 28 2f 5e 5c 73 2a 5c 2f 5c 2f  .match(/^\s*\/\/
3ee0: 2f 69 67 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63  /ig);..}....func
3ef0: 74 69 6f 6e 20 67 65 74 54 65 78 74 42 6c 6f 63  tion getTextBloc
3f00: 6b 4f 66 66 73 65 74 28 73 74 72 29 7b 0d 0a 20  kOffset(str){.. 
3f10: 20 20 20 76 61 72 20 6d 61 74 63 68 20 3d 20 73     var match = s
3f20: 74 72 2e 6d 61 74 63 68 28 2f 5e 28 5b 5c 73 5d  tr.match(/^([\s]
3f30: 2b 29 2f 69 67 29 3b 0d 0a 20 20 20 20 76 61 72  +)/ig);..    var
3f40: 20 72 65 73 20 3d 20 21 6d 61 74 63 68 20 3f 20   res = !match ? 
3f50: 22 22 20 3a 20 6d 61 74 63 68 5b 30 5d 3b 0d 0a  "" : match[0];..
3f60: 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 3b 0d      return res;.
3f70: 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 67  .}....function g
3f80: 65 74 43 6f 6d 6d 65 6e 74 53 74 72 69 6e 67 48  etCommentStringH
3f90: 65 61 64 65 72 28 73 74 72 29 7b 0d 0a 20 20 20  eader(str){..   
3fa0: 20 76 61 72 20 6d 61 74 63 68 20 3d 20 73 74 72   var match = str
3fb0: 2e 6d 61 74 63 68 28 2f 5e 28 5b 5c 73 5d 2a 5c  .match(/^([\s]*\
3fc0: 2f 5c 2f 2a 5c 2f 5b 5c 73 5d 3f 29 2a 2f 69 67  /\/*\/[\s]?)*/ig
3fd0: 29 3b 0d 0a 20 20 20 20 76 61 72 20 72 65 73 20  );..    var res 
3fe0: 3d 20 21 6d 61 74 63 68 20 3f 20 22 22 20 3a 20  = !match ? "" : 
3ff0: 6d 61 74 63 68 5b 30 5d 3b 0d 0a 20 20 20 20 72  match[0];..    r
4000: 65 74 75 72 6e 20 72 65 73 3b 0d 0a 7d 0d 0a 0d  eturn res;..}...
4010: 0a 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73  .function proces
4020: 73 53 65 6c 65 63 74 65 64 54 65 78 74 28 73 65  sSelectedText(se
4030: 6c 54 65 78 74 48 61 6e 64 6c 65 72 2c 20 64 6f  lTextHandler, do
4040: 4e 6f 74 52 65 73 74 6f 72 65 53 65 6c 65 63 74  NotRestoreSelect
4050: 69 6f 6e 29 20 7b 0d 0a 20 20 20 20 0d 0a 20 20  ion) {..    ..  
4060: 20 20 76 61 72 20 77 20 3d 20 47 65 74 54 65 78    var w = GetTex
4070: 74 57 69 6e 64 6f 77 28 29 3b 20 0d 0a 20 20 20  tWindow(); ..   
4080: 20 69 66 20 28 21 77 20 7c 7c 20 77 69 6e 64 6f   if (!w || windo
4090: 77 73 2e 6d 6f 64 61 6c 4d 6f 64 65 20 21 3d 20  ws.modalMode != 
40a0: 6d 73 4e 6f 6e 65 29 20 72 65 74 75 72 6e 20 66  msNone) return f
40b0: 61 6c 73 65 3b 20 20 20 20 0d 0a 20 20 20 20 0d  alse;    ..    .
40c0: 0a 20 20 20 20 76 61 72 20 73 65 6c 20 3d 20 77  .    var sel = w
40d0: 2e 47 65 74 53 65 6c 65 63 74 69 6f 6e 28 29 3b  .GetSelection();
40e0: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20              ..  
40f0: 20 20 76 61 72 20 73 65 6c 54 65 78 74 20 3d 20    var selText = 
4100: 77 2e 47 65 74 53 65 6c 65 63 74 65 64 54 65 78  w.GetSelectedTex
4110: 74 28 29 3b 0d 0a 20 20 20 20 69 66 20 28 73 65  t();..    if (se
4120: 6c 54 65 78 74 2e 6c 65 6e 67 74 68 3d 3d 30 29  lText.length==0)
4130: 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72  {..        retur
4140: 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 7d 0d  n false;..    }.
4150: 0a 20 20 20 20 0d 0a 20 20 20 20 74 72 79 20 0d  .    ..    try .
4160: 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20  .    {..        
4170: 73 65 6c 54 65 78 74 20 3d 20 73 65 6c 54 65 78  selText = selTex
4180: 74 48 61 6e 64 6c 65 72 2e 63 61 6c 6c 28 6e 75  tHandler.call(nu
4190: 6c 6c 2c 20 73 65 6c 54 65 78 74 29 3b 0d 0a 20  ll, selText);.. 
41a0: 20 20 20 7d 0d 0a 20 20 20 20 63 61 74 63 68 20     }..    catch 
41b0: 28 65 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20  (e)..    {..    
41c0: 20 20 20 4d 65 73 73 61 67 65 28 65 2e 64 65 73     Message(e.des
41d0: 63 72 69 70 74 69 6f 6e 29 3b 0d 0a 20 20 20 20  cription);..    
41e0: 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b     return false;
41f0: 0d 0a 20 20 20 20 7d 20 20 20 20 20 20 20 20 0d  ..    }        .
4200: 0a 20 20 20 20 0d 0a 20 20 20 20 77 2e 53 65 74  .    ..    w.Set
4210: 53 65 6c 65 63 74 65 64 54 65 78 74 28 73 65 6c  SelectedText(sel
4220: 54 65 78 74 29 3b 0d 0a 20 20 20 20 0d 0a 20 20  Text);..    ..  
4230: 20 20 2f 2f 20 d0 92 d0 be d1 81 d1 81 d1 82 d0    // ...........
4240: b0 d0 bd d0 be d0 b2 d0 b8 d0 bc 20 d0 b8 d1 81  ........... ....
4250: d1 85 d0 be d0 b4 d0 bd d0 be d0 b5 20 d0 b2 d1  ............ ...
4260: 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5 2e  ................
4270: 0d 0a 20 20 20 20 69 66 20 28 21 64 6f 4e 6f 74  ..    if (!doNot
4280: 52 65 73 74 6f 72 65 53 65 6c 65 63 74 69 6f 6e  RestoreSelection
4290: 29 0d 0a 20 20 20 20 20 20 20 20 77 2e 53 65 74  )..        w.Set
42a0: 53 65 6c 65 63 74 69 6f 6e 28 73 65 6c 2e 62 65  Selection(sel.be
42b0: 67 69 6e 52 6f 77 2c 20 73 65 6c 2e 62 65 67 69  ginRow, sel.begi
42c0: 6e 43 6f 6c 2c 20 73 65 6c 2e 65 6e 64 52 6f 77  nCol, sel.endRow
42d0: 2c 20 73 65 6c 2e 65 6e 64 43 6f 6c 29 3b 0d 0a  , sel.endCol);..
42e0: 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b      return true;
42f0: 0d 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63 72 69 70  ..}....SelfScrip
4300: 74 2e 53 65 6c 66 5b 27 6d 61 63 72 6f 73 d0 a3  t.Self['macros..
4310: d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0 b8 d1 82  ................
4320: d1 8c 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb 20  .. ............ 
4330: 7c 20 d0 b2 20 d1 81 d1 82 d1 80 d0 be d0 ba d0  | .. ...........
4340: b5 2f d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd  ./..............
4350: d0 b8 d0 b8 27 5d 20 3d 20 66 75 6e 63 74 69 6f  ....'] = functio
4360: 6e 28 29 20 7b 0d 0a 20 20 20 0d 0a 20 20 20 20  n() {..   ..    
4370: 76 61 72 20 77 20 3d 20 47 65 74 54 65 78 74 57  var w = GetTextW
4380: 69 6e 64 6f 77 28 29 3b 20 2f 2f d0 9f d0 be d0  indow(); //.....
4390: bb d1 83 d1 87 d0 b8 d0 bc 20 d0 b0 d0 ba d1 82  ......... ......
43a0: d0 b8 d0 b2 d0 bd d0 be d0 b5 20 d1 82 d0 b5 d0  .......... .....
43b0: ba d1 81 d1 82 d0 be d0 b2 d0 be d0 b5 20 d0 be  ............. ..
43c0: d0 ba d0 bd d0 be 0d 0a 20 20 20 20 69 66 20 28  ........    if (
43d0: 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d 6f  !w || windows.mo
43e0: 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f 6e  dalMode != msNon
43f0: 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b  e) return false;
4400: 20 20 20 0d 0a 20 20 20 0d 0a 20 20 20 20 2f 2f     ..   ..    //
4410: 20 d0 9f d1 80 d0 be d0 b2 d0 b5 d1 80 d0 b5 d0   ...............
4420: bc 20 d0 b5 d1 81 d1 82 d1 8c 20 d0 bb d0 b8 20  . ........ .... 
4430: d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd  ................
4440: d1 8b d0 b9 20 d1 82 d0 b5 d0 ba d1 81 2c 20 d0  .... ........, .
4450: b5 d1 81 d0 bb d0 b8 20 d0 bd d0 b5 d1 82 2c 20  ....... ......, 
4460: d1 82 d0 be 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0  .... ...........
4470: b8 d0 bc 20 d1 82 d0 b5 d0 ba d1 83 d1 89 d1 83  ... ............
4480: d1 8e 20 d1 81 d1 82 d1 80 d0 be d0 ba d1 83 20  .. ............ 
4490: 2c 20 d0 b2 20 d1 80 d0 b5 d0 b7 d1 83 d0 bb d1  , .. ...........
44a0: 8c d1 82 d0 b0 d1 82 d0 b5 20 d0 be d0 b1 d1 80  ......... ......
44b0: d0 b0 d0 b1 d0 be d1 82 d0 b0 d0 b5 d0 bc 20 d0  .............. .
44c0: b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd d1  ................
44d0: 8b d0 b9 20 d1 82 d0 b5 d0 ba d1 81 d1 82 20 d0  ... .......... .
44e0: b8 20 d0 b2 d0 b5 d1 80 d0 bd d0 b5 d0 bc 20 d0  . ............ .
44f0: bd d0 b0 20 d0 bc d0 b5 d1 81 d1 82 d0 be 2e 0d  ... ............
4500: 0a 20 20 20 20 76 61 72 20 73 65 6c 54 65 78 74  .    var selText
4510: 20 3d 20 77 2e 47 65 74 53 65 6c 65 63 74 65 64   = w.GetSelected
4520: 54 65 78 74 28 29 3b 0d 0a 20 20 20 20 69 66 20  Text();..    if 
4530: 28 73 65 6c 54 65 78 74 2e 6c 65 6e 67 74 68 3d  (selText.length=
4540: 3d 30 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 76  =0) {..        v
4550: 61 72 20 70 6f 73 20 3d 20 77 2e 67 65 74 43 61  ar pos = w.getCa
4560: 72 65 74 50 6f 73 28 29 3b 0d 0a 20 20 20 20 20  retPos();..     
4570: 20 20 20 77 2e 73 65 74 53 65 6c 65 63 74 69 6f     w.setSelectio
4580: 6e 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 2c 20  n(pos.beginRow, 
4590: 31 2c 20 70 6f 73 2e 62 65 67 69 6e 52 6f 77 2c  1, pos.beginRow,
45a0: 20 31 20 2b 20 77 2e 6c 69 6e 65 28 70 6f 73 2e   1 + w.line(pos.
45b0: 62 65 67 69 6e 52 6f 77 29 2e 6c 65 6e 67 74 68  beginRow).length
45c0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20  );..        var 
45d0: 74 65 78 74 20 3d 20 77 2e 47 65 74 53 65 6c 65  text = w.GetSele
45e0: 63 74 65 64 54 65 78 74 28 29 3b 0d 0a 20 20 20  ctedText();..   
45f0: 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20   } else {..     
4600: 20 20 20 76 61 72 20 74 65 78 74 20 3d 20 73 65     var text = se
4610: 6c 54 65 78 74 3b 0d 0a 20 20 20 20 7d 0d 0a 20  lText;..    }.. 
4620: 20 20 20 77 2e 53 65 74 53 65 6c 65 63 74 65 64     w.SetSelected
4630: 54 65 78 74 28 73 65 74 53 79 6d 62 6f 6c 49 6e  Text(setSymbolIn
4640: 42 65 67 69 6e 6e 4c 69 6e 65 28 74 65 78 74 2c  BeginnLine(text,
4650: 20 22 7c 20 22 29 29 3b 0d 0a 20 20 20 20 72 65   "| "));..    re
4660: 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d  turn true;..}...
4670: 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 79 6d  .function setSym
4680: 62 6f 6c 49 6e 42 65 67 69 6e 6e 4c 69 6e 65 28  bolInBeginnLine(
4690: 74 65 78 74 2c 20 73 79 6d 62 6f 6c 29 7b 0d 0a  text, symbol){..
46a0: 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 20 3d      var result =
46b0: 20 22 22 3b 0d 0a 20 20 20 20 76 61 72 20 4c 69   "";..    var Li
46c0: 6e 65 73 20 3d 20 74 65 78 74 2e 73 70 6c 69 74  nes = text.split
46d0: 28 27 5c 6e 27 29 3b 0d 0a 20 20 20 20 69 66 20  ('\n');..    if 
46e0: 28 4c 69 6e 65 73 2e 6c 65 6e 67 74 68 20 3d 3d  (Lines.length ==
46f0: 20 30 20 26 26 20 73 74 72 2e 69 6e 64 65 78 4f   0 && str.indexO
4700: 66 28 73 79 6d 62 6f 6c 29 20 3d 3d 20 2d 31 29  f(symbol) == -1)
4710: 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c  {..        resul
4720: 74 20 3d 20 72 65 73 75 6c 74 2b 74 65 78 74 2e  t = result+text.
4730: 72 65 70 6c 61 63 65 28 2f 5e 5c 73 2a 2f 2c 20  replace(/^\s*/, 
4740: 22 24 26 22 2b 22 22 2b 73 79 6d 62 6f 6c 2b 22  "$&"+""+symbol+"
4750: 22 29 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20  ");..    }..    
4760: 66 6f 72 20 28 76 61 72 20 69 3d 30 3b 20 69 3c  for (var i=0; i<
4770: 4c 69 6e 65 73 2e 6c 65 6e 67 74 68 3b 20 69 2b  Lines.length; i+
4780: 2b 29 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72  +){..        var
4790: 20 73 74 72 20 3d 20 4c 69 6e 65 73 5b 69 5d 3b   str = Lines[i];
47a0: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 74  ..        if (st
47b0: 72 2e 69 6e 64 65 78 4f 66 28 73 79 6d 62 6f 6c  r.indexOf(symbol
47c0: 29 20 3d 3d 20 2d 31 29 0d 0a 20 20 20 20 20 20  ) == -1)..      
47d0: 20 20 20 20 20 20 73 74 72 20 3d 20 73 74 72 2e        str = str.
47e0: 72 65 70 6c 61 63 65 28 2f 5e 5c 73 2a 2f 2c 20  replace(/^\s*/, 
47f0: 22 24 26 22 2b 22 22 2b 73 79 6d 62 6f 6c 2b 22  "$&"+""+symbol+"
4800: 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ");..           
4810: 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74  ..        result
4820: 20 3d 20 72 65 73 75 6c 74 2b 73 74 72 2b 28 28   = result+str+((
4830: 28 4c 69 6e 65 73 2e 6c 65 6e 67 74 68 2d 31 29  (Lines.length-1)
4840: 3d 3d 69 29 3f 22 22 3a 22 5c 6e 22 29 3b 0d 0a  ==i)?"":"\n");..
4850: 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 74 75 72      }..    retur
4860: 6e 20 72 65 73 75 6c 74 0d 0a 7d 0d 0a 0d 0a 66  n result..}....f
4870: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 4f 6e  unction macrosOn
4880: 50 72 65 73 73 42 61 63 6b 73 70 61 63 65 49 6e  PressBackspaceIn
4890: 42 72 61 63 6b 65 74 28 29 7b 0d 0a 20 20 20 20  Bracket(){..    
48a0: 76 61 72 20 77 20 3d 20 47 65 74 54 65 78 74 57  var w = GetTextW
48b0: 69 6e 64 6f 77 28 29 3b 2f 2f 73 6e 65 67 6f 70  indow();//snegop
48c0: 61 74 2e 61 63 74 69 76 65 54 65 78 74 57 69 6e  at.activeTextWin
48d0: 64 6f 77 28 29 3b 0d 0a 20 20 20 20 69 66 20 28  dow();..    if (
48e0: 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d 6f  !w || windows.mo
48f0: 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f 6e  dalMode != msNon
4900: 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b  e) return false;
4910: 0d 0a 0d 0a 20 20 20 20 69 66 20 28 77 2e 73 65  ....    if (w.se
4920: 6c 65 63 74 65 64 54 65 78 74 28 29 20 21 3d 20  lectedText() != 
4930: 22 22 29 7b 0d 0a 20 20 20 20 20 20 20 20 72 65  ""){..        re
4940: 74 75 72 6e 20 66 61 6c 73 65 3b 20 20 20 20 2f  turn false;    /
4950: 2f 2f 20 54 4f 44 4f 3a 20 d0 be d0 b1 d1 80 d0  // TODO: .......
4960: b0 d0 b1 d0 be d1 82 d0 b0 d1 82 d1 8c 20 d1 8d  ............. ..
4970: d1 82 d0 be d1 82 20 d0 b2 d0 b0 d1 80 d0 b8 d0  ...... .........
4980: b0 d0 bd d1 82 2e 0d 0a 20 20 20 20 7d 0d 0a 20  ........    }.. 
4990: 20 20 20 0d 0a 20 20 20 20 76 61 72 20 70 6f 73     ..    var pos
49a0: 20 3d 20 77 2e 67 65 74 43 61 72 65 74 50 6f 73   = w.getCaretPos
49b0: 28 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76  ();..    ..    v
49c0: 61 72 20 62 65 67 69 6e 52 6f 77 20 3d 20 70 6f  ar beginRow = po
49d0: 73 2e 62 65 67 69 6e 52 6f 77 3b 0d 0a 20 20 20  s.beginRow;..   
49e0: 20 76 61 72 20 77 6f 72 64 42 65 67 50 6f 73 20   var wordBegPos 
49f0: 3d 20 70 6f 73 2e 62 65 67 69 6e 43 6f 6c 20 2d  = pos.beginCol -
4a00: 20 31 3b 0d 0a 20 20 20 20 76 61 72 20 6c 69 6e   1;..    var lin
4a10: 65 20 3d 20 77 2e 47 65 74 4c 69 6e 65 28 70 6f  e = w.GetLine(po
4a20: 73 2e 62 65 67 69 6e 52 6f 77 29 3b 0d 0a 20 20  s.beginRow);..  
4a30: 20 20 76 61 72 20 63 75 72 43 68 61 72 20 3d 20    var curChar = 
4a40: 6c 69 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64  line.charAt(word
4a50: 42 65 67 50 6f 73 29 3b 0d 0a 20 20 20 20 69 66  BegPos);..    if
4a60: 20 28 77 6f 72 64 42 65 67 50 6f 73 3e 30 29 20   (wordBegPos>0) 
4a70: 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 77  {..        var w
4a80: 6f 72 64 42 61 63 6b 73 70 20 3d 20 77 6f 72 64  ordBacksp = word
4a90: 42 65 67 50 6f 73 2d 31 3b 0d 0a 20 20 20 20 20  BegPos-1;..     
4aa0: 20 20 20 69 66 20 28 63 75 72 43 68 61 72 3d 3d     if (curChar==
4ab0: 22 29 22 20 26 26 20 6c 69 6e 65 2e 63 68 61 72  ")" && line.char
4ac0: 41 74 28 77 6f 72 64 42 61 63 6b 73 70 29 3d 3d  At(wordBacksp)==
4ad0: 22 28 22 29 20 7b 0d 0a 20 20 20 20 20 20 20 20  "(") {..        
4ae0: 20 20 20 20 2f 2f 64 65 62 75 67 67 65 72 3b 0d      //debugger;.
4af0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 53  .            w.S
4b00: 65 74 53 65 6c 65 63 74 69 6f 6e 28 70 6f 73 2e  etSelection(pos.
4b10: 62 65 67 69 6e 52 6f 77 2c 20 77 6f 72 64 42 61  beginRow, wordBa
4b20: 63 6b 73 70 2b 31 2c 20 70 6f 73 2e 62 65 67 69  cksp+1, pos.begi
4b30: 6e 52 6f 77 2c 20 77 6f 72 64 42 65 67 50 6f 73  nRow, wordBegPos
4b40: 2b 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  +2);..          
4b50: 20 20 77 2e 53 65 74 53 65 6c 65 63 74 65 64 54    w.SetSelectedT
4b60: 65 78 74 28 22 22 29 3b 0d 0a 20 20 20 20 20 20  ext("");..      
4b70: 20 20 20 20 20 20 77 2e 73 65 74 43 61 72 65 74        w.setCaret
4b80: 50 6f 73 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77  Pos(pos.beginRow
4b90: 2c 20 28 6c 69 6e 65 2e 63 68 61 72 41 74 28 77  , (line.charAt(w
4ba0: 6f 72 64 42 65 67 50 6f 73 2b 31 29 3d 3d 22 3b  ordBegPos+1)==";
4bb0: 22 29 3f 77 6f 72 64 42 65 67 50 6f 73 2b 31 3a  ")?wordBegPos+1:
4bc0: 77 6f 72 64 42 61 63 6b 73 70 2b 31 29 3b 0d 0a  wordBacksp+1);..
4bd0: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75              retu
4be0: 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20  rn true;..      
4bf0: 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20    } else {..    
4c00: 20 20 20 20 20 20 20 20 69 66 20 28 77 6f 72 64          if (word
4c10: 42 61 63 6b 73 70 3e 30 20 0d 0a 20 20 20 20 20  Backsp>0 ..     
4c20: 20 20 20 20 20 20 20 20 20 20 20 26 26 20 6c 69             && li
4c30: 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64 42 61  ne.charAt(wordBa
4c40: 63 6b 73 70 29 3d 3d 22 29 22 20 0d 0a 20 20 20  cksp)==")" ..   
4c50: 20 20 20 20 20 20 20 20 20 20 20 20 20 26 26 20               && 
4c60: 6c 69 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64  line.charAt(word
4c70: 42 61 63 6b 73 70 2d 31 29 3d 3d 22 28 22 29 7b  Backsp-1)=="("){
4c80: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
4c90: 20 20 77 2e 53 65 74 53 65 6c 65 63 74 69 6f 6e    w.SetSelection
4ca0: 28 70 6f 73 2e 62 65 67 69 6e 52 6f 77 2c 20 77  (pos.beginRow, w
4cb0: 6f 72 64 42 61 63 6b 73 70 2c 20 70 6f 73 2e 62  ordBacksp, pos.b
4cc0: 65 67 69 6e 52 6f 77 2c 20 77 6f 72 64 42 65 67  eginRow, wordBeg
4cd0: 50 6f 73 2b 31 29 3b 0d 0a 20 20 20 20 20 20 20  Pos+1);..       
4ce0: 20 20 20 20 20 20 20 20 20 77 2e 53 65 74 53 65           w.SetSe
4cf0: 6c 65 63 74 65 64 54 65 78 74 28 22 22 29 3b 0d  lectedText("");.
4d00: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
4d10: 20 77 2e 73 65 74 43 61 72 65 74 50 6f 73 28 70   w.setCaretPos(p
4d20: 6f 73 2e 62 65 67 69 6e 52 6f 77 2c 20 28 6c 69  os.beginRow, (li
4d30: 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64 42 61  ne.charAt(wordBa
4d40: 63 6b 73 70 2b 31 29 3d 3d 22 3b 22 29 3f 77 6f  cksp+1)==";")?wo
4d50: 72 64 42 61 63 6b 73 70 2b 31 3a 77 6f 72 64 42  rdBacksp+1:wordB
4d60: 61 63 6b 73 70 29 3b 0d 0a 20 20 20 20 20 20 20  acksp);..       
4d70: 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20           return 
4d80: 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20  true;..         
4d90: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d     }..        }.
4da0: 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 72 65  .    }....    re
4db0: 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20  turn false;..   
4dc0: 20 0d 0a 7d 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d   ..}..function m
4dd0: 61 63 72 6f 73 4f 6e 50 72 65 73 73 44 65 6c 49  acrosOnPressDelI
4de0: 6e 42 72 61 63 6b 65 74 28 29 7b 0d 0a 20 20 20  nBracket(){..   
4df0: 20 76 61 72 20 77 20 3d 20 47 65 74 54 65 78 74   var w = GetText
4e00: 57 69 6e 64 6f 77 28 29 3b 2f 2f 73 6e 65 67 6f  Window();//snego
4e10: 70 61 74 2e 61 63 74 69 76 65 54 65 78 74 57 69  pat.activeTextWi
4e20: 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20 69 66 20  ndow();..    if 
4e30: 28 21 77 20 7c 7c 20 77 69 6e 64 6f 77 73 2e 6d  (!w || windows.m
4e40: 6f 64 61 6c 4d 6f 64 65 20 21 3d 20 6d 73 4e 6f  odalMode != msNo
4e50: 6e 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65  ne) return false
4e60: 3b 0d 0a 0d 0a 20 20 20 20 69 66 20 28 77 2e 73  ;....    if (w.s
4e70: 65 6c 65 63 74 65 64 54 65 78 74 28 29 20 21 3d  electedText() !=
4e80: 20 22 22 29 7b 0d 0a 20 20 20 20 20 20 20 20 72   ""){..        r
4e90: 65 74 75 72 6e 20 66 61 6c 73 65 3b 20 20 20 20  eturn false;    
4ea0: 2f 2f 2f 20 54 4f 44 4f 3a 20 d0 be d0 b1 d1 80  /// TODO: ......
4eb0: d0 b0 d0 b1 d0 be d1 82 d0 b0 d1 82 d1 8c 20 d1  .............. .
4ec0: 8d d1 82 d0 be d1 82 20 d0 b2 d0 b0 d1 80 d0 b8  ....... ........
4ed0: d0 b0 d0 bd d1 82 2e 0d 0a 20 20 20 20 7d 0d 0a  .........    }..
4ee0: 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 70 6f      ..    var po
4ef0: 73 20 3d 20 77 2e 67 65 74 43 61 72 65 74 50 6f  s = w.getCaretPo
4f00: 73 28 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20  s();..    ..    
4f10: 76 61 72 20 62 65 67 69 6e 52 6f 77 20 3d 20 70  var beginRow = p
4f20: 6f 73 2e 62 65 67 69 6e 52 6f 77 3b 0d 0a 20 20  os.beginRow;..  
4f30: 20 20 76 61 72 20 77 6f 72 64 42 65 67 50 6f 73    var wordBegPos
4f40: 20 3d 20 70 6f 73 2e 62 65 67 69 6e 43 6f 6c 20   = pos.beginCol 
4f50: 2d 20 31 3b 0d 0a 20 20 20 20 76 61 72 20 77 6f  - 1;..    var wo
4f60: 72 64 41 66 74 65 72 50 6f 73 20 3d 20 70 6f 73  rdAfterPos = pos
4f70: 2e 62 65 67 69 6e 43 6f 6c 3b 0d 0a 20 20 20 20  .beginCol;..    
4f80: 76 61 72 20 6c 69 6e 65 20 3d 20 77 2e 47 65 74  var line = w.Get
4f90: 4c 69 6e 65 28 70 6f 73 2e 62 65 67 69 6e 52 6f  Line(pos.beginRo
4fa0: 77 29 3b 0d 0a 20 20 20 20 69 66 20 28 6c 69 6e  w);..    if (lin
4fb0: 65 2e 6c 65 6e 67 74 68 20 3c 20 77 6f 72 64 41  e.length < wordA
4fc0: 66 74 65 72 50 6f 73 20 7c 7c 20 77 6f 72 64 42  fterPos || wordB
4fd0: 65 67 50 6f 73 2d 31 20 3c 20 30 29 20 72 65 74  egPos-1 < 0) ret
4fe0: 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20  urn false;..    
4ff0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20  ..    ..    var 
5000: 63 75 72 43 68 61 72 20 3d 20 6c 69 6e 65 2e 63  curChar = line.c
5010: 68 61 72 41 74 28 77 6f 72 64 42 65 67 50 6f 73  harAt(wordBegPos
5020: 29 3b 20 0d 0a 20 20 20 20 69 66 20 28 63 75 72  ); ..    if (cur
5030: 43 68 61 72 20 3d 3d 20 22 29 22 20 26 26 20 6c  Char == ")" && l
5040: 69 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64 42  ine.charAt(wordB
5050: 65 67 50 6f 73 2d 31 29 3d 3d 22 28 22 29 20 20  egPos-1)=="(")  
5060: 7b 0d 0a 20 20 20 20 20 20 20 20 77 2e 53 65 74  {..        w.Set
5070: 53 65 6c 65 63 74 69 6f 6e 28 70 6f 73 2e 62 65  Selection(pos.be
5080: 67 69 6e 52 6f 77 2c 20 77 6f 72 64 42 65 67 50  ginRow, wordBegP
5090: 6f 73 2c 20 70 6f 73 2e 62 65 67 69 6e 52 6f 77  os, pos.beginRow
50a0: 2c 20 77 6f 72 64 42 65 67 50 6f 73 2b 32 29 3b  , wordBegPos+2);
50b0: 0d 0a 20 20 20 20 20 20 20 20 77 2e 53 65 74 53  ..        w.SetS
50c0: 65 6c 65 63 74 65 64 54 65 78 74 28 22 22 29 3b  electedText("");
50d0: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 77 2e 73 65  ..        //w.se
50e0: 74 43 61 72 65 74 50 6f 73 28 70 6f 73 2e 62 65  tCaretPos(pos.be
50f0: 67 69 6e 52 6f 77 2c 20 28 6c 69 6e 65 2e 63 68  ginRow, (line.ch
5100: 61 72 41 74 28 77 6f 72 64 42 65 67 50 6f 73 2b  arAt(wordBegPos+
5110: 31 29 3d 3d 22 3b 22 29 3f 77 6f 72 64 42 65 67  1)==";")?wordBeg
5120: 50 6f 73 2b 31 3a 77 6f 72 64 42 65 67 50 6f 73  Pos+1:wordBegPos
5130: 29 3b 0d 0a 20 20 20 20 20 20 20 20 77 2e 73 65  );..        w.se
5140: 74 43 61 72 65 74 50 6f 73 28 70 6f 73 2e 62 65  tCaretPos(pos.be
5150: 67 69 6e 52 6f 77 2c 20 77 6f 72 64 42 65 67 50  ginRow, wordBegP
5160: 6f 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 72 65  os);..        re
5170: 74 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20  turn true;..    
5180: 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20  } else {..      
5190: 20 20 20 20 20 20 69 66 20 28 63 75 72 43 68 61        if (curCha
51a0: 72 20 3d 3d 20 22 28 22 20 0d 0a 20 20 20 20 20  r == "(" ..     
51b0: 20 20 20 20 20 20 20 26 26 20 6c 69 6e 65 2e 63         && line.c
51c0: 68 61 72 41 74 28 77 6f 72 64 41 66 74 65 72 50  harAt(wordAfterP
51d0: 6f 73 29 3d 3d 22 29 22 29 20 7b 0d 0a 20 20 20  os)==")") {..   
51e0: 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20           ..     
51f0: 20 20 20 20 20 20 20 77 2e 53 65 74 53 65 6c 65         w.SetSele
5200: 63 74 69 6f 6e 28 70 6f 73 2e 62 65 67 69 6e 52  ction(pos.beginR
5210: 6f 77 2c 20 77 6f 72 64 42 65 67 50 6f 73 2b 31  ow, wordBegPos+1
5220: 2c 20 70 6f 73 2e 62 65 67 69 6e 52 6f 77 2c 20  , pos.beginRow, 
5230: 77 6f 72 64 42 65 67 50 6f 73 2b 33 29 3b 0d 0a  wordBegPos+3);..
5240: 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 53 65              w.Se
5250: 74 53 65 6c 65 63 74 65 64 54 65 78 74 28 22 22  tSelectedText(""
5260: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  );..            
5270: 77 2e 73 65 74 43 61 72 65 74 50 6f 73 28 70 6f  w.setCaretPos(po
5280: 73 2e 62 65 67 69 6e 52 6f 77 2c 20 77 6f 72 64  s.beginRow, word
5290: 42 65 67 50 6f 73 2b 31 29 3b 0d 0a 20 20 20 20  BegPos+1);..    
52a0: 20 20 20 20 20 20 20 20 2f 2f 77 2e 73 65 74 43          //w.setC
52b0: 61 72 65 74 50 6f 73 28 70 6f 73 2e 62 65 67 69  aretPos(pos.begi
52c0: 6e 52 6f 77 2c 20 28 6c 69 6e 65 2e 63 68 61 72  nRow, (line.char
52d0: 41 74 28 77 6f 72 64 41 66 74 65 72 50 6f 73 2b  At(wordAfterPos+
52e0: 31 29 3d 3d 22 3b 22 29 3f 77 6f 72 64 42 65 67  1)==";")?wordBeg
52f0: 50 6f 73 2b 32 3a 77 6f 72 64 42 65 67 50 6f 73  Pos+2:wordBegPos
5300: 2b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  +1);..          
5310: 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a    return true;..
5320: 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d          }..    }
5330: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 72 65 74 75  ..    ..    retu
5340: 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 0d  rn false;..    .
5350: 0a 7d 0d 0a 0d 0a 0d 0a                          .}......