1. 11 Jan, 2017 3 commits
  2. 22 Dec, 2016 1 commit
  3. 12 Dec, 2016 1 commit
    • Christian Hergert's avatar
      build-system: move build helpers to IdeBuilder · dea27861
      Christian Hergert authored
      Instead of having get_build_flags_async() and get_build_targets_async()
      as part of the IdeBuildSystem, we've moved it to IdeBuilder. This allows
      the build system to have an active configuration which is necessary for
      many build systems to get accurate information.
      dea27861
  4. 03 Nov, 2016 2 commits
    • Christian Hergert's avatar
      langserv-highlighter: Add IdeLangservHighlighter · 8f195b85
      Christian Hergert authored
      This is a prototype of a semantic highlighter that uses the names of
      symbols from the documentSymbol API call of the Language Server Protocol.
      It's not ideal, because it's using fuzzy symbols and only those that
      exist within the file. However, it gets us something until the Language
      Server Protocol addresses semantic highlighting specifically.
      8f195b85
    • Christian Hergert's avatar
      completion-words: add IdeCompletionWords · 7cfeb0f2
      Christian Hergert authored
      This subclasses GtkSourceCompletionWords but changes when the provider
      is activated. This avoids activating when we are in comments as that is
      much more likely to miss-activate (such as typing a similar word at the
      end of a line in a comment).
      7cfeb0f2
  5. 28 Oct, 2016 1 commit
    • Christian Hergert's avatar
      diagnostics: refactor IdeDiagnostician into IdeDiagnosticsManager · ea863a74
      Christian Hergert authored
      The IdeDiangostician was attached to the IdeBuffer directly. Instead,
      IdeDiagnosticsManager is connected to the IdeContext. This is useful
      because it allows us to receive diagnostics out of band from the normal
      diagnose_async()/diagnose_finish() cycle.
      
      Additionally, this allows diagnostics to be created for objects other
      than the buffer in question. Such is useful with language servers where
      they may process diagnostics for the project as a whole.
      ea863a74
  6. 26 Oct, 2016 2 commits
  7. 25 Oct, 2016 7 commits
  8. 19 Oct, 2016 1 commit
    • Christian Hergert's avatar
      subprocess: add IdeSubprocessSupervisor · 1189ac3d
      Christian Hergert authored
      This will help us monitor processes that we need to keep running.
      Generally we'd prefer to use DBus for stuff like this, but we need
      something simple for external tools such as language-servers.
      1189ac3d
  9. 19 Sep, 2016 1 commit
    • Christian Hergert's avatar
      flatpak: abstract runtime check for flatpak · 679ed6d6
      Christian Hergert authored
      This adds ide_is_flatpak() to simplify our checks to see if we are running
      in our bundled environment. Generally we don't want to have to rely on
      this, but special cases do exist (such as choosing what terminal to run).
      679ed6d6
  10. 15 Sep, 2016 1 commit
    • Christian Hergert's avatar
      glib: add g_task_return_* helpers · 1c7988e5
      Christian Hergert authored
      If we are currently in the active tasks GMainContext, we can end up
      returning immediately. We don't want to do that in some cases because we
      hold a lock that is internal to the data structure.
      
      This allows those situations to be explicit about the dispatch cycle.
      1c7988e5
  11. 13 Sep, 2016 1 commit
    • Christian Hergert's avatar
      sandboxing: add subprocess abstraction · 883eb1f4
      Christian Hergert authored
      To support Building applications while running from inside the sandbox, we
      need to allow breaking out of the sandbox for such tooling. For example,
      we want to run the build tooling for flatpaks from the host system (since
      we wont have sufficient privileges inside the sandbox).
      
      This abstracts our use of GSubprocess so that we can have multiple
      implementations. Sadly, since GSubprocess is not an interface, we cannot
      simply create an alternate implementation.
      
      There are two implementations of the abstraction. IdeSimpleSubprocess is
      just a wrapper around GSubprocess (since our API is almost identical).
      Additionally, we have IdeHostProcess which is a process that runs within
      the host system, via the --allow=devel support in flatpak. Also required
      --talk-name=org.freedesktop.Flatpak.
      883eb1f4
  12. 03 Sep, 2016 1 commit
    • Christian Hergert's avatar
      build-commands: add prebuild and postbuild commands · 76d35253
      Christian Hergert authored
      This allows a configuration to specify additional commands that can be
      run before or after the build system has executed its build. This might
      be handy to setup various command hooks around a build system.
      
      Additionally, these should be usable by Nil build systems that just need
      to execute some commands as part of the build. (More on that later).
      76d35253
  13. 26 Aug, 2016 2 commits
  14. 23 Aug, 2016 2 commits
    • Christian Hergert's avatar
      header-bar: add IdeRunButton to the headerbar · 48682022
      Christian Hergert authored
      This tracks the various ways we can run the project, and ensures they can
      be selected from the headerbar.
      48682022
    • Christian Hergert's avatar
      run-manager: add concept of IdeRunHandler · 286a3db2
      Christian Hergert authored
      This allows various plugins to hook into the run pipeline. This is useful
      since we will have various ways to "run" an application. Such as through
      a profiler or debugger.
      
      We'd like the ability to simply "run again" and unify the selection of how
      to run the project, which requires just a bit of an abstraction. That is
      what the IdeRunHandlerInfo provides.
      286a3db2
  15. 21 Jul, 2016 1 commit
  16. 20 Jul, 2016 2 commits
    • Christian Hergert's avatar
      editor: use single instance of tab controls per stack · 8616b9aa
      Christian Hergert authored
      Instead of creatin new popovers and lists for every document that is
      opened, use a single instance of the controls per stack. This saves on
      lots of popovers when lots of documents are opened as well as cutting down
      on the amount of style validation that has to occur with those additional
      widgets.
      8616b9aa
    • Christian Hergert's avatar
      layout-stack: add IdeLayoutStackAddin · 0113cdea
      Christian Hergert authored
      This plugin interface can be used to extend the IdeLayoutStack. A new
      plugin instance will be created for each layout stack and destroyed when
      the stack is destroyed.
      
      This can be useful to add controls to the IdeLayoutStack. Doing so instead
      of using IdeLayoutView.get_controls() because it allows us to have a set
      of controls once rather than multiple times in the UI, saving widget
      overhead. This is more of a problem when using Popovers and Lists in that
      widgetry.
      0113cdea
  17. 17 Jul, 2016 2 commits
  18. 30 Jun, 2016 3 commits
  19. 28 Jun, 2016 4 commits
  20. 17 Jun, 2016 1 commit
    • Christian Hergert's avatar
      build: reorganize libide · d0121822
      Christian Hergert authored
      The libide/ directory was getting a bit out of control. The number of files
      in the directory was simply too much to make it easy for newcomers to
      find what they are looking for.
      
      This breaks things up into a bunch of, somewhat logical, directories.
      
      We no longer use a bunch of crazy include paths with -I, and instead
      include the directory name when including as such:
      
        #include "buffers/ide-buffer.h"
      
      This will hopefully make it easier to navigate, and basically the same to
      open files if you use fuzzy search to open files.
      d0121822
  21. 05 Jun, 2016 1 commit