private void ReplaceImportStatements()
        {
            HashSet <string> alreadyAddedImportsStatements             = new HashSet <string>();
            IEnumerable <ImportsStatementSyntax> importsStatementNodes = tree.GetRoot().DescendantNodes().OfType <ImportsStatementSyntax>();

            foreach (ImportsStatementSyntax oldImportsStatementNode in importsStatementNodes) // iterate over all qualified names in the file
            {
                // could be problems if this import statement isn't simple, however even if an alias is used in the import it's still simple
                SimpleImportsClauseSyntax oldSimpleImportsNode = oldImportsStatementNode.DescendantNodes().OfType <SimpleImportsClauseSyntax>().First();
                var oldNamespace = oldSimpleImportsNode.WithoutTrivia().Name.GetText().ToString();
                List <namespace_map> namespaces = NSMappingSQLConnector.GetInstance().GetNamespaceMapsFromOldNamespace(TransformProject.sdkId, oldNamespace);
                if (namespaces != null)
                {
                    foreach (namespace_map nsMap in namespaces)
                    {
                        var newNamespace = nsMap.new_namespace;
                        if (!alreadyAddedImportsStatements.Contains(newNamespace))
                        {
                            alreadyAddedImportsStatements.Add(newNamespace);
                            NameSyntax newIdentifierNode    = IdentifierName(newNamespace);
                            var        newSimpleImportsNode = oldSimpleImportsNode.WithName(newIdentifierNode);
                            SeparatedSyntaxList <ImportsClauseSyntax> simpleImportsList = new SeparatedSyntaxList <ImportsClauseSyntax>().Add(newSimpleImportsNode);
                            ImportsStatementSyntax newImportsStatementNode = ImportsStatement(simpleImportsList).WithTriviaFrom(oldImportsStatementNode);
                            newImportsStatementNode = newImportsStatementNode.WithImportsKeyword(oldImportsStatementNode.ImportsKeyword);
                            documentEditor.InsertAfter(oldImportsStatementNode, newImportsStatementNode);
                        }
                    }
                    documentEditor.RemoveNode(oldImportsStatementNode);
                }
            }
        }
Пример #2
0
        /// <summary>
        ///		Interpreta una cláusula using
        /// </summary>
        private void ParseUsing(SyntaxNode objNode, LanguageStructModel objParent)
        {
            SimpleImportsClauseSyntax objUsing = objNode as SimpleImportsClauseSyntax;

            // Añade el nombre a la lista de cadenas "Using"
            if (objUsing != null)
            {
                base.AddUsing(objNode, objParent, objUsing.Name.ToFullString());
            }
        }
Пример #3
0
        /// <summary>
        ///		Interpreta una cláusula using
        /// </summary>
        private void ParseUsing(SyntaxNode node, LanguageStructModel parent)
        {
            SimpleImportsClauseSyntax usingDef = node as SimpleImportsClauseSyntax;

            // Añade el nombre a la lista de cadenas "Using"
            if (usingDef != null)
            {
                AddUsing(node, parent, usingDef.Name.ToFullString());
            }
        }