about summary refs log tree commit diff stats
path: root/source_text.lua
diff options
context:
space:
mode:
Diffstat (limited to 'source_text.lua')
-rw-r--r--source_text.lua9
1 files changed, 7 insertions, 2 deletions
diff --git a/source_text.lua b/source_text.lua
index 9e3a9ac..98045be 100644
--- a/source_text.lua
+++ b/source_text.lua
@@ -54,7 +54,7 @@ function Text.draw(State, line_index, y, startpos, hide_cursor)
       if not hide_cursor and line_index == State.cursor1.line then
         -- render search highlight or cursor
         if State.search_term then
-          if pos <= State.cursor1.pos and pos + frag_len >= State.cursor1.pos then
+          if pos <= State.cursor1.pos and pos + frag_len > State.cursor1.pos then
             local data = State.lines[State.cursor1.line].data
             local cursor_offset = Text.offset(data, State.cursor1.pos)
             if data:sub(cursor_offset, cursor_offset+#State.search_term-1) == State.search_term then
@@ -64,7 +64,12 @@ function Text.draw(State, line_index, y, startpos, hide_cursor)
             end
           end
         elseif Focus == 'edit' then
-          if pos <= State.cursor1.pos and pos + frag_len >= State.cursor1.pos then
+          if pos <= State.cursor1.pos and pos + frag_len > State.cursor1.pos then
+            Text.draw_cursor(State, State.left+Text.x(screen_line, State.cursor1.pos-pos+1), y)
+          elseif pos + frag_len == State.cursor1.pos then
+            -- Show cursor at end of line.
+            -- This place also catches end of wrapping screen lines. That doesn't seem worth distinguishing.
+            -- It seems useful to see a cursor whether your eye is on the left or right margin.
             Text.draw_cursor(State, State.left+Text.x(screen_line, State.cursor1.pos-pos+1), y)
           end
         end