Skip to content
  • Christian Hergert's avatar
    core: add new libide-core library · a9b12408
    Christian Hergert authored
    This is the center-most library that all the new static libraries will
    be based upon. It provides our core objects, and some new ways to work
    with things going forward.
    
    IdeObject is now a bit of a directed graph (without cycles). It provides
    a mechanism similar to GtkWidget to destroy hierarchies of objects without
    relying on the GObject.dispose directly upon final-unref. Doing so helps
    us ensure that we can cleanup objects even if a leak occurs somewhere and
    therefore reduce how much we leak.
    
    It also provides us a number of debugging tools going forward to get info
    about the object graph.
    
    You can encapsulate a non-IdeObject in an IdeObjectBox which allows
    associating it with a tree. IdeBuffer does this so that we can attach
    sub-objects to the buffer and have it cleaned up with the buffer. Various
    extension points use this for auto-cleanup.
    
    IdeNotification(s) is also used all over in the new design to track
    progress of operations. It has convenient UI components in li...
    a9b12408