public BooScope(CompiledProject compiledProject, BooSource source, ParseRequest parseRequest, ParseRequestProcessor parseRequestProcessor) { this.source = source; declarations = new DeclarationFinder(compiledProject, source, parseRequest.FileName); this.parseRequest = parseRequest; this.parseRequestProcessor = parseRequestProcessor; }
/// <summary> /// Initializes a new instance of the <see cref="ClassService"/> class. /// </summary> /// <param name="project">The project.</param> public ClassService(CompiledProject project) { var classes = project.Compilation.SyntaxTrees .Select(s => project.Compilation.GetSemanticModel(s)) .SelectMany(s => s.SyntaxTree.GetRoot() .DescendantNodes() .OfType <ClassDeclarationSyntax>() .Select(c => (s.GetDeclaredSymbol(c) as INamedTypeSymbol, GetBaseClasses(s, c)))) .ToImmutableList(); foreach (var c in classes.Where(c => c.Item1 != null)) { _classes[c.Item1.GetFullTypeString()] = c.Item1; foreach (var namedTypeSymbol in c.Item2) { var baseType = namedTypeSymbol.GetFullTypeString(); if (!_bases.ContainsKey(baseType)) { _bases[baseType] = new List <INamedTypeSymbol>(); } _bases[baseType].Add(c.Item1); } } }
public CompilationOutput(CompiledProject project, CaretLocation caretLocation) { this.project = project; this.caretLocation = caretLocation; }
public BooScope(CompiledProject compiledProject, BooSource source, ParseRequest parseRequest, Methods methods, ParseRequestProcessor parseRequestProcessor) : this(compiledProject, source, parseRequest, parseRequestProcessor) { this.methods = methods; }
public BooScope(CompiledProject compiledProject, BooSource source, string fileName) { declarations = new DeclarationFinder(compiledProject, source, fileName); }
public DeclarationFinder(CompiledProject compiledProject, ILineView lineView, string fileName) { this.compiledProject = compiledProject; this.lineView = lineView; this.fileName = fileName; }
public DeclarationFinder(CompiledProject compiledProject, ISource source, string fileName) { this.compiledProject = compiledProject; this.source = source; this.fileName = fileName; }
/// <summary> /// Resets the compiled project, so it'll be recompiled on the next call. /// </summary> private void ResetCompiledProject() { compiledProject = null; }
/// <summary> /// Iterates the files and compiles them en-masse. /// </summary> private void Compile() { var compiler = new BooDocumentCompiler(); files.ForEach(f => compiler.AddSource(f.Path, f.Source)); references.ForEach(r => compiler.AddReference(r)); compiledProject = compiler.Compile(); files.ForEach(f => f.IsDirty = false); }