Hex Artifact Content Вы: nobody
Вход

Artifact 42e4634be8aa09b75a22739af8cfda482a653e15:


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 54 65 78 74 57  pt..$uname TextW
0020: 69 6e 64 6f 77 0d 0a 24 64 6e 61 6d 65 20 d0 9a  indow..$dname ..
0030: d0 bb d0 b0 d1 81 d1 81 20 54 65 78 74 57 69 6e  ........ TextWin
0040: 64 6f 77 0d 0a 24 61 64 64 69 6e 20 67 6c 6f 62  dow..$addin glob
0050: 61 6c 0d 0a 24 61 64 64 69 6e 20 73 74 64 6c 69  al..$addin stdli
0060: 62 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 47 65  b....function Ge
0070: 74 54 65 78 74 57 69 6e 64 6f 77 28 29 20 7b 0d  tTextWindow() {.
0080: 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 61  .    ..    var a
0090: 63 74 69 76 65 57 6e 64 20 3d 20 73 6e 65 67 6f  ctiveWnd = snego
00a0: 70 61 74 2e 61 63 74 69 76 65 54 65 78 74 57 69  pat.activeTextWi
00b0: 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20 0d 0a 20  ndow();..    .. 
00c0: 20 20 20 69 66 20 28 61 63 74 69 76 65 57 6e 64     if (activeWnd
00d0: 29 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72  )..        retur
00e0: 6e 20 6e 65 77 20 5f 54 65 78 74 57 69 6e 64 6f  n new _TextWindo
00f0: 77 28 61 63 74 69 76 65 57 6e 64 2c 20 77 69 6e  w(activeWnd, win
0100: 64 6f 77 73 2e 67 65 74 41 63 74 69 76 65 56 69  dows.getActiveVi
0110: 65 77 28 29 29 3b 0d 0a 20 20 20 20 20 20 20 20  ew());..        
0120: 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c  ..    return nul
0130: 6c 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f  l;..}....///////
0140: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0150: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0160: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0170: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0180: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0190: 2f 0d 0a 2f 2f 2f 2f 20 5f 54 65 78 74 57 69 6e  /..//// _TextWin
01a0: 64 6f 77 0d 0a 2f 2f 2f 2f 0d 0a 0d 0a 2f 2a 2a  dow..////..../**
01b0: 20 d0 9a d0 bb d0 b0 d1 81 d1 81 2d d0 be d0 b1   ..........-....
01c0: d0 b5 d1 80 d1 82 d0 ba d0 b0 20 d0 b2 d0 be d0  .......... .....
01d0: ba d1 80 d1 83 d0 b3 20 49 54 65 78 74 57 69 6e  ....... ITextWin
01e0: 64 6f 77 2c 20 d0 bf d0 be d0 b4 d0 b4 d0 b5 d1  dow, ...........
01f0: 80 d0 b6 d0 b8 d0 b2 d0 b0 d1 8e d1 89 d0 b8 d0  ................
0200: b9 20 d0 be d0 b4 d0 bd d0 be d0 b2 d1 80 d0 b5  . ..............
0210: d0 bc d0 b5 d0 bd d0 bd d0 be 20 0d 0a d0 b8 d0  .......... .....
0220: bd d1 82 d0 b5 d1 80 d1 84 d0 b5 d0 b9 d1 81 20  ............... 
0230: d0 be d0 b1 d1 8a d0 b5 d0 ba d1 82 d0 be d0 b2  ................
0240: 20 49 54 65 78 74 57 69 6e 64 6f 77 2c 20 d1 82   ITextWindow, ..
0250: d0 b0 d0 ba 20 d0 b8 20 d0 a2 d0 b5 d0 ba d1 81  .... .. ........
0260: d1 82 d0 be d0 b2 d1 8b d0 b9 d0 94 d0 be d0 ba  ................
0270: d1 83 d0 bc d0 b5 d0 bd d1 82 2e 20 2a 2f 0d 0a  ........... */..
0280: 5f 54 65 78 74 57 69 6e 64 6f 77 20 3d 20 73 74  _TextWindow = st
0290: 64 6c 69 62 2e 43 6c 61 73 73 2e 65 78 74 65 6e  dlib.Class.exten
02a0: 64 28 7b 0d 0a 0d 0a 20 20 20 20 63 6f 6e 73 74  d({....    const
02b0: 72 75 63 74 20 3a 20 66 75 6e 63 74 69 6f 6e 20  ruct : function 
02c0: 28 74 65 78 74 57 69 6e 64 6f 77 2c 20 76 69 65  (textWindow, vie
02d0: 77 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 68  w) {..        th
02e0: 69 73 2e 74 65 78 74 57 69 6e 64 6f 77 20 3d 20  is.textWindow = 
02f0: 74 65 78 74 57 69 6e 64 6f 77 3b 0d 0a 20 20 20  textWindow;..   
0300: 20 20 20 20 20 74 68 69 73 2e 5f 76 69 65 77 20       this._view 
0310: 3d 20 28 76 69 65 77 20 26 26 20 28 74 65 78 74  = (view && (text
0320: 57 69 6e 64 6f 77 2e 68 77 6e 64 20 3d 3d 20 76  Window.hwnd == v
0330: 69 65 77 2e 68 77 6e 64 29 29 20 3f 20 76 69 65  iew.hwnd)) ? vie
0340: 77 20 3a 20 75 6e 64 65 66 69 6e 65 64 3b 0d 0a  w : undefined;..
0350: 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 20      },..    ..  
0360: 20 20 49 73 41 63 74 69 76 65 20 3a 20 66 75 6e    IsActive : fun
0370: 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20  ction() {..     
0380: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 69 66 20     ..        if 
0390: 28 21 74 68 69 73 2e 74 65 78 74 57 69 6e 64 6f  (!this.textWindo
03a0: 77 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  w)..            
03b0: 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20  return false;.. 
03c0: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
03d0: 20 20 20 20 20 74 72 79 20 0d 0a 20 20 20 20 20       try ..     
03e0: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20     {..          
03f0: 20 20 2f 2a 20 d0 9e d0 ba d0 bd d0 be 20 d0 bc    /* ........ ..
0400: d0 be d0 b3 d0 bb d0 be 20 d0 b1 d1 8b d1 82 d1  ........ .......
0410: 8c 20 d0 b7 d0 b0 d0 ba d1 80 d1 8b d1 82 d0 be  . ..............
0420: 2e 20 d0 a2 d0 be d0 b3 d0 b4 d0 b0 20 d0 bf d1  . .......... ...
0430: 80 d0 b8 20 d0 be d0 b1 d1 80 d0 b0 d1 89 d0 b5  ... ............
0440: d0 bd d0 b8 d0 b8 20 0d 0a 20 20 20 20 20 20 20  ...... ..       
0450: 20 20 20 20 20 d0 ba 20 d0 b5 d0 b3 d0 be 20 d1       .. ...... .
0460: 81 d0 b2 d0 be d0 b9 d1 81 d1 82 d0 b2 d0 b0 d0  ................
0470: bc 20 d0 bf d1 80 d0 be d0 b8 d0 b7 d0 be d0 b9  . ..............
0480: d0 b4 d0 b5 d1 82 20 d0 be d1 88 d0 b8 d0 b1 d0  ...... .........
0490: ba d0 b0 2e 20 2a 2f 0d 0a 20 20 20 20 20 20 20  .... */..       
04a0: 20 20 20 20 20 76 61 72 20 68 77 6e 64 20 3d 20       var hwnd = 
04b0: 74 68 69 73 2e 74 65 78 74 57 69 6e 64 6f 77 2e  this.textWindow.
04c0: 68 77 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 7d  hwnd;..        }
04d0: 0d 0a 20 20 20 20 20 20 20 20 63 61 74 63 68 20  ..        catch 
04e0: 28 65 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a  (e)..        {..
04f0: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75              retu
0500: 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20  rn false;..     
0510: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a     }..        ..
0520: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74          return t
0530: 72 75 65 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a  rue;..    },....
0540: 20 20 20 20 47 65 74 48 77 6e 64 20 3a 20 66 75      GetHwnd : fu
0550: 6e 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 20  nction () {..   
0560: 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73       return this
0570: 2e 74 65 78 74 57 69 6e 64 6f 77 2e 68 77 6e 64  .textWindow.hwnd
0580: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20  ;..    },....   
0590: 20 47 65 74 54 65 78 74 20 3a 20 66 75 6e 63 74   GetText : funct
05a0: 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20  ion() {..       
05b0: 20 72 65 74 75 72 6e 20 74 68 69 73 2e 74 65 78   return this.tex
05c0: 74 57 69 6e 64 6f 77 2e 74 65 78 74 3b 0d 0a 20  tWindow.text;.. 
05d0: 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 53 65 74     },....    Set
05e0: 54 65 78 74 20 3a 20 66 75 6e 63 74 69 6f 6e 28  Text : function(
05f0: 74 65 78 74 29 20 7b 0d 0a 20 20 20 20 20 20 20  text) {..       
0600: 20 74 68 69 73 2e 52 61 6e 67 65 28 31 2c 31 2c   this.Range(1,1,
0610: 74 68 69 73 2e 74 65 78 74 57 69 6e 64 6f 77 2e  this.textWindow.
0620: 6c 69 6e 65 73 43 6f 75 6e 74 29 2e 53 65 74 54  linesCount).SetT
0630: 65 78 74 28 74 65 78 74 29 3b 0d 0a 20 20 20 20  ext(text);..    
0640: 7d 2c 0d 0a 0d 0a 20 20 20 20 45 78 74 4e 61 6d  },....    ExtNam
0650: 65 20 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b  e : function() {
0660: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  ..        return
0670: 20 74 68 69 73 2e 74 65 78 74 57 69 6e 64 6f 77   this.textWindow
0680: 2e 65 78 74 4e 61 6d 65 3b 0d 0a 20 20 20 20 7d  .extName;..    }
0690: 2c 0d 0a 0d 0a 20 20 20 20 47 65 74 43 61 72 65  ,....    GetCare
06a0: 74 50 6f 73 20 3a 20 66 75 6e 63 74 69 6f 6e 28  tPos : function(
06b0: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74  ) {..        ret
06c0: 75 72 6e 20 74 68 69 73 2e 74 65 78 74 57 69 6e  urn this.textWin
06d0: 64 6f 77 2e 67 65 74 43 61 72 65 74 50 6f 73 28  dow.getCaretPos(
06e0: 29 3b 20 20 20 20 0d 0a 20 20 20 20 7d 2c 0d 0a  );    ..    },..
06f0: 0d 0a 20 20 20 20 53 65 74 43 61 72 65 74 50 6f  ..    SetCaretPo
0700: 73 20 3a 20 66 75 6e 63 74 69 6f 6e 28 72 6f 77  s : function(row
0710: 2c 20 63 6f 6c 29 20 7b 0d 0a 20 20 20 20 20 20  , col) {..      
0720: 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 74 65    return this.te
0730: 78 74 57 69 6e 64 6f 77 2e 73 65 74 43 61 72 65  xtWindow.setCare
0740: 74 50 6f 73 28 72 6f 77 2c 20 63 6f 6c 29 3b 20  tPos(row, col); 
0750: 20 20 20 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20     ..    },.... 
0760: 20 20 20 47 65 74 53 65 6c 65 63 74 69 6f 6e 20     GetSelection 
0770: 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a  : function() {..
0780: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74          return t
0790: 68 69 73 2e 74 65 78 74 57 69 6e 64 6f 77 2e 67  his.textWindow.g
07a0: 65 74 53 65 6c 65 63 74 69 6f 6e 28 29 3b 20 20  etSelection();  
07b0: 20 20 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20    ..    },....  
07c0: 20 20 53 65 74 53 65 6c 65 63 74 69 6f 6e 20 3a    SetSelection :
07d0: 20 66 75 6e 63 74 69 6f 6e 28 62 65 67 69 6e 52   function(beginR
07e0: 6f 77 2c 20 62 65 67 69 6e 43 6f 6c 2c 20 65 6e  ow, beginCol, en
07f0: 64 52 6f 77 2c 20 65 6e 64 43 6f 6c 29 20 7b 0d  dRow, endCol) {.
0800: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  .        return 
0810: 74 68 69 73 2e 74 65 78 74 57 69 6e 64 6f 77 2e  this.textWindow.
0820: 73 65 74 53 65 6c 65 63 74 69 6f 6e 28 62 65 67  setSelection(beg
0830: 69 6e 52 6f 77 2c 20 62 65 67 69 6e 43 6f 6c 2c  inRow, beginCol,
0840: 20 65 6e 64 52 6f 77 2c 20 65 6e 64 43 6f 6c 29   endRow, endCol)
0850: 3b 20 20 20 20 0d 0a 20 20 20 20 7d 2c 0d 0a 0d  ;    ..    },...
0860: 0a 20 20 20 20 47 65 74 53 65 6c 65 63 74 65 64  .    GetSelected
0870: 54 65 78 74 20 3a 20 66 75 6e 63 74 69 6f 6e 28  Text : function(
0880: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74  ) {..        ret
0890: 75 72 6e 20 74 68 69 73 2e 74 65 78 74 57 69 6e  urn this.textWin
08a0: 64 6f 77 2e 73 65 6c 65 63 74 65 64 54 65 78 74  dow.selectedText
08b0: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20  ;..    },....   
08c0: 20 53 65 74 53 65 6c 65 63 74 65 64 54 65 78 74   SetSelectedText
08d0: 20 3a 20 66 75 6e 63 74 69 6f 6e 28 74 65 78 74   : function(text
08e0: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 68 69  ) {..        thi
08f0: 73 2e 74 65 78 74 57 69 6e 64 6f 77 2e 73 65 6c  s.textWindow.sel
0900: 65 63 74 65 64 54 65 78 74 20 3d 20 74 65 78 74  ectedText = text
0910: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20  ;..    },....   
0920: 20 47 65 74 4c 69 6e 65 20 3a 20 66 75 6e 63 74   GetLine : funct
0930: 69 6f 6e 28 72 6f 77 4e 75 6d 29 20 7b 0d 0a 20  ion(rowNum) {.. 
0940: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68         return th
0950: 69 73 2e 74 65 78 74 57 69 6e 64 6f 77 2e 6c 69  is.textWindow.li
0960: 6e 65 28 72 6f 77 4e 75 6d 29 3b 20 20 20 20 0d  ne(rowNum);    .
0970: 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 4c  .    },....    L
0980: 69 6e 65 73 43 6f 75 6e 74 20 3a 20 66 75 6e 63  inesCount : func
0990: 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20  tion() {..      
09a0: 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 74 65    return this.te
09b0: 78 74 57 69 6e 64 6f 77 2e 6c 69 6e 65 73 43 6f  xtWindow.linesCo
09c0: 75 6e 74 3b 20 20 20 20 0d 0a 20 20 20 20 7d 2c  unt;    ..    },
09d0: 0d 0a 0d 0a 20 20 20 20 49 73 52 65 61 64 4f 6e  ....    IsReadOn
09e0: 6c 79 20 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20  ly : function() 
09f0: 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72  {..        retur
0a00: 6e 20 74 68 69 73 2e 74 65 78 74 57 69 6e 64 6f  n this.textWindo
0a10: 77 2e 72 65 61 64 4f 6e 6c 79 3b 20 20 20 20 0d  w.readOnly;    .
0a20: 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 44  .    },....    D
0a30: 65 6c 65 74 65 4c 69 6e 65 20 3a 20 66 75 6e 63  eleteLine : func
0a40: 74 69 6f 6e 28 72 6f 77 4e 75 6d 29 20 7b 0d 0a  tion(rowNum) {..
0a50: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
0a60: 20 20 69 66 20 28 72 6f 77 4e 75 6d 20 3c 20 31    if (rowNum < 1
0a70: 20 7c 7c 20 72 6f 77 4e 75 6d 20 3e 20 74 68 69   || rowNum > thi
0a80: 73 2e 4c 69 6e 65 73 43 6f 75 6e 74 28 29 29 0d  s.LinesCount()).
0a90: 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74  .            ret
0aa0: 75 72 6e 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20  urn;....        
0ab0: 76 61 72 20 6e 65 78 74 4c 69 6e 65 20 3d 20 74  var nextLine = t
0ac0: 68 69 73 2e 47 65 74 4c 69 6e 65 28 72 6f 77 4e  his.GetLine(rowN
0ad0: 75 6d 20 2b 20 31 29 3b 0d 0a 20 20 20 20 20 20  um + 1);..      
0ae0: 20 20 74 68 69 73 2e 52 61 6e 67 65 28 72 6f 77    this.Range(row
0af0: 4e 75 6d 2c 20 31 2c 20 72 6f 77 4e 75 6d 2b 31  Num, 1, rowNum+1
0b00: 2c 20 6e 65 78 74 4c 69 6e 65 2e 6c 65 6e 67 74  , nextLine.lengt
0b10: 68 20 2b 20 31 29 2e 53 65 74 54 65 78 74 28 6e  h + 1).SetText(n
0b20: 65 78 74 4c 69 6e 65 29 3b 0d 0a 20 20 20 20 7d  extLine);..    }
0b30: 2c 0d 0a 0d 0a 20 20 20 20 41 64 64 4c 69 6e 65  ,....    AddLine
0b40: 20 3a 20 66 75 6e 63 74 69 6f 6e 28 73 74 72 4c   : function(strL
0b50: 69 6e 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20  ine) {..        
0b60: 76 61 72 20 6c 69 6e 65 73 43 6f 75 6e 74 20 3d  var linesCount =
0b70: 20 74 68 69 73 2e 4c 69 6e 65 73 43 6f 75 6e 74   this.LinesCount
0b80: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20  ();..        if 
0b90: 28 6c 69 6e 65 73 43 6f 75 6e 74 20 3e 20 30 29  (linesCount > 0)
0ba0: 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20  ..        {..   
0bb0: 20 20 20 20 20 20 20 20 20 76 61 72 20 6c 61 73           var las
0bc0: 74 4c 69 6e 65 20 3d 20 74 68 69 73 2e 47 65 74  tLine = this.Get
0bd0: 4c 69 6e 65 28 6c 69 6e 65 73 43 6f 75 6e 74 29  Line(linesCount)
0be0: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74  ;..            t
0bf0: 68 69 73 2e 52 61 6e 67 65 28 6c 69 6e 65 73 43  his.Range(linesC
0c00: 6f 75 6e 74 2c 20 31 2c 20 6c 69 6e 65 73 43 6f  ount, 1, linesCo
0c10: 75 6e 74 29 2e 53 65 74 54 65 78 74 28 6c 61 73  unt).SetText(las
0c20: 74 4c 69 6e 65 20 2b 20 22 5c 6e 22 20 2b 20 73  tLine + "\n" + s
0c30: 74 72 4c 69 6e 65 29 3b 0d 0a 20 20 20 20 20 20  trLine);..      
0c40: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 65 6c 73    }..        els
0c50: 65 20 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20  e ..        {.. 
0c60: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e             this.
0c70: 52 61 6e 67 65 28 29 2e 53 65 74 54 65 78 74 28  Range().SetText(
0c80: 73 74 72 4c 69 6e 65 29 3b 0d 0a 20 20 20 20 20  strLine);..     
0c90: 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a     }..    },....
0ca0: 20 20 20 20 49 6e 73 65 72 74 4c 69 6e 65 20 3a      InsertLine :
0cb0: 20 66 75 6e 63 74 69 6f 6e 28 72 6f 77 4e 75 6d   function(rowNum
0cc0: 2c 20 73 74 72 4c 69 6e 65 29 20 7b 0d 0a 0d 0a  , strLine) {....
0cd0: 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 6e 65          var line
0ce0: 73 43 6f 75 6e 74 20 3d 20 74 68 69 73 2e 4c 69  sCount = this.Li
0cf0: 6e 65 73 43 6f 75 6e 74 28 29 3b 0d 0a 0d 0a 20  nesCount();.... 
0d00: 20 20 20 20 20 20 20 69 66 20 28 72 6f 77 4e 75         if (rowNu
0d10: 6d 20 3c 20 30 20 7c 7c 20 72 6f 77 4e 75 6d 20  m < 0 || rowNum 
0d20: 3e 20 6c 69 6e 65 73 43 6f 75 6e 74 20 2b 20 31  > linesCount + 1
0d30: 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74  )..            t
0d40: 68 72 6f 77 20 22 5f 54 65 78 74 57 69 6e 64 6f  hrow "_TextWindo
0d50: 77 2e 49 6e 73 65 72 74 4c 69 6e 65 28 29 3a 20  w.InsertLine(): 
0d60: d0 98 d0 bd d0 b4 d0 b5 d0 ba d1 81 20 d0 b7 d0  ............ ...
0d70: b0 20 d0 b3 d1 80 d0 b0 d0 bd d0 b8 d1 86 d0 b0  . ..............
0d80: d0 bc d0 b8 20 d0 b4 d0 b8 d0 b0 d0 bf d0 b0 d0  .... ...........
0d90: b7 d0 be d0 bd d0 b0 21 22 3b 0d 0a 20 20 20 20  .......!";..    
0da0: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
0db0: 20 20 69 66 20 28 72 6f 77 4e 75 6d 20 3d 3d 20    if (rowNum == 
0dc0: 6c 69 6e 65 73 43 6f 75 6e 74 20 2b 20 31 29 0d  linesCount + 1).
0dd0: 0a 20 20 20 20 20 20 20 20 7b 20 20 20 20 0d 0a  .        {    ..
0de0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73              this
0df0: 2e 41 64 64 4c 69 6e 65 28 73 74 72 4c 69 6e 65  .AddLine(strLine
0e00: 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20  );..        }.. 
0e10: 20 20 20 20 20 20 20 65 6c 73 65 20 0d 0a 20 20         else ..  
0e20: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
0e30: 20 20 20 20 20 76 61 72 20 63 75 72 4c 69 6e 65       var curLine
0e40: 20 3d 20 74 68 69 73 2e 47 65 74 4c 69 6e 65 28   = this.GetLine(
0e50: 72 6f 77 4e 75 6d 29 3b 0d 0a 20 20 20 20 20 20  rowNum);..      
0e60: 20 20 20 20 20 20 74 68 69 73 2e 52 61 6e 67 65        this.Range
0e70: 28 72 6f 77 4e 75 6d 2c 20 31 2c 20 72 6f 77 4e  (rowNum, 1, rowN
0e80: 75 6d 29 2e 53 65 74 54 65 78 74 28 73 74 72 4c  um).SetText(strL
0e90: 69 6e 65 20 2b 20 22 5c 6e 22 20 2b 20 63 75 72  ine + "\n" + cur
0ea0: 4c 69 6e 65 29 3b 0d 0a 20 20 20 20 20 20 20 20  Line);..        
0eb0: 7d 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20  }..    },....   
0ec0: 20 52 65 70 6c 61 63 65 4c 69 6e 65 20 3a 20 66   ReplaceLine : f
0ed0: 75 6e 63 74 69 6f 6e 28 72 6f 77 4e 75 6d 2c 20  unction(rowNum, 
0ee0: 73 74 72 4c 69 6e 65 29 20 7b 0d 0a 20 20 20 20  strLine) {..    
0ef0: 20 20 20 20 74 68 69 73 2e 52 61 6e 67 65 28 72      this.Range(r
0f00: 6f 77 4e 75 6d 2c 20 31 2c 20 72 6f 77 4e 75 6d  owNum, 1, rowNum
0f10: 29 2e 53 65 74 54 65 78 74 28 73 74 72 4c 69 6e  ).SetText(strLin
0f20: 65 29 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20  e);..    },.... 
0f30: 20 20 20 43 6c 65 61 72 20 3a 20 66 75 6e 63 74     Clear : funct
0f40: 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 20 20 20 20  ion () {..      
0f50: 20 20 74 68 69 73 2e 52 61 6e 67 65 28 29 2e 53    this.Range().S
0f60: 65 74 54 65 78 74 28 22 22 29 3b 0d 0a 20 20 20  etText("");..   
0f70: 20 7d 2c 0d 0a 0d 0a 20 20 20 20 2f 2a 2a 20 52   },....    /** R
0f80: 61 6e 67 65 4f 62 6a 65 63 74 20 5f 54 65 78 74  angeObject _Text
0f90: 57 69 6e 64 6f 77 3a 3a 52 61 6e 67 65 28 5b 62  Window::Range([b
0fa0: 65 67 69 6e 52 6f 77 20 5b 2c 62 65 67 69 6e 43  eginRow [,beginC
0fb0: 6f 6c 20 5b 2c 65 6e 64 52 6f 77 20 5b 2c 65 6e  ol [,endRow [,en
0fc0: 64 43 6f 6c 5d 5d 5d 5d 29 20 2a 2f 0d 0a 20 20  dCol]]]]) */..  
0fd0: 20 20 52 61 6e 67 65 20 3a 20 66 75 6e 63 74 69    Range : functi
0fe0: 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20  on() {..        
0ff0: 76 61 72 20 74 77 20 3d 20 74 68 69 73 2e 74 65  var tw = this.te
1000: 78 74 57 69 6e 64 6f 77 3b 0d 0a 0d 0a 20 20 20  xtWindow;....   
1010: 20 20 20 20 20 2f 2a 20 d0 9d d1 83 d0 bc d0 b5       /* ........
1020: d1 80 d0 b0 d1 86 d0 b8 d1 8f 20 d1 81 d1 82 d1  .......... .....
1030: 80 d0 be d0 ba 20 d0 b8 20 d0 ba d0 be d0 bb d0  ..... .. .......
1040: be d0 bd d0 be d0 ba 20 d0 b2 20 d1 82 d0 b5 d0  ....... .. .....
1050: ba d1 81 d1 82 d0 be d0 b2 d0 be d0 bc 20 d0 b4  ............. ..
1060: d0 be d0 ba d1 83 d0 bc d0 b5 d0 bd d1 82 d0 b5  ................
1070: 20 2d 20 d1 81 20 31 2e 20 0d 0a 20 20 20 20 20   - .. 1. ..     
1080: 20 20 20 d0 95 d1 81 d0 bb d0 b8 20 d0 b4 d0 be     ........ ....
1090: d0 ba d1 83 d0 bc d0 b5 d0 bd d1 82 20 d0 bf d1  ............ ...
10a0: 83 d1 81 d1 82 d0 be d0 b9 2c 20 d1 82 d0 be 20  ........., .... 
10b0: 6c 69 6e 65 73 43 6f 75 6e 74 20 3d 3d 20 30 2c  linesCount == 0,
10c0: 20 d0 bf d0 be d1 8d d1 82 d0 be d0 bc d1 83 20   .............. 
10d0: d0 b4 d0 bb d1 8f 20 d0 ba d0 be d1 80 d1 80 d0  ...... .........
10e0: b5 d0 ba d1 82 d0 bd d0 be d0 b9 20 d1 80 d0 b0  ........... ....
10f0: d0 b1 d0 be d1 82 d1 8b 20 0d 0a 20 20 20 20 20  ........ ..     
1100: 20 20 20 d0 be d0 b1 d1 8a d0 b5 d0 ba d1 82 d0     .............
1110: b0 20 52 61 6e 67 65 28 29 20 d0 bf d1 80 d0 b8  . Range() ......
1120: d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d0 b7 d0 bd d0  .......... .....
1130: b0 d1 87 d0 b5 d0 bd d0 b8 d1 8f 20 d0 b0 d1 80  ........... ....
1140: d0 b3 d1 83 d0 bc d0 b5 d0 bd d1 82 d0 be d0 b2  ................
1150: 20 d0 bf d1 80 d0 b8 20 d0 bf d0 be d0 bc d0 be   ...... ........
1160: d1 89 d0 b8 20 d0 b2 d1 8b d1 80 d0 b0 d0 b6 d0  .... ...........
1170: b5 d0 bd d0 b8 d1 8f 20 28 69 6e 64 65 78 20 7c  ....... (index |
1180: 7c 20 31 29 2e 20 2a 2f 0d 0a 20 20 20 20 20 20  | 1). */..      
1190: 20 20 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20    ..        var 
11a0: 62 65 67 69 6e 52 6f 77 20 3d 20 28 61 72 67 75  beginRow = (argu
11b0: 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 20 3e 20 30  ments.length > 0
11c0: 20 3f 20 61 72 67 75 6d 65 6e 74 73 5b 30 5d 20   ? arguments[0] 
11d0: 3a 20 31 29 20 7c 7c 20 31 3b 0d 0a 20 20 20 20  : 1) || 1;..    
11e0: 20 20 20 20 76 61 72 20 65 6e 64 52 6f 77 20 20      var endRow  
11f0: 3d 20 28 61 72 67 75 6d 65 6e 74 73 2e 6c 65 6e  = (arguments.len
1200: 67 74 68 20 3e 20 32 20 3f 20 61 72 67 75 6d 65  gth > 2 ? argume
1210: 6e 74 73 5b 32 5d 20 3a 20 74 77 2e 6c 69 6e 65  nts[2] : tw.line
1220: 73 43 6f 75 6e 74 29 20 7c 7c 20 31 3b 0d 0a 20  sCount) || 1;.. 
1230: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
1240: 20 69 66 20 28 62 65 67 69 6e 52 6f 77 20 3e 20   if (beginRow > 
1250: 65 6e 64 52 6f 77 29 0d 0a 20 20 20 20 20 20 20  endRow)..       
1260: 20 20 20 20 20 74 68 72 6f 77 20 22 5f 54 65 78       throw "_Tex
1270: 74 57 69 6e 64 6f 77 3a 20 d0 98 d0 bd d0 b4 d0  tWindow: .......
1280: b5 d0 ba d1 81 20 d0 bf d0 b5 d1 80 d0 b2 d0 be  ..... ..........
1290: d0 b9 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8 20  .. ............ 
12a0: d0 be d0 b1 d0 bb d0 b0 d1 81 d1 82 d0 b8 20 d0  .............. .
12b0: bd d0 b5 20 d0 bc d0 be d0 b6 d0 b5 d1 82 20 d0  ... .......... .
12c0: b1 d1 8b d1 82 d1 8c 20 d0 b1 d0 be d0 bb d1 8c  ....... ........
12d0: d1 88 d0 b5 20 d0 b8 d0 bd d0 b4 d0 b5 d0 ba d1  .... ...........
12e0: 81 d0 b0 20 d0 bf d0 be d1 81 d0 bb d0 b5 d0 b4  ... ............
12f0: d0 bd d0 b5 d0 b9 20 d1 81 d1 82 d1 80 d0 be d0  ...... .........
1300: ba d0 b8 20 d0 be d0 b1 d0 bb d0 b0 d1 81 d1 82  ... ............
1310: d0 b8 21 22 3b 0d 0a 0d 0a 20 20 20 20 20 20 20  ..!";....       
1320: 20 76 61 72 20 62 65 67 69 6e 43 6f 6c 20 3d 20   var beginCol = 
1330: 28 61 72 67 75 6d 65 6e 74 73 2e 6c 65 6e 67 74  (arguments.lengt
1340: 68 20 3e 20 31 20 3f 20 61 72 67 75 6d 65 6e 74  h > 1 ? argument
1350: 73 5b 31 5d 20 3a 20 31 29 20 7c 7c 20 31 3b 0d  s[1] : 1) || 1;.
1360: 0a 20 20 20 20 20 20 20 20 76 61 72 20 65 6e 64  .        var end
1370: 43 6f 6c 20 3d 20 20 28 61 72 67 75 6d 65 6e 74  Col =  (argument
1380: 73 2e 6c 65 6e 67 74 68 20 3e 20 33 20 3f 20 61  s.length > 3 ? a
1390: 72 67 75 6d 65 6e 74 73 5b 33 5d 20 3a 20 74 77  rguments[3] : tw
13a0: 2e 6c 69 6e 65 28 65 6e 64 52 6f 77 29 2e 6c 65  .line(endRow).le
13b0: 6e 67 74 68 29 20 7c 7c 20 31 3b 0d 0a 20 20 20  ngth) || 1;..   
13c0: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 69       ..        i
13d0: 66 20 28 62 65 67 69 6e 52 6f 77 20 3d 3d 20 65  f (beginRow == e
13e0: 6e 64 52 6f 77 20 26 26 20 62 65 67 69 6e 43 6f  ndRow && beginCo
13f0: 6c 20 3e 20 65 6e 64 43 6f 6c 29 0d 0a 20 20 20  l > endCol)..   
1400: 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 22           throw "
1410: 5f 54 65 78 74 57 69 6e 64 6f 77 3a 20 d0 98 d0  _TextWindow: ...
1420: bd d0 b4 d0 b5 d0 ba d1 81 20 d0 bf d0 b5 d1 80  ......... ......
1430: d0 b2 d0 be d0 b3 d0 be 20 d1 81 d0 b8 d0 bc d0  ........ .......
1440: b2 d0 be d0 bb d0 b0 20 d0 be d0 b1 d0 bb d0 b0  ....... ........
1450: d1 81 d1 82 d0 b8 20 d1 81 d1 82 d1 80 d0 be d0  ...... .........
1460: ba d0 b8 20 d0 bd d0 b5 20 d0 bc d0 be d0 b6 d0  ... .... .......
1470: b5 d1 82 20 d0 b1 d1 8b d1 82 d1 8c 20 d0 b1 d0  ... ........ ...
1480: be d0 bb d1 8c d1 88 d0 b5 20 d0 b8 d0 bd d0 b4  ......... ......
1490: d0 b5 d0 ba d1 81 d0 b0 20 d0 bf d0 be d1 81 d0  ........ .......
14a0: bb d0 b5 d0 b4 d0 bd d0 b5 d0 b3 d0 be 20 d1 81  ............. ..
14b0: d0 b8 d0 bc d0 b2 d0 be d0 bb d0 b0 20 d0 be d0  ............ ...
14c0: b1 d0 bb d0 b0 d1 81 d1 82 d0 b8 21 22 3b 0d 0a  ...........!";..
14d0: 0d 0a 20 20 20 20 20 20 20 20 20 2f 2f 20 d0 92  ..         // ..
14e0: d0 be d0 b7 d0 b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5  ................
14f0: d1 82 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8 20  .. ............ 
1500: d0 be d0 b1 d0 bb d0 b0 d1 81 d1 82 d0 b8 20 d0  .............. .
1510: ba d0 b0 d0 ba 20 d0 bc d0 b0 d1 81 d1 81 d0 b8  ..... ..........
1520: d0 b2 2e 0d 0a 20 20 20 20 20 20 20 20 20 76 61  .....         va
1530: 72 20 67 65 74 4c 69 6e 65 73 20 3d 20 66 75 6e  r getLines = fun
1540: 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20  ction() {..     
1550: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
1560: 20 20 20 20 20 76 61 72 20 6c 69 6e 65 73 20 3d       var lines =
1570: 20 5b 5d 3b 20 20 20 20 20 20 20 20 0d 0a 0d 0a   [];        ....
1580: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 d0              /* .
1590: a7 d1 82 d0 be d0 b1 d1 8b 20 d0 bd d0 b5 20 d0  ......... .... .
15a0: be d1 88 d0 b8 d0 b1 d0 b8 d1 82 d1 8c d1 81 d1  ................
15b0: 8f 20 d0 b2 20 d0 b8 d0 bd d0 b4 d0 b5 d0 ba d1  . .. ...........
15c0: 81 d0 b0 d1 85 2c 20 d0 bd d0 b0 d0 b4 d0 be 20  ....., ........ 
15d0: d0 bf d0 be d0 bc d0 bd d0 b8 d1 82 d1 8c 3a 0d  ..............:.
15e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 20  .             - 
15f0: d0 b2 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 d1  .. .............
1600: 85 20 6a 73 20 d0 bd d1 83 d0 bc d0 b5 d1 80 d0  . js ...........
1610: b0 d1 86 d0 b8 d1 8f 20 d1 81 d0 b8 d0 bc d0 b2  ....... ........
1620: d0 be d0 bb d0 be d0 b2 20 d0 bd d0 b0 d1 87 d0  ........ .......
1630: b8 d0 bd d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d1 81  ............. ..
1640: 20 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   0;..           
1650: 20 20 2d 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8    - ............
1660: 20 d0 b8 20 d0 ba d0 be d0 bb d0 be d0 bd d0 ba   .. ............
1670: d0 b8 20 d0 b2 20 49 54 65 78 74 57 69 6e 64 6f  .. .. ITextWindo
1680: 77 20 d0 bd d1 83 d0 bc d0 b5 d1 80 d1 83 d1 8e  w ..............
1690: d1 82 d1 81 d1 8f 20 d1 81 20 31 3b 0d 0a 20 20  ...... .. 1;..  
16a0: 20 20 20 20 20 20 20 20 20 20 20 2d 20 d0 b2 20             - .. 
16b0: 73 75 62 73 74 72 20 d0 b2 d1 82 d0 be d1 80 d0  substr .........
16c0: be d0 b9 20 d0 bf d0 b0 d1 80 d0 b0 d0 bc d0 b5  ... ............
16d0: d1 82 d1 80 20 2d 20 d0 b4 d0 bb d0 b8 d0 bd d0  .... - .........
16e0: b0 20 d0 bf d0 be d0 b4 d1 81 d1 82 d1 80 d0 be  . ..............
16f0: d0 ba d0 b8 2c 20 d0 ba d0 be d1 82 d0 be d1 80  ...., ..........
1700: d1 83 d1 8e 20 d1 82 d1 80 d0 b5 d0 b1 d1 83 d0  .... ...........
1710: b5 d1 82 d1 81 d1 8f 20 d0 bf d0 be d0 bb d1 83  ....... ........
1720: d1 87 d0 b8 d1 82 d1 8c 2e 2a 2f 0d 0a 0d 0a 20  .........*/.... 
1730: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 2f             /////
1740: 2f 20 d0 9e d0 b1 d0 bb d0 b0 d1 81 d1 82 d1 8c  / ..............
1750: 20 2d 20 d0 bf d0 be d0 b4 d1 81 d1 82 d1 80 d0   - .............
1760: be d0 ba d0 b0 20 d0 be d0 b4 d0 bd d0 be d0 b9  ..... ..........
1770: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8 2e 0d 0a   ...............
1780: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66  ..            if
1790: 20 28 62 65 67 69 6e 52 6f 77 20 3d 3d 20 65 6e   (beginRow == en
17a0: 64 52 6f 77 29 0d 0a 20 20 20 20 20 20 20 20 20  dRow)..         
17b0: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20     {..          
17c0: 20 20 20 20 20 20 6c 69 6e 65 73 2e 70 75 73 68        lines.push
17d0: 28 74 77 2e 6c 69 6e 65 28 62 65 67 69 6e 52 6f  (tw.line(beginRo
17e0: 77 29 2e 73 75 62 73 74 72 28 62 65 67 69 6e 43  w).substr(beginC
17f0: 6f 6c 2d 31 2c 20 65 6e 64 43 6f 6c 29 29 3b 0d  ol-1, endCol));.
1800: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1810: 20 72 65 74 75 72 6e 20 6c 69 6e 65 73 3b 0d 0a   return lines;..
1820: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d              }...
1830: 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f  .            ///
1840: 2f 2f 2f 20 d0 9e d0 b1 d0 bb d0 b0 d1 81 d1 82  /// ............
1850: d1 8c 20 2d 20 d0 bd d0 b5 d1 81 d0 ba d0 be d0  .. - ...........
1860: bb d1 8c d0 ba d0 be 20 d1 81 d1 82 d1 80 d0 be  ....... ........
1870: d0 ba 2e 20 20 20 20 20 20 20 20 20 20 20 20 0d  ...            .
1880: 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20  .            .. 
1890: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 31 2e             // 1.
18a0: 20 d0 9f d0 b5 d1 80 d0 b2 d0 b0 d1 8f 20 d1 81   ............ ..
18b0: d1 82 d1 80 d0 be d0 ba d0 b0 20 2d 20 d0 be d1  .......... - ...
18c0: 82 20 d0 bf d0 b5 d1 80 d0 b2 d0 be d0 b9 20 d0  . ............ .
18d0: ba d0 be d0 bb d0 be d0 bd d0 ba d0 b8 20 d0 be  ............. ..
18e0: d0 b1 d0 bb d0 b0 d1 81 d1 82 d0 b8 20 d0 b8 20  ............ .. 
18f0: d0 b4 d0 be 20 d0 ba d0 be d0 bd d1 86 d0 b0 20  .... .......... 
1900: d1 8d d1 82 d0 be d0 b9 20 d1 81 d1 82 d1 80 d0  ........ .......
1910: be d0 ba d0 b8 2e 0d 0a 20 20 20 20 20 20 20 20  ........        
1920: 20 20 20 20 6c 69 6e 65 73 2e 70 75 73 68 28 74      lines.push(t
1930: 77 2e 6c 69 6e 65 28 62 65 67 69 6e 52 6f 77 29  w.line(beginRow)
1940: 2e 73 75 62 73 74 72 28 62 65 67 69 6e 43 6f 6c  .substr(beginCol
1950: 20 2d 20 31 29 29 3b 0d 0a 20 20 20 20 20 20 20   - 1));..       
1960: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20       ..         
1970: 20 20 20 2f 2f 20 32 2e 20 d0 a1 d1 82 d1 80 d0     // 2. .......
1980: be d0 ba d0 b8 2c 20 d0 bd d0 b0 d1 87 d0 b8 d0  ....., .........
1990: bd d0 b0 d1 8f 20 d1 81 d0 be 20 d0 b2 d1 82 d0  ..... .... .....
19a0: be d1 80 d0 be d0 b9 20 d0 b8 20 d0 b4 d0 be 20  ....... .. .... 
19b0: d0 bf d1 80 d0 b5 d0 b4 d0 bf d0 be d1 81 d0 bb  ................
19c0: d0 b5 d0 b4 d0 bd d0 b5 d0 b9 2e 0d 0a 20 20 20  .............   
19d0: 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61           for (va
19e0: 72 20 72 6f 77 3d 62 65 67 69 6e 52 6f 77 20 2b  r row=beginRow +
19f0: 20 31 3b 20 72 6f 77 20 3c 3d 20 65 6e 64 52 6f   1; row <= endRo
1a00: 77 20 2d 20 31 3b 20 72 6f 77 2b 2b 29 0d 0a 20  w - 1; row++).. 
1a10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c                 l
1a20: 69 6e 65 73 2e 70 75 73 68 28 74 77 2e 6c 69 6e  ines.push(tw.lin
1a30: 65 28 72 6f 77 29 29 3b 0d 0a 0d 0a 20 20 20 20  e(row));....    
1a40: 20 20 20 20 20 20 20 20 2f 2f 20 33 2e 20 d0 9f          // 3. ..
1a50: d0 be d1 81 d0 bb d0 b5 d0 b4 d0 bd d1 8f d1 8f  ................
1a60: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 2d 20   ............ - 
1a70: d0 be d1 82 20 d0 bf d0 b5 d1 80 d0 b2 d0 be d0  .... ...........
1a80: b3 d0 be 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb  ... ............
1a90: d0 b0 20 d0 b8 20 d0 b4 d0 be 20 d0 bf d0 be d1  .. .. .... .....
1aa0: 81 d0 bb d0 b5 d0 b4 d0 bd d0 b5 d0 b9 20 d0 ba  ............. ..
1ab0: d0 be d0 bb d0 be d0 bd d0 ba d0 b8 20 d0 be d0  ............ ...
1ac0: b1 d0 bb d0 b0 d1 81 d1 82 d0 b8 2e 0d 0a 20 20  ..............  
1ad0: 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 73 2e            lines.
1ae0: 70 75 73 68 28 74 77 2e 6c 69 6e 65 28 65 6e 64  push(tw.line(end
1af0: 52 6f 77 29 2e 73 75 62 73 74 72 28 30 2c 20 65  Row).substr(0, e
1b00: 6e 64 43 6f 6c 29 29 3b 0d 0a 0d 0a 20 20 20 20  ndCol));....    
1b10: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6c          return l
1b20: 69 6e 65 73 3b 0d 0a 20 20 20 20 20 20 20 20 7d  ines;..        }
1b30: 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20  ;....        // 
1b40: d0 92 d0 be d0 b7 d0 b2 d1 80 d0 b0 d1 89 d0 b0  ................
1b50: d0 b5 d1 82 20 d1 81 d1 82 d1 80 d0 be d0 ba d0  .... ...........
1b60: b8 20 d0 be d0 b1 d0 bb d0 b0 d1 81 d1 82 d0 b8  . ..............
1b70: 20 d0 b2 20 d0 b2 d0 b8 d0 b4 d0 b5 20 d0 be d0   .. ........ ...
1b80: b4 d0 bd d0 be d0 b9 20 d0 bc d1 83 d0 bb d1 8c  ....... ........
1b90: d1 82 d0 b8 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8  ................
1ba0: 20 28 d1 80 d0 b0 d0 b7 d0 b4 d0 b5 d0 bb d0 b8   (..............
1bb0: d1 82 d0 b5 d0 bb d1 8c 20 d1 81 d1 82 d1 80 d0  ........ .......
1bc0: be d0 ba 20 2d 20 5c 6e 29 2e 0d 0a 20 20 20 20  ... - \n)...    
1bd0: 20 20 20 20 76 61 72 20 67 65 74 54 65 78 74 20      var getText 
1be0: 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a  = function() {..
1bf0: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75              retu
1c00: 72 6e 20 67 65 74 4c 69 6e 65 73 28 29 2e 6a 6f  rn getLines().jo
1c10: 69 6e 28 22 5c 6e 22 29 3b 0d 0a 20 20 20 20 20  in("\n");..     
1c20: 20 20 20 7d 3b 0d 0a 0d 0a 20 20 20 20 20 20 20     };....       
1c30: 20 76 61 72 20 73 65 74 54 65 78 74 20 3d 20 66   var setText = f
1c40: 75 6e 63 74 69 6f 6e 28 74 65 78 74 29 20 7b 20  unction(text) { 
1c50: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
1c60: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20       ..         
1c70: 20 20 20 2f 2f 2f 2f 31 2e 20 d0 97 d0 b0 d0 bf     ////1. ......
1c80: d0 be d0 bc d0 bd d0 b8 d1 82 d1 8c 20 d1 82 d0  ............ ...
1c90: b5 d0 ba d1 83 d1 89 d1 83 d1 8e 20 d0 bf d0 be  ........... ....
1ca0: d0 b7 d0 b8 d1 86 d0 b8 d1 8e 20 d0 ba d1 83 d1  .......... .....
1cb0: 80 d1 81 d0 be d1 80 d0 b0 20 d0 b8 20 d0 b2 d1  ......... .. ...
1cc0: 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5 2e  ................
1cd0: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
1ce0: 20 20 20 20 20 20 76 61 72 20 63 75 72 50 6f 73        var curPos
1cf0: 20 3d 20 74 77 2e 67 65 74 43 61 72 65 74 50 6f   = tw.getCaretPo
1d00: 73 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  s();..          
1d10: 20 20 76 61 72 20 63 75 72 53 65 6c 20 3d 20 74    var curSel = t
1d20: 77 2e 67 65 74 53 65 6c 65 63 74 69 6f 6e 28 29  w.getSelection()
1d30: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d  ;..            .
1d40: 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f  .            ///
1d50: 2f 32 2e 20 d1 83 d1 81 d1 82 d0 b0 d0 bd d0 be  /2. ............
1d60: d0 b2 d0 b8 d1 82 d1 8c 20 d0 b2 d1 8b d0 b4 d0  ........ .......
1d70: b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5 20 d0 b2 20 d1  ........... .. .
1d80: 81 d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1  ................
1d90: 82 d0 b2 d0 b8 d0 b8 20 d1 81 20 d0 ba d0 be d0  ....... .. .....
1da0: be d1 80 d0 b4 d0 b8 d0 bd d0 b0 d1 82 d0 b0 d0  ................
1db0: bc d0 b8 20 52 61 6e 67 65 0d 0a 20 20 20 20 20  ... Range..     
1dc0: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
1dd0: 20 20 20 20 20 2f 2a 20 d0 98 20 d1 81 d0 bd d0       /* .. .....
1de0: be d0 b2 d0 b0 20 d1 87 d0 b5 d1 85 d0 b0 d1 80  ..... ..........
1df0: d0 b4 d0 b0 20 d1 81 20 d0 b8 d0 bd d0 b4 d0 b5  .... .. ........
1e00: d0 ba d1 81 d0 b0 d0 bc d0 b8 3a 20 d0 b2 d1 8b  ..........: ....
1e10: d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5 20 d0  .............. .
1e20: b2 d0 ba d0 bb d1 8e d1 87 d0 b0 d0 b5 d1 82 20  ............... 
1e30: d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb d1 8b 0d 0a  ................
1e40: 20 20 20 20 20 20 20 20 20 20 20 20 d0 b2 d0 bf              ....
1e50: d0 bb d0 be d1 82 d1 8c 20 d0 b4 d0 be 20 d0 bf  ........ .... ..
1e60: d0 be d0 b7 d0 b8 d1 86 d0 b8 d0 b8 20 d0 ba d0  ............ ...
1e70: b0 d1 80 d0 b5 d1 82 d0 ba d0 b8 2c 20 d1 82 2e  ..........., ...
1e80: d0 b5 2e 20 d0 b5 d1 81 d0 bb d0 b8 20 d0 bc d1  ... ........ ...
1e90: 8b 20 d1 85 d0 be d1 82 d0 b8 d0 bc 2c 20 d1 87  . .........., ..
1ea0: d1 82 d0 be d0 b1 d1 8b 20 d1 81 d0 b8 d0 bc d0  ........ .......
1eb0: b2 d0 be d0 bb 20 0d 0a 20 20 20 20 20 20 20 20  ..... ..        
1ec0: 20 20 20 20 d0 b2 20 d0 bf d0 be d0 b7 d0 b8 d1      .. .........
1ed0: 86 d0 b8 d0 b8 20 65 6e 64 43 6f 6c 20 d0 bf d0  ..... endCol ...
1ee0: be d0 bf d0 b0 d0 bb 20 d0 b2 20 d0 b2 d1 8b d0  ....... .. .....
1ef0: b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b5 2c 20 d0  ............., .
1f00: bc d1 8b 20 d0 ba d0 b0 d1 80 d0 b5 d1 82 d0 ba  ... ............
1f10: d1 83 20 d0 b4 d0 be d0 bb d0 b6 d0 bd d1 8b 20  .. ............ 
1f20: d0 bf d0 be d1 81 d1 82 d0 b0 d0 b2 d0 b8 d1 82  ................
1f30: d1 8c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ....            
1f40: d0 b2 20 d0 bf d0 be d0 b7 d0 b8 d1 86 d0 b8 d1  .. .............
1f50: 8e 20 28 65 6e 64 43 6f 6c 20 2b 20 31 29 2e 20  . (endCol + 1). 
1f60: 2a 2f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  */..            
1f70: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61  ..            va
1f80: 72 20 5f 6c 69 6e 65 20 3d 20 74 77 2e 6c 69 6e  r _line = tw.lin
1f90: 65 28 65 6e 64 52 6f 77 29 3b 20 69 66 20 28 28  e(endRow); if ((
1fa0: 5f 6c 69 6e 65 20 3d 3d 20 27 27 29 20 7c 7c 20  _line == '') || 
1fb0: 28 5f 6c 69 6e 65 2e 63 68 61 72 41 74 28 5f 6c  (_line.charAt(_l
1fc0: 69 6e 65 2e 6c 65 6e 67 74 68 2d 31 29 20 3d 3d  ine.length-1) ==
1fd0: 20 27 5c 72 27 29 29 20 65 6e 64 43 6f 6c 2d 2d   '\r')) endCol--
1fe0: 3b 20 2f 2f 49 54 65 78 74 57 69 6e 64 6f 77 2d  ; //ITextWindow-
1ff0: 3e 6c 69 6e 65 28 29 20 d0 bf d0 be d0 bb d1 83  >line() ........
2000: d1 87 d0 b0 d0 b5 d1 82 20 d0 b2 d1 81 d1 91 20  ........ ...... 
2010: d1 87 d1 82 d0 be 20 d0 b4 d0 be 20 d1 81 d0 b8  ...... .... ....
2020: d0 bc d0 b2 d0 be d0 bb d0 b0 20 27 5c 6e 27 2c  .......... '\n',
2030: 20 d1 82 2e d0 b5 20 d0 b5 d1 81 d0 bb d0 b8 20   ..... ........ 
2040: d0 ba d0 be d0 bd d0 b5 d1 86 20 d1 81 d1 82 d1  .......... .....
2050: 80 d0 be d0 ba d0 b8 20 d1 80 d0 b0 d0 b2 d0 b5  ....... ........
2060: d0 bd 20 27 5c 72 5c 6e 27 20 d1 82 d0 be 20 d0  .. '\r\n' .... .
2070: bc d0 b5 d1 82 d0 be d0 b4 20 d0 b2 d0 b5 d1 80  ......... ......
2080: d0 bd d0 b5 d1 82 20 d1 81 d1 82 d1 80 d0 be d0  ...... .........
2090: ba d1 83 20 d1 81 20 27 5c 72 27 20 d0 b2 20 d0  ... .. '\r' .. .
20a0: ba d0 be d0 bd d1 86 d0 b5 0d 0a 20 20 20 20 20  ...........     
20b0: 20 20 20 20 20 20 20 74 77 2e 73 65 74 53 65 6c         tw.setSel
20c0: 65 63 74 69 6f 6e 28 62 65 67 69 6e 52 6f 77 2c  ection(beginRow,
20d0: 20 62 65 67 69 6e 43 6f 6c 2c 20 65 6e 64 52 6f   beginCol, endRo
20e0: 77 2c 20 65 6e 64 43 6f 6c 2b 31 29 3b 0d 0a 20  w, endCol+1);.. 
20f0: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
2100: 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 33 2e 20           ////3. 
2110: d1 83 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0 b8  ................
2120: d1 82 d1 8c 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0  .... ...........
2130: b5 d0 bd d0 bd d1 8b d0 b9 20 d1 82 d0 b5 d0 ba  ......... ......
2140: d1 81 d1 82 0d 0a 20 20 20 20 20 20 20 20 20 20  ......          
2150: 20 20 74 77 2e 73 65 6c 65 63 74 65 64 54 65 78    tw.selectedTex
2160: 74 20 3d 20 74 65 78 74 3b 0d 0a 20 20 20 20 20  t = text;..     
2170: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
2180: 20 20 20 20 20 2f 2f 2f 2f 34 2e 20 d0 b2 d0 b5       ////4. ....
2190: d1 80 d0 bd d1 83 d1 82 d1 8c 20 d0 bf d0 be d0  .......... .....
21a0: bb d0 be d0 b6 d0 b5 d0 bd d0 b8 d0 b5 20 d0 ba  ............. ..
21b0: d1 83 d1 80 d1 81 d0 be d1 80 d0 b0 20 d0 b2 20  ............ .. 
21c0: d0 bf d1 80 d0 b5 d0 b6 d0 bd d1 8e d1 8e 20 d0  .............. .
21d0: bf d0 be d0 b7 d0 b8 d1 86 d0 b8 d1 8e 2e 0d 0a  ................
21e0: 20 20 20 20 20 20 20 20 20 20 20 20 74 77 2e 73              tw.s
21f0: 65 74 53 65 6c 65 63 74 69 6f 6e 28 63 75 72 53  etSelection(curS
2200: 65 6c 2e 62 65 67 69 6e 52 6f 77 2c 20 63 75 72  el.beginRow, cur
2210: 53 65 6c 2e 62 65 67 69 6e 43 6f 6c 2c 20 63 75  Sel.beginCol, cu
2220: 72 53 65 6c 2e 65 6e 64 52 6f 77 2c 20 63 75 72  rSel.endRow, cur
2230: 53 65 6c 2e 65 6e 64 43 6f 6c 29 3b 0d 0a 20 20  Sel.endCol);..  
2240: 20 20 20 20 20 20 20 20 20 20 74 77 2e 73 65 74            tw.set
2250: 43 61 72 65 74 50 6f 73 28 63 75 72 50 6f 73 2e  CaretPos(curPos.
2260: 62 65 67 69 6e 52 6f 77 2c 20 63 75 72 50 6f 73  beginRow, curPos
2270: 2e 62 65 67 69 6e 43 6f 6c 29 3b 0d 0a 20 20 20  .beginCol);..   
2280: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20       }..        
2290: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0 92 d0  ..        // ...
22a0: be d0 b7 d0 b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d0  ................
22b0: bc 20 d0 bd d0 b0 d1 88 20 d0 bf d1 81 d0 b5 d0  . ...... .......
22c0: b2 d0 b4 d0 be 20 2d 20 52 61 6e 67 65 0d 0a 20  ..... - Range.. 
22d0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 7b 20         return { 
22e0: 47 65 74 4c 69 6e 65 73 3a 20 67 65 74 4c 69 6e  GetLines: getLin
22f0: 65 73 2c 20 47 65 74 54 65 78 74 3a 20 67 65 74  es, GetText: get
2300: 54 65 78 74 2c 20 53 65 74 54 65 78 74 3a 20 73  Text, SetText: s
2310: 65 74 54 65 78 74 20 7d 3b 0d 0a 0d 0a 20 20 20  etText };....   
2320: 20 7d 2c 0d 0a 0d 0a 20 20 20 20 2f 2a 2a 20 41   },....    /** A
2330: 72 72 61 79 20 5f 54 65 78 74 57 69 6e 64 6f 77  rray _TextWindow
2340: 3a 3a 4c 69 6e 65 73 28 5b 66 72 6f 6d 20 5b 2c  ::Lines([from [,
2350: 74 6f 5d 5d 29 2a 2f 0d 0a 20 20 20 20 47 65 74  to]])*/..    Get
2360: 4c 69 6e 65 73 20 3a 20 66 75 6e 63 74 69 6f 6e  Lines : function
2370: 20 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 20 20 20   () {....       
2380: 20 2f 2f 20 d0 95 d1 81 d0 bb d0 b8 20 d0 bd d0   // ........ ...
2390: b5 20 d0 b7 d0 b0 d0 b4 d0 b0 d0 bd d0 be 20 d0  . ............ .
23a0: bd d0 b8 20 d0 be d0 b4 d0 bd d0 be d0 b3 d0 be  ... ............
23b0: 20 d0 bf d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82 d1   ...............
23c0: 80 d0 b0 2c 20 d1 82 d0 be 20 d0 b2 d0 be d0 b7  ..., .... ......
23d0: d0 b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d0 bc 20 d0  .............. .
23e0: b2 d1 81 d0 b5 20 d1 81 d1 82 d1 80 d0 be d0 ba  ..... ..........
23f0: d0 b8 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20  .....        // 
2400: d0 95 d1 81 d0 bb d0 b8 20 d0 b7 d0 b0 d0 b4 d0  ........ .......
2410: b0 d0 bd 20 d1 82 d0 be d0 bb d1 8c d0 ba d0 be  ... ............
2420: 20 d0 bf d0 b5 d1 80 d0 b2 d1 8b d0 b9 20 d0 bf   ............ ..
2430: d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82 d1 80 2c 20  .............., 
2440: d1 82 d0 be 20 d0 b2 d0 be d0 b7 d0 b2 d1 80 d0  .... ...........
2450: b0 d1 89 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d0 b7  ............. ..
2460: d0 b0 d0 b4 d0 b0 d0 bd d0 bd d0 b0 d1 8f 20 d1  .............. .
2470: 81 d1 82 d1 80 d0 be d0 ba d0 b0 2e 0d 0a 20 20  ..............  
2480: 20 20 20 20 20 20 2f 2f 20 d0 95 d1 81 d0 bb d0        // .......
2490: b8 20 d0 b7 d0 b0 d0 b4 d0 b0 d0 bd d1 8b 20 d0  . ............ .
24a0: be d0 b1 d0 b0 20 d0 bf d0 b0 d1 80 d0 b0 d0 bc  ..... ..........
24b0: d0 b5 d1 82 d1 80 d0 b0 2c 20 d0 b2 d0 be d0 b7  ........, ......
24c0: d0 b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d0 bc 20 d0  .............. .
24d0: b4 d0 b8 d0 b0 d0 bf d0 b0 d0 b7 d0 be d0 bd 20  ............... 
24e0: d1 81 d1 82 d1 80 d0 be d0 ba 2e 0d 0a 0d 0a 20  ............... 
24f0: 20 20 20 20 20 20 20 76 61 72 20 62 65 67 69 6e         var begin
2500: 52 6f 77 2c 20 65 6e 64 52 6f 77 3b 0d 0a 0d 0a  Row, endRow;....
2510: 20 20 20 20 20 20 20 20 69 66 20 28 21 61 72 67          if (!arg
2520: 75 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 29 0d 0a  uments.length)..
2530: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
2540: 20 20 20 20 20 20 20 62 65 67 69 6e 52 6f 77 20         beginRow 
2550: 3d 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  = 1;..          
2560: 20 20 65 6e 64 52 6f 77 20 3d 20 74 68 69 73 2e    endRow = this.
2570: 74 65 78 74 57 69 6e 64 6f 77 2e 6c 69 6e 65 73  textWindow.lines
2580: 43 6f 75 6e 74 3b 0d 0a 20 20 20 20 20 20 20 20  Count;..        
2590: 7d 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20  }..        else 
25a0: 69 66 20 28 61 72 67 75 6d 65 6e 74 73 2e 6c 65  if (arguments.le
25b0: 6e 67 74 68 20 3d 3d 20 31 29 20 0d 0a 20 20 20  ngth == 1) ..   
25c0: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
25d0: 20 20 20 20 62 65 67 69 6e 52 6f 77 20 3d 20 61      beginRow = a
25e0: 72 67 75 6d 65 6e 74 73 5b 30 5d 3b 0d 0a 20 20  rguments[0];..  
25f0: 20 20 20 20 20 20 20 20 20 20 65 6e 64 52 6f 77            endRow
2600: 20 3d 20 62 65 67 69 6e 52 6f 77 3b 0d 0a 20 20   = beginRow;..  
2610: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20        }..       
2620: 20 65 6c 73 65 20 69 66 20 28 61 72 67 75 6d 65   else if (argume
2630: 6e 74 73 2e 6c 65 6e 67 74 68 20 3e 20 31 29 0d  nts.length > 1).
2640: 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20  .        {..    
2650: 20 20 20 20 20 20 20 20 62 65 67 69 6e 52 6f 77          beginRow
2660: 20 3d 20 61 72 67 75 6d 65 6e 74 73 5b 30 5d 3b   = arguments[0];
2670: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e  ..            en
2680: 64 52 6f 77 20 3d 20 61 72 67 75 6d 65 6e 74 73  dRow = arguments
2690: 5b 31 5d 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d  [1];..        }.
26a0: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20  .        ..     
26b0: 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 52     return this.R
26c0: 61 6e 67 65 28 62 65 67 69 6e 52 6f 77 2c 20 31  ange(beginRow, 1
26d0: 2c 20 65 6e 64 52 6f 77 29 2e 47 65 74 4c 69 6e  , endRow).GetLin
26e0: 65 73 28 29 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d  es();..    },...
26f0: 0a 20 20 20 20 2f 2a 2a 20 d0 92 d0 be d0 b7 d0  .    /** .......
2700: b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d1 82 20 d1 81  ............. ..
2710: d0 bb d0 be d0 b2 d0 be 20 d0 bf d0 be d0 b4 20  ........ ...... 
2720: d0 ba d1 83 d1 80 d1 81 d0 be d1 80 d0 be d0 bc  ................
2730: 2e 20 2a 2f 0d 0a 20 20 20 20 47 65 74 57 6f 72  . */..    GetWor
2740: 64 55 6e 64 65 72 43 75 72 73 6f 72 20 3a 20 66  dUnderCursor : f
2750: 75 6e 63 74 69 6f 6e 20 28 72 65 29 20 7b 0d 0a  unction (re) {..
2760: 0d 0a 20 20 20 20 20 20 20 20 2f 2a 54 4f 44 4f  ..        /*TODO
2770: 3a 20 d0 94 d0 be d0 b1 d0 b0 d0 b2 d0 b8 d1 82  : ..............
2780: d1 8c 20 d0 bd d0 b5 d0 be d0 b1 d1 8f d0 b7 d0  .. .............
2790: b0 d1 82 d0 b5 d0 bb d1 8c d0 bd d1 8b d0 b9 20  ............... 
27a0: d0 bf d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82 d1 80  ................
27b0: 3a 20 d1 80 d0 b5 d0 b3 d1 83 d0 bb d1 8f d1 80  : ..............
27c0: d0 bd d0 be d0 b5 20 d0 b2 d1 8b d1 80 d0 b0 d0  ...... .........
27d0: b6 d0 b5 d0 bd d0 b8 d0 b5 20 d0 b4 d0 bb d1 8f  ......... ......
27e0: 20 d0 bf d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0   ...............
27f0: b8 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb d0 be  . ..............
2800: d0 b2 20 d1 81 d0 bb d0 be d0 b2 d0 b0 2e 20 2a  .. ........... *
2810: 2f 0d 0a 0d 0a 20 20 20 20 20 20 20 20 76 61 72  /....        var
2820: 20 70 6f 73 20 3d 20 74 68 69 73 2e 47 65 74 43   pos = this.GetC
2830: 61 72 65 74 50 6f 73 28 29 3b 0d 0a 20 20 20 20  aretPos();..    
2840: 20 20 20 20 76 61 72 20 6c 69 6e 65 20 3d 20 74      var line = t
2850: 68 69 73 2e 47 65 74 4c 69 6e 65 28 70 6f 73 2e  his.GetLine(pos.
2860: 62 65 67 69 6e 52 6f 77 29 3b 0d 0a 20 20 20 20  beginRow);..    
2870: 20 20 20 20 76 61 72 20 69 73 43 68 61 72 20 3d      var isChar =
2880: 20 72 65 20 3f 20 72 65 20 3a 20 2f 5b 5c 77 5c   re ? re : /[\w\
2890: 64 d0 90 2d d1 8f 5d 2f 3b 0d 0a 0d 0a 20 20 20  d..-..]/;....   
28a0: 20 20 20 20 20 76 61 72 20 77 6f 72 64 42 65 67       var wordBeg
28b0: 50 6f 73 20 3d 20 70 6f 73 2e 62 65 67 69 6e 43  Pos = pos.beginC
28c0: 6f 6c 20 2d 20 32 3b 0d 0a 20 20 20 20 20 20 20  ol - 2;..       
28d0: 20 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21   ..        if (!
28e0: 69 73 43 68 61 72 2e 74 65 73 74 28 6c 69 6e 65  isChar.test(line
28f0: 2e 63 68 61 72 41 74 28 77 6f 72 64 42 65 67 50  .charAt(wordBegP
2900: 6f 73 29 29 29 0d 0a 20 20 20 20 20 20 20 20 20  os)))..         
2910: 20 20 20 72 65 74 75 72 6e 20 27 27 3b 0d 0a 20     return '';.. 
2920: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
2930: 20 20 20 20 20 77 68 69 6c 65 20 28 77 6f 72 64       while (word
2940: 42 65 67 50 6f 73 20 3e 20 30 29 0d 0a 20 20 20  BegPos > 0)..   
2950: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
2960: 20 20 20 20 69 66 20 28 21 69 73 43 68 61 72 2e      if (!isChar.
2970: 74 65 73 74 28 6c 69 6e 65 2e 63 68 61 72 41 74  test(line.charAt
2980: 28 77 6f 72 64 42 65 67 50 6f 73 20 2d 20 31 29  (wordBegPos - 1)
2990: 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ))..            
29a0: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20      break;..    
29b0: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20              ..  
29c0: 20 20 20 20 20 20 20 20 20 20 77 6f 72 64 42 65            wordBe
29d0: 67 50 6f 73 2d 2d 3b 0d 0a 20 20 20 20 20 20 20  gPos--;..       
29e0: 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   }..            
29f0: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 77 6f  ..        var wo
2a00: 72 64 45 6e 64 50 6f 73 20 3d 20 70 6f 73 2e 62  rdEndPos = pos.b
2a10: 65 67 69 6e 43 6f 6c 20 2d 20 32 3b 0d 0a 20 20  eginCol - 2;..  
2a20: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
2a30: 77 68 69 6c 65 20 28 77 6f 72 64 45 6e 64 50 6f  while (wordEndPo
2a40: 73 20 3c 20 6c 69 6e 65 2e 6c 65 6e 67 74 68 20  s < line.length 
2a50: 2d 20 31 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d  - 1)..        {.
2a60: 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20  .            if 
2a70: 28 21 69 73 43 68 61 72 2e 74 65 73 74 28 6c 69  (!isChar.test(li
2a80: 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64 45 6e  ne.charAt(wordEn
2a90: 64 50 6f 73 20 2b 20 31 29 29 29 0d 0a 20 20 20  dPos + 1)))..   
2aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65               bre
2ab0: 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ak;..           
2ac0: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20       ..         
2ad0: 20 20 20 77 6f 72 64 45 6e 64 50 6f 73 2b 2b 3b     wordEndPos++;
2ae0: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 7d 0d      ..        }.
2af0: 0a 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72  ...        retur
2b00: 6e 20 6c 69 6e 65 2e 73 75 62 73 74 72 28 77 6f  n line.substr(wo
2b10: 72 64 42 65 67 50 6f 73 2c 20 77 6f 72 64 45 6e  rdBegPos, wordEn
2b20: 64 50 6f 73 20 2d 20 77 6f 72 64 42 65 67 50 6f  dPos - wordBegPo
2b30: 73 20 2b 20 31 29 3b 0d 0a 20 20 20 20 7d 2c 0d  s + 1);..    },.
2b40: 0a 0d 0a 20 20 20 20 2f 2a 2a 20 d0 92 d0 be d0  ...    /** .....
2b50: b7 d0 b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d1 82 20  ............... 
2b60: d1 81 d1 82 d1 80 d0 be d0 ba d0 be d0 b2 d1 8b  ................
2b70: d0 b9 20 d0 bb d0 b8 d1 82 d0 b5 d1 80 d0 b0 d0  .. .............
2b80: bb 2c 20 d0 b2 d0 bd d1 83 d1 82 d1 80 d0 b8 20  ., ............ 
2b90: d0 ba d0 be d1 82 d0 be d1 80 d0 be d0 b3 d0 be  ................
2ba0: 20 d0 bd d0 b0 d1 85 d0 be d0 b4 d0 b8 d1 82 d1   ...............
2bb0: 81 d1 8f 20 d0 ba d1 83 d1 80 d1 81 d0 be d1 80  ... ............
2bc0: 2e 20 0d 0a 20 20 20 20 46 49 58 4d 45 3a 20 d0  . ..    FIXME: .
2bd0: a2 d0 b5 d0 ba d1 83 d1 89 d0 b0 d1 8f 20 d1 80  ............. ..
2be0: d0 b5 d0 b0 d0 bb d0 b8 d0 b7 d0 b0 d1 86 d0 b8  ................
2bf0: d1 8f 20 d0 bd d0 b5 d0 ba d0 be d1 80 d1 80 d0  .. .............
2c00: b5 d0 ba d1 82 d0 bd d0 be 20 d0 be d1 82 d1 80  ......... ......
2c10: d0 b0 d0 b1 d0 b0 d1 82 d1 8b d0 b2 d0 b0 d0 b5  ................
2c20: d1 82 20 d1 81 d0 b8 d1 82 d1 83 d0 b0 d1 86 d0  .. .............
2c30: b8 d1 8e 2c 20 d0 ba d0 be d0 b3 d0 b4 d0 b0 20  ..., .......... 
2c40: d0 ba d1 83 d1 80 d1 81 d0 be d1 80 0d 0a 20 20  ..............  
2c50: 20 20 d0 bd d0 b0 d1 85 d0 be d0 b4 d0 b8 d1 82    ..............
2c60: d1 81 d1 8f 20 d0 b2 d0 bd d0 b5 20 d1 81 d1 82  .... ...... ....
2c70: d1 80 d0 be d0 ba d0 be d0 b2 d0 be d0 b3 d0 be  ................
2c80: 20 d0 bb d0 b8 d1 82 d0 b5 d1 80 d0 b0 d0 bb d0   ...............
2c90: b0 20 d0 bc d0 b5 d0 b6 d0 b4 d1 83 20 d0 b3 d1  . .......... ...
2ca0: 80 d0 b0 d0 bd d0 b8 d1 86 d0 b0 d0 bc d0 b8 20  ............... 
2cb0: d0 b4 d0 b2 d1 83 d1 85 20 d0 b4 d1 80 d1 83 d0  ........ .......
2cc0: b3 d0 b8 d1 85 20 d1 81 d1 82 d1 80 d0 be d0 ba  ..... ..........
2cd0: d0 be d0 b2 d1 8b d1 85 20 20 0d 0a 20 20 20 20  ........  ..    
2ce0: d0 bb d0 b8 d1 82 d0 b5 d1 80 d0 b0 d0 bb d0 be  ................
2cf0: d0 b2 20 28 d1 81 d0 bc 2e 20 d1 82 d0 b5 d1 81  .. (..... ......
2d00: d1 82 20 6d 61 63 72 6f 73 54 65 73 74 31 30 20  .. macrosTest10 
2d10: d0 b2 20 74 65 73 74 54 65 78 74 57 69 6e 64 6f  .. testTextWindo
2d20: 77 5f 47 65 74 53 74 72 69 6e 67 55 6e 64 65 72  w_GetStringUnder
2d30: 43 75 72 73 6f 72 2e 6a 73 29 2e 20 2a 2f 0d 0a  Cursor.js). */..
2d40: 20 20 20 20 47 65 74 53 74 72 69 6e 67 55 6e 64      GetStringUnd
2d50: 65 72 43 75 72 73 6f 72 20 3a 20 66 75 6e 63 74  erCursor : funct
2d60: 69 6f 6e 20 28 29 20 7b 0d 0a 0d 0a 20 20 20 20  ion () {....    
2d70: 20 20 20 20 76 61 72 20 70 6f 73 20 3d 20 74 68      var pos = th
2d80: 69 73 2e 47 65 74 43 61 72 65 74 50 6f 73 28 29  is.GetCaretPos()
2d90: 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 76 61 72  ;....        var
2da0: 20 62 65 67 69 6e 52 6f 77 20 3d 20 70 6f 73 2e   beginRow = pos.
2db0: 62 65 67 69 6e 52 6f 77 3b 0d 0a 20 20 20 20 20  beginRow;..     
2dc0: 20 20 20 76 61 72 20 77 6f 72 64 42 65 67 50 6f     var wordBegPo
2dd0: 73 20 3d 20 70 6f 73 2e 62 65 67 69 6e 43 6f 6c  s = pos.beginCol
2de0: 20 2d 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 0d   - 1;..        .
2df0: 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0 94 d0 b0  .        // ....
2e00: d0 bb d0 b5 d0 b5 20 d0 b2 d0 b5 d0 b7 d0 b4 d0  ...... .........
2e10: b5 20 d0 bf d0 be d0 bc d0 bd d0 b8 d0 bc 2c 20  . ............, 
2e20: d1 87 d1 82 d0 be 20 d0 bd d1 83 d0 bc d0 b5 d1  ...... .........
2e30: 80 d0 b0 d1 86 d0 b8 d1 8f 20 d1 81 d1 82 d1 80  ......... ......
2e40: d0 be d0 ba 20 d0 bd d0 b0 d1 87 d0 b8 d0 bd d0  .... ...........
2e50: b0 d1 8e d1 82 d1 81 d1 8f 20 d1 81 20 31 2c 0d  ......... .. 1,.
2e60: 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0 b0 20 d0  .        // .. .
2e70: bd d1 83 d0 bc d0 b5 d1 80 d0 b0 d1 86 d0 b8 d1  ................
2e80: 8f 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb d0 be  . ..............
2e90: d0 b2 20 d0 b2 20 6a 73 2d d1 81 d1 82 d1 80 d0  .. .. js-.......
2ea0: be d0 ba d0 b5 20 2d 20 d1 81 20 30 2e 0d 0a 20  ..... - .. 0... 
2eb0: 20 20 20 20 20 20 20 76 61 72 20 6c 69 6e 65 20         var line 
2ec0: 3d 20 74 68 69 73 2e 47 65 74 4c 69 6e 65 28 70  = this.GetLine(p
2ed0: 6f 73 2e 62 65 67 69 6e 52 6f 77 29 3b 0d 0a 20  os.beginRow);.. 
2ee0: 20 20 20 20 20 20 20 76 61 72 20 73 74 72 20 3d         var str =
2ef0: 20 27 27 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a   '';..        ..
2f00: 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 74          while (t
2f10: 72 75 65 29 0d 0a 20 20 20 20 20 20 20 20 7b 20  rue)..        { 
2f20: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
2f30: 20 20 20 20 20 20 20 20 20 69 66 20 28 62 65 67           if (beg
2f40: 69 6e 52 6f 77 20 3c 20 31 20 7c 7c 20 77 6f 72  inRow < 1 || wor
2f50: 64 42 65 67 50 6f 73 20 3c 20 30 29 0d 0a 20 20  dBegPos < 0)..  
2f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65                re
2f70: 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20  turn null;..    
2f80: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20      ..          
2f90: 20 20 76 61 72 20 63 75 72 43 68 61 72 20 3d 20    var curChar = 
2fa0: 6c 69 6e 65 2e 63 68 61 72 41 74 28 77 6f 72 64  line.charAt(word
2fb0: 42 65 67 50 6f 73 29 3b 0d 0a 20 20 20 20 20 20  BegPos);..      
2fc0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
2fd0: 20 20 20 20 2f 2a 20 d0 95 d1 81 d0 bb d0 b8 20      /* ........ 
2fe0: d0 b2 d1 81 d1 82 d1 80 d0 b5 d1 82 d0 b8 d0 bb  ................
2ff0: d0 b0 d1 81 d1 8c 20 d0 b4 d0 b2 d0 be d0 b9 d0  ...... .........
3000: bd d0 b0 d1 8f 20 d0 ba d0 b0 d0 b2 d1 8b d1 87  ..... ..........
3010: d0 ba d0 b0 2c 20 d1 82 d0 be 20 d0 bb d0 b8 d0  ...., .... .....
3020: b1 d0 be 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0  ... ............
3030: 20 d0 b7 d0 b0 d0 b2 d0 b5 d1 80 d1 88 d0 b8 d0   ...............
3040: bb d0 b0 d1 81 d1 8c 2c 20 d0 bb d0 b8 d0 b1 d0  ......., .......
3050: be 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 d1  ...            .
3060: 80 d1 8f d0 b4 d0 be d0 bc 20 d0 b5 d1 81 d1 82  ......... ......
3070: d1 8c 20 d0 b5 d1 89 d0 b5 20 d0 be d0 b4 d0 bd  .. ...... ......
3080: d0 b0 20 d1 8d d0 ba d1 80 d0 b0 d0 bd d0 b8 d1  .. .............
3090: 80 d1 83 d1 8e d1 89 d0 b0 d1 8f 20 d0 b4 d0 b2  ........... ....
30a0: d0 be d0 b9 d0 bd d0 b0 d1 8f 20 d0 ba d0 b0 d0  .......... .....
30b0: b2 d1 8b d1 87 d0 ba d0 b0 2e 20 2a 2f 0d 0a 20  .......... */.. 
30c0: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63             if (c
30d0: 75 72 43 68 61 72 20 3d 3d 20 27 22 27 29 0d 0a  urChar == '"')..
30e0: 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20              {.. 
30f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69                 i
3100: 66 20 28 77 6f 72 64 42 65 67 50 6f 73 20 2d 20  f (wordBegPos - 
3110: 31 20 3e 20 2d 31 20 26 26 20 6c 69 6e 65 2e 63  1 > -1 && line.c
3120: 68 61 72 41 74 28 77 6f 72 64 42 65 67 50 6f 73  harAt(wordBegPos
3130: 20 2d 20 31 29 20 3d 3d 20 27 22 27 29 0d 0a 20   - 1) == '"').. 
3140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
3150: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
3160: 20 20 20 20 20 20 73 74 72 20 3d 20 27 22 27 20        str = '"' 
3170: 2b 20 73 74 72 3b 0d 0a 20 20 20 20 20 20 20 20  + str;..        
3180: 20 20 20 20 20 20 20 20 20 20 20 20 77 6f 72 64              word
3190: 42 65 67 50 6f 73 20 2d 3d 20 32 3b 0d 0a 20 20  BegPos -= 2;..  
31a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
31b0: 20 20 63 6f 6e 74 69 6e 75 65 3b 0d 0a 20 20 20    continue;..   
31c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 20               }  
31d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
31e0: 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20    ..            
31f0: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20      break;..    
3200: 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20          }..     
3210: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
3220: 20 20 20 20 20 2f 2a 20 d0 95 d1 81 d0 bb d0 b8       /* ........
3230: 20 d0 b2 d1 81 d1 82 d1 80 d0 b5 d1 82 d0 b8 d0   ...............
3240: bb d1 81 d1 8f 20 d1 81 d0 b8 d0 bc d0 b2 d0 be  ..... ..........
3250: d0 bb 20 d0 b2 d0 b5 d1 80 d1 82 d0 b8 d0 ba d0  .. .............
3260: b0 d0 bb d1 8c d0 bd d0 be d0 b9 20 d1 87 d0 b5  ........... ....
3270: d1 80 d1 82 d1 8b 2c 20 d1 82 d0 be 20 d0 b7 d0  ......, .... ...
3280: bd d0 b0 d1 87 d0 b8 d1 82 20 d0 bd d0 b0 d0 bc  ......... ......
3290: 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 d0   ..            .
32a0: b2 d1 81 d1 82 d1 80 d0 b5 d1 82 d0 b8 d0 bb d0  ................
32b0: b0 d1 81 d1 8c 20 d0 bc d1 83 d0 bb d1 8c d1 82  ..... ..........
32c0: d0 b8 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 2e 20  ............... 
32d0: d0 94 d0 be d0 b1 d0 b0 d0 b2 d0 bb d1 8f d0 b5  ................
32e0: d0 bc 20 d0 bf d0 b5 d1 80 d0 b5 d0 b2 d0 be d0  .. .............
32f0: b4 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8 20 d0  . ............ .
3300: b8 20 d0 bf d1 80 d0 be d0 b4 d0 be d0 bb d0 b6  . ..............
3310: d0 b0 d0 b5 d0 bc 20 0d 0a 20 20 20 20 20 20 20  ...... ..       
3320: 20 20 20 20 20 d0 bf d0 b0 d1 80 d1 81 d0 b8 d0       ...........
3330: bd d0 b3 20 d1 81 20 d0 ba d0 be d0 bd d1 86 d0  ... .. .........
3340: b0 20 d0 b1 d0 bb d0 b8 d0 b7 d0 bb d0 b5 d0 b6  . ..............
3350: d0 b0 d0 b9 d1 88 d0 b5 d0 b9 20 d0 b2 d0 b5 d1  .......... .....
3360: 80 d1 85 d0 bd d0 b5 d0 b9 20 d1 81 d1 82 d1 80  ......... ......
3370: d0 be d0 ba d0 b8 2e 20 2a 2f 0d 0a 20 20 20 20  ....... */..    
3380: 20 20 20 20 20 20 20 20 69 66 20 28 63 75 72 43          if (curC
3390: 68 61 72 20 3d 3d 20 27 7c 27 29 0d 0a 20 20 20  har == '|')..   
33a0: 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20           {..    
33b0: 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 20              str 
33c0: 3d 20 22 5c 6e 22 20 2b 20 73 74 72 3b 0d 0a 20  = "\n" + str;.. 
33d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62                 b
33e0: 65 67 69 6e 52 6f 77 2d 2d 3b 0d 0a 20 20 20 20  eginRow--;..    
33f0: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28              if (
3400: 62 65 67 69 6e 52 6f 77 20 3c 20 31 29 20 0d 0a  beginRow < 1) ..
3410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3420: 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b      return null;
3430: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
3440: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
3450: 20 20 20 20 20 20 20 20 6c 69 6e 65 20 3d 20 74          line = t
3460: 68 69 73 2e 47 65 74 4c 69 6e 65 28 62 65 67 69  his.GetLine(begi
3470: 6e 52 6f 77 29 3b 0d 0a 20 20 20 20 20 20 20 20  nRow);..        
3480: 20 20 20 20 20 20 20 20 77 6f 72 64 42 65 67 50          wordBegP
3490: 6f 73 20 3d 20 6c 69 6e 65 2e 6c 65 6e 67 74 68  os = line.length
34a0: 20 2d 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20   - 1;..         
34b0: 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b         continue;
34c0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d  ..            }.
34d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
34e0: 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f   ..            /
34f0: 2a 20 d0 92 20 d0 be d1 81 d1 82 d0 b0 d0 bb d1  * .. ...........
3500: 8c d0 bd d1 8b d1 85 20 d1 81 d0 bb d1 83 d1 87  ....... ........
3510: d0 b0 d1 8f d1 85 20 d0 b2 d1 81 d1 82 d1 80 d0  ...... .........
3520: b5 d1 82 d0 b8 d0 bb d1 81 d1 8f 20 d0 be d0 b1  ........... ....
3530: d1 8b d1 87 d0 bd d1 8b d0 b9 20 d1 81 d0 b8 d0  .......... .....
3540: bc d0 b2 d0 be d0 bb 2c 20 d0 b4 d0 be d0 b1 d0  ......., .......
3550: b0 d0 b2 d0 bb d1 8f d0 b5 d0 bc 20 d0 b5 d0 b3  ........... ....
3560: d0 be 20 d0 ba 20 d1 81 d1 82 d1 80 d0 be d0 ba  .. .. ..........
3570: d0 b5 2e 20 2a 2f 0d 0a 20 20 20 20 20 20 20 20  ... */..        
3580: 20 20 20 20 73 74 72 20 3d 20 63 75 72 43 68 61      str = curCha
3590: 72 20 2b 20 73 74 72 3b 20 20 20 20 20 20 20 20  r + str;        
35a0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 6f  ..            wo
35b0: 72 64 42 65 67 50 6f 73 2d 2d 3b 0d 0a 20 20 20  rdBegPos--;..   
35c0: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20       }..        
35d0: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 76 61      ..        va
35e0: 72 20 65 6e 64 52 6f 77 20 3d 20 70 6f 73 2e 62  r endRow = pos.b
35f0: 65 67 69 6e 52 6f 77 3b 0d 0a 20 20 20 20 20 20  eginRow;..      
3600: 20 20 76 61 72 20 77 6f 72 64 45 6e 64 50 6f 73    var wordEndPos
3610: 20 3d 20 70 6f 73 2e 62 65 67 69 6e 43 6f 6c 3b   = pos.beginCol;
3620: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 6c 69  ..        var li
3630: 6e 65 73 43 6f 75 6e 74 20 3d 20 74 68 69 73 2e  nesCount = this.
3640: 4c 69 6e 65 73 43 6f 75 6e 74 28 29 3b 0d 0a 20  LinesCount();.. 
3650: 20 20 20 20 20 20 20 76 61 72 20 6c 69 6e 65 20         var line 
3660: 3d 20 74 68 69 73 2e 47 65 74 4c 69 6e 65 28 65  = this.GetLine(e
3670: 6e 64 52 6f 77 29 3b 0d 0a 20 20 20 20 20 20 20  ndRow);..       
3680: 20 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0 a0   ..        // ..
3690: d0 b5 d0 b3 d1 83 d0 bb d1 8f d1 80 d0 bd d0 be  ................
36a0: d0 b5 20 d0 b2 d1 8b d1 80 d0 b0 d0 b6 d0 b5 d0  .. .............
36b0: bd d0 b8 d0 b5 20 d0 b4 d0 bb d1 8f 20 d0 bf d1  ..... ...... ...
36c0: 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0 b8 20 d0 bd  ............. ..
36d0: d0 b0 d1 87 d0 b0 d0 bb d0 b0 20 d0 be d1 87 d0  .......... .....
36e0: b5 d1 80 d0 b5 d0 b4 d0 bd d0 be d0 b9 20 d1 81  ............. ..
36f0: d1 82 d1 80 d0 be d0 ba d0 b8 20 d0 b2 20 d0 bc  .......... .. ..
3700: d1 83 d0 bb d1 8c d1 82 d0 b8 d1 81 d1 82 d1 80  ................
3710: d0 be d0 ba d0 b5 2e 0d 0a 20 20 20 20 20 20 20  .........       
3720: 20 76 61 72 20 72 65 4d 75 6c 74 69 6c 69 6e 65   var reMultiline
3730: 53 74 72 69 6e 67 20 3d 20 6e 65 77 20 52 65 67  String = new Reg
3740: 45 78 70 28 27 5e 5c 73 2a 5c 7c 27 29 3b 0d 0a  Exp('^\s*\|');..
3750: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
3760: 20 20 77 68 69 6c 65 20 28 74 72 75 65 29 0d 0a    while (true)..
3770: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
3780: 20 20 20 20 20 20 20 69 66 20 28 65 6e 64 52 6f         if (endRo
3790: 77 20 3e 20 6c 69 6e 65 73 43 6f 75 6e 74 29 0d  w > linesCount).
37a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
37b0: 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20   return null;.. 
37c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
37d0: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
37e0: 20 20 20 20 20 20 20 20 20 69 66 20 28 77 6f 72           if (wor
37f0: 64 45 6e 64 50 6f 73 20 3e 3d 20 6c 69 6e 65 2e  dEndPos >= line.
3800: 6c 65 6e 67 74 68 29 20 0d 0a 20 20 20 20 20 20  length) ..      
3810: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
3820: 20 20 20 20 20 20 20 20 20 2f 2a 20 d0 9d d0 b0           /* ....
3830: d0 b4 d0 be 20 d0 bf d1 80 d0 be d0 b2 d0 b5 d1  .... ...........
3840: 80 d0 b8 d1 82 d1 8c 2c 20 d0 bd d0 b0 d1 85 d0  ......., .......
3850: be d0 b4 d0 b8 d0 bc d1 81 d1 8f 20 d0 bb d0 b8  ........... ....
3860: 20 d0 bc d1 8b 20 d0 b2 20 d0 bc d1 83 d0 bb d1   .... .. .......
3870: 8c d1 82 d0 b8 d1 81 d1 82 d1 80 d0 be d0 ba d0  ................
3880: b5 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ....            
3890: 20 20 20 20 d0 9a d1 80 d0 b8 d1 82 d0 b5 d1 80      ............
38a0: d0 b8 d0 b9 20 d0 bf d1 80 d0 be d0 b2 d0 b5 d1  .... ...........
38b0: 80 d0 ba d0 b8 3a 20 d0 bd d0 b0 d0 bb d0 b8 d1  .....: .........
38c0: 87 d0 b8 d0 b5 20 d0 b2 d0 b5 d1 80 d1 82 d0 b8  ..... ..........
38d0: d0 ba d0 b0 d0 bb d1 8c d0 bd d0 be d0 b9 20 d1  .............. .
38e0: 87 d0 b5 d1 80 d1 82 d1 8b 20 d0 b2 20 d1 81 d0  ......... .. ...
38f0: b0 d0 bc d0 be d0 bc 20 d0 bd d0 b0 d1 87 d0 b0  ....... ........
3900: d0 bb d0 b5 20 d1 81 d0 bb d0 b5 d0 b4 d1 83 d1  .... ...........
3910: 8e d1 89 d0 b5 d0 b9 20 d1 81 d1 82 d1 80 d0 be  ....... ........
3920: d0 ba d0 b8 2e 0d 0a 20 20 20 20 20 20 20 20 20  .......         
3930: 20 20 20 20 20 20 20 d0 95 d1 81 d0 bb d0 b8 20         ........ 
3940: d0 b4 d0 b0 2c 20 d0 bc d1 8b 20 d0 b2 20 d0 bc  ...., .... .. ..
3950: d1 83 d0 bb d1 8c d1 82 d0 b8 d1 81 d1 82 d1 80  ................
3960: d0 be d0 ba d0 b5 2c 20 d1 82 d0 be 20 d0 bf d1  ......, .... ...
3970: 80 d0 be d1 81 d1 82 d0 be 20 d0 bf d0 b5 d1 80  ......... ......
3980: d0 b5 d1 85 d0 be d0 b4 d0 b8 d0 bc 20 d0 ba 20  ............ .. 
3990: d0 be d0 b1 d1 80 d0 b0 d0 b1 d0 be d1 82 d0 ba  ................
39a0: d0 b5 20 d1 81 d0 bb d0 b5 d0 b4 d1 83 d1 8e d1  .. .............
39b0: 89 d0 b5 d0 b9 20 d1 81 d1 82 d1 80 d0 be d0 ba  ..... ..........
39c0: d0 b8 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20  .....           
39d0: 20 20 20 20 20 d0 95 d1 81 d0 bb d0 b8 20 d0 bd       ........ ..
39e0: d0 b5 d1 82 2c 20 d1 82 d0 be 20 d0 b7 d0 bd d0  ...., .... .....
39f0: b0 d1 87 d0 b8 d1 82 20 d0 b8 d0 bc d0 b5 d0 b5  ....... ........
3a00: d1 82 20 d0 bc d0 b5 d1 81 d1 82 d0 be 20 d0 b1  .. .......... ..
3a10: d1 8b d1 82 d1 8c 20 d1 81 d0 b8 d0 bd d1 82 d0  ...... .........
3a20: b0 d0 ba d1 81 d0 b8 d1 87 d0 b5 d1 81 d0 ba d0  ................
3a30: b0 d1 8f 20 d0 be d1 88 d0 b8 d0 b1 d0 ba d0 b0  ... ............
3a40: 2e 20 2a 2f 0d 0a 20 20 20 20 20 20 20 20 20 20  . */..          
3a50: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
3a60: 20 20 20 20 20 20 20 20 65 6e 64 52 6f 77 2b 2b          endRow++
3a70: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ;..             
3a80: 20 20 20 69 66 20 28 65 6e 64 52 6f 77 20 3e 20     if (endRow > 
3a90: 6c 69 6e 65 73 43 6f 75 6e 74 29 0d 0a 20 20 20  linesCount)..   
3aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3ab0: 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20   return null;.. 
3ac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d                 .
3ad0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
3ae0: 20 6c 69 6e 65 20 3d 20 74 68 69 73 2e 47 65 74   line = this.Get
3af0: 4c 69 6e 65 28 65 6e 64 52 6f 77 29 3b 0d 0a 20  Line(endRow);.. 
3b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d                 .
3b10: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
3b20: 20 2f 2f 20 d0 95 d1 81 d0 bb d0 b8 20 d1 81 d0   // ........ ...
3b30: bb d0 b5 d0 b4 d1 83 d1 8e d1 89 d0 b0 d1 8f 20  ............... 
3b40: d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 2d 20 d0  ............ - .
3b50: bd d0 b5 20 d0 bf d1 80 d0 be d0 b4 d0 be d0 bb  ... ............
3b60: d0 b6 d0 b5 d0 bd d0 b8 d0 b5 20 d0 bc d1 83 d0  .......... .....
3b70: bb d1 8c d1 82 d1 81 d1 82 d1 80 d0 be d0 ba d0  ................
3b80: b8 2c 20 d1 82 d0 be 20 d1 8d d1 82 d0 be 20 d0  ., .... ...... .
3b90: be d1 88 d0 b8 d0 b1 d0 ba d0 b0 2e 0d 0a 20 20  ..............  
3ba0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61                va
3bb0: 72 20 6d 61 74 63 68 20 3d 20 72 65 4d 75 6c 74  r match = reMult
3bc0: 69 6c 69 6e 65 53 74 72 69 6e 67 2e 65 78 65 63  ilineString.exec
3bd0: 28 6c 69 6e 65 29 3b 0d 0a 20 20 20 20 20 20 20  (line);..       
3be0: 20 20 20 20 20 20 20 20 20 69 66 20 28 21 6d 61           if (!ma
3bf0: 74 63 68 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c  tch) return null
3c00: 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ;....           
3c10: 20 20 20 20 20 2f 2f 20 d0 94 d0 be d0 b1 d0 b0       // ........
3c20: d0 b2 d0 bb d1 8f d0 b5 d0 bc 20 d0 bf d0 b5 d1  .......... .....
3c30: 80 d0 b5 d0 b2 d0 be d0 b4 20 d1 81 d1 82 d1 80  ......... ......
3c40: d0 be d0 ba d0 b8 20 d0 b8 20 d0 bf d1 80 d0 be  ...... .. ......
3c50: d0 b4 d0 be d0 bb d0 b6 d0 b0 d0 b5 d0 bc 20 d1  .............. .
3c60: 81 d0 be 20 d1 81 d0 bb d0 b5 d0 b4 d1 83 d1 8e  ... ............
3c70: d1 89 d0 b5 d0 b9 20 d0 b7 d0 b0 20 d0 b2 d0 b5  ...... .... ....
3c80: d1 80 d1 82 d0 b8 d0 ba d0 b0 d0 bb d1 8c d0 bd  ................
3c90: d0 be d0 b9 20 d1 87 d0 b5 d1 80 d1 82 d0 be d0  .... ...........
3ca0: b9 20 d0 bf d0 be d0 b7 d0 b8 d1 86 d0 b8 d0 b8  . ..............
3cb0: 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
3cc0: 20 20 20 73 74 72 20 2b 3d 20 22 5c 6e 22 3b 0d     str += "\n";.
3cd0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
3ce0: 20 77 6f 72 64 45 6e 64 50 6f 73 20 3d 20 72 65   wordEndPos = re
3cf0: 4d 75 6c 74 69 6c 69 6e 65 53 74 72 69 6e 67 2e  MultilineString.
3d00: 6c 61 73 74 49 6e 64 65 78 20 2b 20 31 3b 0d 0a  lastIndex + 1;..
3d10: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20              }.. 
3d20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3d30: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
3d40: 20 20 20 20 20 20 20 20 20 76 61 72 20 63 75 72           var cur
3d50: 43 68 61 72 20 3d 20 6c 69 6e 65 2e 63 68 61 72  Char = line.char
3d60: 41 74 28 77 6f 72 64 45 6e 64 50 6f 73 29 3b 0d  At(wordEndPos);.
3d70: 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20  .            .. 
3d80: 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 d0 95             /* ..
3d90: d1 81 d0 bb d0 b8 20 d0 b2 d1 81 d1 82 d1 80 d0  ...... .........
3da0: b5 d1 82 d0 b8 d0 bb d0 b0 d1 81 d1 8c 20 d0 b4  ............. ..
3db0: d0 b2 d0 be d0 b9 d0 bd d0 b0 d1 8f 20 d0 ba d0  ............ ...
3dc0: b0 d0 b2 d1 8b d1 87 d0 ba d0 b0 2c 20 d1 82 d0  ..........., ...
3dd0: be 20 d0 bb d0 b8 d0 b1 d0 be 20 d1 81 d1 82 d1  . ........ .....
3de0: 80 d0 be d0 ba d0 b0 20 d0 b7 d0 b0 d0 b2 d0 b5  ....... ........
3df0: d1 80 d1 88 d0 b8 d0 bb d0 b0 d1 81 d1 8c 2c 20  .............., 
3e00: d0 bb d0 b8 d0 b1 d0 be 0d 0a 20 20 20 20 20 20  ..........      
3e10: 20 20 20 20 20 20 d1 80 d1 8f d0 b4 d0 be d0 bc        ..........
3e20: 20 d0 b5 d1 81 d1 82 d1 8c 20 d0 b5 d1 89 d0 b5   ........ ......
3e30: 20 d0 be d0 b4 d0 bd d0 b0 20 d1 8d d0 ba d1 80   ........ ......
3e40: d0 b0 d0 bd d0 b8 d1 80 d1 83 d1 8e d1 89 d0 b0  ................
3e50: d1 8f 20 d0 b4 d0 b2 d0 be d0 b9 d0 bd d0 b0 d1  .. .............
3e60: 8f 20 d0 ba d0 b0 d0 b2 d1 8b d1 87 d0 ba d0 b0  . ..............
3e70: 2e 20 2a 2f 0d 0a 20 20 20 20 20 20 20 20 20 20  . */..          
3e80: 20 20 69 66 20 28 63 75 72 43 68 61 72 20 3d 3d    if (curChar ==
3e90: 20 27 22 27 29 0d 0a 20 20 20 20 20 20 20 20 20   '"')..         
3ea0: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20     {..          
3eb0: 20 20 20 20 20 20 69 66 20 28 77 6f 72 64 45 6e        if (wordEn
3ec0: 64 50 6f 73 20 2b 20 31 20 3c 20 6c 69 6e 65 2e  dPos + 1 < line.
3ed0: 6c 65 6e 67 74 68 20 26 26 20 6c 69 6e 65 2e 63  length && line.c
3ee0: 68 61 72 41 74 28 77 6f 72 64 45 6e 64 50 6f 73  harAt(wordEndPos
3ef0: 20 2b 20 31 29 20 3d 3d 20 27 22 27 29 0d 0a 20   + 1) == '"').. 
3f00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
3f10: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
3f20: 20 20 20 20 20 20 73 74 72 20 2b 3d 20 27 22 27        str += '"'
3f30: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ;..             
3f40: 20 20 20 20 20 20 20 77 6f 72 64 45 6e 64 50 6f         wordEndPo
3f50: 73 20 2b 3d 20 32 3b 0d 0a 20 20 20 20 20 20 20  s += 2;..       
3f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e               con
3f70: 74 69 6e 75 65 3b 0d 0a 20 20 20 20 20 20 20 20  tinue;..        
3f80: 20 20 20 20 20 20 20 20 7d 20 20 20 20 20 20 20          }       
3f90: 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20               .. 
3fa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62                 b
3fb0: 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20  reak;..         
3fc0: 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20     }....        
3fd0: 20 20 20 20 2f 2a 20 d0 92 20 d0 be d1 81 d1 82      /* .. ......
3fe0: d0 b0 d0 bb d1 8c d0 bd d1 8b d1 85 20 d1 81 d0  ............ ...
3ff0: bb d1 83 d1 87 d0 b0 d1 8f d1 85 20 d0 b2 d1 81  ........... ....
4000: d1 82 d1 80 d0 b5 d1 82 d0 b8 d0 bb d1 81 d1 8f  ................
4010: 20 d0 be d0 b1 d1 8b d1 87 d0 bd d1 8b d0 b9 20   .............. 
4020: d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb 2c 20 d0 b4  ............, ..
4030: d0 be d0 b1 d0 b0 d0 b2 d0 bb d1 8f d0 b5 d0 bc  ................
4040: 20 d0 b5 d0 b3 d0 be 20 d0 ba 20 d1 81 d1 82 d1   ...... .. .....
4050: 80 d0 be d0 ba d0 b5 2e 20 2a 2f 0d 0a 20 20 20  ........ */..   
4060: 20 20 20 20 20 20 20 20 20 73 74 72 20 2b 3d 20           str += 
4070: 63 75 72 43 68 61 72 3b 20 20 20 20 20 20 20 20  curChar;        
4080: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 6f  ..            wo
4090: 72 64 45 6e 64 50 6f 73 2b 2b 3b 20 20 20 20 20  rdEndPos++;     
40a0: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a     ..        }..
40b0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  ..        return
40c0: 20 73 74 72 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d   str;..    },...
40d0: 0a 20 20 20 20 2f 2f 20 d0 92 d0 be d0 b7 d0 b2  .    // ........
40e0: d1 80 d0 b0 d1 89 d0 b0 d0 b5 d1 82 20 d0 be d1  ............ ...
40f0: 82 d0 be d0 b1 d1 80 d0 b0 d0 b6 d0 b5 d0 bd d0  ................
4100: b8 d0 b5 2c 20 d1 81 d0 be d0 be d1 82 d0 b2 d0  ..., ...........
4110: b5 d1 82 d1 81 d1 82 d0 b2 d1 83 d1 8e d1 89 d0  ................
4120: b5 d0 b5 20 d0 b4 d0 b0 d0 bd d0 bd d0 be d0 bc  ... ............
4130: d1 83 20 d1 8d d0 ba d0 b7 d0 b5 d0 bc d0 bf d0  .. .............
4140: bb d1 8f d1 80 d1 83 20 d0 be d0 b1 d1 8a d0 b5  ....... ........
4150: d0 ba d1 82 d0 b0 20 54 65 78 74 57 69 6e 64 6f  ...... TextWindo
4160: 77 2e 0d 0a 20 20 20 20 47 65 74 56 69 65 77 20  w...    GetView 
4170: 3a 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0d  : function () {.
4180: 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69  .        if (thi
4190: 73 2e 5f 76 69 65 77 20 3d 3d 20 75 6e 64 65 66  s._view == undef
41a0: 69 6e 65 64 29 20 7b 0d 0a 20 20 20 20 20 20 20  ined) {..       
41b0: 20 20 20 20 20 76 61 72 20 76 69 65 77 20 3d 20       var view = 
41c0: 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20  null;..         
41d0: 20 20 20 76 61 72 20 74 77 6e 64 20 3d 20 74 68     var twnd = th
41e0: 69 73 2e 74 65 78 74 57 69 6e 64 6f 77 3b 0d 0a  is.textWindow;..
41f0: 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6e 63              func
4200: 74 69 6f 6e 20 77 61 6c 6b 57 69 6e 64 6f 77 73  tion walkWindows
4210: 28 76 69 65 77 73 29 20 7b 0d 0a 20 20 20 20 20  (views) {..     
4220: 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 76             for(v
4230: 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 76 69  ar i = 0; i < vi
4240: 65 77 73 2e 63 6f 75 6e 74 3b 20 69 2b 2b 29 20  ews.count; i++) 
4250: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  {..             
4260: 20 20 20 20 20 20 20 76 61 72 20 76 20 3d 20 76         var v = v
4270: 69 65 77 73 2e 69 74 65 6d 28 69 29 3b 0d 0a 20  iews.item(i);.. 
4280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4290: 20 20 20 69 66 20 28 76 2e 69 73 43 6f 6e 74 61     if (v.isConta
42a0: 69 6e 65 72 20 21 3d 20 76 63 74 4e 6f 29 0d 0a  iner != vctNo)..
42b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
42c0: 20 20 20 20 20 20 20 20 76 20 3d 20 77 61 6c 6b          v = walk
42d0: 57 69 6e 64 6f 77 73 28 76 2e 65 6e 75 6d 43 68  Windows(v.enumCh
42e0: 69 6c 64 73 28 29 29 3b 20 20 20 20 20 20 20 20  ilds());        
42f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4300: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
4310: 20 20 20 20 20 20 69 66 20 28 76 20 26 26 20 28        if (v && (
4320: 28 76 2e 68 77 6e 64 20 3d 3d 20 74 77 6e 64 2e  (v.hwnd == twnd.
4330: 68 77 6e 64 29 20 0d 0a 20 20 20 20 20 20 20 20  hwnd) ..        
4340: 20 20 20 20 20 20 20 20 20 20 20 20 7c 7c 20 28              || (
4350: 76 2e 6d 64 4f 62 6a 20 26 26 20 76 2e 6d 64 4f  v.mdObj && v.mdO
4360: 62 6a 20 3d 3d 20 74 77 6e 64 2e 6d 64 4f 62 6a  bj == twnd.mdObj
4370: 20 26 26 20 76 2e 6d 64 50 72 6f 70 20 3d 3d 20   && v.mdProp == 
4380: 74 77 6e 64 2e 6d 64 50 72 6f 70 29 29 29 0d 0a  twnd.mdProp)))..
4390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
43a0: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 76          return v
43b0: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ;..             
43c0: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20     }..          
43d0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c        return nul
43e0: 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  l;..            
43f0: 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74  }..            t
4400: 68 69 73 2e 5f 76 69 65 77 20 3d 20 77 61 6c 6b  his._view = walk
4410: 57 69 6e 64 6f 77 73 28 77 69 6e 64 6f 77 73 2e  Windows(windows.
4420: 6d 64 69 56 69 65 77 2e 65 6e 75 6d 43 68 69 6c  mdiView.enumChil
4430: 64 73 28 29 29 3b 0d 0a 20 20 20 20 20 20 20 20  ds());..        
4440: 7d 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72  }..        retur
4450: 6e 20 74 68 69 73 2e 5f 76 69 65 77 3b 0d 0a 20  n this._view;.. 
4460: 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 7d 29 3b 20     }..    ..}); 
4470: 2f 2f 20 73 74 64 6c 69 62 2e 43 6c 61 73 73 2e  // stdlib.Class.
4480: 65 78 74 65 6e 64 0d 0a 0d 0a 0d 0a 2f 2f 7b 20  extend......//{ 
4490: d0 a0 d1 83 d1 81 d1 81 d0 ba d0 be d1 8f d0 b7  ................
44a0: d1 8b d1 87 d0 bd d1 8b d0 b5 20 d0 b0 d0 bd d0  .......... .....
44b0: b0 d0 bb d0 be d0 b3 d0 b8 20 d0 be d1 81 d0 bd  ......... ......
44c0: d0 be d0 b2 d0 bd d1 8b d1 85 20 d0 bc d0 b5 d1  .......... .....
44d0: 82 d0 be d0 b4 d0 be d0 b2 20 d0 be d0 b1 d1 8a  ......... ......
44e0: d0 b5 d0 ba d1 82 d0 b0 20 d0 a2 d0 b5 d0 ba d1  ........ .......
44f0: 81 d1 82 d0 be d0 b2 d1 8b d0 b9 20 d0 b4 d0 be  ........... ....
4500: d0 ba d1 83 d0 bc d0 b5 d0 bd d1 82 20 28 54 65  ............ (Te
4510: 78 74 44 6f 63 75 6d 65 6e 74 29 2e 0d 0a 5f 54  xtDocument)..._T
4520: 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74  extWindow.protot
4530: 79 70 65 2e d0 9a d0 be d0 bb d0 b8 d1 87 d0 b5  ype.............
4540: d1 81 d1 82 d0 b2 d0 be d0 a1 d1 82 d1 80 d0 be  ................
4550: d0 ba 20 3d 20 5f 54 65 78 74 57 69 6e 64 6f 77  .. = _TextWindow
4560: 2e 70 72 6f 74 6f 74 79 70 65 2e 4c 69 6e 65 73  .prototype.Lines
4570: 43 6f 75 6e 74 3b 0d 0a 5f 54 65 78 74 57 69 6e  Count;.._TextWin
4580: 64 6f 77 2e 70 72 6f 74 6f 74 79 70 65 2e d0 a3  dow.prototype...
4590: d0 b4 d0 b0 d0 bb d0 b8 d1 82 d1 8c d0 a1 d1 82  ................
45a0: d1 80 d0 be d0 ba d1 83 20 3d 20 5f 54 65 78 74  ........ = _Text
45b0: 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74 79 70 65  Window.prototype
45c0: 2e 44 65 6c 65 74 65 4c 69 6e 65 3b 0d 0a 5f 54  .DeleteLine;.._T
45d0: 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74  extWindow.protot
45e0: 79 70 65 2e d0 94 d0 be d0 b1 d0 b0 d0 b2 d0 b8  ype.............
45f0: d1 82 d1 8c d0 a1 d1 82 d1 80 d0 be d0 ba d1 83  ................
4600: 20 3d 20 5f 54 65 78 74 57 69 6e 64 6f 77 2e 70   = _TextWindow.p
4610: 72 6f 74 6f 74 79 70 65 2e 41 64 64 4c 69 6e 65  rototype.AddLine
4620: 3b 0d 0a 5f 54 65 78 74 57 69 6e 64 6f 77 2e 70  ;.._TextWindow.p
4630: 72 6f 74 6f 74 79 70 65 2e d0 9e d1 87 d0 b8 d1  rototype........
4640: 81 d1 82 d0 b8 d1 82 d1 8c 20 3d 20 5f 54 65 78  ......... = _Tex
4650: 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74 79 70  tWindow.prototyp
4660: 65 2e 43 6c 65 61 72 3b 0d 0a 5f 54 65 78 74 57  e.Clear;.._TextW
4670: 69 6e 64 6f 77 2e 70 72 6f 74 6f 74 79 70 65 2e  indow.prototype.
4680: d0 92 d1 81 d1 82 d0 b0 d0 b2 d0 b8 d1 82 d1 8c  ................
4690: d0 a1 d1 82 d1 80 d0 be d0 ba d1 83 20 3d 20 5f  ............ = _
46a0: 54 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f  TextWindow.proto
46b0: 74 79 70 65 2e 49 6e 73 65 72 74 4c 69 6e 65 3b  type.InsertLine;
46c0: 0d 0a 5f 54 65 78 74 57 69 6e 64 6f 77 2e 70 72  .._TextWindow.pr
46d0: 6f 74 6f 74 79 70 65 2e d0 97 d0 b0 d0 bc d0 b5  ototype.........
46e0: d0 bd d0 b8 d1 82 d1 8c d0 a1 d1 82 d1 80 d0 be  ................
46f0: d0 ba d1 83 20 3d 20 5f 54 65 78 74 57 69 6e 64  .... = _TextWind
4700: 6f 77 2e 70 72 6f 74 6f 74 79 70 65 2e 52 65 70  ow.prototype.Rep
4710: 6c 61 63 65 4c 69 6e 65 3b 20 0d 0a 5f 54 65 78  laceLine; .._Tex
4720: 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74 79 70  tWindow.prototyp
4730: 65 2e d0 9f d0 be d0 bb d1 83 d1 87 d0 b8 d1 82  e...............
4740: d1 8c d0 a2 d0 b5 d0 ba d1 81 d1 82 20 3d 20 5f  ............ = _
4750: 54 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f  TextWindow.proto
4760: 74 79 70 65 2e 47 65 74 54 65 78 74 3b 0d 0a 5f  type.GetText;.._
4770: 54 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f  TextWindow.proto
4780: 74 79 70 65 2e d0 a3 d1 81 d1 82 d0 b0 d0 bd d0  type............
4790: be d0 b2 d0 b8 d1 82 d1 8c d0 a2 d0 b5 d0 ba d1  ................
47a0: 81 d1 82 20 3d 20 5f 54 65 78 74 57 69 6e 64 6f  ... = _TextWindo
47b0: 77 2e 70 72 6f 74 6f 74 79 70 65 2e 53 65 74 54  w.prototype.SetT
47c0: 65 78 74 3b 0d 0a 2f 2f 7d 0d 0a 0d 0a 2f 2f 7b  ext;..//}....//{
47d0: 20 d0 9c d0 b5 d1 82 d0 be d0 b4 d1 8b 20 d0 b4   ............ ..
47e0: d0 bb d1 8f 20 d0 be d0 b1 d1 80 d0 b0 d1 82 d0  .... ...........
47f0: bd d0 be d0 b9 20 d1 81 d0 be d0 b2 d0 bc d0 b5  ..... ..........
4800: d1 81 d1 82 d0 b8 d0 bc d0 be d1 81 d1 82 d0 b8  ................
4810: 20 d1 81 20 d0 b8 d0 bd d1 82 d0 b5 d1 80 d1 84   .. ............
4820: d0 b5 d0 b9 d1 81 d0 be d0 bc 20 49 54 65 78 74  .......... IText
4830: 57 69 6e 64 6f 77 20 d0 a1 d0 bd d0 b5 d0 b3 d0  Window .........
4840: be d0 bf d0 b0 d1 82 d0 b0 20 d0 bf d1 80 d0 b5  ......... ......
4850: d0 b4 d1 8b d0 b4 d1 83 d1 89 d0 b8 d1 85 20 d0  .............. .
4860: b2 d0 b5 d1 80 d1 81 d0 b8 d0 b9 2e 0d 0a 5f 54  .............._T
4870: 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74  extWindow.protot
4880: 79 70 65 2e 64 6f 63 75 6d 65 6e 74 20 3d 20 66  ype.document = f
4890: 75 6e 63 74 69 6f 6e 20 28 29 20 7b 20 72 65 74  unction () { ret
48a0: 75 72 6e 20 74 68 69 73 3b 20 7d 3b 0d 0a 5f 54  urn this; };.._T
48b0: 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74  extWindow.protot
48c0: 79 70 65 2e 44 6f 63 75 6d 65 6e 74 20 3d 20 66  ype.Document = f
48d0: 75 6e 63 74 69 6f 6e 20 28 29 20 7b 20 72 65 74  unction () { ret
48e0: 75 72 6e 20 74 68 69 73 3b 20 7d 3b 0d 0a 5f 54  urn this; };.._T
48f0: 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74  extWindow.protot
4900: 79 70 65 2e 65 78 74 4e 61 6d 65 20 3d 20 5f 54  ype.extName = _T
4910: 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74  extWindow.protot
4920: 79 70 65 2e 45 78 74 4e 61 6d 65 3b 0d 0a 5f 54  ype.ExtName;.._T
4930: 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74  extWindow.protot
4940: 79 70 65 2e 67 65 74 43 61 72 65 74 50 6f 73 20  ype.getCaretPos 
4950: 3d 20 5f 54 65 78 74 57 69 6e 64 6f 77 2e 70 72  = _TextWindow.pr
4960: 6f 74 6f 74 79 70 65 2e 47 65 74 43 61 72 65 74  ototype.GetCaret
4970: 50 6f 73 3b 0d 0a 5f 54 65 78 74 57 69 6e 64 6f  Pos;.._TextWindo
4980: 77 2e 70 72 6f 74 6f 74 79 70 65 2e 73 65 74 43  w.prototype.setC
4990: 61 72 65 74 50 6f 73 20 3d 20 5f 54 65 78 74 57  aretPos = _TextW
49a0: 69 6e 64 6f 77 2e 70 72 6f 74 6f 74 79 70 65 2e  indow.prototype.
49b0: 53 65 74 43 61 72 65 74 50 6f 73 3b 0d 0a 5f 54  SetCaretPos;.._T
49c0: 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74  extWindow.protot
49d0: 79 70 65 2e 67 65 74 53 65 6c 65 63 74 69 6f 6e  ype.getSelection
49e0: 20 3d 20 5f 54 65 78 74 57 69 6e 64 6f 77 2e 70   = _TextWindow.p
49f0: 72 6f 74 6f 74 79 70 65 2e 47 65 74 53 65 6c 65  rototype.GetSele
4a00: 63 74 69 6f 6e 3b 0d 0a 5f 54 65 78 74 57 69 6e  ction;.._TextWin
4a10: 64 6f 77 2e 70 72 6f 74 6f 74 79 70 65 2e 73 65  dow.prototype.se
4a20: 74 53 65 6c 65 63 74 69 6f 6e 20 3d 20 5f 54 65  tSelection = _Te
4a30: 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74 79  xtWindow.prototy
4a40: 70 65 2e 53 65 74 53 65 6c 65 63 74 69 6f 6e 3b  pe.SetSelection;
4a50: 0d 0a 5f 54 65 78 74 57 69 6e 64 6f 77 2e 70 72  .._TextWindow.pr
4a60: 6f 74 6f 74 79 70 65 2e 6c 69 6e 65 20 3d 20 5f  ototype.line = _
4a70: 54 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f  TextWindow.proto
4a80: 74 79 70 65 2e 47 65 74 4c 69 6e 65 3b 0d 0a 5f  type.GetLine;.._
4a90: 54 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f  TextWindow.proto
4aa0: 74 79 70 65 2e 6c 69 6e 65 73 43 6f 75 6e 74 20  type.linesCount 
4ab0: 3d 20 5f 54 65 78 74 57 69 6e 64 6f 77 2e 70 72  = _TextWindow.pr
4ac0: 6f 74 6f 74 79 70 65 2e 4c 69 6e 65 73 43 6f 75  ototype.LinesCou
4ad0: 6e 74 3b 0d 0a 5f 54 65 78 74 57 69 6e 64 6f 77  nt;.._TextWindow
4ae0: 2e 70 72 6f 74 6f 74 79 70 65 2e 72 65 61 64 4f  .prototype.readO
4af0: 6e 6c 79 20 3d 20 5f 54 65 78 74 57 69 6e 64 6f  nly = _TextWindo
4b00: 77 2e 70 72 6f 74 6f 74 79 70 65 2e 49 73 52 65  w.prototype.IsRe
4b10: 61 64 4f 6e 6c 79 3b 0d 0a 5f 54 65 78 74 57 69  adOnly;.._TextWi
4b20: 6e 64 6f 77 2e 70 72 6f 74 6f 74 79 70 65 2e 73  ndow.prototype.s
4b30: 65 6c 65 63 74 65 64 54 65 78 74 20 3d 20 5f 54  electedText = _T
4b40: 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74 6f 74  extWindow.protot
4b50: 79 70 65 2e 47 65 74 53 65 6c 65 63 74 65 64 54  ype.GetSelectedT
4b60: 65 78 74 3b 0d 0a 5f 54 65 78 74 57 69 6e 64 6f  ext;.._TextWindo
4b70: 77 2e 70 72 6f 74 6f 74 79 70 65 2e 74 65 78 74  w.prototype.text
4b80: 20 3d 20 5f 54 65 78 74 57 69 6e 64 6f 77 2e 70   = _TextWindow.p
4b90: 72 6f 74 6f 74 79 70 65 2e 47 65 74 54 65 78 74  rototype.GetText
4ba0: 3b 0d 0a 5f 54 65 78 74 57 69 6e 64 6f 77 2e 70  ;.._TextWindow.p
4bb0: 72 6f 74 6f 74 79 70 65 2e 68 77 6e 64 20 3d 20  rototype.hwnd = 
4bc0: 5f 54 65 78 74 57 69 6e 64 6f 77 2e 70 72 6f 74  _TextWindow.prot
4bd0: 6f 74 79 70 65 2e 47 65 74 48 77 6e 64 3b 0d 0a  otype.GetHwnd;..
4be0: 2f 2f 7d 0d 0a 0d 0a 2f 2f 7b 20 d0 9e d0 b1 d1  //}....//{ .....
4bf0: 8a d0 b5 d0 ba d1 82 20 54 65 78 74 57 69 6e 64  ....... TextWind
4c00: 6f 77 20 2d 20 d0 b0 d0 bb d1 8c d1 82 d0 b5 d1  ow - ...........
4c10: 80 d0 bd d0 b0 d1 82 d0 b8 d0 b2 d0 b0 20 d0 b8  ............. ..
4c20: d1 81 d0 bf d0 be d0 bb d1 8c d0 b7 d0 be d0 b2  ................
4c30: d0 b0 d0 bd d0 b8 d1 8e 20 47 65 74 54 65 78 74  ........ GetText
4c40: 57 69 6e 64 6f 77 28 29 2e 0d 0a 2f 2f 20 d0 92  Window()...// ..
4c50: d0 bc d0 b5 d1 81 d1 82 d0 be 20 0d 0a 2f 2f 20  .......... ..// 
4c60: 09 76 61 72 20 74 77 6e 64 20 3d 20 47 65 74 54  .var twnd = GetT
4c70: 65 78 74 57 69 6e 64 6f 77 28 29 3b 0d 0a 2f 2f  extWindow();..//
4c80: 20 09 69 66 20 28 74 77 6e 64 20 21 3d 3d 20 6e   .if (twnd !== n
4c90: 75 6c 6c 29 20 2e 2e 2e 0d 0a 2f 2f 20 d0 9f d0  ull) .....// ...
4ca0: be d0 b7 d0 b2 d0 be d0 bb d1 8f d0 b5 d1 82 20  ............... 
4cb0: d0 b8 d1 81 d0 bf d0 be d0 bb d1 8c d0 b7 d0 be  ................
4cc0: d0 b2 d0 b0 d1 82 d1 8c 20 d0 be d0 b1 d1 8a d0  ........ .......
4cd0: b5 d0 ba d1 82 d0 bd d1 83 d1 8e 20 d1 82 d0 b5  ........... ....
4ce0: d1 85 d0 bd d0 b8 d0 ba d1 83 3a 0d 0a 2f 2f 20  ..........:..// 
4cf0: 09 76 61 72 20 74 77 6e 64 20 3d 20 6e 65 77 20  .var twnd = new 
4d00: 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 0d 0a 2f  TextWindow();../
4d10: 2f 20 09 69 66 20 28 74 77 6e 64 2e 49 73 41 63  / .if (twnd.IsAc
4d20: 74 69 76 65 28 29 29 20 2e 2e 2e 0d 0a 54 65 78  tive()) .....Tex
4d30: 74 57 69 6e 64 6f 77 20 3d 20 5f 54 65 78 74 57  tWindow = _TextW
4d40: 69 6e 64 6f 77 2e 65 78 74 65 6e 64 28 7b 0d 0a  indow.extend({..
4d50: 20 20 20 20 63 6f 6e 73 74 72 75 63 74 20 3a 20      construct : 
4d60: 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 20  function () {.. 
4d70: 20 20 20 20 20 20 20 76 61 72 20 61 63 74 69 76         var activ
4d80: 65 57 6e 64 20 3d 20 73 6e 65 67 6f 70 61 74 2e  eWnd = snegopat.
4d90: 61 63 74 69 76 65 54 65 78 74 57 69 6e 64 6f 77  activeTextWindow
4da0: 28 29 3b 09 20 20 20 20 0d 0a 20 20 20 20 20 20  ();.    ..      
4db0: 20 20 69 66 20 28 61 63 74 69 76 65 57 6e 64 29    if (activeWnd)
4dc0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68  ..            th
4dd0: 69 73 2e 5f 73 75 70 65 72 28 61 63 74 69 76 65  is._super(active
4de0: 57 6e 64 2c 20 77 69 6e 64 6f 77 73 2e 67 65 74  Wnd, windows.get
4df0: 41 63 74 69 76 65 56 69 65 77 28 29 29 3b 09 20  ActiveView());. 
4e00: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 7d 09 0d         ..    }..
4e10: 0a 7d 29 3b 0d 0a 2f 2f 7d 0d 0a 0d 0a 2f 2f 2f  .});..//}....///
4e20: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4e30: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4e40: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4e50: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4e60: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4e70: 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 20 53 74 72 69  /////..//// Stri
4e80: 6e 67 55 74 69 6c 73 0d 0a 2f 2f 2f 2f 0d 0a 0d  ngUtils..////...
4e90: 0a 2f 2f 7b 20 d0 92 d1 81 d0 bf d0 be d0 bc d0  .//{ ...........
4ea0: be d0 b3 d0 b0 d1 82 d0 b5 d0 bb d1 8c d0 bd d1  ................
4eb0: 8b d0 b5 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d1 8b  ... ............
4ec0: 20 d0 b4 d0 bb d1 8f 20 d1 80 d0 b0 d0 b1 d0 be   ...... ........
4ed0: d1 82 d1 8b 20 d1 81 d0 be 20 d1 81 d1 82 d1 80  .... .... ......
4ee0: d0 be d0 ba d0 b0 d0 bc d0 b8 20 d0 b8 20 d1 82  .......... .. ..
4ef0: d0 b5 d0 ba d1 81 d1 82 d0 be d0 b2 d1 8b d0 bc  ................
4f00: d0 b8 20 d0 b1 d0 bb d0 be d0 ba d0 b0 d0 bc d0  .. .............
4f10: b8 2e 0d 0a 53 74 72 69 6e 67 55 74 69 6c 73 20  ....StringUtils 
4f20: 3d 20 7b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f  = {..    ..    /
4f30: 2a 20 d0 9f d0 be d0 bb d1 83 d1 87 d0 b8 d1 82  * ..............
4f40: d1 8c 20 d0 be d1 82 d1 81 d1 82 d1 83 d0 bf 20  .. ............ 
4f50: d0 b1 d0 bb d0 be d0 ba d0 b0 20 d1 82 d0 b5 d0  .......... .....
4f60: ba d1 81 d1 82 d0 b0 20 28 d0 bf d0 be 20 d0 bf  ....... (.... ..
4f70: d0 b5 d1 80 d0 b2 d0 be d0 b9 20 d1 81 d1 82 d1  .......... .....
4f80: 80 d0 be d0 ba d0 b5 20 d0 b1 d0 bb d0 be d0 ba  ....... ........
4f90: d0 b0 29 2e 0d 0a 20 20 20 20 20 d0 92 d0 be d0  ..)...     .....
4fa0: b7 d0 b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d1 82 20  ............... 
4fb0: d1 81 d1 82 d1 80 d0 be d0 ba d1 83 20 2d 20 d0  ............ - .
4fc0: bf d1 80 d0 be d0 b1 d0 b5 d0 bb d1 8c d0 bd d1  ................
4fd0: 8b d0 b5 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb  ... ............
4fe0: d1 8b 2c 20 d1 84 d0 be d1 80 d0 bc d0 b8 d1 80  .., ............
4ff0: d1 83 d1 8e d1 89 d0 b8 d0 b5 20 d0 be d1 82 d1  .......... .....
5000: 81 d1 82 d1 83 d0 bf 2e 20 2a 2f 0d 0a 20 20 20  ........ */..   
5010: 20 67 65 74 49 6e 64 65 6e 74 3a 20 66 75 6e 63   getIndent: func
5020: 74 69 6f 6e 20 28 63 6f 64 65 29 20 7b 0d 0a 20  tion (code) {.. 
5030: 20 20 20 20 20 20 20 76 61 72 20 6d 61 74 63 68         var match
5040: 65 73 20 3d 20 63 6f 64 65 2e 6d 61 74 63 68 28  es = code.match(
5050: 2f 28 5e 5c 73 2b 3f 29 28 5c 53 7c 5c 6e 7c 5c  /(^\s+?)(\S|\n|\
5060: 72 29 2f 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d  r)/);..        .
5070: 0a 20 20 20 20 20 20 20 20 69 66 20 28 6d 61 74  .        if (mat
5080: 63 68 65 73 29 0d 0a 20 20 20 20 20 20 20 20 20  ches)..         
5090: 20 20 20 72 65 74 75 72 6e 20 6d 61 74 63 68 65     return matche
50a0: 73 5b 31 5d 2e 72 65 70 6c 61 63 65 28 2f 5c 6e  s[1].replace(/\n
50b0: 7c 5c 72 2f 2c 20 27 27 29 3b 0d 0a 20 20 20 20  |\r/, '');..    
50c0: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
50d0: 20 20 72 65 74 75 72 6e 20 27 27 3b 0d 0a 20 20    return '';..  
50e0: 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 2f 2a 20 d0    },....    /* .
50f0: a3 d0 b2 d0 b5 d0 bb d0 b8 d1 87 d0 b8 d0 b2 d0  ................
5100: b0 d0 b5 d1 82 20 d0 be d1 82 d1 81 d1 82 d1 83  ..... ..........
5110: d0 bf 20 d1 83 20 d1 82 d0 b5 d0 ba d1 81 d1 82  .. .. ..........
5120: d0 be d0 b2 d0 be d0 b3 d0 be 20 d0 b1 d0 bb d0  .......... .....
5130: be d0 ba d0 b0 2c 20 d0 b4 d0 be d0 b1 d0 b0 d0  ....., .........
5140: b2 d0 bb d1 8f d1 8f 20 d1 81 d1 82 d1 80 d0 be  ....... ........
5150: d0 ba d1 83 20 d0 bf d1 80 d0 be d0 b1 d0 b5 d0  .... ...........
5160: bb d1 8c d0 bd d1 8b d1 85 20 d1 81 d0 b8 d0 bc  ......... ......
5170: d0 b2 d0 be d0 bb d0 be d0 b2 2c 0d 0a 20 20 20  ..........,..   
5180: 20 d0 bf d0 b5 d1 80 d0 b5 d0 b4 d0 b0 d0 bd d0   ...............
5190: bd d1 8b d1 85 20 d0 b2 20 d0 ba d0 b0 d1 87 d0  ..... .. .......
51a0: b5 d1 81 d1 82 d0 b2 d0 b5 20 d0 b7 d0 bd d0 b0  ......... ......
51b0: d1 87 d0 b5 d0 bd d0 b8 d1 8f 20 d0 b2 d1 82 d0  .......... .....
51c0: be d1 80 d0 be d0 b3 d0 be 20 d0 bf d0 b0 d1 80  ......... ......
51d0: d0 b0 d0 bc d0 b5 d1 82 d1 80 d0 b0 20 69 6e 64  ............ ind
51e0: 2e 20 0d 0a 20 20 20 20 d0 92 d0 be d0 b7 d0 b2  . ..    ........
51f0: d1 80 d0 b0 d1 89 d0 b0 d0 b5 d1 82 20 d1 82 d0  ............ ...
5200: b5 d0 ba d1 81 d1 82 d0 be d0 b2 d1 8b d0 b9 20  ............... 
5210: d0 b1 d0 bb d0 be d0 ba 20 d1 81 20 d0 b4 d0 be  ........ .. ....
5220: d0 b1 d0 b0 d0 b2 d0 bb d0 b5 d0 bd d0 bd d1 8b  ................
5230: d0 bc 20 d0 be d1 82 d1 81 d1 82 d1 83 d0 bf d0  .. .............
5240: be d0 bc 2e 20 2a 2f 0d 0a 20 20 20 20 73 68 69  .... */..    shi
5250: 66 74 52 69 67 68 74 3a 20 66 75 6e 63 74 69 6f  ftRight: functio
5260: 6e 28 63 6f 64 65 2c 20 69 6e 64 29 20 7b 0d 0a  n(code, ind) {..
5270: 20 20 20 20 20 20 20 20 69 66 20 28 69 6e 64 29          if (ind)
5280: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65  ..            re
5290: 74 75 72 6e 20 69 6e 64 20 2b 20 63 6f 64 65 2e  turn ind + code.
52a0: 72 65 70 6c 61 63 65 28 2f 5c 6e 2f 67 6d 2c 20  replace(/\n/gm, 
52b0: 22 5c 6e 22 20 2b 20 69 6e 64 29 3b 0d 0a 20 20  "\n" + ind);..  
52c0: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
52d0: 20 20 20 20 72 65 74 75 72 6e 20 63 6f 64 65 3b      return code;
52e0: 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20  ..    },....    
52f0: 2f 2a 20 d0 a3 d0 bc d0 b5 d0 bd d1 8c d1 88 d0  /* .............
5300: b0 d0 b5 d1 82 20 d0 be d1 82 d1 81 d1 82 d1 83  ..... ..........
5310: d0 bf 20 d1 83 20 d1 82 d0 b5 d0 ba d1 81 d1 82  .. .. ..........
5320: d0 be d0 b2 d0 be d0 b3 d0 be 20 d0 b1 d0 bb d0  .......... .....
5330: be d0 ba d0 b0 2c 20 d1 83 d0 b4 d0 b0 d0 bb d1  ....., .........
5340: 8f d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d1 83  ... ............
5350: 20 d0 bf d1 80 d0 be d0 b1 d0 b5 d0 bb d1 8c d0   ...............
5360: bd d1 8b d1 85 20 d1 81 d0 b8 d0 bc d0 b2 d0 be  ..... ..........
5370: d0 bb d0 be d0 b2 2c 0d 0a 20 20 20 20 d1 81 d0  ......,..    ...
5380: be d0 b2 d0 bf d0 b0 d0 b4 d0 b0 d1 8e d1 89 d1  ................
5390: 83 d1 8e 20 d1 81 d0 be 20 d1 81 d1 82 d1 80 d0  ... .... .......
53a0: be d0 ba d0 be d0 b9 2c 20 d0 bf d0 b5 d1 80 d0  ......., .......
53b0: b5 d0 b4 d0 b0 d0 bd d0 bd d0 be d0 b9 20 d0 b2  ............. ..
53c0: 20 d0 ba d0 b0 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0   ...............
53d0: b5 20 d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8  . ..............
53e0: d1 8f 20 d0 b2 d1 82 d0 be d1 80 d0 be d0 b3 d0  .. .............
53f0: be 20 d0 bf d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82  . ..............
5400: d1 80 d0 b0 20 69 6e 64 2e 0d 0a 20 20 20 20 d0  .... ind...    .
5410: 92 d0 be d0 b7 d0 b2 d1 80 d0 b0 d1 89 d0 b0 d0  ................
5420: b5 d1 82 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 be  ... ............
5430: d0 b2 d1 8b d0 b9 20 d0 b1 d0 bb d0 be d0 ba 20  ...... ........ 
5440: d1 81 20 d1 83 d0 bc d0 b5 d0 bd d1 8c d1 88 d0  .. .............
5450: b5 d0 bd d0 bd d1 8b d0 bc 20 d0 be d1 82 d1 81  ......... ......
5460: d1 82 d1 83 d0 bf d0 be d0 bc 2e 20 2a 2f 0d 0a  ........... */..
5470: 20 20 20 20 73 68 69 66 74 4c 65 66 74 3a 20 66      shiftLeft: f
5480: 75 6e 63 74 69 6f 6e 28 63 6f 64 65 2c 20 69 6e  unction(code, in
5490: 64 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 69 66  d) {..        if
54a0: 20 28 69 6e 64 29 0d 0a 20 20 20 20 20 20 20 20   (ind)..        
54b0: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76  {..            v
54c0: 61 72 20 72 65 20 3d 20 6e 65 77 20 52 65 67 45  ar re = new RegE
54d0: 78 70 28 22 5e 22 20 2b 20 69 6e 64 2c 20 27 67  xp("^" + ind, 'g
54e0: 6d 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  m');..          
54f0: 20 20 72 65 74 75 72 6e 20 63 6f 64 65 2e 72 65    return code.re
5500: 70 6c 61 63 65 28 72 65 2c 20 22 22 29 3b 0d 0a  place(re, "");..
5510: 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20          }..     
5520: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
5530: 20 72 65 74 75 72 6e 20 63 6f 64 65 3b 0d 0a 20   return code;.. 
5540: 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 2f 2a 20     },....    /* 
5550: d0 9f d1 80 d0 be d0 b2 d0 b5 d1 80 d1 8f d0 b5  ................
5560: d1 82 2c 20 d0 be d0 ba d0 b0 d0 bd d1 87 d0 b8  .., ............
5570: d0 b2 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d0 bb d0  ............ ...
5580: b8 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 73  . ............ s
5590: 74 72 20 d0 bf d0 be d0 b4 d1 81 d1 82 d1 80 d0  tr .............
55a0: be d0 ba d0 be d0 b9 20 73 75 66 66 69 78 2e 0d  ....... suffix..
55b0: 0a 20 20 20 20 d0 92 d0 be d0 b7 d0 b2 d1 80 d0  .    ...........
55c0: b0 d1 89 d0 b0 d0 b5 d1 82 20 74 72 75 65 2c 20  ......... true, 
55d0: d0 b5 d1 81 d0 bb d0 b8 20 d1 85 d0 b2 d0 be d1  ........ .......
55e0: 81 d1 82 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8  ... ............
55f0: 20 d1 81 d0 be d0 b2 d0 bf d0 b0 d0 b4 d0 b0 d0   ...............
5600: b5 d1 82 20 d1 81 20 73 75 66 66 69 78 2c 20 d0  ... .. suffix, .
5610: b8 20 66 61 6c 73 65 20 d0 b2 20 d0 bf d1 80 d0  . false .. .....
5620: be d1 82 d0 b8 d0 b2 d0 bd d0 be d0 bc 20 d1 81  ............. ..
5630: d0 bb d1 83 d1 87 d0 b0 d0 b5 2e 20 2a 2f 20 0d  ........... */ .
5640: 0a 20 20 20 20 65 6e 64 73 57 69 74 68 3a 20 66  .    endsWith: f
5650: 75 6e 63 74 69 6f 6e 28 73 74 72 2c 20 73 75 66  unction(str, suf
5660: 66 69 78 29 20 20 7b 0d 0a 20 20 20 20 20 20 20  fix)  {..       
5670: 20 72 65 74 75 72 6e 20 73 74 72 2e 69 6e 64 65   return str.inde
5680: 78 4f 66 28 73 75 66 66 69 78 2c 20 73 74 72 2e  xOf(suffix, str.
5690: 6c 65 6e 67 74 68 20 2d 20 73 75 66 66 69 78 2e  length - suffix.
56a0: 6c 65 6e 67 74 68 29 20 21 3d 3d 20 2d 31 3b 0d  length) !== -1;.
56b0: 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20  .    },..    .. 
56c0: 20 20 20 2f 2a 20 d0 a0 d0 b0 d0 b7 d0 b1 d0 b8     /* ..........
56d0: d0 b2 d0 b0 d0 b5 d1 82 20 d0 bf d0 b5 d1 80 d0  ........ .......
56e0: b5 d0 b4 d0 b0 d0 bd d0 bd d1 8b d0 b9 20 d0 b1  ............. ..
56f0: d0 bb d0 be d0 ba 20 d1 82 d0 b5 d0 ba d1 81 d1  ...... .........
5700: 82 d0 b0 20 d0 bd d0 b0 20 d1 81 d1 82 d1 80 d0  ... .... .......
5710: be d0 ba d0 b8 20 d0 b8 20 d0 b2 d0 be d0 b7 d0  ..... .. .......
5720: b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d1 82 20 d0 bc  ............. ..
5730: d0 b0 d1 81 d1 81 d0 b8 d0 b2 20 d1 81 d1 82 d1  .......... .....
5740: 80 d0 be d0 ba 2e 20 2a 2f 0d 0a 20 20 20 20 74  ...... */..    t
5750: 6f 4c 69 6e 65 73 3a 20 66 75 6e 63 74 69 6f 6e  oLines: function
5760: 28 63 6f 64 65 2c 20 6e 6c 29 20 7b 0d 0a 20 20  (code, nl) {..  
5770: 20 20 20 20 20 20 72 65 74 75 72 6e 20 63 6f 64        return cod
5780: 65 2e 73 70 6c 69 74 28 6e 6c 20 3f 20 6e 6c 20  e.split(nl ? nl 
5790: 3a 20 22 5c 6e 22 29 3b 0d 0a 20 20 20 20 7d 2c  : "\n");..    },
57a0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2a 20 d0  ..    ..    /* .
57b0: 9e d0 b1 d1 8a d0 b5 d0 b4 d0 b8 d0 bd d1 8f d0  ................
57c0: b5 d1 82 20 d0 bc d0 b0 d1 81 d1 81 d0 b8 d0 b2  ... ............
57d0: 20 d1 81 d1 82 d1 80 d0 be d0 ba 20 d0 b2 20 d1   .......... .. .
57e0: 81 d1 82 d1 80 d0 be d0 ba d1 83 20 2d 20 d0 b1  ........... - ..
57f0: d0 bb d0 be d0 ba 20 d1 82 d0 b5 d0 ba d1 81 d1  ...... .........
5800: 82 d0 b0 2e 20 2a 2f 0d 0a 20 20 20 20 66 72 6f  .... */..    fro
5810: 6d 4c 69 6e 65 73 3a 20 66 75 6e 63 74 69 6f 6e  mLines: function
5820: 28 6c 69 6e 65 73 41 72 72 61 79 2c 20 6e 6c 29  (linesArray, nl)
5830: 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75   {..        retu
5840: 72 6e 20 6c 69 6e 65 73 41 72 72 61 79 2e 6a 6f  rn linesArray.jo
5850: 69 6e 28 6e 6c 20 3f 20 6e 6c 20 3a 20 22 5c 6e  in(nl ? nl : "\n
5860: 22 29 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20  ");..    },..   
5870: 20 0d 0a 20 20 20 20 2f 2a 20 d0 ad d0 ba d1 80   ..    /* ......
5880: d0 b0 d0 bd d0 b8 d1 80 d1 83 d0 b5 d1 82 20 d0  .............. .
5890: b2 d1 81 d0 b5 20 d1 81 d0 b8 d0 bc d0 b2 d0 be  ..... ..........
58a0: d0 bb d1 8b 20 d0 b2 20 d1 81 d1 82 d1 80 d0 be  .... .. ........
58b0: d0 ba d0 b5 2e 20 2a 2f 0d 0a 20 20 20 20 61 64  ..... */..    ad
58c0: 64 53 6c 61 73 68 65 73 3a 20 66 75 6e 63 74 69  dSlashes: functi
58d0: 6f 6e 28 73 74 72 29 20 7b 0d 0a 20 20 20 20 20  on(str) {..     
58e0: 20 20 20 72 65 74 75 72 6e 20 73 74 72 2e 72 65     return str.re
58f0: 70 6c 61 63 65 28 2f 28 5b 5e 5c 64 5c 77 5c 73  place(/([^\d\w\s
5900: d0 90 2d d1 8f 5d 29 2f 67 2c 20 22 5c 5c 24 31  ..-..])/g, "\\$1
5910: 22 29 3b 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 7d 0d  ");..    }....}.
5920: 0a 2f 2f 7d 20 d0 92 d1 81 d0 bf d0 be d0 bc d0  .//} ...........
5930: be d0 b3 d0 b0 d1 82 d0 b5 d0 bb d1 8c d0 bd d1  ................
5940: 8b d0 b5 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d1 8b  ... ............
5950: 20 d0 b4 d0 bb d1 8f 20 d1 80 d0 b0 d0 b1 d0 be   ...... ........
5960: d1 82 d1 8b 20 d1 81 d0 be 20 d1 81 d1 82 d1 80  .... .... ......
5970: d0 be d0 ba d0 b0 d0 bc d0 b8 20 d0 b8 20 d1 82  .......... .. ..
5980: d0 b5 d0 ba d1 81 d1 82 d0 be d0 b2 d1 8b d0 bc  ................
5990: d0 b8 20 d0 b1 d0 bb d0 be d0 ba d0 b0 d0 bc d0  .. .............
59a0: b8 2e                                            ..