diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2013-08-27 00:08:56 +0400 |
---|---|---|
committer | Mike Krüger <mkrueger@xamarin.com> | 2013-08-27 00:09:34 +0400 |
commit | f4d26903c6d3305de6d05ba119fb757f728939ef (patch) | |
tree | 4ede8b202e25cbcadfab39f0a62d843c1b5d61ff /main/src/addins | |
parent | 295c7b86020ce75d81aa3da182fee078b89b3345 (diff) |
[CSHarpBinding] Fixed script selection bug.
Diffstat (limited to 'main/src/addins')
-rw-r--r-- | main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringScript.cs | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringScript.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringScript.cs index 9b8504b9f9..c7429099fa 100644 --- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringScript.cs +++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringScript.cs @@ -73,18 +73,23 @@ namespace MonoDevelop.CSharp.Refactoring.CodeActions public override void Select (AstNode node) { var seg = GetSegment (node); - var length = seg.Length; - while (length > 0) { - char ch = context.TextEditor.GetCharAt (seg.Offset + length); - if (!char.IsWhiteSpace (ch)) { - length++; + var startOffset = seg.Offset; + var endOffset = seg.EndOffset; + while (startOffset < endOffset) { + char ch = context.TextEditor.GetCharAt (startOffset); + if (!char.IsWhiteSpace (ch)) break; - } - length--; + startOffset++; + } + while (startOffset < endOffset && endOffset > 0) { + char ch = context.TextEditor.GetCharAt (endOffset - 1); + if (!char.IsWhiteSpace (ch)) + break; + endOffset--; } - context.TextEditor.Caret.Offset = seg.Offset + length; - context.TextEditor.SelectionRange = new TextSegment (seg.Offset, length); + context.TextEditor.Caret.Offset = endOffset; + context.TextEditor.SelectionRange = new TextSegment (startOffset, endOffset - startOffset); } public override Task<Script> InsertWithCursor (string operation, InsertPosition defaultPosition, IEnumerable<AstNode> nodes) |