From 76535d41de4d3b34bdbb6cd13586dfc92176846a Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 23 Apr 2013 12:32:35 +0200 Subject: [PATCH] select word at caret: expand selection document wide for non-physical documents, e.g. in dialogs (IDEA-105705) --- .../editor/actions/SelectWordAtCaretAction.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/editor/actions/SelectWordAtCaretAction.java b/platform/lang-impl/src/com/intellij/openapi/editor/actions/SelectWordAtCaretAction.java index a86fbb931e52..cebf9978553f 100644 --- a/platform/lang-impl/src/com/intellij/openapi/editor/actions/SelectWordAtCaretAction.java +++ b/platform/lang-impl/src/com/intellij/openapi/editor/actions/SelectWordAtCaretAction.java @@ -75,13 +75,18 @@ public class SelectWordAtCaretAction extends TextComponentEditorAction implement int startWordOffset = Math.max(0, ranges.get(0).getStartOffset()); int endWordOffset = Math.min(ranges.get(0).getEndOffset(), document.getTextLength()); - if (camel && ranges.size() == 2 && editor.getSelectionModel().getSelectionStart() == startWordOffset && - editor.getSelectionModel().getSelectionEnd() == endWordOffset) { + final SelectionModel selectionModel = editor.getSelectionModel(); + if (camel && ranges.size() == 2 && selectionModel.getSelectionStart() == startWordOffset && + selectionModel.getSelectionEnd() == endWordOffset) { startWordOffset = Math.max(0, ranges.get(1).getStartOffset()); endWordOffset = Math.min(ranges.get(1).getEndOffset(), document.getTextLength()); } - editor.getSelectionModel().setSelection(startWordOffset, endWordOffset); + if (startWordOffset >= selectionModel.getSelectionStart() && selectionModel.getSelectionEnd() >= endWordOffset && ranges.size() == 1) { + startWordOffset = 0; + endWordOffset = document.getTextLength(); + } + selectionModel.setSelection(startWordOffset, endWordOffset); } }