diff --git a/src/fenrir-package/utils/word_utils.py b/src/fenrir-package/utils/word_utils.py index eb3c0be2..56c247ce 100644 --- a/src/fenrir-package/utils/word_utils.py +++ b/src/fenrir-package/utils/word_utils.py @@ -4,9 +4,24 @@ def getPrevWord(currX,currY, currText): if currText == '': return -1, -1, '' x, y, word = getCurrentWord(currX,currY,currText) - if (x == currX) or (y == currY) and (word == ''): + wrappedLines = currText.split('\n') + if (word == ''): return currX, currY, '' - return getCurrentWord(x - 2, y, currText) + while True: + if x < 2: + if y != 0: + y -= 1 + else: + return currX, currY, '' + x = len(wrappedLines[y]) - 1 + else: + x -= 1 + if wrappedLines[y] != '': + break + x, y, word = getCurrentWord(x, y, currText) + if word == '': + return currX, currY, '' + return x, y, word def getCurrentWord(currX,currY, currText): if currText == '': @@ -16,40 +31,38 @@ def getCurrentWord(currX,currY, currText): wrappedLines = currText.split('\n') wordFound = False currWord = '' - if x < 0: - if y != 0: - y -= 1 - currLine = wrappedLines[y].replace("\t"," ") - else: - return currX, currY, '' - x = len(currLine) - 1 - else: - currLine = wrappedLines[y].replace("\t"," ") + currLine = wrappedLines[y].replace("\t"," ") + if currLine[x] == ' ' and x > 1: + x = x - 2 while not wordFound: x = currLine[:x].rfind(" ") if x == -1: x = 0 else: x += 1 - wordEnd = currLine[x + 2:].find(" ") + wordEnd = currLine[x + 1:].find(" ") if wordEnd == -1: - wordEnd = len(currLine[x:]) + wordEnd = len(currLine) else: wordEnd += x + 1 currWord = currLine[x:wordEnd] wordFound = currWord.strip(" \t\n") != '' - print(currWord) if wordFound: break - print(currWord) if x == 0: if y != 0: y -= 1 currLine = wrappedLines[y].replace("\t"," ") else: return currX, currY, '' - x = len(currLine) - 1 + x = len(wrappedLines[y]) - 1 else: x -= 1 - print(currWord) return x, y, currWord + +currText = " das ist ein test\ntest das\ntesttest\n\ntest" +currY = 4 +currX = 3 +currX, currY, word = getCurrentWord(currX,currY,currText) +#currX, currY, word = getPrevWord(currX,currY,currText) +print(currX, currY, word)