Differences From
Artifact [8770c6e051]:
- File
textEditorExt.js
— part of check-in
[5eb9c830e1]
at
2012-09-07 12:23:03
on branch trunk
— Новый макрос "Заменить табуляцию в отступах на пробелы\.
(user:
kuntashov
size: 18643)
50 50 function macrosНайтиВыделенныйТекстВверх(){
51 51 return selectNextPattern(-1);
52 52 }
53 53
54 54 function macrosПоменятьОперандыПрисваиванияМестами() {
55 55
56 56 var w = GetTextWindow();
57 - if (!w) return false;
57 + if (!w || windows.modalMode != msNone) return false;
58 58
59 59 var selText = w.GetSelectedText();
60 60 if (selText == '') return false;
61 61
62 62 var sel = w.GetSelection();
63 63
64 64 var lines = StringUtils.toLines(selText);
................................................................................
90 90 SelfScript.Self['macrosПреобразовать регистр: строчные'] = function() {
91 91 return processSelectedText(function(selText){ return selText.toLowerCase(); });
92 92 }
93 93
94 94 SelfScript.Self['macrosВыделить текст в скобках'] = function() {
95 95
96 96 var w = GetTextWindow();
97 - if (!w) return false;
97 + if (!w || windows.modalMode != msNone) return false;
98 98
99 99 var sel = w.GetCaretPos();
100 100
101 101 var startPos = { 'row' : sel.beginRow-1, 'col' : sel.beginCol-1 };
102 102
103 103 var lines = w.GetLines();
104 104 var foundOpeningBrace = false;
................................................................................
190 190 });
191 191 }, doNotRestoreSelection);
192 192 }
193 193
194 194 function selectNextPattern(dir){
195 195 //debugger;
196 196 var w = GetTextWindow(); //snegopat.activeTextWindow();
197 - if (!w) return false;
197 + if (!w || windows.modalMode != msNone) return false;
198 198
199 199 //debugger;
200 200
201 201 var sel = w.getSelection();
202 202 var selText = w.selectedText();
203 203 if (selText == '') return false;
204 204
................................................................................
243 243 if (j > -1) return i;
244 244 }
245 245 return null;
246 246 }
247 247
248 248 function macrosКлонироватьТекст(){
249 249 var w = GetTextWindow();//snegopat.activeTextWindow();
250 - if (!w) return false;
250 + if (!w || windows.modalMode != msNone) return false;
251 251
252 252 var sel = w.getSelection();
253 253 var selText = w.selectedText();
254 254 if (selText != ''){
255 255 w.SetSelectedText(selText + "\n" + selText);
256 256 }
257 257 else{
................................................................................
261 261 w.SetSelectedText(w.selectedText() + "\n" + w.selectedText());
262 262 }
263 263 return true;
264 264 }
265 265
266 266 function macrosOnPressEnterInComment(){
267 267 var w = GetTextWindow();//snegopat.activeTextWindow();
268 - if (!w) return false;
268 + if (!w || windows.modalMode != msNone) return false;
269 269
270 270 var pos = w.getCaretPos();
271 271 var str = w.line(pos.beginRow);
272 272 if (str.match(/^\s*\/\/\s*[^\s]+/ig)) {
273 273
274 274 // Если курсор установлен левее символов комментария, то не обрабатываем нажатие,
275 275 // чтобы добавлялась пустая строка, как и ожидается.
................................................................................
293 293 return true;
294 294 }
295 295 return false;
296 296 }
297 297
298 298 function macrosOnPressDeleteInComment(){
299 299 var w = GetTextWindow();//snegopat.activeTextWindow();
300 - if (!w) return false;
300 + if (!w || windows.modalMode != msNone) return false;
301 301
302 302 if (w.selectedText() != ""){
303 303 return false; /// TODO: обработать этот вариант.
304 304 }
305 305
306 306 var pos = w.getCaretPos();
307 307
................................................................................
327 327 return true;
328 328 }
329 329 return false;
330 330 }
331 331
332 332 function macrosOnPressBackspaceInComment(){
333 333 var w = GetTextWindow();//snegopat.activeTextWindow();
334 - if (!w) return false;
334 + if (!w || windows.modalMode != msNone) return false;
335 335
336 336 if (w.selectedText() != ""){
337 337 return false; /// TODO: обработать этот вариант.
338 338 }
339 339
340 340 var pos = w.getCaretPos();
341 341 if (pos.beginRow == 1) return false; // И так уже стоим в первой строке.
................................................................................
379 379 var res = !match ? "" : match[0];
380 380 return res;
381 381 }
382 382
383 383 function processSelectedText(selTextHandler, doNotRestoreSelection) {
384 384
385 385 var w = GetTextWindow();
386 - if (!w) return false;
386 + if (!w || windows.modalMode != msNone) return false;
387 387
388 388 var sel = w.GetSelection();
389 389 var selText = w.GetSelectedText();
390 390
391 391 try
392 392 {
393 393 selText = selTextHandler.call(null, selText);
................................................................................
405 405 w.SetSelection(sel.beginRow, sel.beginCol, sel.endRow, sel.endCol);
406 406 return true;
407 407 }
408 408
409 409 SelfScript.Self['macrosУстановить символ | в строке/выделении'] = function() {
410 410
411 411 var w = GetTextWindow(); //Получим активное текстовое окно
412 - if (!w) return false;
412 + if (!w || windows.modalMode != msNone) return false;
413 413
414 414 // Проверем есть ли выделенный текс, если нет, то выделим текущую строку , в результате обработаем выделенный текст и вернем на место.
415 415 var selText = w.GetSelectedText();
416 416 if (selText.length==0) {
417 417 var pos = w.getCaretPos();
418 418 w.setSelection(pos.beginRow, 1, pos.beginRow, 1 + w.line(pos.beginRow).length);
419 419 var text = w.GetSelectedText();
................................................................................
438 438 result = result+str+(((Lines.length-1)==i)?"":"\n");
439 439 }
440 440 return result
441 441 }
442 442
443 443 function macrosOnPressBackspaceInBracket(){
444 444 var w = GetTextWindow();//snegopat.activeTextWindow();
445 - if (!w) return false;
445 + if (!w || windows.modalMode != msNone) return false;
446 446
447 447 if (w.selectedText() != ""){
448 448 return false; /// TODO: обработать этот вариант.
449 449 }
450 450
451 451 var pos = w.getCaretPos();
452 452
................................................................................
475 475 }
476 476
477 477 return false;
478 478
479 479 }
480 480 function macrosOnPressDelInBracket(){
481 481 var w = GetTextWindow();//snegopat.activeTextWindow();
482 - if (!w) return false;
482 + if (!w || windows.modalMode != msNone) return false;
483 483
484 484 if (w.selectedText() != ""){
485 485 return false; /// TODO: обработать этот вариант.
486 486 }
487 487
488 488 var pos = w.getCaretPos();
489 489