本文整理汇总了C#中Rubberduck.Parsing.Symbols.Declaration.GetVariableStmtContext方法的典型用法代码示例。如果您正苦于以下问题:C# Declaration.GetVariableStmtContext方法的具体用法?C# Declaration.GetVariableStmtContext怎么用?C# Declaration.GetVariableStmtContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Rubberduck.Parsing.Symbols.Declaration
的用法示例。
在下文中一共展示了Declaration.GetVariableStmtContext方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RemoveVariable
private void RemoveVariable(Declaration target)
{
Selection selection;
var declarationText = target.Context.GetText();
var multipleDeclarations = target.HasMultipleDeclarationsInStatement();
var variableStmtContext = target.GetVariableStmtContext();
if (!multipleDeclarations)
{
declarationText = variableStmtContext.GetText();
selection = target.GetVariableStmtContextSelection();
}
else
{
selection = new Selection(target.Context.Start.Line, target.Context.Start.Column,
target.Context.Stop.Line, target.Context.Stop.Column);
}
var oldLines = _editor.GetLines(selection);
var newLines = oldLines.Replace(" _" + Environment.NewLine, string.Empty)
.Remove(selection.StartColumn, declarationText.Length);
if (multipleDeclarations)
{
selection = target.GetVariableStmtContextSelection();
newLines = RemoveExtraComma(_editor.GetLines(selection).Replace(oldLines, newLines),
target.CountOfDeclarationsInStatement(), target.IndexOfVariableDeclarationInStatement());
}
var adjustedLines =
newLines.Split(new[] {Environment.NewLine}, StringSplitOptions.None)
.Select(s => s.EndsWith(" _") ? s.Remove(s.Length - 2) : s)
.Where(s => s.Trim() != string.Empty)
.ToList();
_editor.DeleteLines(selection);
if (adjustedLines.Any())
{
_editor.InsertLines(selection.StartLine, string.Join(string.Empty, adjustedLines));
}
}
示例2: RemoveField
private void RemoveField(Declaration target)
{
Selection selection;
var declarationText = target.Context.GetText();
var multipleDeclarations = target.HasMultipleDeclarationsInStatement();
var variableStmtContext = target.GetVariableStmtContext();
if (!multipleDeclarations)
{
declarationText = variableStmtContext.GetText();
selection = target.GetVariableStmtContextSelection();
}
else
{
selection = new Selection(target.Context.Start.Line, target.Context.Start.Column,
target.Context.Stop.Line, target.Context.Stop.Column);
}
var oldLines = _editor.GetLines(selection);
var newLines = oldLines.Replace(" _" + Environment.NewLine, string.Empty)
.Remove(selection.StartColumn, declarationText.Length);
if (multipleDeclarations)
{
selection = target.GetVariableStmtContextSelection();
newLines = RemoveExtraComma(_editor.GetLines(selection).Replace(oldLines, newLines),
target.CountOfDeclarationsInStatement(), target.IndexOfVariableDeclarationInStatement());
}
newLines = newLines.Replace(" _" + Environment.NewLine, string.Empty);
_editor.DeleteLines(selection);
if (newLines.Trim() != string.Empty)
{
_editor.InsertLines(selection.StartLine, newLines);
}
}
示例3: RemoveVariable
private void RemoveVariable(Declaration target)
{
Selection selection;
var declarationText = target.Context.GetText();
var multipleDeclarations = target.HasMultipleDeclarationsInStatement();
var variableStmtContext = target.GetVariableStmtContext();
if (!multipleDeclarations)
{
declarationText = variableStmtContext.GetText();
selection = target.GetVariableStmtContextSelection();
}
else
{
selection = new Selection(target.Context.Start.Line, target.Context.Start.Column,
target.Context.Stop.Line, target.Context.Stop.Column);
}
var oldLines = _editor.GetLines(selection);
var newLines = oldLines.Replace(" _" + Environment.NewLine, string.Empty)
.Remove(selection.StartColumn, declarationText.Length);
if (multipleDeclarations)
{
selection = target.GetVariableStmtContextSelection();
newLines = RemoveExtraComma(_editor.GetLines(selection).Replace(oldLines, newLines),
target.CountOfDeclarationsInStatement(), target.IndexOfVariableDeclarationInStatement());
}
var newLinesWithoutExcessSpaces = newLines.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
for (var i = 0; i < newLinesWithoutExcessSpaces.Length; i++)
{
newLinesWithoutExcessSpaces[i] = newLinesWithoutExcessSpaces[i].RemoveExtraSpacesLeavingIndentation();
}
for (var i = newLinesWithoutExcessSpaces.Length - 1; i >= 0; i--)
{
if (newLinesWithoutExcessSpaces[i].Trim() == string.Empty)
{
continue;
}
if (newLinesWithoutExcessSpaces[i].EndsWith(" _"))
{
newLinesWithoutExcessSpaces[i] =
newLinesWithoutExcessSpaces[i].Remove(newLinesWithoutExcessSpaces[i].Length - 2);
}
break;
}
_editor.DeleteLines(selection);
_editor.InsertLines(selection.StartLine, string.Join(Environment.NewLine, newLinesWithoutExcessSpaces));
}