Beispiel #1
0
        private RepositoryTreeNode EnsureServerOf(Uri uri)
        {
            Uri serverUri;
            RepositoryTreeNode serverNode = FindServer(uri, out serverUri);

            if (serverNode == null)
            {
                serverNode      = new RepositoryTreeNode(serverUri, true);
                serverNode.Text = serverUri.ToString();

                if (IconMapper != null)
                {
                    serverNode.IconIndex = IconMapper.GetSpecialIcon(SpecialIcon.Server);
                }


                if (serverNode.Text.ToString() == "file:///")
                {
                    serverNode.IconIndex = IconMapper.GetSpecialFolderIcon(Environment.SpecialFolder.MyComputer);
                    serverNode.Text      = RepositoryStrings.LocalRepositories;
                }

                SortedAddNode(RootNode.Nodes, serverNode);

                if (!RootNode.IsExpanded)
                {
                    RootNode.Expand();
                }
            }
            return(serverNode);
        }
Beispiel #2
0
        public static List <CodeItem> Map(string filePath, ICodeViewUserControl control)
        {
            _control = control;

            var jsString = File.ReadAllText(filePath);

            var ast = new TypeScriptAST(jsString, filePath);

            return(new List <CodeItem>
            {
                new CodeNamespaceItem
                {
                    Id = "Namespace" + filePath,
                    Kind = CodeItemKindEnum.Namespace,
                    Members = new List <CodeItem>
                    {
                        new CodeClassItem
                        {
                            Id = filePath,
                            Kind = CodeItemKindEnum.Class,
                            Access = CodeItemAccessEnum.Public,
                            Moniker = IconMapper.MapMoniker(CodeItemKindEnum.Class, CodeItemAccessEnum.Public),
                            Name = Path.GetFileNameWithoutExtension(filePath),
                            BorderColor = Colors.DarkGray,
                            Members = ast.RootNode.Children?.SelectMany(MapMember)?.ToList() ?? new List <CodeItem>()
                        }
                    }
                }
            });
        }
Beispiel #3
0
        private RepositoryTreeNode EnsureNodeUri(Uri uri, Uri repositoryUri, SvnNodeKind kind)
        {
            Uri nUri = SvnTools.GetNormalizedUri(uri);
            RepositoryTreeNode tn;

            if (!_nodeMap.TryGetValue(nUri, out tn))
            {
                Uri parentUri = new Uri(uri, kind == SvnNodeKind.Directory ? "../" : "./");

                if (parentUri == uri)
                {
                    return(null);
                }

                RepositoryTreeNode parent = EnsureNodeUri(parentUri, repositoryUri, SvnNodeKind.Directory);

                if (parent != null)
                {
                    tn = new RepositoryTreeNode(new SvnOrigin(uri, repositoryUri));
                    string name = uri.ToString();

                    tn.Text = tn.Origin.Target.FileName;

                    if (IconMapper != null)
                    {
                        if (kind == SvnNodeKind.Directory)
                        {
                            tn.IconIndex = IconMapper.DirectoryIcon;
                        }
                        else
                        {
                            tn.IconIndex = IconMapper.GetIconForExtension(Path.GetExtension(name));
                        }
                    }

                    _nodeMap.Add(nUri, tn);

                    tn.Preload(kind);

                    SortedAddNode(parent.Nodes, tn);

                    if (!parent.IsExpanded && IsLoading(nUri))
                    {
                        parent.LoadExpand();

                        tn.EnsureVisible();
                    }
                    else if (IsLoading(nUri))
                    {
                        tn.EnsureVisible();
                    }
                }
            }

            return(tn);
        }
Beispiel #4
0
        protected override DrawingBrush CreateIconSourceBrush()
        {
            ITypeId type = (ITypeId)this.StyleType;

            if (type != null)
            {
                return(IconMapper.GetDrawingBrushForType(type, true, 24, 24));
            }
            return((DrawingBrush)null);
        }
Beispiel #5
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            ITypeId type = value as ITypeId;

            if (type != null)
            {
                return((object)IconMapper.GetDrawingBrushForType(type, false, 12, 12));
            }
            return((object)null);
        }
        public static List <CodeItem> MapFunction(Node function, NodeArray <ParameterDeclaration> parameters, string id, ICodeViewUserControl control)
        {
            if (function == null)
            {
                return(null);
            }

            List <CodeItem> children;

            try
            {
                children = function.Children
                           .FirstOrDefault(c => c.Kind == SyntaxKind.Block)?.Children
                           .SelectMany(SyntaxMapperJS.MapMember)
                           .ToList();
            }
            catch (NullReferenceException)
            {
                return(new List <CodeItem>());
            }

            if (children != null && children.Any())
            {
                SyntaxMapper.FilterNullItems(children);

                var item = BaseMapperJS.MapBase <CodeClassItem>(function, id, control);

                item.BorderColor = Colors.DarkGray;

                item.Kind       = CodeItemKindEnum.Method;
                item.Parameters = $"({string.Join(", ", parameters.Select(p => p.IdentifierStr))})";
                item.Tooltip    = TooltipMapper.Map(item.Access, null, item.Name, item.Parameters);
                item.Id         = IdMapper.MapId(item.FullName, parameters);
                item.Moniker    = IconMapper.MapMoniker(item.Kind, item.Access);

                item.Members = children;

                return(new List <CodeItem> {
                    item
                });
            }

            CodeFunctionItem functionItem = BaseMapperJS.MapBase <CodeFunctionItem>(function, id, control);

            functionItem.Kind       = CodeItemKindEnum.Method;
            functionItem.Parameters = $"({string.Join(", ", parameters.Select(p => p.IdentifierStr))})";
            functionItem.Tooltip    = TooltipMapper.Map(functionItem.Access, null, functionItem.Name, functionItem.Parameters);
            functionItem.Id         = IdMapper.MapId(functionItem.FullName, parameters);
            functionItem.Moniker    = IconMapper.MapMoniker(functionItem.Kind, functionItem.Access);

            return(new List <CodeItem> {
                functionItem
            });
        }
Beispiel #7
0
        /// <summary>
        /// The ensure the repository root
        /// </summary>
        /// <param name="uri">Always the repository root</param>
        /// <returns></returns>
        private RepositoryTreeNode EnsureRoot(Uri uri)
        {
            EnsureServerOf(uri);

            Uri serverUri;
            Uri nUri = SvnTools.GetNormalizedUri(uri);

            RepositoryTreeNode serverNode = FindServer(uri, out serverUri);

            if (serverNode == null)
            {
                return(null);
            }

            if (!serverNode.IsExpanded && IsLoading(nUri))
            {
                serverNode.LoadExpand();
            }

            foreach (RepositoryTreeNode reposRoot in serverNode.Nodes)
            {
                if (reposRoot.NormalizedUri == nUri)
                {
                    return(reposRoot);
                }
            }

            // uri is always the repos root here
            RepositoryTreeNode rtn = new RepositoryTreeNode(new SvnOrigin(uri, uri));

            rtn.Text = uri.GetComponents(UriComponents.Path, UriFormat.SafeUnescaped);
            if (IconMapper != null)
            {
                rtn.IconIndex = IconMapper.GetSpecialIcon(SpecialIcon.Db);
            }

            serverNode.Nodes.Add(rtn);

            if (!_nodeMap.ContainsKey(rtn.NormalizedUri))
            {
                _nodeMap.Add(rtn.NormalizedUri, rtn);
            }

            if (!serverNode.IsExpanded || IsLoading(nUri))
            {
                serverNode.LoadExpand();
            }

            return(rtn);
        }
Beispiel #8
0
        private RepositoryTreeNode CreateRootNode()
        {
            RepositoryTreeNode rootNode;

            rootNode      = new RepositoryTreeNode(null, true);
            rootNode.Text = RepositoryStrings.RootName;

            if (IconMapper != null)
            {
                rootNode.IconIndex = IconMapper.GetSpecialIcon(SpecialIcon.Servers);
            }

            SortedAddNode(Nodes, rootNode);

            return(rootNode);
        }
Beispiel #9
0
        private DrawingBrush CacheLargeIcon()
        {
            IUnreferencedType unreferencedType = this.type as IUnreferencedType;

            if (unreferencedType != null && unreferencedType.LargeIcon != null)
            {
                return(unreferencedType.LargeIcon);
            }
            if (this.exampleInfo != null && this.exampleInfo.LargeIcon != null)
            {
                DrawingBrush drawingBrushFromStream = IconMapper.CreateDrawingBrushFromStream((Stream) new MemoryStream(this.exampleInfo.LargeIcon), this.TypeName + this.exampleInfo.DisplayName + "24x24");
                if (drawingBrushFromStream != null)
                {
                    return(drawingBrushFromStream);
                }
            }
            return(IconMapper.GetDrawingBrushForType((ITypeId)this.type, true, 24, 24));
        }
Beispiel #10
0
        private static List <CodeItem> MapVariable(VariableStatement variable)
        {
            var declarator = variable.DeclarationList.Declarations.First();

            if (declarator.Initializer != null)
            {
                switch (declarator.Initializer.Kind)
                {
                case SyntaxKind.FunctionExpression:
                    return(FunctionMapperJS.MapFunctionExpression(declarator, _control));

                case SyntaxKind.ArrowFunction:
                    return(FunctionMapperJS.MapArrowFunctionExpression(declarator, _control));

                case SyntaxKind.NewExpression:
                    return(FunctionMapperJS.MapNewExpression(declarator, _control));

                default:
                    break;
                }
            }

            if (variable.Parent.Kind != SyntaxKind.SourceFile)
            {
                return(new List <CodeItem>());
            }

            var item = BaseMapperJS.MapBase <CodeItem>(variable, declarator.IdentifierStr, _control);

            item.Kind    = CodeItemKindEnum.Variable;
            item.Moniker = IconMapper.MapMoniker(item.Kind, item.Access);

            return(new List <CodeItem> {
                item
            });
        }