public void ExtendSelection(NSTextView view, NSEvent evt) { int index = DoMouseEventToIndex(view, evt); NSRange range = view.selectedRange(); if (range.length == 0 && index < view.string_().length() && view.string_()[index] == '\n') { // don't extend the selection if the user clicked off to the right side of a line } else if (index >= view.string_().length()) { // don't extend the selection if the user clicked below the last line of text view.setSelectedRange(NSRange.Empty); } else { // Extend the selection so that it contains the entire word the user right-clicked on. if (range.length == 0 || !range.Intersects(index)) { range = new NSRange(index, 1); range = view.selectionRangeForProposedRange_granularity(range, Enums.NSSelectByWord); view.setSelectedRange(range); } } }