1. 28 Sep, 2015 1 commit
  2. 27 Sep, 2015 4 commits
  3. 26 Sep, 2015 2 commits
    • Christian Hergert's avatar
    • Christian Hergert's avatar
      vala: add beginnings of vala support for Builder · b259bda5
      Christian Hergert authored
      There is plenty to do in terms of optimizing this, and code cleanup, so
      feel free to join in and help if you can. I'm by no means a Vala expert
      and I ran into a lot of problems along the way.
      
      What this includes:
      
       * A simple auto-indenter: There is a lot do do here to here to catch
         up with what the C indenter can do. We probably need to abstract
         everything into a two-pass system. One pass to get the context,
         a second pass to determine how to indent that context.
       * In process diagnostics like we do for clang. This isn't really a
         feature, it's more of an anti-feature. Longer term, we need to
         figure out a clean way to rip this all out of process (G-C-A, etc).
       * Auto-completion using libvala for type information. Mostly taken
         from Anjuta, but there is a lot of performance/cleanup work that
         can be done to make this feel good.
      
      TODO
      
       * Code cleanup
       * Extract packages from the project build system
       * Make autocompletion list creation not so stupid with regards to lists
       * Symbol tree support
       * goto definition, etc
       * A highlighter based on the AST
      b259bda5
  4. 31 Aug, 2015 1 commit
  5. 13 Jul, 2015 1 commit
    • Christian Hergert's avatar
      plugins: massive refactor to use interfaces and plugins · b530baea
      Christian Hergert authored
      This commit moves many features from libide which were provided by
      extension points to instead be plugins. Doing so required changing
      how we perform our dependency injection. In particular, we want to
      be able to reload extensions when plugins are enabled/disabled.
      
      This is provided by IdeExtensionAdapter and IdeExtensionSetAdapter.
      
      IdeExtensionAdapter provides access to an extension that may be
      reloaded or changed during plugin loading based on a match key
      and value. The key should be an "X-Foo" style external data key
      in a libpeas plugin. The value is the value that should be matched.
      The key's value in the plugin file can have multiple values specified
      separated by a comma (,).
      
      This patch also lets us remove IdeLanguage, as it becomes fairly
      useless now that we can load things via plugins with match keys.
      Longer term, I'd like to cleanup IdeFile to subclass GtkSourceFile.
      
      I've started to put language specific stuff into "language pack"
      plugins.
      b530baea
  6. 20 Jun, 2015 4 commits
    • Christian Hergert's avatar
      c5c91ecf
    • Christian Hergert's avatar
      clang: add minimal implementation of symbol tree for Clang · 22173ed2
      Christian Hergert authored
      Lots still to be done here. For example, we need to support more clang
      cursor types. We also need to create source locations for the nodes so
      that we can jump to the location when activated in the tree.
      
      We should make sure we do source location lookup via a vfunc/signal so
      that it can be done lazily as well. No sense in creating all those
      file path strings until they are needed.
      22173ed2
    • Christian Hergert's avatar
      clang: use IdeRefPtr to hold on to native translation unit · 70f4094b
      Christian Hergert authored
      This will let us share the TU with other objects, such as the
      IdeClangSymbolTree.
      70f4094b
    • Christian Hergert's avatar
      symbol-tree: add plumbing for symbol tree abstraction · 3d6db85c
      Christian Hergert authored
      The current symbol abstraction only allows for getting an array of
      symbols. This isn't entirely useful going forward as we support more
      complex languages.
      
      This provides the interface and stub implementation for clang to
      extract the symbols into a tree like interface.
      
      You will notice that the IdeSymbolTree interface is as vague as possible.
      This is meant to avoid inflating symbol objects until necessary, and
      allow them to be released as early as possible.
      
      Some impelementations may choose to hold onto a translation unit in the
      IdeSymbolTree subclass and inflate from internal strings on demand.
      3d6db85c
  7. 17 May, 2015 1 commit
  8. 15 May, 2015 1 commit
  9. 14 May, 2015 1 commit
  10. 13 May, 2015 1 commit
  11. 12 May, 2015 1 commit
  12. 08 May, 2015 1 commit
  13. 04 May, 2015 1 commit
  14. 29 Apr, 2015 1 commit
  15. 24 Apr, 2015 1 commit
  16. 23 Apr, 2015 1 commit
    • Christian Hergert's avatar
      thread-pool: introduce IdeThreadPool helpers · 0e9dcc48
      Christian Hergert authored
      While working on workbench restoration, I got into a situation where
      all the files would try to immediately start compiling. While we should
      put throttles on this in other places as well, we can also help mitigate
      starvation of other important tasks by limiting the number of active
      compilation requests.
      
      This simple thread pool abstraction allows us to perform minimal changes
      to task execution (g_task_run_in_thread()) while giving us the ability
      to run the task in a special run queue.
      
      This uses the "compiler" run queue for makecache and clang work items.
      0e9dcc48
  17. 09 Apr, 2015 1 commit
  18. 01 Apr, 2015 1 commit
  19. 30 Mar, 2015 1 commit
    • Christian Hergert's avatar
      libide is a GPL-3.0 shared library · 7d137ac9
      Christian Hergert authored
      Typically I use LGPL-2.1+ for shared libraries. However, due to the
      nature of libide being the "guts" of Builder, I do intend for this to
      be GPL-3.0. Additionally, it simplifies what we can include in the
      library without worrying about staying LGPL safe.
      
      Exceptions will of course be made for upstreaming into libraries such as
      GtkSourceView. Just ask if you want something in particular.
      7d137ac9
  20. 29 Mar, 2015 4 commits
  21. 28 Mar, 2015 1 commit
    • Christian Hergert's avatar
      symbols: extract some additional symbol information · dce53f58
      Christian Hergert authored
      What gets contained in a symbol will probably change a lot in the near
      future. This is really just stubs so I can make forward progress.
      
      We will also probably add some sort of flags to determine what types of
      information you want (since it could end up being pretty slow otherwise).
      dce53f58
  22. 27 Mar, 2015 5 commits
  23. 25 Mar, 2015 1 commit
  24. 23 Mar, 2015 3 commits