Browse Source

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
shortcuts
Christian Hornung 17 years ago
parent
commit
6419433ed1
  1. 10
      src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/ICSharpCodeCoreResourceResolver.cs
  2. 7
      src/AddIns/Misc/ResourceToolkit/Test/CSharp/ICSharpCodeCoreResourceResolverTests.cs

10
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. // Find $ character to the left of the caret.
caretOffset += 1; char ch = document.GetCharAt(caretOffset);
char ch; if (ch == '}' && caretOffset > 0) {
do {
ch = document.GetCharAt(--caretOffset); 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) { if (caretOffset + 6 >= document.TextLength || document.GetText(caretOffset, 6) != ResourceReferenceToken) {
return null; return null;

7
src/AddIns/Misc/ResourceToolkit/Test/CSharp/ICSharpCodeCoreResourceResolverTests.cs

@ -52,6 +52,13 @@ namespace ResourceToolkit.Tests.CSharp
TestHelper.CheckReference(rrr, "[ICSharpCodeCoreHostResourceSet]", "TestKey", null, null); TestHelper.CheckReference(rrr, "[ICSharpCodeCoreHostResourceSet]", "TestKey", null, null);
} }
[Test]
public void AfterKey()
{
ResourceResolveResult rrr = Resolve(CodeResourceAccess, 2, 24, null);
TestHelper.CheckNoReference(rrr);
}
[Test] [Test]
public void NoCompletionWrongChar() public void NoCompletionWrongChar()
{ {

Loading…
Cancel
Save