Browse Source

fix #452: XAML CC inserts ", " in unexpected places when typing nested markup extension

pull/470/head
Siegfried Pammer 12 years ago
parent
commit
b2a877fb45
  1. 4
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/MarkupExtensionParser.cs
  2. 2
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/Utils.cs
  3. 2
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCompletionItemList.cs

4
src/AddIns/BackendBindings/XamlBinding/XamlBinding/MarkupExtensionParser.cs

@ -74,6 +74,10 @@ namespace ICSharpCode.XamlBinding @@ -74,6 +74,10 @@ namespace ICSharpCode.XamlBinding
info.TryAddNamedArgument(argumentName, ParseValue(token.Value, token.StartOffset + offset));
}
if (info.EndOffset == 0 && token != null) {
info.EndOffset = token.EndOffset + offset;
}
return info;
}

2
src/AddIns/BackendBindings/XamlBinding/XamlBinding/Utils.cs

@ -126,7 +126,7 @@ namespace ICSharpCode.XamlBinding @@ -126,7 +126,7 @@ namespace ICSharpCode.XamlBinding
MarkupExtensionInfo tmp = info;
foreach (var item in info.PositionalArguments) {
if (item.StartOffset < offset && offset < item.EndOffset)
if (item.StartOffset < offset && offset <= item.EndOffset)
tmp = item.IsString ? tmp : GetMarkupExtensionAtPosition(item.ExtensionValue, offset);
}

2
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCompletionItemList.cs

@ -92,7 +92,7 @@ namespace ICSharpCode.XamlBinding @@ -92,7 +92,7 @@ namespace ICSharpCode.XamlBinding
AttributeValue value = MarkupExtensionParser.ParseValue(valuePart);
if (value != null && !value.IsString) {
var markup = Utils.GetMarkupExtensionAtPosition(value.ExtensionValue, context.Editor.Caret.Offset);
var markup = Utils.GetMarkupExtensionAtPosition(value.ExtensionValue, xamlContext.ValueStartOffset);
if (markup.NamedArguments.Count > 0 || markup.PositionalArguments.Count > 0) {
int oldOffset = context.Editor.Caret.Offset;
context.Editor.Caret.Offset = context.StartOffset;

Loading…
Cancel
Save