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

  • Автор темы Автор темы rezunoff
  • Дата начала Дата начала

rezunoff

Участник
Топикстартер
Сообщения
69
Реакции
13
Как выделить текст, начиная со стиля параграфа где стоит курсор и до момента, когда опять начинается этот стиль?
2021-02-23_20-07-23.png
 
выделять все абзацы пока не дойдете до того же стиля что в первом. что именно вызывает затруднения?
 
я вижу раздел, спасибо. что вызывает затруднения при написании скрипта?
 
Вот готовая "рыба", но плавает медленно (касается большого, длинного текста). Как подкрутить хвост "рыбе", чтоб плавала быстрее???
Код:
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];
}
 
Сначала все найти, потом одним махом выбрать
 
Я так понимаю, предлагается для оптимизации вместо посимвольного выделения в цикле
app.select(currentParagraph, SelectionOptions.ADD_TO);
заменить на добавление currentParagraph в коллекцию, которую в конце цикла разом выделять
Вообще, не факт, что сильно ускорится, пробовать надо
 
может быть можно поиском находить следующий параграф с нужным стилем, а потом уже выделять все что между. Но тоже не факт что ускорится
 
Последнее редактирование:
И коллекцию абзацев загнать в массив через everyItem().getElements().slice(0)
Тоже ускорит обход
 
Я бы сформулировал вопрос по другому - а зачем 0 ?
 
0 не обязателен, да. но на суть не влияет
 
Скажите пожалуйста , зачем там slice в конце?
это интересный и неочевидный момент ) но как раз он все и ускоряет. после slice что-то рвется в объектной модели, и динамически обновляемые ссылки на объекты становятся статичными, индизайн не лезет при каждом обращении их обновлять.
 
  • Спасибо
Реакции: afalbert