public bool ExecuteRename(Statement query, RenameViewModel renameViewModel, DTE2 envDte)
        {
            try
            {
                Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread();
                var projectItem         = envDte.Solution.FindProjectItem(query.QueryFileName);
                var isProjectItemOpened = projectItem.IsOpen;
                if (!isProjectItemOpened)
                {
                    projectItem.Open();
                }

                var textSelection = projectItem.Document.Selection as TextSelection;
                textSelection.GotoLine(query.QueryLineNumber, true);

                var line = textSelection.GetText();
                line = line.Replace(MapNamespaceHelper.GetQueryWithoutNamespace(query.QueryId), MapNamespaceHelper.GetQueryWithoutNamespace(renameViewModel.QueryText));

                textSelection.Insert(line, (int)vsInsertFlags.vsInsertFlagsContainNewText);
                projectItem.Document.Save();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Beispiel #2
0
        public RenameWindow()
        {
            InitializeComponent();

            btnOK.IsEnabled = false;

            DataContext = new RenameViewModel();
        }
Beispiel #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RenameModalWindowControl"/> class.
 /// </summary>
 public RenameModalWindowControl()
 {
     this.InitializeComponent();
     _renameViewModel = new RenameViewModel
     {
         QueryText = "bindTestQuery"
     };
     this.DataContext = _renameViewModel;
 }
Beispiel #4
0
        public void Rename()
        {
            var dialog = new RenameViewModel(this.smartSet.Name, item => this.smartSet.Category.Items.ContainsKey(item) == false);

            if (dialog.ShowDialog() == true)
            {
                this.smartSet.Name = dialog.NewName;
            }
        }
Beispiel #5
0
        public RenameDialog(string name, Action <string> a)
        {
            InitializeComponent();
            DataContext = new RenameViewModel(a);

            textBox1.Text = name;
            textBox1.Focus();
            textBox1.SelectAll();
        }
Beispiel #6
0
        public void Rename()
        {
            var dialog = new RenameViewModel(this.category.Name, item => this.category.Parent.Categories.ContainsKey(item) == false);

            if (dialog.ShowDialog() != true)
            {
                return;
            }

            try
            {
                this.category.Name = dialog.NewName;
            }
            catch (Exception e)
            {
                AppMessageBox.ShowError(e);
            }
        }
        public async Task RenameAsync()
        {
            var dialog = new RenameViewModel(this.category.Name, item => this.category.Parent.Categories.ContainsKey(item) == false);

            if (await dialog.ShowDialogAsync() != true)
            {
                return;
            }

            try
            {
                this.category.Name = dialog.NewName;
            }
            catch (Exception e)
            {
                await AppMessageBox.ShowErrorAsync(e);
            }
        }
Beispiel #8
0
 public RenamePopup(Deck deck)
 {
     BindingContext = new RenameViewModel(deck);
     InitializeComponent();
 }
Beispiel #9
0
 public RenameModalWindowControl(RenameViewModel viewModel)
 {
     this.InitializeComponent();
     _renameViewModel = viewModel;
     this.DataContext = _renameViewModel;
 }
        public bool ExecuteRename(KeyValuePair <IndexerKey, List <CSharpQuery> > codeKeyValuePair, RenameViewModel renameViewModel, VisualStudioWorkspace workspace)
        {
            bool result = true;

            foreach (var file in codeKeyValuePair.Value.GroupBy(x => x.DocumentId, x => x))
            {
                var           doc      = workspace.CurrentSolution.GetDocument(file.Key);
                SemanticModel semModel = ThreadHelper.JoinableTaskFactory.Run(async() => await doc.GetSemanticModelAsync());
                NodeHelpers   helper   = new NodeHelpers(semModel);
                doc.TryGetSyntaxTree(out SyntaxTree synTree);
                var root = (CompilationUnitSyntax)synTree.GetRoot();
                var newArgumentSyntax = SyntaxFactory.Argument(SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression, SyntaxFactory.Literal(renameViewModel.QueryText)));

                foreach (var query in file)
                {
                    var span  = synTree.GetText().Lines[query.QueryLineNumber - 1].Span;
                    var nodes = root.DescendantNodesAndSelf(span);
                    var existingQueryArgumentSyntax = helper.GetProperArgumentNodeInNodes(nodes);

                    var newRoot = root.ReplaceNode(existingQueryArgumentSyntax, newArgumentSyntax);
                    root = newRoot;

                    doc = doc.WithText(newRoot.GetText());
                    var applyResult = workspace.TryApplyChanges(doc.Project.Solution);
                    result = result && applyResult;
                }
            }
            return(result);
        }