Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit b2a877f

Browse files
fix #452: XAML CC inserts ", " in unexpected places when typing nested markup extension
1 parent 3f0a433 commit b2a877f

3 files changed

Lines changed: 7 additions & 3 deletions

File tree

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,11 @@ static MarkupExtensionInfo Parse(string text, int offset)
7474
info.TryAddNamedArgument(argumentName, ParseValue(token.Value, token.StartOffset + offset));
7575
}
7676

77-
return info;
77+
if (info.EndOffset == 0 && token != null) {
78+
info.EndOffset = token.EndOffset + offset;
79+
}
80+
81+
return info;
7882
}
7983

8084
static void TryAddNamedArgument(this MarkupExtensionInfo info, string name, AttributeValue value)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public static MarkupExtensionInfo GetMarkupExtensionAtPosition(MarkupExtensionIn
126126
MarkupExtensionInfo tmp = info;
127127

128128
foreach (var item in info.PositionalArguments) {
129-
if (item.StartOffset < offset && offset < item.EndOffset)
129+
if (item.StartOffset < offset && offset <= item.EndOffset)
130130
tmp = item.IsString ? tmp : GetMarkupExtensionAtPosition(item.ExtensionValue, offset);
131131
}
132132

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public override void Complete(CompletionContext context, ICompletionItem item)
9292
AttributeValue value = MarkupExtensionParser.ParseValue(valuePart);
9393

9494
if (value != null && !value.IsString) {
95-
var markup = Utils.GetMarkupExtensionAtPosition(value.ExtensionValue, context.Editor.Caret.Offset);
95+
var markup = Utils.GetMarkupExtensionAtPosition(value.ExtensionValue, xamlContext.ValueStartOffset);
9696
if (markup.NamedArguments.Count > 0 || markup.PositionalArguments.Count > 0) {
9797
int oldOffset = context.Editor.Caret.Offset;
9898
context.Editor.Caret.Offset = context.StartOffset;

0 commit comments

Comments
 (0)