Exemplo n.º 1
0
        private int SymbolCount = 1;        // 0 is reserved for generic objects

        /**
         * The idea here is to create a shorthand for an object that is typed as the object so as to be easily used
         * To achieve that, we assign the given object to a reserved global generic object, and then create a variable that is casted to the correct type for that symbol
         */
        public async Task <string> AddToNextGlobal(object obj, Action onUnRegister = null)
        {
            var targetType = obj.GetType();
            var symbol     = "_0";

            if (targetType.IsVisible)
            {
                var parsed = new ParsedAssemblyQualifiedName.ParsedAssemblyQualifiedName(targetType.AssemblyQualifiedName);

                symbol = string.Format("_{0}", SymbolCount++);
                Globals._ImmediateWindowReservedGlobal = obj;
                var code = string.Format("var {0} = _ImmediateWindowReservedGlobal as {1};",
                                         symbol, parsed.CSharpStyleName.Value);
                var error = await EvaluateSilently(code);

                if (error != null)
                {
                    Debug.Log("Error while trying to add a symbol: " + error.Message + " -- Code: " + code + "\n");
                }
            }

            if (OnUnRegister != null)
            {
                OnUnRegister();
            }

            OnUnRegister = onUnRegister;

            return(symbol);
        }
        public TypeNameView(object obj)
        {
            var type   = obj.GetType();
            var parsed = new ParsedAssemblyQualifiedName.ParsedAssemblyQualifiedName(type.AssemblyQualifiedName);

            Init(type.Name, "typename", parsed.CSharpStyleName.Value);
        }
Exemplo n.º 3
0
        public Interface(Type interfaceType, object obj)
        {
            var parsed     = new ParsedAssemblyQualifiedName.ParsedAssemblyQualifiedName(interfaceType.AssemblyQualifiedName, true);
            var parsedLong = new ParsedAssemblyQualifiedName.ParsedAssemblyQualifiedName(interfaceType.AssemblyQualifiedName);

            var interfaceSpan = new Span(parsed.CSharpStyleName.Value, "interface");

            interfaceSpan.tooltip = parsedLong.CSharpStyleName.Value;
            Add(interfaceSpan);
        }