예제 #1
0
 protected sealed override void Write(ITextOutput output, Language language)
 {
     ResourceTreeNode.WriteFileName(output, resElem.Name);
 }
예제 #2
0
        void CreateUI(ITextOutput output, object o, bool includeNamespace)
        {
            var ns = o as NamespaceSearchResult;

            if (ns != null)
            {
                NamespaceTreeNode.Write(output, ns.Namespace);
                return;
            }

            var td = o as TypeDef;

            if (td != null)
            {
                Debug.Assert(Language != null);
                Language.TypeToString(output, td, includeNamespace);
                return;
            }

            var md = o as MethodDef;

            if (md != null)
            {
                output.Write(IdentifierEscaper.Escape(md.Name), TextTokenHelper.GetTextTokenType(md));
                return;
            }

            var fd = o as FieldDef;

            if (fd != null)
            {
                output.Write(IdentifierEscaper.Escape(fd.Name), TextTokenHelper.GetTextTokenType(fd));
                return;
            }

            var pd = o as PropertyDef;

            if (pd != null)
            {
                output.Write(IdentifierEscaper.Escape(pd.Name), TextTokenHelper.GetTextTokenType(pd));
                return;
            }

            var ed = o as EventDef;

            if (ed != null)
            {
                output.Write(IdentifierEscaper.Escape(ed.Name), TextTokenHelper.GetTextTokenType(ed));
                return;
            }

            var asm = o as AssemblyDef;

            if (asm != null)
            {
                Write(output, asm);
                return;
            }

            var mod = o as ModuleDef;

            if (mod != null)
            {
                output.Write(mod.FullName, TextTokenType.Module);
                return;
            }

            var asmRef = o as AssemblyRef;

            if (asmRef != null)
            {
                Write(output, asmRef);
                return;
            }

            var modRef = o as ModuleRef;

            if (modRef != null)
            {
                output.Write(modRef.FullName, TextTokenType.Module);
                return;
            }

            // non-.NET file
            var loadedAsm = o as LoadedAssembly;

            if (loadedAsm != null)
            {
                output.Write(loadedAsm.ShortName, TextTokenType.Text);
                return;
            }

            var resNode = o as ResourceTreeNode;

            if (resNode != null)
            {
                ResourceTreeNode.WriteFileName(output, resNode.Name);
                return;
            }

            var resElNode = o as ResourceElementTreeNode;

            if (resElNode != null)
            {
                ResourceTreeNode.WriteFileName(output, resElNode.Name);
                return;
            }

            var s = o as string;

            if (s != null)
            {
                output.Write(s, TextTokenType.Text);
                return;
            }

            Debug.Assert(s == null);
        }