From 6419433ed1f29322c7a9ffcc674d6bb5504c9d84 Mon Sep 17 00:00:00 2001 From: Christian Hornung Date: Sun, 17 Aug 2008 09:34:55 +0000 Subject: [PATCH] ResourceToolkit: Fixed the ICSharpCodeCoreResourceResolver detecting a resource reference even if the caret is positioned after the closing brace of ${res:...}. Added unit test for this case. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@3397 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Src/Resolver/ICSharpCodeCoreResourceResolver.cs | 10 ++++++---- .../CSharp/ICSharpCodeCoreResourceResolverTests.cs | 7 +++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/ICSharpCodeCoreResourceResolver.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/ICSharpCodeCoreResourceResolver.cs index 934592f34d..5bf1717125 100644 --- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/ICSharpCodeCoreResourceResolver.cs +++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/ICSharpCodeCoreResourceResolver.cs @@ -102,11 +102,13 @@ namespace Hornung.ResourceToolkit.Resolver } // Find $ character to the left of the caret. - caretOffset += 1; - char ch; - do { + char ch = document.GetCharAt(caretOffset); + if (ch == '}' && caretOffset > 0) { ch = document.GetCharAt(--caretOffset); - } while (!Char.IsWhiteSpace(ch) && ch != '$' && caretOffset > 0); + } + while (!Char.IsWhiteSpace(ch) && ch != '$' && ch != '}' && caretOffset > 0) { + ch = document.GetCharAt(--caretOffset); + } if (caretOffset + 6 >= document.TextLength || document.GetText(caretOffset, 6) != ResourceReferenceToken) { return null; diff --git a/src/AddIns/Misc/ResourceToolkit/Test/CSharp/ICSharpCodeCoreResourceResolverTests.cs b/src/AddIns/Misc/ResourceToolkit/Test/CSharp/ICSharpCodeCoreResourceResolverTests.cs index 9945c3ca45..519768ae38 100644 --- a/src/AddIns/Misc/ResourceToolkit/Test/CSharp/ICSharpCodeCoreResourceResolverTests.cs +++ b/src/AddIns/Misc/ResourceToolkit/Test/CSharp/ICSharpCodeCoreResourceResolverTests.cs @@ -52,6 +52,13 @@ namespace ResourceToolkit.Tests.CSharp TestHelper.CheckReference(rrr, "[ICSharpCodeCoreHostResourceSet]", "TestKey", null, null); } + [Test] + public void AfterKey() + { + ResourceResolveResult rrr = Resolve(CodeResourceAccess, 2, 24, null); + TestHelper.CheckNoReference(rrr); + } + [Test] public void NoCompletionWrongChar() {