diff options
-rw-r--r-- | core/ui.lua | 3 | ||||
-rw-r--r-- | test/test.lua | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/core/ui.lua b/core/ui.lua index 5ee4fbd1..e7e608de 100644 --- a/core/ui.lua +++ b/core/ui.lua @@ -304,7 +304,8 @@ end, 1) events_connect(events.UPDATE_UI, function(updated) if updated and updated & buffer.UPDATE_SELECTION > 0 and ui.highlight_words and not buffer.selection_empty and - buffer:is_range_word(buffer.selection_start, buffer.selection_end) then + buffer:is_range_word(buffer.selection_start, buffer.selection_end) and + buffer:get_sel_text():find('^%S+$') then clear_highlighted_words() local word = buffer:text_range(buffer.selection_start, buffer.selection_end) buffer.search_flags = buffer.FIND_MATCHCASE | buffer.FIND_WHOLEWORD diff --git a/test/test.lua b/test/test.lua index 1ae3be7c..155a4a1e 100644 --- a/test/test.lua +++ b/test/test.lua @@ -1790,6 +1790,11 @@ function test_ui_highlight_word() buffer:set_sel(1, 3) pos = buffer:indicator_end(ui.INDIC_HIGHLIGHT, 2) assert_equal(pos, 1) -- no highlights + -- Verify multi-word selections do not highlight words. + buffer:set_sel(buffer:position_from_line(LINE(3)), buffer.line_end_position[LINE(3)]) + assert(buffer:is_range_word(buffer.selection_start, buffer.selection_end)) + pos = buffer:indicator_end(ui.INDIC_HIGHLIGHT, 2) + assert_equal(pos, 1) -- no highlights buffer:close(true) end |