Artifact
70010f5820c4d5a6e775876ab097774ff3d2c2a1:
- File
processSelectedText.js
— part of check-in
[56be03ace6]
at
2012-01-19 19:04:21
on branch trunk
— Скрипт для обработки выделенного текста модуля при помощи произвольных js-выражений (аналог immediate.js, но заточенный под работу с активным текстовым документом).
(user:
kuntashov
size: 1912)
[more...]
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 50 72 6f 63 65 pt..$uname Proce
0020: 73 73 53 65 6c 65 63 74 65 64 54 65 78 74 0d 0a ssSelectedText..
0030: 24 64 6e 61 6d 65 20 d0 9e d0 b1 d1 80 d0 b0 d0 $dname .........
0040: b1 d0 be d1 82 d0 ba d0 b0 20 d0 b2 d1 8b d0 b4 ......... ......
0050: d0 b5 d0 bb d0 b5 d0 bd d0 bd d0 be d0 b3 d0 be ................
0060: 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 0d 0a 24 ..............$
0070: 61 64 64 69 6e 20 67 6c 6f 62 61 6c 0d 0a 24 61 addin global..$a
0080: 64 64 69 6e 20 73 74 64 6c 69 62 0d 0a 0d 0a 2f ddin stdlib..../
0090: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00a0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00d0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00e0: 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 7b 20 43 ///////..////{ C
00f0: d0 ba d1 80 d0 b8 d0 bf d1 82 20 22 d0 9e d0 b1 .......... "....
0100: d1 80 d0 b0 d0 b1 d0 be d1 82 d0 ba d0 b0 20 d0 .............. .
0110: b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be d0 ................
0120: b3 d0 be 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 ... ............
0130: 22 20 28 70 72 6f 63 65 73 73 53 65 6c 65 63 74 " (processSelect
0140: 65 64 54 65 78 74 2e 6a 73 29 20 d0 b4 d0 bb d1 edText.js) .....
0150: 8f 20 d0 bf d1 80 d0 be d0 b5 d0 ba d1 82 d0 b0 . ..............
0160: 20 22 d0 a1 d0 bd d0 b5 d0 b3 d0 be d0 bf d0 b0 "..............
0170: d1 82 22 0d 0a 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 20 .."..////..////
0180: d0 90 d0 b2 d1 82 d0 be d1 80 3a 20 d0 90 d0 bb ..........: ....
0190: d0 b5 d0 ba d1 81 d0 b0 d0 bd d0 b4 d1 80 20 d0 .............. .
01a0: 9a d1 83 d0 bd d1 82 d0 b0 d1 88 d0 be d0 b2 20 ...............
01b0: 3c 6b 75 6e 74 61 73 68 6f 76 40 67 6d 61 69 6c <kuntashov@gmail
01c0: 2e 63 6f 6d 3e 2c 20 68 74 74 70 3a 2f 2f 63 6f .com>, http://co
01d0: 6d 70 61 75 64 2e 72 75 2f 62 6c 6f 67 0d 0a 2f mpaud.ru/blog../
01e0: 2f 2f 2f 7d 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ///}..//////////
01f0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0200: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0210: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0220: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0230: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a //////////////..
0240: 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f ..function macro
0250: 73 d0 9e d0 b1 d1 80 d0 b0 d0 b1 d0 be d1 82 d0 s...............
0260: b0 d1 82 d1 8c d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 ................
0270: b5 d0 bd d0 bd d1 8b d0 b9 d0 a2 d0 b5 d0 ba d1 ................
0280: 81 d1 82 28 29 20 7b 0d 0a 20 20 20 20 76 61 72 ...() {.. var
0290: 20 74 65 78 74 57 69 6e 64 6f 77 20 3d 20 73 74 textWindow = st
02a0: 64 6c 69 62 2e 72 65 71 75 69 72 65 28 27 54 65 dlib.require('Te
02b0: 78 74 57 69 6e 64 6f 77 2e 6a 73 27 29 2e 47 65 xtWindow.js').Ge
02c0: 74 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 0d 0a tTextWindow();..
02d0: 20 20 20 20 69 66 20 28 21 74 65 78 74 57 69 6e if (!textWin
02e0: 64 6f 77 29 0d 0a 20 20 20 20 20 20 20 20 72 65 dow).. re
02f0: 74 75 72 6e 3b 0d 0a 20 20 20 20 20 20 20 20 0d turn;.. .
0300: 0a 20 20 20 20 76 61 72 20 74 65 78 74 50 72 6f . var textPro
0310: 63 65 73 73 6f 72 20 3d 20 6e 65 77 20 53 65 6c cessor = new Sel
0320: 54 65 78 74 50 72 6f 63 65 73 73 6f 72 28 74 65 TextProcessor(te
0330: 78 74 57 69 6e 64 6f 77 29 3b 0d 0a 20 20 20 20 xtWindow);..
0340: 74 65 78 74 50 72 6f 63 65 73 73 6f 72 2e 6f 70 textProcessor.op
0350: 65 6e 28 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 en();..}....func
0360: 74 69 6f 6e 20 53 65 6c 54 65 78 74 50 72 6f 63 tion SelTextProc
0370: 65 73 73 6f 72 28 74 65 78 74 57 69 6e 64 6f 77 essor(textWindow
0380: 29 20 7b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f ) {.. this.fo
0390: 72 6d 20 3d 20 6c 6f 61 64 53 63 72 69 70 74 46 rm = loadScriptF
03a0: 6f 72 6d 28 53 65 6c 66 53 63 72 69 70 74 2e 66 orm(SelfScript.f
03b0: 75 6c 6c 50 61 74 68 2e 72 65 70 6c 61 63 65 28 ullPath.replace(
03c0: 2f 6a 73 24 2f 2c 20 27 73 73 66 27 29 2c 20 74 /js$/, 'ssf'), t
03d0: 68 69 73 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e his);.. this.
03e0: 6a 73 43 6f 64 65 20 3d 20 74 68 69 73 2e 66 6f jsCode = this.fo
03f0: 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 4a 61 76 61 rm.Controls.Java
0400: 53 63 72 69 70 74 43 6f 64 65 3b 0d 0a 20 20 20 ScriptCode;..
0410: 20 74 68 69 73 2e 72 65 73 75 6c 74 20 3d 20 74 this.result = t
0420: 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f 6c his.form.Control
0430: 73 2e 52 65 73 75 6c 74 3b 0d 0a 20 20 20 20 0d s.Result;.. .
0440: 0a 20 20 20 20 74 68 69 73 2e 74 65 78 74 57 69 . this.textWi
0450: 6e 64 6f 77 20 3d 20 74 65 78 74 57 69 6e 64 6f ndow = textWindo
0460: 77 3b 0d 0a 20 20 20 20 74 68 69 73 2e 69 6e 70 w;.. this.inp
0470: 75 74 54 65 78 74 20 3d 20 74 68 69 73 2e 74 65 utText = this.te
0480: 78 74 57 69 6e 64 6f 77 2e 47 65 74 53 65 6c 65 xtWindow.GetSele
0490: 63 74 65 64 54 65 78 74 28 29 3b 0d 0a 7d 0d 0a ctedText();..}..
04a0: 0d 0a 53 65 6c 54 65 78 74 50 72 6f 63 65 73 73 ..SelTextProcess
04b0: 6f 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6f 70 65 or.prototype.ope
04c0: 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 n = function ()
04d0: 7b 0d 0a 20 20 20 20 74 68 69 73 2e 6a 73 43 6f {.. this.jsCo
04e0: 64 65 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 de.Clear();..
04f0: 20 74 68 69 73 2e 72 65 73 75 6c 74 2e 43 6c 65 this.result.Cle
0500: 61 72 28 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e ar();.. this.
0510: 66 6f 72 6d 2e 44 6f 4d 6f 64 61 6c 28 29 3b 0d form.DoModal();.
0520: 0a 7d 0d 0a 0d 0a 53 65 6c 54 65 78 74 50 72 6f .}....SelTextPro
0530: 63 65 73 73 6f 72 2e 70 72 6f 74 6f 74 79 70 65 cessor.prototype
0540: 2e 70 72 6f 63 65 73 73 54 65 78 74 20 3d 20 66 .processText = f
0550: 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 unction () {..
0560: 20 20 76 61 72 20 69 6e 70 75 74 54 65 78 74 20 var inputText
0570: 3d 20 74 68 69 73 2e 69 6e 70 75 74 54 65 78 74 = this.inputText
0580: 3b 0d 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c ;.. var resul
0590: 74 20 3d 20 65 76 61 6c 28 74 68 69 73 2e 6a 73 t = eval(this.js
05a0: 43 6f 64 65 2e 47 65 74 54 65 78 74 28 29 29 3b Code.GetText());
05b0: 0d 0a 20 20 20 20 74 68 69 73 2e 72 65 73 75 6c .. this.resul
05c0: 74 2e 53 65 74 54 65 78 74 28 72 65 73 75 6c 74 t.SetText(result
05d0: 29 3b 0d 0a 7d 0d 0a 0d 0a 53 65 6c 54 65 78 74 );..}....SelText
05e0: 50 72 6f 63 65 73 73 6f 72 2e 70 72 6f 74 6f 74 Processor.protot
05f0: 79 70 65 2e 70 61 73 74 65 52 65 73 75 6c 74 20 ype.pasteResult
0600: 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0d = function () {.
0610: 0a 20 20 20 20 74 68 69 73 2e 74 65 78 74 57 69 . this.textWi
0620: 6e 64 6f 77 2e 53 65 74 53 65 6c 65 63 74 65 64 ndow.SetSelected
0630: 54 65 78 74 28 74 68 69 73 2e 72 65 73 75 6c 74 Text(this.result
0640: 2e 47 65 74 54 65 78 74 28 29 29 3b 0d 0a 7d 0d .GetText());..}.
0650: 0a 0d 0a 53 65 6c 54 65 78 74 50 72 6f 63 65 73 ...SelTextProces
0660: 73 6f 72 2e 70 72 6f 74 6f 74 79 70 65 2e 43 61 sor.prototype.Ca
0670: 6e 63 65 6c 43 6c 69 63 6b 20 3d 20 66 75 6e 63 ncelClick = func
0680: 74 69 6f 6e 20 28 43 6f 6e 74 72 6f 6c 29 20 7b tion (Control) {
0690: 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e .. this.form.
06a0: 43 6c 6f 73 65 28 29 3b 0d 0a 7d 0d 0a 0d 0a 53 Close();..}....S
06b0: 65 6c 54 65 78 74 50 72 6f 63 65 73 73 6f 72 2e elTextProcessor.
06c0: 70 72 6f 74 6f 74 79 70 65 2e 4f 4b 43 6c 69 63 prototype.OKClic
06d0: 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 43 6f k = function (Co
06e0: 6e 74 72 6f 6c 29 20 7b 0d 0a 20 20 20 20 74 68 ntrol) {.. th
06f0: 69 73 2e 70 61 73 74 65 52 65 73 75 6c 74 28 29 is.pasteResult()
0700: 3b 0d 0a 20 20 20 20 74 68 69 73 2e 43 6c 6f 73 ;.. this.Clos
0710: 65 28 29 3b 0d 0a 7d 0d 0a 0d 0a 53 65 6c 54 65 e();..}....SelTe
0720: 78 74 50 72 6f 63 65 73 73 6f 72 2e 70 72 6f 74 xtProcessor.prot
0730: 6f 74 79 70 65 2e 43 6d 64 42 61 72 52 75 6e 20 otype.CmdBarRun
0740: 3d 20 66 75 6e 63 74 69 6f 6e 20 28 43 6f 6e 74 = function (Cont
0750: 72 6f 6c 29 20 7b 0d 0a 20 20 20 20 74 68 69 73 rol) {.. this
0760: 2e 70 72 6f 63 65 73 73 54 65 78 74 28 29 3b 0d .processText();.
0770: 0a 7d 0d 0a 0d 0a 0d 0a .}......