[ID CC2020] Как выделить текст?

rezunoff

Участник
Топикстартер
Сообщения
51
Реакции
13
Как выделить текст, начиная со стиля параграфа где стоит курсор и до момента, когда опять начинается этот стиль?
2021-02-23_20-07-23.png
 

Skvoznyak

12 лет на форуме
Сообщения
4 798
Реакции
1 897
выделять все абзацы пока не дойдете до того же стиля что в первом. что именно вызывает затруднения?
 

Skvoznyak

12 лет на форуме
Сообщения
4 798
Реакции
1 897
я вижу раздел, спасибо. что вызывает затруднения при написании скрипта?
 

rezunoff

Участник
Топикстартер
Сообщения
51
Реакции
13
Вот готовая "рыба", но плавает медленно (касается большого, длинного текста). Как подкрутить хвост "рыбе", чтоб плавала быстрее???
Код:
currentParagraph = app.selection[0].paragraphs[0];
selectedParagraphStyle = currentParagraph.appliedParagraphStyle;
while (1){
app.select(currentParagraph, SelectionOptions.ADD_TO);
nextParagraph = currentParagraph.characters.nextItem(currentParagraph.characters.item(-1));
if (!nextParagraph.isValid || nextParagraph.appliedParagraphStyle == selectedParagraphStyle)
break;
currentParagraph = nextParagraph.paragraphs[0];
}
 

Skvoznyak

12 лет на форуме
Сообщения
4 798
Реакции
1 897
Сначала все найти, потом одним махом выбрать
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
29 247
Реакции
9 648
Я так понимаю, предлагается для оптимизации вместо посимвольного выделения в цикле
app.select(currentParagraph, SelectionOptions.ADD_TO);
заменить на добавление currentParagraph в коллекцию, которую в конце цикла разом выделять
Вообще, не факт, что сильно ускорится, пробовать надо
 

afalbert

Участник
Сообщения
66
Реакции
54
может быть можно поиском находить следующий параграф с нужным стилем, а потом уже выделять все что между. Но тоже не факт что ускорится
 
Последнее редактирование:

Skvoznyak

12 лет на форуме
Сообщения
4 798
Реакции
1 897
И коллекцию абзацев загнать в массив через everyItem().getElements().slice(0)
Тоже ускорит обход
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
29 247
Реакции
9 648
Я бы сформулировал вопрос по другому - а зачем 0 ?
 

Skvoznyak

12 лет на форуме
Сообщения
4 798
Реакции
1 897
0 не обязателен, да. но на суть не влияет
 

Skvoznyak

12 лет на форуме
Сообщения
4 798
Реакции
1 897
Скажите пожалуйста , зачем там slice в конце?
это интересный и неочевидный момент ) но как раз он все и ускоряет. после slice что-то рвется в объектной модели, и динамически обновляемые ссылки на объекты становятся статичными, индизайн не лезет при каждом обращении их обновлять.
 
  • Спасибо
Реакции: afalbert