Example #1
0
    public void AddChild(Scope childScope)
    {
      if (childScope.Parent != null)
        throw new InvalidOperationException("The child scope already has a parent.");

      childScope.Parent = this;

      Children.Add(childScope);
    }
Example #2
0
    private static void AddScopeToNestedScopes(Scope scope, ref Scope currentScope, ICollection<Scope> capturedStyleTree)
    {
      if (scope.Index >= currentScope.Index && (scope.Index + scope.Length <= currentScope.Index + currentScope.Length))
      {
        currentScope.AddChild(scope);
        currentScope = scope;
      }
      else
      {
        currentScope = currentScope.Parent;

        if (currentScope != null)
          AddScopeToNestedScopes(scope, ref currentScope, capturedStyleTree);
        else
          capturedStyleTree.Add(scope);
      }
    }
    private static void GetStyleInsertionsForCapturedStyle(Scope scope, ICollection<TextInsertion> styleInsertions)
    {
      styleInsertions.Add(new TextInsertion
      {
        Index = scope.Index,
        Scope = scope
      });

      foreach (Scope childScope in scope.Children)
        GetStyleInsertionsForCapturedStyle(childScope, styleInsertions);

      styleInsertions.Add(new TextInsertion
      {
        Index = scope.Index + scope.Length,
        //                Text = ""
      });
    }