public override void ExitOptionPrivateModuleStmt(VBAParser.OptionPrivateModuleStmtContext context) { OnNewDeclaration(CreateDeclaration(context.GetText(), string.Empty, Accessibility.Implicit, DeclarationType.ModuleOption, context, context.GetSelection())); }
public override void EnterOptionExplicitStmt(VBAParser.OptionExplicitStmtContext context) { _declarations.Add(CreateDeclaration(context.GetText(), string.Empty, Accessibility.Implicit, DeclarationType.ModuleOption, context, context.GetSelection())); }
private void RewriteSignature(Declaration target, VBAParser.ArgListContext paramList, CodeModule module) { var argList = paramList.arg(); var newContent = GetOldSignature(target); var lineNum = paramList.GetSelection().LineCount; var parameterIndex = 0; var currentStringIndex = 0; for (var i = parameterIndex; i < _model.Parameters.Count; i++) { var oldParam = argList.ElementAt(parameterIndex).GetText(); var newParam = argList.ElementAt(_model.Parameters.ElementAt(parameterIndex).Index).GetText(); var parameterStringIndex = newContent.IndexOf(oldParam, currentStringIndex, StringComparison.Ordinal); if (parameterStringIndex > -1) { var beginningSub = newContent.Substring(0, parameterStringIndex); var replaceSub = newContent.Substring(parameterStringIndex).Replace(oldParam, newParam); newContent = beginningSub + replaceSub; parameterIndex++; currentStringIndex = beginningSub.Length + newParam.Length; } } module.ReplaceLine(paramList.Start.Line, newContent.Replace(" _" + Environment.NewLine, string.Empty)); module.DeleteLines(paramList.Start.Line + 1, lineNum - 1); }
private void RemoveSignatureParameters(Declaration target, VBAParser.ArgListContext paramList, CodeModule module) { var paramNames = paramList.arg(); var paramsRemoved = _model.Parameters.Where(item => item.IsRemoved).ToList(); var signature = GetOldSignature(target); foreach (var param in paramsRemoved) { try { signature = ReplaceCommas(signature.Replace(paramNames.ElementAt(param.Index).GetText(), ""), _model.Parameters.FindIndex(item => item == param) - paramsRemoved.FindIndex(item => item == param)); } catch (ArgumentOutOfRangeException) { } } var lineNum = paramList.GetSelection().LineCount; module.ReplaceLine(paramList.Start.Line, signature); for (var line = paramList.Start.Line + 1; line < paramList.Start.Line + lineNum; line++) { module.ReplaceLine(line, ""); } }