Skip to main content

Метод Position:getPreviousRange

Метод возвращает диапазон, который расположен перед текущим диапазоном. Размеры текущего и предыдущего диапазонов зависят от выбранной единицы текста. Если выбранная единица текста отлична от Paragraph, то работа метода Position:getPreviousRange ограничена текущим абзацем.

Вызов​


Range getPreviousRange(textUnit)

Параметры​

  • textUnit: единица текста, определяющая размеры диапазонов, тип TextUnit.

Возвращает​

  • предыдущий диапазон документа, тип Range.

Пример для текстового документа​


local sentenceBegin = document:getRange():getBegin():getNextRange(DocumentAPI.TextUnit_Sentence):getBegin()
local previousSentence = sentenceBegin:getPreviousRange(DocumentAPI.TextUnit_Sentence)
local previousWord = sentenceBegin:getPreviousRange(DocumentAPI.TextUnit_Word)
while previousWord:getContentEnd():compare(previousWord:getBegin()) == 1 do
previousWord = previousWord:getBegin():getPreviousRange(DocumentAPI.TextUnit_Word)
end
local previousCharacter = sentenceBegin:getPreviousRange(DocumentAPI.TextUnit_Character)
previousCharacter = previousCharacter:getBegin():getPreviousRange(DocumentAPI.TextUnit_Character)
previousCharacter = previousCharacter:getBegin():getPreviousRange(DocumentAPI.TextUnit_Character)

print(previousSentence:extractText())
-- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
print(previousWord:extractText()) -- aliqua
print(previousCharacter:extractText()) -- a

Пример для табличного документа​


local sheet = document:getBlocks():getTable(0)
local cell = sheet:getCell("B2")
local cellEnd = cell:getRange():getContentEnd()
local sentence = cellEnd:getPreviousRange(DocumentAPI.TextUnit_Sentence)

print(sentence:extractText()) -- Second sentence.