void AddAttribute(DomRegion region, IAttribute attribute, string target = "") { var view = SD.FileService.OpenFile(new FileName(region.FileName), false); var editor = view.GetRequiredService <ITextEditor>(); var context = SDRefactoringContext.Create(editor.FileName, editor.Document, region.Begin, CancellationToken.None); var node = context.RootNode.GetNodeAt <EntityDeclaration>(region.Begin); var resolver = context.GetResolverStateBefore(node); var builder = new TypeSystemAstBuilder(resolver); using (Script script = context.StartScript()) { var attr = new AttributeSection(); attr.AttributeTarget = target; attr.Attributes.Add(builder.ConvertAttribute(attribute)); script.AddAttribute(node, attr); } }