Exemple #1
0
        public OutputWriter Parse(string file)
        {
            var dirtyFile = _getDirtyFile(file);
            var usingDirtyFile = false;
            if (dirtyFile != null) {
                dirtyFile = parseDirtyFile(dirtyFile);
                if (dirtyFile.Trim() != "") {
                    usingDirtyFile = true;
                    file = dirtyFile.Trim();
                }
            }

            var parser = new NRefactoryParser();
            if (_parseLocalVariables)
                parser.ParseLocalVariables();
            var cache = new OutputWriter(new NullResponseWriter());
            parser.SetOutputWriter(cache);
            var fileRef = new FileRef(file, null);
            parser.ParseFile(fileRef, () => _fileReader(file));
            if (usingDirtyFile)
                _fileRemover(file);

            cache.BuildTypeIndex();
            new TypeResolver(new OutputWriterCacheReader(cache, _globalCache))
                .ResolveAllUnresolved(cache);
            return cache;
        }
Exemple #2
0
        private void createLocalCache()
        {
            var             sb = new StringBuilder();
            Action <string> a  = (s) => sb.AppendLine(s);

            a("using System;");
            a("");
            a("namespace MyNS");
            a("{");
            a("	public class MyClass");
            a("	{");
            a("		private void MyMethod(string word) {");
            a("			var str = \"Hello World\";");
            a("			Console.WriteLine(str + word);");
            a("         var bleh = 15;");
            a("         Console.WriteLine(bleh.ToString());");
            a("         if (_isValid)");
            a("             Console.WriteLine(\"meh\");");
            a("		}");
            a("     ");
            a("     private bool _isValid = false;");
            a("	}");
            a("}");
            _fileContent = sb.ToString();
            _cache       = new OutputWriter(new NullResponseWriter());
            _cache.SetTypeVisibility(true);
            var parser = new NRefactoryParser()
                         .ParseLocalVariables();

            parser.SetOutputWriter(_cache);
            parser.ParseFile(new FileRef("MyFile", null), () => _fileContent);
            _cache.BuildTypeIndex();
            new TypeResolver(new OutputWriterCacheReader(_cache, _globalCache))
            .ResolveAllUnresolved(_cache);
        }
        public OutputWriter Parse(string file)
        {
            var dirtyFile      = _getDirtyFile(file);
            var usingDirtyFile = false;

            if (dirtyFile != null)
            {
                dirtyFile = parseDirtyFile(dirtyFile);
                if (dirtyFile.Trim() != "")
                {
                    usingDirtyFile = true;
                    file           = dirtyFile.Trim();
                }
            }

            var parser = new NRefactoryParser();

            if (_parseLocalVariables)
            {
                parser.ParseLocalVariables();
            }
            var cache = new OutputWriter(new NullResponseWriter());

            parser.SetOutputWriter(cache);
            var fileRef = new FileRef(file, null);

            parser.ParseFile(fileRef, () => _fileReader(file));
            if (usingDirtyFile)
            {
                _fileRemover(file);
            }

            cache.BuildTypeIndex();
            new TypeResolver(new OutputWriterCacheReader(cache, _globalCache))
            .ResolveAllUnresolved(cache);
            return(cache);
        }
        private void buildCache()
        {
            var project1 = new Project("Project1");

            _cache.WriteProject(project1);
            var file = new FileRef("File1", project1);

            _cache.WriteFile(file);
            _cache.WriteUsing(new Using(file, "Project1.FirstNamespace", 1, 1));
            _cache.WriteNamespace(new Namespce(file, "Project1", 2, 1));
            _cache.WriteClass(
                new Class(file, "Project1", "FirstClass", "public", 5, 1));
            _cache.WriteField(
                new Field(file, "Project1.FirstClass", "FCls", "public", 6, 2, "SecondClass"));
            _cache.WriteMethod(
                new Method(file, "Project1.FirstClass", "myMethod", "private", 7, 5, "System.Void", new Parameter[] {}));
            _cache.WriteVariable(
                new Variable(file, "Project1.FirstClass.myMethod", "str", "local", 9, 3, "System.String"));

            var file2 = new FileRef("File2", project1);

            _cache.WriteFile(file2);
            _cache.WriteNamespace(new Namespce(file2, "Project1.SecondNamespace", 10, 1));
            _cache.WriteClass(
                new Class(file2, "Project1.SecondNamespace", "ThirdClass", "public", 12, 2));
            _cache.WriteClass(
                new Class(file2, "Project1.SecondNamespace", "SecondClass", "public", 2, 1));

            _cache.WriteNamespace(new Namespce(file2, "Project1.FirstNamespace", 1, 1));
            _cache.WriteClass(
                new Class(file2, "Project1.FirstNamespace", "SecondClass", "public", 2, 1));
            _cache.WriteField(
                new Field(file, "Project1.FirstNamespace.SecondClass", "Count", "public", 3, 2, "System.Int32"));

            var staticField =
                new Field(file, "Project1.FirstNamespace.SecondClass", "NAME", "public", 3, 2, "System.String");

            staticField.AddModifiers(new[] { "static" });
            _cache.WriteField(staticField);

            var project2 = new Project("Project2");

            _cache.WriteProject(project2);

            var system = new FileRef("mscorlib", null);

            _cache.WriteFile(system);
            _cache.WriteNamespace(new Namespce(system, "System", 0, 0));
            _cache.WriteNamespace(new Namespce(system, "System.More", 0, 0));
            _cache.WriteClass(
                new Class(system, "System", "String", "public", 0, 0));
            _cache.WriteMethod(
                new Method(system, "System.Object", "ToString", "public", 0, 0, "System.String", new Parameter[] {}));
            _cache.WriteEnum(
                new EnumType(system, "System.More", "FunnyBool", "public", 0, 0));
            _cache.WriteField(
                new Field(system, "System.More.FunnyBool", "True", "public", 0, 0, "System.Int32").AddModifiers(new[] { "static" }));


            _cache.BuildTypeIndex();
        }
 private void createLocalCache()
 {
     var sb = new StringBuilder();
     Action<string> a = (s) => sb.AppendLine(s);
     a("using System;");
     a("");
     a("namespace MyNS");
     a("{");
     a("	public class MyClass");
     a("	{");
     a("		private void MyMethod(string word) {");
     a("			var str = \"Hello World\";");
     a("			Console.WriteLine(str + word);");
     a("         var bleh = 15;");
     a("         Console.WriteLine(bleh.ToString());");
     a("         if (_isValid)");
     a("             Console.WriteLine(\"meh\");");
     a("		}");
     a("     ");
     a("     private bool _isValid = false;");
     a("	}");
     a("}");
     _fileContent = sb.ToString();
     _cache = new OutputWriter(new NullResponseWriter());
     _cache.SetTypeVisibility(true);
     var parser = new NRefactoryParser()
         .ParseLocalVariables();
     parser.SetOutputWriter(_cache);
     parser.ParseFile(new FileRef("MyFile", null), () => _fileContent);
     _cache.BuildTypeIndex();
     new TypeResolver(new OutputWriterCacheReader(_cache, _globalCache))
         .ResolveAllUnresolved(_cache);
 }