Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -125,11 +125,7 @@ public override AstVisitAction VisitCommand(CommandAst commandAst)
/// <returns>A visit action that continues the search for references</returns>
public override AstVisitAction VisitFunctionDefinition(FunctionDefinitionAst functionDefinitionAst)
{
// Get the start column number of the function name,
// instead of the the start column of 'function' and create new extent for the functionName
int startColumnNumber =
functionDefinitionAst.Extent.Text.IndexOf(
functionDefinitionAst.Name) + 1;
int startColumnNumber = GetStartColumnNumberFromAst(functionDefinitionAst);

IScriptExtent nameExtent = new ScriptExtent()
{
Expand Down Expand Up @@ -185,5 +181,35 @@ public override AstVisitAction VisitVariableExpression(VariableExpressionAst var
}
return AstVisitAction.Continue;
}

// Computes where the start of the actual function name is.
private static int GetStartColumnNumberFromAst(FunctionDefinitionAst ast)
{
int astOffset = 0;

if (ast.IsFilter)
{
astOffset = "filter".Length;
}
else if (ast.IsWorkflow)
{
astOffset = "workflow".Length;
}
else
{
astOffset = "function".Length;
}

string astText = ast.Extent.Text;
for (; astOffset < astText.Length; astOffset++)
{
if (!char.IsWhiteSpace(astText[astOffset]))
{
break;
}
}

return ast.Extent.StartColumnNumber + astOffset;
}
}
}