Пример #1
0
		public override void BatchRun (Document document, TextLocation loc)
		{
			base.BatchRun (document, loc);
			var context = new MDRefactoringContext (document, loc);
			using (var script = context.StartScript ()) {
				foreach (var action in SiblingActions) {
					context.SetLocation (action.Start);
					action.Run (script);
				}
			}
		}
Пример #2
0
        public override void BatchRun(Document document, TextLocation loc)
        {
            base.BatchRun(document, loc);
            var context = new MDRefactoringContext(document, loc);

            using (var script = context.StartScript()) {
                foreach (var action in SiblingActions)
                {
                    context.SetLocation(action.Start);
                    action.Run(script);
                }
            }
        }
		IEnumerable<ICSharpCode.NRefactory.CSharp.Refactoring.CodeAction> GetActions (ICSharpCode.NRefactory.CSharp.Refactoring.CodeIssue issue, MDRefactoringContext context)
		{
			foreach (var action in issue.Actions)
				yield return action;
			if (boundActionProvider != null) {
				// We need to se the correct location here. Seems very fragile to do so...
				context.SetLocation (issue.Start);
				foreach (var action in boundActionProvider.GetActions (context)) {
					yield return action;
				}
			}
		}
		IEnumerable<NRefactoryCodeAction> GetActions (ICSharpCode.NRefactory.CSharp.Refactoring.CodeIssue issue, MDRefactoringContext context)
		{
			foreach (var action in issue.Actions)
				yield return new NRefactoryCodeAction (IdString, action.Description, action, action.SiblingKey);

			if (issue.ActionProvider != null) {
				foreach (var provider in issue.ActionProvider) {
					var boundActionProvider = (ICSharpCode.NRefactory.CSharp.Refactoring.CodeActionProvider)Activator.CreateInstance (provider);
					context.SetLocation (issue.Start);
					foreach (var action in boundActionProvider.GetActions (context)) {
						yield return new NRefactoryCodeAction (provider.FullName, action.Description, action, action.SiblingKey);
					}
				}
			}
			/*
			var nrefactoryCodeAction = new NRefactoryCodeAction (IdString, act.Description, act, act.SiblingKey);
			if (act.SiblingKey != null) {
				// make sure the action has a list of its siblings
				IList<ICSharpCode.NRefactory.CSharp.Refactoring.CodeAction> siblingGroup;
				if (!actionGroups.TryGetValue (act.SiblingKey, out siblingGroup)) {
					siblingGroup = new List<ICSharpCode.NRefactory.CSharp.Refactoring.CodeAction> ();
					actionGroups.Add (act.SiblingKey, siblingGroup);
				}
				siblingGroup.Add (act);
				nrefactoryCodeAction.SiblingActions = siblingGroup;
			}
			*/
		}
Пример #5
0
		IEnumerable<NRefactoryCodeAction> GetActions (ICSharpCode.NRefactory.CSharp.Refactoring.CodeIssue issue, MDRefactoringContext context)
		{
			foreach (var action in issue.Actions)
				yield return new NRefactoryCodeAction (IdString, action.Description, action, action.SiblingKey);

			if (issue.ActionProvider != null) {
				foreach (var provider in issue.ActionProvider) {
					var boundActionProvider = (ICSharpCode.NRefactory.CSharp.Refactoring.CodeActionProvider)Activator.CreateInstance (provider);
					context.SetLocation (issue.Start);
					foreach (var action in boundActionProvider.GetActions (context)) {
						yield return new NRefactoryCodeAction (provider.FullName, action.Description, action, action.SiblingKey);
					}
				}
			}
		}