[gnome-builder] build: reorganize libide



commit d01218226b2f703c19e4c1f2463ce54880c3eb98
Author: Christian Hergert <chergert redhat com>
Date:   Fri Jun 17 00:43:46 2016 -0400

    build: reorganize libide
    
    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.

 configure.ac                                       |    7 +-
 libide/Makefile.am                                 | 1059 ++++++++++----------
 libide/{ => application}/ide-application-actions.c |   13 +-
 libide/{ => application}/ide-application-actions.h |    0
 libide/{ => application}/ide-application-addin.c   |    0
 libide/{ => application}/ide-application-addin.h   |    0
 .../ide-application-command-line.c                 |   12 +-
 libide/{ => application}/ide-application-credits.h |    0
 libide/{ => application}/ide-application-plugins.c |    9 +-
 libide/{ => application}/ide-application-private.h |   13 +-
 libide/{ => application}/ide-application-tests.c   |    5 +-
 libide/{ => application}/ide-application-tests.h   |    0
 libide/{ => application}/ide-application-tool.c    |    0
 libide/{ => application}/ide-application-tool.h    |    0
 libide/{ => application}/ide-application.c         |   28 +-
 libide/{ => application}/ide-application.h         |    2 +-
 libide/{ => buffers}/ide-buffer-change-monitor.c   |    0
 libide/{ => buffers}/ide-buffer-change-monitor.h   |    0
 libide/{ => buffers}/ide-buffer-manager.c          |   28 +-
 libide/{ => buffers}/ide-buffer-manager.h          |    3 +-
 libide/{ => buffers}/ide-buffer.c                  |   46 +-
 libide/{ => buffers}/ide-buffer.h                  |    0
 libide/{ => buffers}/ide-unsaved-file.c            |    3 +-
 libide/{ => buffers}/ide-unsaved-file.h            |    0
 libide/{ => buffers}/ide-unsaved-files.c           |    7 +-
 libide/{ => buffers}/ide-unsaved-files.h           |    0
 libide/{ => buildsystem}/ide-build-result-addin.c  |    0
 libide/{ => buildsystem}/ide-build-result-addin.h  |    0
 libide/{ => buildsystem}/ide-build-result.c        |   11 +-
 libide/{ => buildsystem}/ide-build-result.h        |    3 +-
 libide/{ => buildsystem}/ide-build-system.c        |   17 +-
 libide/{ => buildsystem}/ide-build-system.h        |    0
 libide/{ => buildsystem}/ide-builder.c             |    0
 libide/{ => buildsystem}/ide-builder.h             |    0
 .../{ => buildsystem}/ide-configuration-manager.c  |    9 +-
 .../{ => buildsystem}/ide-configuration-manager.h  |    0
 libide/{ => buildsystem}/ide-configuration.c       |   13 +-
 libide/{ => buildsystem}/ide-configuration.h       |    0
 .../{ => buildsystem}/ide-environment-variable.c   |    0
 .../{ => buildsystem}/ide-environment-variable.h   |    0
 libide/{ => buildsystem}/ide-environment.c         |    0
 libide/{ => buildsystem}/ide-environment.h         |    0
 libide/{ => devices}/ide-device-manager.c          |    0
 libide/{ => devices}/ide-device-manager.h          |    0
 libide/{ => devices}/ide-device-provider.c         |    0
 libide/{ => devices}/ide-device-provider.h         |    0
 libide/{ => devices}/ide-device.c                  |    6 +-
 libide/{ => devices}/ide-device.h                  |    0
 libide/{ => diagnostics}/ide-diagnostic-provider.c |    5 +-
 libide/{ => diagnostics}/ide-diagnostic-provider.h |    0
 libide/{ => diagnostics}/ide-diagnostic.c          |    0
 libide/{ => diagnostics}/ide-diagnostic.h          |    0
 libide/{ => diagnostics}/ide-diagnostician.c       |   11 +-
 libide/{ => diagnostics}/ide-diagnostician.h       |    0
 libide/{ => diagnostics}/ide-diagnostics.c         |    0
 libide/{ => diagnostics}/ide-diagnostics.h         |    0
 libide/{ => diagnostics}/ide-fixit.c               |    0
 libide/{ => diagnostics}/ide-fixit.h               |    0
 libide/{ => diagnostics}/ide-source-location.c     |    6 +-
 libide/{ => diagnostics}/ide-source-location.h     |    3 +-
 libide/{ => diagnostics}/ide-source-range.c        |    8 +-
 libide/{ => diagnostics}/ide-source-range.h        |    0
 libide/directory/ide-directory-build-system.c      |   15 +-
 libide/directory/ide-directory-build-system.h      |    2 +-
 libide/directory/ide-directory-genesis-addin.c     |   10 +-
 libide/directory/ide-directory-plugin.c            |   12 +-
 libide/directory/ide-directory-vcs.c               |    7 +-
 libide/directory/ide-directory-vcs.h               |    2 +-
 libide/editor/ide-editor-frame-private.h           |    9 +-
 libide/editor/ide-editor-frame.c                   |   23 +-
 libide/editor/ide-editor-frame.h                   |    4 +-
 libide/editor/ide-editor-map-bin.c                 |   24 +-
 libide/editor/ide-editor-perspective.c             |   18 +-
 libide/editor/ide-editor-perspective.h             |    6 +-
 libide/editor/ide-editor-plugin.c                  |    6 +-
 libide/editor/ide-editor-print-operation.c         |    5 +-
 libide/editor/ide-editor-tweak-widget.c            |    4 +-
 libide/editor/ide-editor-tweak-widget.h            |    1 -
 libide/editor/ide-editor-view-actions.c            |   18 +-
 libide/editor/ide-editor-view-private.h            |   13 +-
 libide/editor/ide-editor-view.c                    |   18 +-
 libide/editor/ide-editor-view.h                    |    6 +-
 libide/editor/ide-editor-workbench-addin.c         |   13 +-
 libide/editor/ide-editor-workbench-addin.h         |    2 +-
 .../editorconfig/ide-editorconfig-file-settings.c  |    5 +-
 .../editorconfig/ide-editorconfig-file-settings.h  |    2 +-
 libide/{ => files}/ide-file-settings.c             |    0
 libide/{ => files}/ide-file-settings.defs          |    0
 libide/{ => files}/ide-file-settings.h             |    0
 libide/{ => files}/ide-file.c                      |   10 +-
 libide/{ => files}/ide-file.h                      |    0
 libide/{ => files}/ide-indent-style.h              |    0
 libide/genesis/ide-genesis-perspective.c           |   11 +-
 libide/genesis/ide-genesis-perspective.h           |    2 +-
 libide/greeter/ide-greeter-perspective.c           |   23 +-
 libide/greeter/ide-greeter-perspective.h           |    2 +-
 libide/greeter/ide-greeter-project-row.c           |    9 +-
 libide/greeter/ide-greeter-project-row.h           |    2 +-
 libide/gsettings/ide-gsettings-file-settings.c     |   12 +-
 libide/gsettings/ide-gsettings-file-settings.h     |    2 +-
 libide/gsettings/ide-language-defaults.c           |    5 +-
 libide/{ => highlighting}/ide-highlight-engine.c   |   38 +-
 libide/{ => highlighting}/ide-highlight-engine.h   |    4 +-
 libide/{ => highlighting}/ide-highlight-index.c    |    8 +-
 libide/{ => highlighting}/ide-highlight-index.h    |    0
 libide/{ => highlighting}/ide-highlighter.c        |    0
 libide/{ => highlighting}/ide-highlighter.h        |    5 +-
 libide/{ => history}/ide-back-forward-item.c       |    8 +-
 libide/{ => history}/ide-back-forward-item.h       |    3 +-
 libide/{ => history}/ide-back-forward-list-load.c  |    7 +-
 .../{ => history}/ide-back-forward-list-private.h  |    0
 libide/{ => history}/ide-back-forward-list-save.c  |    7 +-
 libide/{ => history}/ide-back-forward-list.c       |   11 +-
 libide/{ => history}/ide-back-forward-list.h       |    0
 libide/ide-context.c                               |   42 +-
 libide/ide-debugger.c                              |   26 -
 libide/ide-debugger.h                              |   40 -
 libide/ide-deployer.c                              |   39 -
 libide/ide-deployer.h                              |   37 -
 libide/ide-enums.c.in                              |   27 +-
 libide/ide-executable.c                            |   26 -
 libide/ide-executable.h                            |   40 -
 libide/ide-executer.c                              |   26 -
 libide/ide-executer.h                              |   40 -
 libide/ide-internal.h                              |   23 +-
 libide/ide-process.c                               |   26 -
 libide/ide-process.h                               |   40 -
 libide/ide-refactory.c                             |   44 -
 libide/ide-refactory.h                             |   37 -
 libide/ide-target.c                                |   26 -
 libide/ide-target.h                                |   40 -
 libide/ide-test-case.c                             |   26 -
 libide/ide-test-case.h                             |   40 -
 libide/ide-test-suite.c                            |   26 -
 libide/ide-test-suite.h                            |   40 -
 libide/ide.c                                       |   10 +-
 libide/ide.h                                       |  201 ++--
 libide/{ => keybindings}/ide-keybindings.c         |    3 +-
 libide/{ => keybindings}/ide-keybindings.h         |    0
 libide/{ => keybindings}/ide-shortcuts-window.c    |    0
 libide/{ => keybindings}/ide-shortcuts-window.h    |    0
 libide/local/ide-local-device.c                    |    2 +
 libide/local/ide-local-device.h                    |    5 +-
 libide/{ => logging}/ide-log.c                     |    3 +-
 libide/{ => logging}/ide-log.h                     |    0
 libide/modelines/ide-modelines-file-settings.c     |    8 +-
 libide/modelines/ide-modelines-file-settings.h     |    2 +-
 libide/modelines/modeline-parser.h                 |    2 +-
 libide/{ => plugins}/ide-extension-adapter.c       |    0
 libide/{ => plugins}/ide-extension-adapter.h       |    0
 libide/{ => plugins}/ide-extension-set-adapter.c   |    0
 libide/{ => plugins}/ide-extension-set-adapter.h   |    0
 libide/{ => plugins}/ide-extension-util.c          |    0
 libide/{ => plugins}/ide-extension-util.h          |    0
 libide/{ => preferences}/ide-preferences-addin.c   |    0
 libide/{ => preferences}/ide-preferences-addin.h   |    0
 libide/preferences/ide-preferences-bin.h           |    2 +-
 libide/preferences/ide-preferences-builtin.c       |   13 +-
 libide/preferences/ide-preferences-group-private.h |    4 +-
 libide/preferences/ide-preferences-page-private.h  |    4 +-
 libide/preferences/ide-preferences-perspective.c   |   29 +-
 libide/{ => preferences}/ide-preferences.c         |    0
 libide/{ => preferences}/ide-preferences.h         |    0
 libide/{ => projects}/ide-project-file.c           |    0
 libide/{ => projects}/ide-project-file.h           |    4 +-
 libide/{ => projects}/ide-project-files.c          |    9 +-
 libide/{ => projects}/ide-project-files.h          |    0
 libide/{ => projects}/ide-project-info.c           |    0
 libide/{ => projects}/ide-project-info.h           |    0
 libide/{ => projects}/ide-project-item.c           |    0
 libide/{ => projects}/ide-project-item.h           |    0
 libide/{ => projects}/ide-project-miner.c          |    0
 libide/{ => projects}/ide-project-miner.h          |    0
 libide/{ => projects}/ide-project.c                |   13 +-
 libide/{ => projects}/ide-project.h                |    0
 libide/{ => projects}/ide-recent-projects.c        |    0
 libide/{ => projects}/ide-recent-projects.h        |    0
 libide/pygobject/ide-pygobject-script.h            |    2 +-
 libide/{ => runtimes}/ide-runtime-manager.c        |    0
 libide/{ => runtimes}/ide-runtime-manager.h        |    0
 libide/{ => runtimes}/ide-runtime-provider.c       |    0
 libide/{ => runtimes}/ide-runtime-provider.h       |    0
 libide/{ => runtimes}/ide-runtime.c                |    9 +-
 libide/{ => runtimes}/ide-runtime.h                |    3 +-
 libide/{ => scripting}/ide-script-manager.c        |    0
 libide/{ => scripting}/ide-script-manager.h        |    0
 libide/{ => scripting}/ide-script.c                |    0
 libide/{ => scripting}/ide-script.h                |    0
 libide/search/ide-omni-search-display.c            |    6 +-
 libide/search/ide-omni-search-entry.c              |    9 +-
 libide/search/ide-omni-search-entry.h              |    3 +-
 libide/search/ide-omni-search-group.h              |    3 +-
 libide/{ => search}/ide-pattern-spec.c             |    0
 libide/{ => search}/ide-pattern-spec.h             |    0
 libide/{ => search}/ide-search-context.c           |    7 +-
 libide/{ => search}/ide-search-context.h           |    0
 libide/{ => search}/ide-search-engine.c            |    0
 libide/{ => search}/ide-search-engine.h            |    0
 libide/{ => search}/ide-search-provider.c          |    0
 libide/{ => search}/ide-search-provider.h          |    0
 libide/{ => search}/ide-search-reducer.c           |    0
 libide/{ => search}/ide-search-reducer.h           |    0
 libide/{ => search}/ide-search-result.c            |    0
 libide/{ => search}/ide-search-result.h            |    0
 libide/{ => snippets}/ide-source-snippet-chunk.c   |    0
 libide/{ => snippets}/ide-source-snippet-chunk.h   |    0
 .../ide-source-snippet-completion-item.c           |    0
 .../ide-source-snippet-completion-item.h           |    0
 .../ide-source-snippet-completion-provider.c       |    0
 .../ide-source-snippet-completion-provider.h       |   11 +-
 libide/{ => snippets}/ide-source-snippet-context.c |    0
 libide/{ => snippets}/ide-source-snippet-context.h |    0
 libide/{ => snippets}/ide-source-snippet-parser.c  |    0
 libide/{ => snippets}/ide-source-snippet-parser.h  |    0
 libide/{ => snippets}/ide-source-snippet-private.h |    0
 libide/{ => snippets}/ide-source-snippet.c         |    0
 libide/{ => snippets}/ide-source-snippet.h         |    0
 .../{ => snippets}/ide-source-snippets-manager.c   |    0
 .../{ => snippets}/ide-source-snippets-manager.h   |    0
 libide/{ => snippets}/ide-source-snippets.c        |    0
 libide/{ => snippets}/ide-source-snippets.h        |    0
 libide/{ => sourceview}/ide-completion-item.c      |    0
 libide/{ => sourceview}/ide-completion-item.h      |    0
 libide/{ => sourceview}/ide-completion-provider.c  |    0
 libide/{ => sourceview}/ide-completion-provider.h  |    0
 libide/{ => sourceview}/ide-completion-results.c   |    8 +-
 libide/{ => sourceview}/ide-completion-results.h   |    0
 libide/{ => sourceview}/ide-indenter.c             |    0
 libide/{ => sourceview}/ide-indenter.h             |    0
 libide/{ => sourceview}/ide-language.c             |    4 +-
 libide/{ => sourceview}/ide-language.h             |    0
 .../ide-line-change-gutter-renderer.c              |   11 +-
 .../ide-line-change-gutter-renderer.h              |    0
 .../ide-line-diagnostics-gutter-renderer.c         |    6 +-
 .../ide-line-diagnostics-gutter-renderer.h         |    0
 libide/{ => sourceview}/ide-source-iter.c          |    0
 libide/{ => sourceview}/ide-source-iter.h          |    0
 libide/{ => sourceview}/ide-source-map.c           |    5 +-
 libide/{ => sourceview}/ide-source-map.h           |    5 +-
 libide/{ => sourceview}/ide-source-style-scheme.c  |    0
 libide/{ => sourceview}/ide-source-style-scheme.h  |    0
 libide/{ => sourceview}/ide-source-view-capture.c  |    0
 libide/{ => sourceview}/ide-source-view-capture.h  |    0
 libide/{ => sourceview}/ide-source-view-mode.c     |    5 +-
 libide/{ => sourceview}/ide-source-view-mode.h     |    0
 .../{ => sourceview}/ide-source-view-movements.c   |   13 +-
 .../{ => sourceview}/ide-source-view-movements.h   |    0
 libide/{ => sourceview}/ide-source-view.c          |   86 +-
 libide/{ => sourceview}/ide-source-view.h          |    0
 libide/{ => sourceview}/ide-text-iter.c            |    5 +-
 libide/{ => sourceview}/ide-text-iter.h            |    0
 libide/{util => sourceview}/ide-text-util.c        |    0
 libide/{util => sourceview}/ide-text-util.h        |    0
 libide/{ => symbols}/ide-symbol-node.c             |    0
 libide/{ => symbols}/ide-symbol-node.h             |    5 +-
 libide/{ => symbols}/ide-symbol-resolver.c         |    5 +-
 libide/{ => symbols}/ide-symbol-resolver.h         |    0
 libide/{ => symbols}/ide-symbol-tree.c             |    0
 libide/{ => symbols}/ide-symbol-tree.h             |    0
 libide/{ => symbols}/ide-symbol.c                  |    6 +-
 libide/{ => symbols}/ide-symbol.h                  |    0
 libide/{ => symbols}/ide-tags-builder.c            |    0
 libide/{ => symbols}/ide-tags-builder.h            |    0
 libide/theatrics/ide-box-theatric.c                |    8 +-
 libide/{ => theming}/ide-css-provider.c            |    3 +-
 libide/{ => theming}/ide-css-provider.h            |    0
 libide/{ => theming}/ide-theme-manager.c           |    0
 libide/{ => theming}/ide-theme-manager.h           |    0
 libide/{ => threading}/ide-thread-pool.c           |    5 +-
 libide/{ => threading}/ide-thread-pool.h           |    0
 libide/{ => tree}/ide-tree-builder.c               |    0
 libide/{ => tree}/ide-tree-builder.h               |    0
 libide/{ => tree}/ide-tree-node.c                  |    0
 libide/{ => tree}/ide-tree-node.h                  |    0
 libide/{ => tree}/ide-tree-private.h               |    0
 libide/{ => tree}/ide-tree-types.h                 |    0
 libide/{ => tree}/ide-tree.c                       |   13 +-
 libide/{ => tree}/ide-tree.h                       |    0
 libide/{ => util}/ide-async-helper.c               |    0
 libide/{ => util}/ide-async-helper.h               |    0
 libide/{ => util}/ide-battery-monitor.c            |    0
 libide/{ => util}/ide-battery-monitor.h            |    0
 libide/util/ide-gtk.c                              |    5 +-
 libide/util/ide-gtk.h                              |    3 +-
 libide/{ => util}/ide-progress.c                   |    0
 libide/{ => util}/ide-progress.h                   |    0
 libide/{ => util}/ide-ref-ptr.c                    |    0
 libide/{ => util}/ide-ref-ptr.h                    |    0
 libide/{ => util}/ide-settings.c                   |    8 +-
 libide/{ => util}/ide-settings.h                   |    0
 libide/{ => util}/ide-uri.c                        |    0
 libide/{ => util}/ide-uri.h                        |    0
 libide/{ => vcs}/ide-vcs-config.c                  |    0
 libide/{ => vcs}/ide-vcs-config.h                  |    0
 libide/{ => vcs}/ide-vcs-initializer.c             |    0
 libide/{ => vcs}/ide-vcs-initializer.h             |    0
 libide/{ => vcs}/ide-vcs-uri.c                     |    0
 libide/{ => vcs}/ide-vcs-uri.h                     |    0
 libide/{ => vcs}/ide-vcs.c                         |    9 +-
 libide/{ => vcs}/ide-vcs.h                         |    0
 libide/{ => workbench}/ide-layout-grid.c           |   10 +-
 libide/{ => workbench}/ide-layout-grid.h           |    0
 libide/{ => workbench}/ide-layout-pane.c           |    0
 libide/{ => workbench}/ide-layout-pane.h           |    0
 libide/{ => workbench}/ide-layout-stack-actions.c  |   15 +-
 libide/{ => workbench}/ide-layout-stack-actions.h  |    0
 libide/{ => workbench}/ide-layout-stack-private.h  |    5 +-
 libide/{ => workbench}/ide-layout-stack-split.h    |    0
 libide/{ => workbench}/ide-layout-stack.c          |   31 +-
 libide/{ => workbench}/ide-layout-stack.h          |    0
 libide/{ => workbench}/ide-layout-tab-bar.c        |   14 +-
 libide/{ => workbench}/ide-layout-tab-bar.h        |    0
 libide/{ => workbench}/ide-layout-tab.c            |    7 +-
 libide/{ => workbench}/ide-layout-tab.h            |    0
 libide/{ => workbench}/ide-layout-view.c           |    6 +-
 libide/{ => workbench}/ide-layout-view.h           |    4 +-
 libide/{ => workbench}/ide-layout.c                |    0
 libide/{ => workbench}/ide-layout.h                |    0
 libide/{ => workbench}/ide-perspective-switcher.c  |    0
 libide/{ => workbench}/ide-perspective-switcher.h  |    0
 libide/{ => workbench}/ide-perspective.c           |    0
 libide/{ => workbench}/ide-perspective.h           |    0
 libide/{ => workbench}/ide-workbench-actions.c     |    9 +-
 libide/{ => workbench}/ide-workbench-addin.c       |    0
 libide/{ => workbench}/ide-workbench-addin.h       |    6 +-
 libide/{ => workbench}/ide-workbench-header-bar.c  |    4 +-
 libide/{ => workbench}/ide-workbench-header-bar.h  |    0
 libide/{ => workbench}/ide-workbench-open.c        |   12 +-
 libide/{ => workbench}/ide-workbench-private.h     |    0
 libide/{ => workbench}/ide-workbench.c             |   27 +-
 libide/{ => workbench}/ide-workbench.h             |    5 +-
 libide/{ => workers}/ide-subprocess-launcher.c     |    9 +-
 libide/{ => workers}/ide-subprocess-launcher.h     |    0
 libide/{ => workers}/ide-worker-manager.c          |    8 +-
 libide/{ => workers}/ide-worker-manager.h          |    0
 libide/{ => workers}/ide-worker-process.c          |   10 +-
 libide/{ => workers}/ide-worker-process.h          |    0
 libide/{ => workers}/ide-worker.c                  |    0
 libide/{ => workers}/ide-worker.h                  |    0
 plugins/autotools/ide-autotools-build-system.c     |   23 +-
 plugins/autotools/ide-autotools-build-system.h     |    2 +-
 plugins/autotools/ide-autotools-build-task.h       |    3 +-
 plugins/autotools/ide-autotools-builder.h          |    2 +-
 plugins/autotools/ide-autotools-project-miner.h    |    2 +-
 plugins/build-tools/Makefile.am                    |    4 +
 plugins/build-tools/gbp-build-configuration-view.c |    1 +
 .../build-tools}/ide-environment-editor-row.c      |    0
 .../build-tools}/ide-environment-editor-row.h      |    3 +-
 .../build-tools}/ide-environment-editor.c          |    0
 .../build-tools}/ide-environment-editor.h          |    3 +-
 plugins/c-pack/ide-c-format-provider.c             |    2 +
 plugins/c-pack/ide-c-format-provider.h             |    4 +-
 plugins/c-pack/ide-c-indenter.c                    |    2 -
 plugins/c-pack/ide-c-indenter.h                    |    2 +-
 plugins/clang/ide-clang-completion-item-private.h  |    2 +-
 plugins/clang/ide-clang-completion-item.c          |    4 -
 plugins/clang/ide-clang-completion-item.h          |    3 +-
 plugins/clang/ide-clang-completion-provider.c      |    3 +-
 plugins/clang/ide-clang-diagnostic-provider.c      |    3 -
 plugins/clang/ide-clang-diagnostic-provider.h      |    2 +-
 plugins/clang/ide-clang-highlighter.c              |    3 -
 plugins/clang/ide-clang-highlighter.h              |    2 +-
 plugins/clang/ide-clang-private.h                  |    4 +-
 plugins/clang/ide-clang-service.c                  |   14 +-
 plugins/clang/ide-clang-service.h                  |    1 -
 plugins/clang/ide-clang-symbol-node.c              |    4 +-
 plugins/clang/ide-clang-symbol-node.h              |    2 +-
 plugins/clang/ide-clang-symbol-resolver.c          |    5 -
 plugins/clang/ide-clang-symbol-resolver.h          |    2 +-
 plugins/clang/ide-clang-symbol-tree.c              |    3 +-
 plugins/clang/ide-clang-symbol-tree.h              |    3 +-
 plugins/clang/ide-clang-translation-unit.c         |   18 +-
 plugins/clang/ide-clang-translation-unit.h         |    5 +-
 plugins/command-bar/gb-command-bar.c               |    3 -
 plugins/command-bar/gb-command-vim-provider.c      |    1 -
 plugins/command-bar/gb-vim.c                       |    6 +-
 plugins/comment-code/gbp-comment-code-view-addin.c |    4 +-
 plugins/ctags/ide-ctags-builder.c                  |   13 +-
 plugins/ctags/ide-ctags-completion-item.c          |    4 +-
 plugins/ctags/ide-ctags-completion-item.h          |    2 +-
 .../ctags/ide-ctags-completion-provider-private.h  |    1 -
 plugins/ctags/ide-ctags-completion-provider.c      |    7 -
 plugins/ctags/ide-ctags-completion-provider.h      |    3 +-
 plugins/ctags/ide-ctags-highlighter.c              |    5 -
 plugins/ctags/ide-ctags-highlighter.h              |    4 +-
 plugins/ctags/ide-ctags-index.c                    |    6 +-
 plugins/ctags/ide-ctags-service.c                  |   10 +-
 plugins/ctags/ide-ctags-service.h                  |    3 +-
 plugins/ctags/ide-ctags-symbol-resolver.c          |    7 +-
 plugins/devhelp/gbp-devhelp-search-provider.c      |    1 -
 plugins/devhelp/gbp-devhelp-search-provider.h      |    2 +-
 plugins/devhelp/gbp-devhelp-search-result.c        |    2 +
 plugins/devhelp/gbp-devhelp-search-result.h        |    2 +-
 plugins/file-search/gb-file-search-result.c        |    2 +
 plugins/file-search/gb-file-search-result.h        |    6 +-
 plugins/gettext/ide-gettext-diagnostic-provider.c  |   10 +-
 plugins/gettext/ide-gettext-diagnostic-provider.h  |    6 +-
 plugins/git/ide-git-buffer-change-monitor.c        |    9 +-
 plugins/git/ide-git-buffer-change-monitor.h        |    2 +-
 plugins/git/ide-git-remote-callbacks.c             |    6 +-
 plugins/git/ide-git-remote-callbacks.h             |    3 +-
 plugins/git/ide-git-vcs.c                          |    6 -
 plugins/git/ide-git-vcs.h                          |    3 +-
 .../ide-gca-diagnostic-provider.c                  |   11 +-
 .../ide-gca-diagnostic-provider.h                  |    2 +-
 .../html-completion/ide-html-completion-provider.c |    1 -
 .../html-completion/ide-html-completion-provider.h |    3 +-
 plugins/mingw/ide-mingw-device-provider.c          |    1 -
 plugins/mingw/ide-mingw-device-provider.h          |    3 +-
 plugins/mingw/ide-mingw-device.h                   |    2 +-
 plugins/python-pack/ide-python-format-provider.c   |    2 +
 plugins/python-pack/ide-python-format-provider.h   |    4 +-
 plugins/python-pack/ide-python-indenter.c          |    1 -
 plugins/python-pack/ide-python-indenter.h          |    2 +-
 plugins/support/ide-support.c                      |    7 +-
 plugins/xml-pack/ide-xml-highlighter.c             |    6 +-
 plugins/xml-pack/ide-xml-highlighter.h             |    2 +-
 plugins/xml-pack/ide-xml-indenter.c                |    1 -
 plugins/xml-pack/ide-xml-indenter.h                |    2 +-
 419 files changed, 1427 insertions(+), 2097 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 26e9425..47b65e0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -448,11 +448,6 @@ PLUGIN_CFLAGS="$PLUGIN_CFLAGS -I\$(top_srcdir)/contrib/rg"
 PLUGIN_CFLAGS="$PLUGIN_CFLAGS -I\$(top_srcdir)/contrib/search"
 PLUGIN_CFLAGS="$PLUGIN_CFLAGS -I\$(top_srcdir)/contrib/xml"
 PLUGIN_CFLAGS="$PLUGIN_CFLAGS -I\$(top_srcdir)/libide"
-PLUGIN_CFLAGS="$PLUGIN_CFLAGS -I\$(top_srcdir)/libide/editor"
-PLUGIN_CFLAGS="$PLUGIN_CFLAGS -I\$(top_srcdir)/libide/genesis"
-PLUGIN_CFLAGS="$PLUGIN_CFLAGS -I\$(top_srcdir)/libide/greeter"
-PLUGIN_CFLAGS="$PLUGIN_CFLAGS -I\$(top_srcdir)/libide/preferences"
-PLUGIN_CFLAGS="$PLUGIN_CFLAGS -I\$(top_srcdir)/libide/util"
 PLUGIN_CFLAGS="$PLUGIN_CFLAGS $LIBIDE_CFLAGS"
 PLUGIN_CFLAGS="$PLUGIN_CFLAGS $DEBUG_CFLAGS"
 PLUGIN_CFLAGS="$PLUGIN_CFLAGS $OPTIMIZE_CFLAGS"
@@ -497,8 +492,8 @@ AC_CONFIG_FILES([
        contrib/tmpl/tmpl-debug.h
        contrib/xml/Makefile
 
-       libide/ide-debug.h
        libide/Makefile
+       libide/ide-debug.h
 
        plugins/Makefile
 
diff --git a/libide/Makefile.am b/libide/Makefile.am
index a20b296..f810e23 100644
--- a/libide/Makefile.am
+++ b/libide/Makefile.am
@@ -7,512 +7,480 @@ pkglibdir = $(libdir)/gnome-builder
 pkglib_LTLIBRARIES = libide-1.0.la
 
 headersdir = $(includedir)/gnome-builder- VERSION@/libide
-nobase_headers_DATA = \
+nobase_headers_DATA =                   \
        $(libide_1_0_la_public_headers) \
-       $(builddir)/ide-enums.h
-
-libide_1_0_la_public_headers = \
-       directory/ide-directory-build-system.h \
-       directory/ide-directory-genesis-addin.h \
-       directory/ide-directory-vcs.h \
-       doap/ide-doap-person.h \
-       doap/ide-doap.h \
-       editor/ide-editor-perspective.h \
-       editor/ide-editor-view-addin.h \
-       editor/ide-editor-view.h \
-       genesis/ide-genesis-addin.h \
-       genesis/ide-genesis-perspective.h \
-       ide-application-addin.h \
-       ide-application-credits.h \
-       ide-application-tool.h \
-       ide-application.h \
-       ide-back-forward-item.h \
-       ide-back-forward-list.h \
-       ide-buffer-change-monitor.h \
-       ide-buffer-manager.h \
-       ide-buffer.h \
-       ide-build-result-addin.h \
-       ide-build-result.h \
-       ide-build-system.h \
-       ide-builder.h \
-       ide-completion-item.h \
-       ide-completion-provider.h \
-       ide-completion-results.h \
-       ide-configuration-manager.h \
-       ide-configuration.h \
-       ide-context.h \
-       ide-debug.h \
-       ide-debugger.h \
-       ide-deployer.h \
-       ide-device-manager.h \
-       ide-device-provider.h \
-       ide-device.h \
-       ide-diagnostic-provider.h \
-       ide-diagnostic.h \
-       ide-diagnostician.h \
-       ide-diagnostics.h \
-       ide-environment-editor-row.h \
-       ide-environment-editor.h \
-       ide-environment-variable.h \
-       ide-environment.h \
-       ide-executable.h \
-       ide-executer.h \
-       ide-extension-adapter.h \
-       ide-extension-set-adapter.h \
-       ide-file-settings.defs \
-       ide-file-settings.h \
-       ide-file.h \
-       ide-fixit.h \
-       ide-global.h \
-       ide-highlight-engine.h \
-       ide-highlight-index.h \
-       ide-highlighter.h \
-       ide-indent-style.h \
-       ide-indenter.h \
-       ide-language.h \
-       ide-layout-grid.h \
-       ide-layout-pane.h \
-       ide-layout-stack-split.h \
-       ide-layout-stack.h \
-       ide-layout-view.h \
-       ide-layout.h \
-       ide-log.h \
-       ide-macros.h \
-       ide-object.h \
-       ide-pattern-spec.h \
-       ide-perspective.h \
-       ide-preferences-addin.h \
-       ide-preferences.h \
-       ide-process.h \
-       ide-progress.h \
-       ide-project-file.h \
-       ide-project-files.h \
-       ide-project-info.h \
-       ide-project-item.h \
-       ide-project-miner.h \
-       ide-project.h \
-       ide-recent-projects.h \
-       ide-refactory.h \
-       ide-runtime-manager.h \
-       ide-runtime-provider.h \
-       ide-runtime.h \
-       ide-script-manager.h \
-       ide-script.h \
-       ide-search-context.h \
-       ide-search-engine.h \
-       ide-search-provider.h \
-       ide-search-reducer.h \
-       ide-search-result.h \
-       ide-service.h \
-       ide-settings.h \
-       ide-source-location.h \
-       ide-source-map.h \
-       ide-source-range.h \
-       ide-source-snippet-chunk.h \
-       ide-source-snippet-context.h \
-       ide-source-snippet.h \
-       ide-source-snippets-manager.h \
-       ide-source-snippets.h \
-       ide-source-style-scheme.h \
-       ide-source-view-mode.h \
-       ide-source-view.h \
-       ide-subprocess-launcher.h \
-       ide-symbol-node.h \
-       ide-symbol-resolver.h \
-       ide-symbol-tree.h \
-       ide-symbol.h \
-       ide-tags-builder.h \
-       ide-target.h \
-       ide-test-case.h \
-       ide-test-suite.h \
-       ide-thread-pool.h \
-       ide-tree-builder.h \
-       ide-tree-node.h \
-       ide-tree-types.h \
-       ide-tree.h \
-       ide-types.h \
-       ide-unsaved-file.h \
-       ide-unsaved-files.h \
-       ide-uri.h \
-       ide-vcs-config.h \
-       ide-vcs-uri.h \
-       ide-vcs-initializer.h \
-       ide-vcs.h \
-       ide-workbench-addin.h \
-       ide-workbench-header-bar.h \
-       ide-workbench.h \
-       ide-worker.h \
-       ide.h \
-       local/ide-local-device.h \
-       preferences/ide-preferences-bin.h \
-       preferences/ide-preferences-entry.h \
+       $(builddir)/ide-enums.h         \
+        $(NULL)
+
+libide_1_0_la_public_headers =                            \
+       ide-context.h                                     \
+       ide-debug.h                                       \
+       ide-global.h                                      \
+       ide-macros.h                                      \
+       ide-object.h                                      \
+       ide-service.h                                     \
+       ide-types.h                                       \
+       ide.h                                             \
+       application/ide-application-addin.h               \
+       application/ide-application-credits.h             \
+       application/ide-application-tool.h                \
+       application/ide-application.h                     \
+       buffers/ide-buffer-change-monitor.h               \
+       buffers/ide-buffer-manager.h                      \
+       buffers/ide-buffer.h                              \
+       buffers/ide-unsaved-file.h                        \
+       buffers/ide-unsaved-files.h                       \
+       buildsystem/ide-build-result-addin.h              \
+       buildsystem/ide-build-result.h                    \
+       buildsystem/ide-build-system.h                    \
+       buildsystem/ide-builder.h                         \
+       buildsystem/ide-configuration-manager.h           \
+       buildsystem/ide-configuration.h                   \
+       buildsystem/ide-environment-variable.h            \
+       buildsystem/ide-environment.h                     \
+       devices/ide-device-manager.h                      \
+       devices/ide-device-provider.h                     \
+       devices/ide-device.h                              \
+       diagnostics/ide-diagnostic-provider.h             \
+       diagnostics/ide-diagnostic.h                      \
+       diagnostics/ide-diagnostician.h                   \
+       diagnostics/ide-diagnostics.h                     \
+       diagnostics/ide-fixit.h                           \
+       diagnostics/ide-source-location.h                 \
+       diagnostics/ide-source-range.h                    \
+       directory/ide-directory-build-system.h            \
+       directory/ide-directory-genesis-addin.h           \
+       directory/ide-directory-vcs.h                     \
+       doap/ide-doap-person.h                            \
+       doap/ide-doap.h                                   \
+       editor/ide-editor-perspective.h                   \
+       editor/ide-editor-view-addin.h                    \
+       editor/ide-editor-view.h                          \
+       files/ide-file-settings.defs                      \
+       files/ide-file-settings.h                         \
+       files/ide-file.h                                  \
+       files/ide-indent-style.h                          \
+       genesis/ide-genesis-addin.h                       \
+       genesis/ide-genesis-perspective.h                 \
+       highlighting/ide-highlight-engine.h               \
+       highlighting/ide-highlight-index.h                \
+       highlighting/ide-highlighter.h                    \
+       history/ide-back-forward-item.h                   \
+       history/ide-back-forward-list.h                   \
+       local/ide-local-device.h                          \
+       logging/ide-log.h                                 \
+       plugins/ide-extension-adapter.h                   \
+       plugins/ide-extension-set-adapter.h               \
+       preferences/ide-preferences-addin.h               \
+       preferences/ide-preferences-bin.h                 \
+       preferences/ide-preferences-entry.h               \
        preferences/ide-preferences-file-chooser-button.h \
-       preferences/ide-preferences-flow-box.h \
-       preferences/ide-preferences-font-button.h \
-       preferences/ide-preferences-group.h \
-       preferences/ide-preferences-page.h \
-       preferences/ide-preferences-spin-button.h \
-       preferences/ide-preferences-switch.h \
-       search/ide-omni-search-display.h \
-       search/ide-omni-search-entry.h \
-       search/ide-omni-search-group.h \
-       search/ide-omni-search-row.h \
-       template/ide-project-template.h \
-       template/ide-template-base.h \
-       template/ide-template-provider.h \
-       util/ide-cairo.h \
-       util/ide-dnd.h \
-       util/ide-file-manager.h \
-       util/ide-gtk.h \
-       util/ide-line-reader.h \
-       util/ide-list-inline.h \
-       util/ide-pango.h \
-       util/ide-posix.h \
-       util/ide-rgba.h \
+       preferences/ide-preferences-flow-box.h            \
+       preferences/ide-preferences-font-button.h         \
+       preferences/ide-preferences-group.h               \
+       preferences/ide-preferences-page.h                \
+       preferences/ide-preferences-spin-button.h         \
+       preferences/ide-preferences-switch.h              \
+       preferences/ide-preferences.h                     \
+       projects/ide-project-file.h                       \
+       projects/ide-project-files.h                      \
+       projects/ide-project-info.h                       \
+       projects/ide-project-item.h                       \
+       projects/ide-project-miner.h                      \
+       projects/ide-project.h                            \
+       projects/ide-recent-projects.h                    \
+       runtimes/ide-runtime-manager.h                    \
+       runtimes/ide-runtime-provider.h                   \
+       runtimes/ide-runtime.h                            \
+       scripting/ide-script-manager.h                    \
+       scripting/ide-script.h                            \
+       search/ide-omni-search-display.h                  \
+       search/ide-omni-search-entry.h                    \
+       search/ide-omni-search-group.h                    \
+       search/ide-omni-search-row.h                      \
+       search/ide-pattern-spec.h                         \
+       search/ide-search-context.h                       \
+       search/ide-search-engine.h                        \
+       search/ide-search-provider.h                      \
+       search/ide-search-reducer.h                       \
+       search/ide-search-result.h                        \
+       snippets/ide-source-snippet-chunk.h               \
+       snippets/ide-source-snippet-context.h             \
+       snippets/ide-source-snippet.h                     \
+       snippets/ide-source-snippets-manager.h            \
+       snippets/ide-source-snippets.h                    \
+       sourceview/ide-completion-item.h                  \
+       sourceview/ide-completion-provider.h              \
+       sourceview/ide-completion-results.h               \
+       sourceview/ide-indenter.h                         \
+       sourceview/ide-language.h                         \
+       sourceview/ide-source-map.h                       \
+       sourceview/ide-source-style-scheme.h              \
+       sourceview/ide-source-view-mode.h                 \
+       sourceview/ide-source-view.h                      \
+       symbols/ide-symbol-node.h                         \
+       symbols/ide-symbol-resolver.h                     \
+       symbols/ide-symbol-tree.h                         \
+       symbols/ide-symbol.h                              \
+       symbols/ide-tags-builder.h                        \
+       template/ide-project-template.h                   \
+       template/ide-template-base.h                      \
+       template/ide-template-provider.h                  \
+       threading/ide-thread-pool.h                       \
+       tree/ide-tree-builder.h                           \
+       tree/ide-tree-node.h                              \
+       tree/ide-tree-types.h                             \
+       tree/ide-tree.h                                   \
+       util/ide-cairo.h                                  \
+       util/ide-dnd.h                                    \
+       util/ide-file-manager.h                           \
+       util/ide-gtk.h                                    \
+       util/ide-line-reader.h                            \
+       util/ide-list-inline.h                            \
+       util/ide-pango.h                                  \
+       util/ide-posix.h                                  \
+       util/ide-progress.h                               \
+       util/ide-rgba.h                                   \
+       util/ide-settings.h                               \
+       util/ide-uri.h                                    \
+       vcs/ide-vcs-config.h                              \
+       vcs/ide-vcs-initializer.h                         \
+       vcs/ide-vcs-uri.h                                 \
+       vcs/ide-vcs.h                                     \
+       workbench/ide-layout-grid.h                       \
+       workbench/ide-layout-pane.h                       \
+       workbench/ide-layout-stack-split.h                \
+       workbench/ide-layout-stack.h                      \
+       workbench/ide-layout-view.h                       \
+       workbench/ide-layout.h                            \
+       workbench/ide-perspective.h                       \
+       workbench/ide-workbench-addin.h                   \
+       workbench/ide-workbench-header-bar.h              \
+       workbench/ide-workbench.h                         \
+       workers/ide-subprocess-launcher.h                 \
+       workers/ide-worker.h                              \
        $(NULL)
 
-libide_1_0_la_public_sources = \
-       directory/ide-directory-build-system.c \
-       directory/ide-directory-genesis-addin.c \
-       directory/ide-directory-plugin.c \
-       directory/ide-directory-vcs.c \
-       doap/ide-doap-person.c \
-       doap/ide-doap.c \
-       editor/ide-editor-perspective.c \
-       editor/ide-editor-view-addin.c \
-       editor/ide-editor-view.c \
-       genesis/ide-genesis-addin.c \
-       genesis/ide-genesis-perspective.c \
-       ide-application-addin.c \
-       ide-application-tool.c \
-       ide-application.c \
-       ide-back-forward-item.c \
-       ide-back-forward-list-load.c \
-       ide-back-forward-list-save.c \
-       ide-back-forward-list.c \
-       ide-buffer-change-monitor.c \
-       ide-buffer-manager.c \
-       ide-buffer.c \
-       ide-build-result-addin.c \
-       ide-build-result.c \
-       ide-build-system.c \
-       ide-builder.c \
-       ide-completion-item.c \
-       ide-completion-provider.c \
-       ide-completion-results.c \
-       ide-configuration-manager.c \
-       ide-configuration.c \
-       ide-context.c \
-       ide-debugger.c \
-       ide-deployer.c \
-       ide-device-manager.c \
-       ide-device-provider.c \
-       ide-device.c \
-       ide-diagnostic-provider.c \
-       ide-diagnostic.c \
-       ide-diagnostician.c \
-       ide-diagnostics.c \
-       ide-environment-editor-row.c \
-       ide-environment-editor.c \
-       ide-environment-variable.c \
-       ide-environment.c \
-       ide-executable.c \
-       ide-executer.c \
-       ide-extension-adapter.c \
-       ide-extension-set-adapter.c \
-       ide-file-settings.c \
-       ide-file-settings.defs \
-       ide-file.c \
-       ide-fixit.c \
-       ide-highlight-engine.c \
-       ide-highlight-index.c \
-       ide-highlighter.c \
-       ide-indenter.c \
-       ide-language.c \
-       ide-layout-grid.c \
-       ide-layout-pane.c \
-       ide-layout-stack.c \
-       ide-layout-view.c \
-       ide-layout.c \
-       ide-log.c \
-       ide-object.c \
-       ide-pattern-spec.c \
-       ide-perspective.c \
-       ide-preferences-addin.c \
-       ide-preferences.c \
-       ide-process.c \
-       ide-progress.c \
-       ide-project-file.c \
-       ide-project-files.c \
-       ide-project-info.c \
-       ide-project-item.c \
-       ide-project-miner.c \
-       ide-project.c \
-       ide-recent-projects.c \
-       ide-refactory.c \
-       ide-runtime-manager.c \
-       ide-runtime-provider.c \
-       ide-runtime.c \
-       ide-script-manager.c \
-       ide-script.c \
-       ide-search-context.c \
-       ide-search-engine.c \
-       ide-search-provider.c \
-       ide-search-result.c \
-       ide-service.c \
-       ide-settings.c \
-       ide-source-location.c \
-       ide-source-map.c \
-       ide-source-range.c \
-       ide-source-snippet-chunk.c \
-       ide-source-snippet-context.c \
-       ide-source-snippet.c \
-       ide-source-snippets-manager.c \
-       ide-source-snippets.c \
-       ide-source-style-scheme.c \
-       ide-source-view-mode.c \
-       ide-source-view.c \
-       ide-subprocess-launcher.c \
-       ide-symbol-node.c \
-       ide-symbol-resolver.c \
-       ide-symbol-tree.c \
-       ide-symbol.c \
-       ide-tags-builder.c \
-       ide-target.c \
-       ide-test-case.c \
-       ide-test-suite.c \
-       ide-thread-pool.c \
-       ide-tree-builder.c \
-       ide-tree-node.c \
-       ide-tree.c \
-       ide-unsaved-file.c \
-       ide-unsaved-files.c \
-       ide-uri.c \
-       ide-vcs-config.c \
-       ide-vcs-initializer.c \
-       ide-vcs-uri.c \
-       ide-vcs.c \
-       ide-workbench-addin.c \
-       ide-workbench-header-bar.c \
-       ide-workbench-open.c \
-       ide-workbench.c \
-       ide-worker.c \
-       ide.c \
-       local/ide-local-device.c \
-       preferences/ide-preferences-entry.c \
+libide_1_0_la_public_sources =                            \
+       application/ide-application-addin.c               \
+       application/ide-application-tool.c                \
+       application/ide-application.c                     \
+       buffers/ide-buffer-change-monitor.c               \
+       buffers/ide-buffer-manager.c                      \
+       buffers/ide-buffer.c                              \
+       buffers/ide-unsaved-file.c                        \
+       buffers/ide-unsaved-files.c                       \
+       buildsystem/ide-build-result-addin.c              \
+       buildsystem/ide-build-result.c                    \
+       buildsystem/ide-build-system.c                    \
+       buildsystem/ide-builder.c                         \
+       buildsystem/ide-configuration-manager.c           \
+       buildsystem/ide-configuration.c                   \
+       buildsystem/ide-environment-variable.c            \
+       buildsystem/ide-environment.c                     \
+       devices/ide-device-manager.c                      \
+       devices/ide-device-provider.c                     \
+       devices/ide-device.c                              \
+       diagnostics/ide-diagnostic-provider.c             \
+       diagnostics/ide-diagnostic.c                      \
+       diagnostics/ide-diagnostician.c                   \
+       diagnostics/ide-diagnostics.c                     \
+       diagnostics/ide-fixit.c                           \
+       diagnostics/ide-source-location.c                 \
+       diagnostics/ide-source-range.c                    \
+       directory/ide-directory-build-system.c            \
+       directory/ide-directory-genesis-addin.c           \
+       directory/ide-directory-plugin.c                  \
+       directory/ide-directory-vcs.c                     \
+       doap/ide-doap-person.c                            \
+       doap/ide-doap.c                                   \
+       editor/ide-editor-perspective.c                   \
+       editor/ide-editor-view-addin.c                    \
+       editor/ide-editor-view.c                          \
+       files/ide-file-settings.c                         \
+       files/ide-file-settings.defs                      \
+       files/ide-file.c                                  \
+       genesis/ide-genesis-addin.c                       \
+       genesis/ide-genesis-perspective.c                 \
+       highlighting/ide-highlight-engine.c               \
+       highlighting/ide-highlight-index.c                \
+       highlighting/ide-highlighter.c                    \
+       history/ide-back-forward-item.c                   \
+       history/ide-back-forward-list-load.c              \
+       history/ide-back-forward-list-save.c              \
+       history/ide-back-forward-list.c                   \
+       ide-context.c                                     \
+       ide-object.c                                      \
+       ide-service.c                                     \
+       ide.c                                             \
+       local/ide-local-device.c                          \
+       logging/ide-log.c                                 \
+       plugins/ide-extension-adapter.c                   \
+       plugins/ide-extension-set-adapter.c               \
+       preferences/ide-preferences-addin.c               \
+       preferences/ide-preferences-entry.c               \
        preferences/ide-preferences-file-chooser-button.c \
-       preferences/ide-preferences-flow-box.c \
-       preferences/ide-preferences-font-button.c \
-       preferences/ide-preferences-group.c \
-       preferences/ide-preferences-page.c \
-       preferences/ide-preferences-spin-button.c \
-       preferences/ide-preferences-switch.c \
-       search/ide-omni-search-display.c \
-       search/ide-omni-search-entry.c \
-       search/ide-omni-search-group.c \
-       search/ide-omni-search-row.c \
-       template/ide-project-template.c \
-       template/ide-template-base.c \
-       template/ide-template-provider.c \
-       util/ide-cairo.c \
-       util/ide-dnd.c \
-       util/ide-file-manager.c \
-       util/ide-gtk.c \
-       util/ide-line-reader.c \
-       util/ide-pango.c \
-       util/ide-posix.c \
-       util/ide-rgba.c \
+       preferences/ide-preferences-flow-box.c            \
+       preferences/ide-preferences-font-button.c         \
+       preferences/ide-preferences-group.c               \
+       preferences/ide-preferences-page.c                \
+       preferences/ide-preferences-spin-button.c         \
+       preferences/ide-preferences-switch.c              \
+       preferences/ide-preferences.c                     \
+       projects/ide-project-file.c                       \
+       projects/ide-project-files.c                      \
+       projects/ide-project-info.c                       \
+       projects/ide-project-item.c                       \
+       projects/ide-project-miner.c                      \
+       projects/ide-project.c                            \
+       projects/ide-recent-projects.c                    \
+       runtimes/ide-runtime-manager.c                    \
+       runtimes/ide-runtime-provider.c                   \
+       runtimes/ide-runtime.c                            \
+       scripting/ide-script-manager.c                    \
+       scripting/ide-script.c                            \
+       search/ide-omni-search-display.c                  \
+       search/ide-omni-search-entry.c                    \
+       search/ide-omni-search-group.c                    \
+       search/ide-omni-search-row.c                      \
+       search/ide-pattern-spec.c                         \
+       search/ide-search-context.c                       \
+       search/ide-search-engine.c                        \
+       search/ide-search-provider.c                      \
+       search/ide-search-result.c                        \
+       snippets/ide-source-snippet-chunk.c               \
+       snippets/ide-source-snippet-context.c             \
+       snippets/ide-source-snippet.c                     \
+       snippets/ide-source-snippets-manager.c            \
+       snippets/ide-source-snippets.c                    \
+       sourceview/ide-completion-item.c                  \
+       sourceview/ide-completion-provider.c              \
+       sourceview/ide-completion-results.c               \
+       sourceview/ide-indenter.c                         \
+       sourceview/ide-language.c                         \
+       sourceview/ide-source-map.c                       \
+       sourceview/ide-source-style-scheme.c              \
+       sourceview/ide-source-view-mode.c                 \
+       sourceview/ide-source-view.c                      \
+       symbols/ide-symbol-node.c                         \
+       symbols/ide-symbol-resolver.c                     \
+       symbols/ide-symbol-tree.c                         \
+       symbols/ide-symbol.c                              \
+       symbols/ide-tags-builder.c                        \
+       template/ide-project-template.c                   \
+       template/ide-template-base.c                      \
+       template/ide-template-provider.c                  \
+       threading/ide-thread-pool.c                       \
+       tree/ide-tree-builder.c                           \
+       tree/ide-tree-node.c                              \
+       tree/ide-tree.c                                   \
+       util/ide-cairo.c                                  \
+       util/ide-dnd.c                                    \
+       util/ide-file-manager.c                           \
+       util/ide-gtk.c                                    \
+       util/ide-line-reader.c                            \
+       util/ide-pango.c                                  \
+       util/ide-posix.c                                  \
+       util/ide-progress.c                               \
+       util/ide-rgba.c                                   \
+       util/ide-settings.c                               \
+       util/ide-uri.c                                    \
+       vcs/ide-vcs-config.c                              \
+       vcs/ide-vcs-initializer.c                         \
+       vcs/ide-vcs-uri.c                                 \
+       vcs/ide-vcs.c                                     \
+       workbench/ide-layout-grid.c                       \
+       workbench/ide-layout-pane.c                       \
+       workbench/ide-layout-stack.c                      \
+       workbench/ide-layout-view.c                       \
+       workbench/ide-layout.c                            \
+       workbench/ide-perspective.c                       \
+       workbench/ide-workbench-addin.c                   \
+       workbench/ide-workbench-header-bar.c              \
+       workbench/ide-workbench-open.c                    \
+       workbench/ide-workbench.c                         \
+       workers/ide-subprocess-launcher.c                 \
+       workers/ide-worker.c                              \
        $(NULL)
 
-libide_1_0_la_SOURCES = \
-       $(libide_1_0_la_public_headers) \
-       $(libide_1_0_la_public_sources) \
-       editor/ide-editor-frame-actions.c \
-       editor/ide-editor-frame-actions.h \
-       editor/ide-editor-frame.c \
-       editor/ide-editor-frame.h \
-       editor/ide-editor-frame-private.h \
-       editor/ide-editor-map-bin.c \
-       editor/ide-editor-map-bin.h \
-       editor/ide-editor-plugin.c \
-       editor/ide-editor-print-operation.c \
-       editor/ide-editor-print-operation.h \
-       editor/ide-editor-tweak-widget.c \
-       editor/ide-editor-tweak-widget.h \
-       editor/ide-editor-view-actions.c \
-       editor/ide-editor-view-actions.h \
-       editor/ide-editor-view-addin-private.h \
-       editor/ide-editor-view-private.h \
-       editor/ide-editor-workbench-addin.c \
-       editor/ide-editor-workbench-addin.h \
-       gconstructor.h \
-       greeter/ide-greeter-perspective.c \
-       greeter/ide-greeter-perspective.h \
-       greeter/ide-greeter-project-row.c \
-       greeter/ide-greeter-project-row.h \
-       gsettings/ide-gsettings-file-settings.c \
-       gsettings/ide-gsettings-file-settings.h \
-       gsettings/ide-language-defaults.c \
-       gsettings/ide-language-defaults.h \
-       ide-application-command-line.c \
-       ide-application-actions.c \
-       ide-application-actions.h \
-       ide-application-plugins.c \
-       ide-application-private.h \
-       ide-application-tests.c \
-       ide-application-tests.h \
-       ide-async-helper.c \
-       ide-async-helper.h \
-       ide-back-forward-list-private.h \
-       ide-battery-monitor.c \
-       ide-battery-monitor.h \
-       ide-css-provider.c \
-       ide-css-provider.h \
-       ide-extension-util.c \
-       ide-extension-util.h \
-       ide-internal.h \
-       ide-keybindings.c \
-       ide-keybindings.h \
-       ide-layout-stack-actions.c \
-       ide-layout-stack-actions.h \
-       ide-layout-stack-private.h \
-       ide-layout-tab.c \
-       ide-layout-tab.h \
-       ide-layout-tab-bar.c \
-       ide-layout-tab-bar.h \
-       ide-line-change-gutter-renderer.c \
-       ide-line-change-gutter-renderer.h \
-       ide-line-diagnostics-gutter-renderer.c \
-       ide-line-diagnostics-gutter-renderer.h \
-       ide-perspective-switcher.c \
-       ide-perspective-switcher.h \
-       ide-ref-ptr.c \
-       ide-ref-ptr.h \
-       ide-search-reducer.c \
-       ide-shortcuts-window.c \
-       ide-shortcuts-window.h \
-       ide-source-iter.c \
-       ide-source-iter.h \
-       ide-source-snippet-completion-item.c \
-       ide-source-snippet-completion-item.h \
-       ide-source-snippet-completion-provider.c \
-       ide-source-snippet-completion-provider.h \
-       ide-source-snippet-parser.c \
-       ide-source-snippet-parser.h \
-       ide-source-snippet-private.h \
-       ide-source-view-capture.c \
-       ide-source-view-capture.h \
-       ide-source-view-movements.c \
-       ide-source-view-movements.h \
-       ide-text-iter.c \
-       ide-text-iter.h \
-       ide-theme-manager.c \
-       ide-theme-manager.h \
-       ide-tree-private.h \
-       ide-workbench-actions.c \
-       ide-workbench-private.h \
-       ide-worker-manager.c \
-       ide-worker-manager.h \
-       ide-worker-process.c \
-       ide-worker-process.h \
-       modelines/ide-modelines-file-settings.c \
-       modelines/ide-modelines-file-settings.h \
-       modelines/modeline-parser.c \
-       modelines/modeline-parser.h \
-       preferences/ide-preferences-builtin.c \
-       preferences/ide-preferences-builtin.h \
-       preferences/ide-preferences-bin.c \
-       preferences/ide-preferences-bin-private.h \
-       preferences/ide-preferences-group-private.h \
-       preferences/ide-preferences-language-row.c \
-       preferences/ide-preferences-language-row.h \
-       preferences/ide-preferences-page-private.h \
-       preferences/ide-preferences-perspective.c \
-       preferences/ide-preferences-perspective.h \
-       theatrics/ide-box-theatric.c \
-       theatrics/ide-box-theatric.h \
-       util/ide-doc-seq.c \
-       util/ide-doc-seq.h \
-       util/ide-gdk.c \
-       util/ide-gdk.h \
-       util/ide-text-util.c \
-       util/ide-text-util.h \
-       util/ide-window-settings.c \
-       util/ide-window-settings.h \
+libide_1_0_la_SOURCES =                                   \
+       $(libide_1_0_la_public_headers)                   \
+       $(libide_1_0_la_public_sources)                   \
+       application/ide-application-actions.c             \
+       application/ide-application-actions.h             \
+       application/ide-application-command-line.c        \
+       application/ide-application-plugins.c             \
+       application/ide-application-private.h             \
+       application/ide-application-tests.c               \
+       application/ide-application-tests.h               \
+       editor/ide-editor-frame-actions.c                 \
+       editor/ide-editor-frame-actions.h                 \
+       editor/ide-editor-frame-private.h                 \
+       editor/ide-editor-frame.c                         \
+       editor/ide-editor-frame.h                         \
+       editor/ide-editor-map-bin.c                       \
+       editor/ide-editor-map-bin.h                       \
+       editor/ide-editor-plugin.c                        \
+       editor/ide-editor-print-operation.c               \
+       editor/ide-editor-print-operation.h               \
+       editor/ide-editor-tweak-widget.c                  \
+       editor/ide-editor-tweak-widget.h                  \
+       editor/ide-editor-view-actions.c                  \
+       editor/ide-editor-view-actions.h                  \
+       editor/ide-editor-view-addin-private.h            \
+       editor/ide-editor-view-private.h                  \
+       editor/ide-editor-workbench-addin.c               \
+       editor/ide-editor-workbench-addin.h               \
+       gconstructor.h                                    \
+       greeter/ide-greeter-perspective.c                 \
+       greeter/ide-greeter-perspective.h                 \
+       greeter/ide-greeter-project-row.c                 \
+       greeter/ide-greeter-project-row.h                 \
+       gsettings/ide-gsettings-file-settings.c           \
+       gsettings/ide-gsettings-file-settings.h           \
+       gsettings/ide-language-defaults.c                 \
+       gsettings/ide-language-defaults.h                 \
+       history/ide-back-forward-list-private.h           \
+       ide-internal.h                                    \
+       keybindings/ide-keybindings.c                     \
+       keybindings/ide-keybindings.h                     \
+       keybindings/ide-shortcuts-window.c                \
+       keybindings/ide-shortcuts-window.h                \
+       modelines/ide-modelines-file-settings.c           \
+       modelines/ide-modelines-file-settings.h           \
+       modelines/modeline-parser.c                       \
+       modelines/modeline-parser.h                       \
+       plugins/ide-extension-util.c                      \
+       plugins/ide-extension-util.h                      \
+       preferences/ide-preferences-bin-private.h         \
+       preferences/ide-preferences-bin.c                 \
+       preferences/ide-preferences-builtin.c             \
+       preferences/ide-preferences-builtin.h             \
+       preferences/ide-preferences-group-private.h       \
+       preferences/ide-preferences-language-row.c        \
+       preferences/ide-preferences-language-row.h        \
+       preferences/ide-preferences-page-private.h        \
+       preferences/ide-preferences-perspective.c         \
+       preferences/ide-preferences-perspective.h         \
+       search/ide-search-reducer.c                       \
+       snippets/ide-source-snippet-completion-item.c     \
+       snippets/ide-source-snippet-completion-item.h     \
+       snippets/ide-source-snippet-completion-provider.c \
+       snippets/ide-source-snippet-completion-provider.h \
+       snippets/ide-source-snippet-parser.c              \
+       snippets/ide-source-snippet-parser.h              \
+       snippets/ide-source-snippet-private.h             \
+       sourceview/ide-line-change-gutter-renderer.c      \
+       sourceview/ide-line-change-gutter-renderer.h      \
+       sourceview/ide-line-diagnostics-gutter-renderer.c \
+       sourceview/ide-line-diagnostics-gutter-renderer.h \
+       sourceview/ide-source-iter.c                      \
+       sourceview/ide-source-iter.h                      \
+       sourceview/ide-source-view-capture.c              \
+       sourceview/ide-source-view-capture.h              \
+       sourceview/ide-source-view-movements.c            \
+       sourceview/ide-source-view-movements.h            \
+       sourceview/ide-text-iter.c                        \
+       sourceview/ide-text-iter.h                        \
+       sourceview/ide-text-util.c                        \
+       sourceview/ide-text-util.h                        \
+       theatrics/ide-box-theatric.c                      \
+       theatrics/ide-box-theatric.h                      \
+       theming/ide-css-provider.c                        \
+       theming/ide-css-provider.h                        \
+       theming/ide-theme-manager.c                       \
+       theming/ide-theme-manager.h                       \
+       tree/ide-tree-private.h                           \
+       util/ide-async-helper.c                           \
+       util/ide-async-helper.h                           \
+       util/ide-battery-monitor.c                        \
+       util/ide-battery-monitor.h                        \
+       util/ide-doc-seq.c                                \
+       util/ide-doc-seq.h                                \
+       util/ide-gdk.c                                    \
+       util/ide-gdk.h                                    \
+       util/ide-ref-ptr.c                                \
+       util/ide-ref-ptr.h                                \
+       util/ide-window-settings.c                        \
+       util/ide-window-settings.h                        \
+       workbench/ide-layout-stack-actions.c              \
+       workbench/ide-layout-stack-actions.h              \
+       workbench/ide-layout-stack-private.h              \
+       workbench/ide-layout-tab-bar.c                    \
+       workbench/ide-layout-tab-bar.h                    \
+       workbench/ide-layout-tab.c                        \
+       workbench/ide-layout-tab.h                        \
+       workbench/ide-perspective-switcher.c              \
+       workbench/ide-perspective-switcher.h              \
+       workbench/ide-workbench-actions.c                 \
+       workbench/ide-workbench-private.h                 \
+       workers/ide-worker-manager.c                      \
+       workers/ide-worker-manager.h                      \
+       workers/ide-worker-process.c                      \
+       workers/ide-worker-process.h                      \
        $(NULL)
 
-libide_1_0_la_includes = \
-       $(DEBUG_CFLAGS) \
-       -DPACKAGE_DATADIR="\"${datadir}\"" \
+libide_1_0_la_includes =                             \
+       $(DEBUG_CFLAGS)                              \
+       -DPACKAGE_DATADIR="\"${datadir}\""           \
        -DPACKAGE_LOCALE_DIR=\""${datadir}/locale"\" \
-       -DPACKAGE_LIBDIR=\""${libdir}"\" \
-       -DPACKAGE_LIBEXECDIR=\""${libexecdir}"\" \
-       -DBUILDDIR=\""${abs_top_builddir}"\" \
-       -DSRCDIR=\""${abs_top_srcdir}"\" \
-       -I$(top_builddir)/libide \
-       -I$(top_srcdir)/contrib/egg \
-       -I$(top_srcdir)/contrib/gd \
-       -I$(top_srcdir)/contrib/nautilus \
-       -I$(top_srcdir)/contrib/pnl \
-       -I$(top_srcdir)/contrib/search \
-       -I$(top_srcdir)/contrib/tmpl \
-       -I$(top_srcdir)/contrib/xml \
-       -I$(top_builddir)/contrib/pnl \
-       -I$(top_builddir)/contrib/tmpl \
-       -I$(top_builddir)/data/icons/hicolor \
-       -I$(srcdir) \
-       -I$(srcdir)/doap \
-       -I$(srcdir)/editor \
-       -I$(srcdir)/greeter \
-       -I$(srcdir)/genesis \
-       -I$(srcdir)/gsettings \
-       -I$(srcdir)/local \
-       -I$(srcdir)/modelines \
-       -I$(srcdir)/preferences \
-       -I$(builddir)/resources \
-       -I$(srcdir)/theatrics \
-       -I$(srcdir)/util \
+       -DPACKAGE_LIBDIR=\""${libdir}"\"             \
+       -DPACKAGE_LIBEXECDIR=\""${libexecdir}"\"     \
+       -DBUILDDIR=\""${abs_top_builddir}"\"         \
+       -DSRCDIR=\""${abs_top_srcdir}"\"             \
+       -I$(srcdir)                                  \
+       -I$(top_builddir)/contrib/pnl                \
+       -I$(top_builddir)/contrib/tmpl               \
+       -I$(top_builddir)/data/icons/hicolor         \
+       -I$(top_builddir)/libide                     \
+       -I$(top_srcdir)/contrib/egg                  \
+       -I$(top_srcdir)/contrib/gd                   \
+       -I$(top_srcdir)/contrib/nautilus             \
+       -I$(top_srcdir)/contrib/pnl                  \
+       -I$(top_srcdir)/contrib/search               \
+       -I$(top_srcdir)/contrib/tmpl                 \
+       -I$(top_srcdir)/contrib/xml                  \
        $(NULL)
 
-libide_1_0_la_CPPFLAGS = \
-       $(AM_CPPFLAGS) \
+libide_1_0_la_CPPFLAGS =          \
+       $(AM_CPPFLAGS)            \
        $(libide_1_0_la_includes) \
        $(NULL)
 
-libide_1_0_la_CFLAGS = \
-       $(AM_CFLAGS) \
-       $(LIBIDE_CFLAGS) \
-       $(OPTIMIZE_CFLAGS) \
-       $(DEBUG_CFLAGS) \
+libide_1_0_la_CFLAGS =            \
+       $(AM_CFLAGS)              \
+       $(LIBIDE_CFLAGS)          \
+       $(OPTIMIZE_CFLAGS)        \
+       $(DEBUG_CFLAGS)           \
        $(libide_1_0_la_includes) \
        $(NULL)
 
-libide_1_0_la_CXXFLAGS = \
-       $(AM_CXXFLAGS) \
-       $(LIBIDE_CFLAGS) \
+libide_1_0_la_CXXFLAGS =          \
+       $(AM_CXXFLAGS)            \
+       $(LIBIDE_CFLAGS)          \
        $(libide_1_0_la_includes) \
-       $(OPTIMIZE_CFLAGS) \
+       $(OPTIMIZE_CFLAGS)        \
        $(NULL)
 
-libide_1_0_la_LDFLAGS = \
-       $(OPTIMIZE_LDFLAGS) \
-       -avoid-version \
-       -no-undefined \
+libide_1_0_la_LDFLAGS =                         \
+       $(OPTIMIZE_LDFLAGS)                     \
+       -avoid-version                          \
+       -no-undefined                           \
        -export-symbols-regex '^(ide_|_ide_).*' \
        $(NULL)
 
-libide_1_0_la_LIBADD = \
-       $(LIBIDE_LIBS) \
-       $(SHM_LIB) \
-       -lm \
-       $(top_builddir)/data/icons/hicolor/libicons.la \
-       $(top_builddir)/contrib/egg/libegg-private.la \
-       $(top_builddir)/contrib/gd/libgd.la \
-       $(top_builddir)/contrib/nautilus/libnautilus.la \
-       $(top_builddir)/contrib/pnl/libpanel-gtk.la \
-       $(top_builddir)/contrib/search/libsearch.la \
+libide_1_0_la_LIBADD =                                       \
+       $(LIBIDE_LIBS)                                       \
+       $(SHM_LIB)                                           \
+       -lm                                                  \
+       $(top_builddir)/data/icons/hicolor/libicons.la       \
+       $(top_builddir)/contrib/egg/libegg-private.la        \
+       $(top_builddir)/contrib/gd/libgd.la                  \
+       $(top_builddir)/contrib/nautilus/libnautilus.la      \
+       $(top_builddir)/contrib/pnl/libpanel-gtk.la          \
+       $(top_builddir)/contrib/search/libsearch.la          \
        $(top_builddir)/contrib/tmpl/libtemplate-glib-1.0.la \
-       $(top_builddir)/contrib/xml/libxml.la \
+       $(top_builddir)/contrib/xml/libxml.la                \
        $(NULL)
 
 if ENABLE_WEBKIT
@@ -522,22 +490,24 @@ libide_1_0_la_LIBADD += $(WEBKIT_LIBS)
 endif
 
 
-libide_1_0_la_built_sources = \
+libide_1_0_la_built_sources =     \
        resources/ide-resources.c \
        resources/ide-resources.h \
        $(NULL)
 
 
 if ENABLE_EDITORCONFIG
-libide_1_0_la_SOURCES += \
-       editorconfig/editorconfig-glib.c \
-       editorconfig/editorconfig-glib.h \
+libide_1_0_la_SOURCES +=                              \
+       editorconfig/editorconfig-glib.c              \
+       editorconfig/editorconfig-glib.h              \
        editorconfig/ide-editorconfig-file-settings.c \
-       editorconfig/ide-editorconfig-file-settings.h
+       editorconfig/ide-editorconfig-file-settings.h \
+        $(NULL)
 
-libide_1_0_la_includes += \
+libide_1_0_la_includes +=                       \
        -I$(top_srcdir)/contrib/libeditorconfig \
-       -I$(srcdir)/editorconfig
+       -I$(srcdir)/editorconfig                \
+        $(NULL)
 
 libide_1_0_la_CFLAGS += -DENABLE_EDITORCONFIG
 libide_1_0_la_LIBADD += $(top_builddir)/contrib/libeditorconfig/libeditorconfig.la
@@ -546,31 +516,38 @@ endif
 
 if ENABLE_PYTHON_SCRIPTING
 libide_1_0_la_includes += -I$(srcdir)/pygobject
-libide_1_0_la_SOURCES += \
+
+libide_1_0_la_SOURCES +=                 \
        pygobject/ide-pygobject-script.c \
-       pygobject/ide-pygobject-script.h
-libide_1_0_la_CFLAGS += \
-       $(PYGOBJECT_CFLAGS) \
-       -DENABLE_PYTHON_SCRIPTING
+       pygobject/ide-pygobject-script.h \
+        $(NULL)
+
+libide_1_0_la_CFLAGS +=           \
+       $(PYGOBJECT_CFLAGS)       \
+       -DENABLE_PYTHON_SCRIPTING \
+        $(NULL)
+
 libide_1_0_la_LIBADD += $(PYGOBJECT_LIBS)
 endif
 
 
+glib_enum_headers =                        \
+       buffers/ide-buffer.h               \
+       buildsystem/ide-build-result.h     \
+       diagnostics/ide-diagnostic.h       \
+       doap/ide-doap.h                    \
+       files/ide-indent-style.h           \
+       highlighting/ide-highlighter.h     \
+       sourceview/ide-source-view.h       \
+       symbols/ide-symbol.h               \
+       threading/ide-thread-pool.h        \
+       vcs/ide-vcs-config.h               \
+       workbench/ide-layout-stack-split.h \
+       $(NULL)
+
 glib_enum_h = ide-enums.h
 glib_enum_c = ide-enums.c
-glib_enum_headers =  \
-       doap/ide-doap.h \
-       ide-buffer.h \
-       ide-build-result.h \
-       ide-diagnostic.h \
-       ide-highlighter.h \
-       ide-indent-style.h \
-       ide-layout-stack-split.h \
-       ide-source-view.h \
-       ide-symbol.h \
-       ide-thread-pool.h \
-       ide-vcs-config.h \
-       $(NULL)
+
 include $(top_srcdir)/build/autotools/Makefile.am.enums
 
 
@@ -580,9 +557,9 @@ glib_resources_xml = resources/libide.gresource.xml
 glib_resources_namespace = ide
 include $(top_srcdir)/build/autotools/Makefile.am.gresources
 
-nodist_libide_1_0_la_SOURCES = \
-       ide-enums.h \
-       ide-enums.c \
+nodist_libide_1_0_la_SOURCES =    \
+       ide-enums.h               \
+       ide-enums.c               \
        resources/ide-resources.c \
        resources/ide-resources.h \
        $(NULL)
@@ -593,30 +570,32 @@ if HAVE_INTROSPECTION
 
 INTROSPECTION_GIRS =
 INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --warn-all
-INTROSPECTION_COMPILER_ARGS = \
-       --includedir=$(srcdir) \
-       --includedir=$(top_builddir)/contrib/egg \
-       --includedir=$(top_builddir)/contrib/pnl \
-       --includedir=$(top_builddir)/contrib/tmpl
-
-introspection_sources = \
+INTROSPECTION_COMPILER_ARGS =                     \
+       --includedir=$(srcdir)                    \
+       --includedir=$(top_builddir)/contrib/egg  \
+       --includedir=$(top_builddir)/contrib/pnl  \
+       --includedir=$(top_builddir)/contrib/tmpl \
+        $(NULL)
+
+introspection_sources =                 \
        $(libide_1_0_la_public_sources) \
        $(libide_1_0_la_public_headers) \
-       ide-enums.h \
-       ide-enums.c \
+       ide-enums.h                     \
+       ide-enums.c                     \
        $(NULL)
 
 Ide-1.0.gir: libide-1.0.la
 Ide_1_0_gir_INCLUDES = Gio-2.0 GtkSource-3.0 Peas-1.0
 Ide_1_0_gir_CFLAGS = $(libide_1_0_la_CFLAGS)
-Ide_1_0_gir_LIBS = \
-       libide-1.0.la \
-       $(top_builddir)/contrib/egg/libegg-private.la \
-       $(top_builddir)/contrib/tmpl/libtemplate-glib-1.0.la
+Ide_1_0_gir_LIBS =                                           \
+       libide-1.0.la                                        \
+       $(top_builddir)/contrib/egg/libegg-private.la        \
+       $(top_builddir)/contrib/tmpl/libtemplate-glib-1.0.la \
+        $(NULL)
 Ide_1_0_gir_FILES = $(introspection_sources)
 Ide_1_0_gir_SCANNERFLAGS = \
-       --include-uninstalled=$(top_builddir)/contrib/egg/Egg-1.0.gir \
-       --include-uninstalled=$(top_builddir)/contrib/pnl/Pnl-1.0.gir \
+       --include-uninstalled=$(top_builddir)/contrib/egg/Egg-1.0.gir       \
+       --include-uninstalled=$(top_builddir)/contrib/pnl/Pnl-1.0.gir       \
        --include-uninstalled=$(top_builddir)/contrib/tmpl/Template-1.0.gir \
        --c-include="ide.h" \
        -n Ide \
@@ -640,24 +619,28 @@ libide-1.0.vapi: Ide-1.0.gir
 
 VAPIGEN_VAPIS = libide-1.0.vapi
 
-libide_1_0_vapi_DEPS = \
-       gio-2.0 \
-       gtk+-3.0 \
+libide_1_0_vapi_DEPS =    \
+       gio-2.0           \
+       gtk+-3.0          \
        gtksourceview-3.0 \
-       libpeas-1.0 \
-       panel-gtk \
+       libpeas-1.0       \
+       panel-gtk         \
        template-glib-1.0 \
-       egg-private
+       egg-private       \
+        $(NULL)
+
 libide_1_0_vapi_METADATADIRS = $(srcdir)
 libide_1_0_vapi_FILES = Ide-1.0.gir
-libide_1_0_vapi_VAPIDIRS = \
-       $(top_builddir)/contrib/egg \
-       $(top_builddir)/contrib/pnl \
-       $(top_builddir)/contrib/tmpl
-libide_1_0_vapi_GIRDIRS = \
-       $(top_builddir)/contrib/egg \
-       $(top_builddir)/contrib/pnl \
-       $(top_builddir)/contrib/tmpl
+libide_1_0_vapi_VAPIDIRS =           \
+       $(top_builddir)/contrib/egg  \
+       $(top_builddir)/contrib/pnl  \
+       $(top_builddir)/contrib/tmpl \
+        $(NULL)
+libide_1_0_vapi_GIRDIRS =            \
+       $(top_builddir)/contrib/egg  \
+       $(top_builddir)/contrib/pnl  \
+       $(top_builddir)/contrib/tmpl \
+        $(NULL)
 
 libide-1.0.deps: Makefile
        $(AM_V_GEN) echo $(libide_1_0_vapi_DEPS) | tr ' ' '\n' > $@
diff --git a/libide/ide-application-actions.c b/libide/application/ide-application-actions.c
similarity index 97%
rename from libide/ide-application-actions.c
rename to libide/application/ide-application-actions.c
index b6910da..3b266eb 100644
--- a/libide/ide-application-actions.c
+++ b/libide/application/ide-application-actions.c
@@ -22,13 +22,14 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-application.h"
-#include "ide-application-actions.h"
-#include "ide-application-credits.h"
-#include "ide-application-private.h"
 #include "ide-debug.h"
-#include "ide-shortcuts-window.h"
-#include "ide-workbench.h"
+
+#include "application/ide-application.h"
+#include "application/ide-application-actions.h"
+#include "application/ide-application-credits.h"
+#include "application/ide-application-private.h"
+#include "keybindings/ide-shortcuts-window.h"
+#include "workbench/ide-workbench.h"
 
 static void
 ide_application_actions_preferences (GSimpleAction *action,
diff --git a/libide/ide-application-actions.h b/libide/application/ide-application-actions.h
similarity index 100%
rename from libide/ide-application-actions.h
rename to libide/application/ide-application-actions.h
diff --git a/libide/ide-application-addin.c b/libide/application/ide-application-addin.c
similarity index 100%
rename from libide/ide-application-addin.c
rename to libide/application/ide-application-addin.c
diff --git a/libide/ide-application-addin.h b/libide/application/ide-application-addin.h
similarity index 100%
rename from libide/ide-application-addin.h
rename to libide/application/ide-application-addin.h
diff --git a/libide/ide-application-command-line.c b/libide/application/ide-application-command-line.c
similarity index 98%
rename from libide/ide-application-command-line.c
rename to libide/application/ide-application-command-line.c
index 68df5bb..b69b08f 100644
--- a/libide/ide-application-command-line.c
+++ b/libide/application/ide-application-command-line.c
@@ -16,9 +16,9 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#define G_LOG_DOMAIN "ide-application-command-line"
+
+#include "config.h"
 
 #include <glib/gi18n.h>
 #include <girepository.h>
@@ -26,9 +26,9 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#include "ide-application.h"
-#include "ide-application-private.h"
-#include "ide-log.h"
+#include "application/ide-application.h"
+#include "application/ide-application-private.h"
+#include "logging/ide-log.h"
 
 static PeasPluginInfo *
 ide_application_locate_tool (IdeApplication *self,
diff --git a/libide/ide-application-credits.h b/libide/application/ide-application-credits.h
similarity index 100%
rename from libide/ide-application-credits.h
rename to libide/application/ide-application-credits.h
diff --git a/libide/ide-application-plugins.c b/libide/application/ide-application-plugins.c
similarity index 98%
rename from libide/ide-application-plugins.c
rename to libide/application/ide-application-plugins.c
index 1477822..510d297 100644
--- a/libide/ide-application-plugins.c
+++ b/libide/application/ide-application-plugins.c
@@ -21,12 +21,13 @@
 #include <libpeas/peas.h>
 #include <girepository.h>
 
-#include "ide-application.h"
-#include "ide-application-addin.h"
-#include "ide-application-private.h"
-#include "ide-css-provider.h"
 #include "ide-macros.h"
 
+#include "application/ide-application.h"
+#include "application/ide-application-addin.h"
+#include "application/ide-application-private.h"
+#include "theming/ide-css-provider.h"
+
 static gboolean
 ide_application_can_load_plugin (IdeApplication *self,
                                  PeasPluginInfo *plugin_info)
diff --git a/libide/ide-application-private.h b/libide/application/ide-application-private.h
similarity index 91%
rename from libide/ide-application-private.h
rename to libide/application/ide-application-private.h
index fec7cfa..57e50b5 100644
--- a/libide/ide-application-private.h
+++ b/libide/application/ide-application-private.h
@@ -19,16 +19,15 @@
 #ifndef IDE_APPLICATION_PRIVATE_H
 #define IDE_APPLICATION_PRIVATE_H
 
+#include <egg-menu-manager.h>
 #include <gio/gio.h>
 #include <libpeas/peas.h>
 
-#include "egg-menu-manager.h"
-
-#include "ide-application.h"
-#include "ide-keybindings.h"
-#include "ide-recent-projects.h"
-#include "ide-theme-manager.h"
-#include "ide-worker-manager.h"
+#include "application/ide-application.h"
+#include "keybindings/ide-keybindings.h"
+#include "projects/ide-recent-projects.h"
+#include "theming/ide-theme-manager.h"
+#include "workers/ide-worker-manager.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-application-tests.c b/libide/application/ide-application-tests.c
similarity index 97%
rename from libide/ide-application-tests.c
rename to libide/application/ide-application-tests.c
index 06ba8a0..6114491 100644
--- a/libide/ide-application-tests.c
+++ b/libide/application/ide-application-tests.c
@@ -21,10 +21,11 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "ide-application-private.h"
-#include "ide-application-tests.h"
 #include "ide-debug.h"
 
+#include "application/ide-application-private.h"
+#include "application/ide-application-tests.h"
+
 typedef struct
 {
   IdeApplication               *self;
diff --git a/libide/ide-application-tests.h b/libide/application/ide-application-tests.h
similarity index 100%
rename from libide/ide-application-tests.h
rename to libide/application/ide-application-tests.h
diff --git a/libide/ide-application-tool.c b/libide/application/ide-application-tool.c
similarity index 100%
rename from libide/ide-application-tool.c
rename to libide/application/ide-application-tool.c
diff --git a/libide/ide-application-tool.h b/libide/application/ide-application-tool.h
similarity index 100%
rename from libide/ide-application-tool.h
rename to libide/application/ide-application-tool.h
diff --git a/libide/ide-application.c b/libide/application/ide-application.c
similarity index 97%
rename from libide/ide-application.c
rename to libide/application/ide-application.c
index cb5c233..89df18b 100644
--- a/libide/ide-application.c
+++ b/libide/application/ide-application.c
@@ -18,36 +18,34 @@
 
 #define G_LOG_DOMAIN "ide-application"
 
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
 
 #include <glib/gi18n.h>
 #include <girepository.h>
 #include <gtksourceview/gtksource.h>
+#include <ide-icons-resources.h>
 #include <locale.h>
 #include <stdlib.h>
 #ifdef __linux
 # include <sys/prctl.h>
 #endif
 
-#include "ide-application.h"
-#include "ide-application-actions.h"
-#include "ide-application-private.h"
-#include "ide-application-tests.h"
-#include "ide-application-tool.h"
-#include "ide-css-provider.h"
 #include "ide-debug.h"
 #include "ide-global.h"
-#include "ide-icons-resources.h"
 #include "ide-internal.h"
 #include "ide-macros.h"
-#include "ide-resources.h"
-#include "ide-theme-manager.h"
-#include "ide-workbench.h"
-#include "ide-worker.h"
 
-#include "modeline-parser.h"
+#include "application/ide-application.h"
+#include "application/ide-application-actions.h"
+#include "application/ide-application-private.h"
+#include "application/ide-application-tests.h"
+#include "application/ide-application-tool.h"
+#include "modelines/modeline-parser.h"
+#include "resources/ide-resources.h"
+#include "theming/ide-css-provider.h"
+#include "theming/ide-theme-manager.h"
+#include "workbench/ide-workbench.h"
+#include "workers/ide-worker.h"
 
 G_DEFINE_TYPE (IdeApplication, ide_application, GTK_TYPE_APPLICATION)
 
diff --git a/libide/ide-application.h b/libide/application/ide-application.h
similarity index 98%
rename from libide/ide-application.h
rename to libide/application/ide-application.h
index 1b6a7ad..d13e0b2 100644
--- a/libide/ide-application.h
+++ b/libide/application/ide-application.h
@@ -21,7 +21,7 @@
 
 #include <gtk/gtk.h>
 
-#include "ide-recent-projects.h"
+#include "projects/ide-recent-projects.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-buffer-change-monitor.c b/libide/buffers/ide-buffer-change-monitor.c
similarity index 100%
rename from libide/ide-buffer-change-monitor.c
rename to libide/buffers/ide-buffer-change-monitor.c
diff --git a/libide/ide-buffer-change-monitor.h b/libide/buffers/ide-buffer-change-monitor.h
similarity index 100%
rename from libide/ide-buffer-change-monitor.h
rename to libide/buffers/ide-buffer-change-monitor.h
diff --git a/libide/ide-buffer-manager.c b/libide/buffers/ide-buffer-manager.c
similarity index 99%
rename from libide/ide-buffer-manager.c
rename to libide/buffers/ide-buffer-manager.c
index aa302ac..917edfc 100644
--- a/libide/ide-buffer-manager.c
+++ b/libide/buffers/ide-buffer-manager.c
@@ -18,27 +18,27 @@
 
 #define G_LOG_DOMAIN "ide-buffer-manager"
 
+#include <egg-counter.h>
 #include <gtksourceview/gtksource.h>
 #include <glib/gi18n.h>
 
-#include "egg-counter.h"
-
-#include "ide-back-forward-item.h"
-#include "ide-back-forward-list.h"
-#include "ide-back-forward-list-private.h"
-#include "ide-buffer.h"
-#include "ide-buffer-manager.h"
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-doc-seq.h"
-#include "ide-file.h"
-#include "ide-file-settings.h"
 #include "ide-global.h"
 #include "ide-internal.h"
-#include "ide-progress.h"
-#include "ide-source-location.h"
-#include "ide-unsaved-files.h"
-#include "ide-vcs.h"
+
+#include "buffers/ide-buffer-manager.h"
+#include "buffers/ide-buffer.h"
+#include "buffers/ide-unsaved-files.h"
+#include "diagnostics/ide-source-location.h"
+#include "files/ide-file-settings.h"
+#include "files/ide-file.h"
+#include "history/ide-back-forward-item.h"
+#include "history/ide-back-forward-list-private.h"
+#include "history/ide-back-forward-list.h"
+#include "util/ide-doc-seq.h"
+#include "util/ide-progress.h"
+#include "vcs/ide-vcs.h"
 
 #define AUTO_SAVE_TIMEOUT_DEFAULT    60
 #define MAX_FILE_SIZE_BYTES_DEFAULT  (1024UL * 1024UL * 10UL)
diff --git a/libide/ide-buffer-manager.h b/libide/buffers/ide-buffer-manager.h
similarity index 99%
rename from libide/ide-buffer-manager.h
rename to libide/buffers/ide-buffer-manager.h
index 009c7c2..b9c4689 100644
--- a/libide/ide-buffer-manager.h
+++ b/libide/buffers/ide-buffer-manager.h
@@ -22,9 +22,10 @@
 #include <gtk/gtk.h>
 #include <gtksourceview/completion-providers/words/gtksourcecompletionwords.h>
 
-#include "ide-file.h"
 #include "ide-object.h"
 
+#include "files/ide-file.h"
+
 G_BEGIN_DECLS
 
 #define IDE_TYPE_BUFFER_MANAGER (ide_buffer_manager_get_type())
diff --git a/libide/ide-buffer.c b/libide/buffers/ide-buffer.c
similarity index 98%
rename from libide/ide-buffer.c
rename to libide/buffers/ide-buffer.c
index d7186f7..7d57aaa 100644
--- a/libide/ide-buffer.c
+++ b/libide/buffers/ide-buffer.c
@@ -18,34 +18,34 @@
 
 #define G_LOG_DOMAIN "ide-buffer"
 
+#include <egg-counter.h>
+#include <egg-signal-group.h>
 #include <glib/gi18n.h>
 
-#include "egg-counter.h"
-#include "egg-signal-group.h"
-
-#include "ide-battery-monitor.h"
-#include "ide-buffer.h"
-#include "ide-buffer-change-monitor.h"
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-diagnostic.h"
-#include "ide-diagnostician.h"
-#include "ide-diagnostics.h"
-#include "ide-extension-adapter.h"
-#include "ide-file.h"
-#include "ide-file-settings.h"
-#include "ide-gtk.h"
-#include "ide-highlighter.h"
-#include "ide-highlight-engine.h"
 #include "ide-internal.h"
-#include "ide-source-iter.h"
-#include "ide-source-location.h"
-#include "ide-source-range.h"
-#include "ide-source-style-scheme.h"
-#include "ide-symbol.h"
-#include "ide-symbol-resolver.h"
-#include "ide-unsaved-files.h"
-#include "ide-vcs.h"
+
+#include "buffers/ide-buffer-change-monitor.h"
+#include "buffers/ide-buffer.h"
+#include "buffers/ide-unsaved-files.h"
+#include "diagnostics/ide-diagnostic.h"
+#include "diagnostics/ide-diagnostician.h"
+#include "diagnostics/ide-diagnostics.h"
+#include "diagnostics/ide-source-location.h"
+#include "diagnostics/ide-source-range.h"
+#include "files/ide-file-settings.h"
+#include "files/ide-file.h"
+#include "highlighting/ide-highlight-engine.h"
+#include "highlighting/ide-highlighter.h"
+#include "plugins/ide-extension-adapter.h"
+#include "sourceview/ide-source-iter.h"
+#include "sourceview/ide-source-style-scheme.h"
+#include "symbols/ide-symbol-resolver.h"
+#include "symbols/ide-symbol.h"
+#include "util/ide-battery-monitor.h"
+#include "util/ide-gtk.h"
+#include "vcs/ide-vcs.h"
 
 #define DEFAULT_DIAGNOSE_TIMEOUT_MSEC          333
 #define DEFAULT_DIAGNOSE_CONSERVE_TIMEOUT_MSEC 5000
diff --git a/libide/ide-buffer.h b/libide/buffers/ide-buffer.h
similarity index 100%
rename from libide/ide-buffer.h
rename to libide/buffers/ide-buffer.h
diff --git a/libide/ide-unsaved-file.c b/libide/buffers/ide-unsaved-file.c
similarity index 99%
rename from libide/ide-unsaved-file.c
rename to libide/buffers/ide-unsaved-file.c
index 6fe054c..28fed1e 100644
--- a/libide/ide-unsaved-file.c
+++ b/libide/buffers/ide-unsaved-file.c
@@ -19,7 +19,8 @@
 #define G_LOG_DOMAIN "ide-unsaved-file"
 
 #include "ide-debug.h"
-#include "ide-unsaved-file.h"
+
+#include "buffers/ide-unsaved-file.h"
 
 G_DEFINE_BOXED_TYPE (IdeUnsavedFile, ide_unsaved_file,
                      ide_unsaved_file_ref, ide_unsaved_file_unref)
diff --git a/libide/ide-unsaved-file.h b/libide/buffers/ide-unsaved-file.h
similarity index 100%
rename from libide/ide-unsaved-file.h
rename to libide/buffers/ide-unsaved-file.h
diff --git a/libide/ide-unsaved-files.c b/libide/buffers/ide-unsaved-files.c
similarity index 99%
rename from libide/ide-unsaved-files.c
rename to libide/buffers/ide-unsaved-files.c
index b1b5ecd..941d9f1 100644
--- a/libide/ide-unsaved-files.c
+++ b/libide/buffers/ide-unsaved-files.c
@@ -26,9 +26,10 @@
 #include "ide-debug.h"
 #include "ide-global.h"
 #include "ide-internal.h"
-#include "ide-project.h"
-#include "ide-unsaved-file.h"
-#include "ide-unsaved-files.h"
+
+#include "buffers/ide-unsaved-file.h"
+#include "buffers/ide-unsaved-files.h"
+#include "projects/ide-project.h"
 
 typedef struct
 {
diff --git a/libide/ide-unsaved-files.h b/libide/buffers/ide-unsaved-files.h
similarity index 100%
rename from libide/ide-unsaved-files.h
rename to libide/buffers/ide-unsaved-files.h
diff --git a/libide/ide-build-result-addin.c b/libide/buildsystem/ide-build-result-addin.c
similarity index 100%
rename from libide/ide-build-result-addin.c
rename to libide/buildsystem/ide-build-result-addin.c
diff --git a/libide/ide-build-result-addin.h b/libide/buildsystem/ide-build-result-addin.h
similarity index 100%
rename from libide/ide-build-result-addin.h
rename to libide/buildsystem/ide-build-result-addin.h
diff --git a/libide/ide-build-result.c b/libide/buildsystem/ide-build-result.c
similarity index 99%
rename from libide/ide-build-result.c
rename to libide/buildsystem/ide-build-result.c
index 676c0f8..b31fc1f 100644
--- a/libide/ide-build-result.c
+++ b/libide/buildsystem/ide-build-result.c
@@ -16,16 +16,19 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-build-result"
+
 #include <gio/gunixoutputstream.h>
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
 #include <libpeas/peas.h>
 
-#include "ide-build-result.h"
-#include "ide-build-result-addin.h"
 #include "ide-enums.h"
-#include "ide-file.h"
-#include "ide-source-location.h"
+
+#include "buildsystem/ide-build-result.h"
+#include "buildsystem/ide-build-result-addin.h"
+#include "diagnostics/ide-source-location.h"
+#include "files/ide-file.h"
 
 #define POINTER_MARK(p)   GSIZE_TO_POINTER(GPOINTER_TO_SIZE(p)|1)
 #define POINTER_UNMARK(p) GSIZE_TO_POINTER(GPOINTER_TO_SIZE(p)&~(gsize)1)
diff --git a/libide/ide-build-result.h b/libide/buildsystem/ide-build-result.h
similarity index 98%
rename from libide/ide-build-result.h
rename to libide/buildsystem/ide-build-result.h
index dac13be..b5b1189 100644
--- a/libide/ide-build-result.h
+++ b/libide/buildsystem/ide-build-result.h
@@ -21,9 +21,10 @@
 
 #include <gio/gio.h>
 
-#include "ide-diagnostic.h"
 #include "ide-object.h"
 
+#include "diagnostics/ide-diagnostic.h"
+
 G_BEGIN_DECLS
 
 #define IDE_TYPE_BUILD_RESULT (ide_build_result_get_type())
diff --git a/libide/ide-build-system.c b/libide/buildsystem/ide-build-system.c
similarity index 96%
rename from libide/ide-build-system.c
rename to libide/buildsystem/ide-build-system.c
index e2cf3b3..a2697cb 100644
--- a/libide/ide-build-system.c
+++ b/libide/buildsystem/ide-build-system.c
@@ -16,17 +16,20 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-build-system"
+
 #include <glib/gi18n.h>
 
-#include "ide-build-system.h"
-#include "ide-configuration.h"
 #include "ide-context.h"
-#include "ide-device.h"
-#include "ide-device-manager.h"
-#include "ide-file.h"
 #include "ide-object.h"
-#include "ide-runtime.h"
-#include "ide-runtime-manager.h"
+
+#include "buildsystem/ide-build-system.h"
+#include "buildsystem/ide-configuration.h"
+#include "devices/ide-device.h"
+#include "devices/ide-device-manager.h"
+#include "files/ide-file.h"
+#include "runtimes/ide-runtime.h"
+#include "runtimes/ide-runtime-manager.h"
 
 typedef struct
 {
diff --git a/libide/ide-build-system.h b/libide/buildsystem/ide-build-system.h
similarity index 100%
rename from libide/ide-build-system.h
rename to libide/buildsystem/ide-build-system.h
diff --git a/libide/ide-builder.c b/libide/buildsystem/ide-builder.c
similarity index 100%
rename from libide/ide-builder.c
rename to libide/buildsystem/ide-builder.c
diff --git a/libide/ide-builder.h b/libide/buildsystem/ide-builder.h
similarity index 100%
rename from libide/ide-builder.h
rename to libide/buildsystem/ide-builder.h
diff --git a/libide/ide-configuration-manager.c b/libide/buildsystem/ide-configuration-manager.c
similarity index 99%
rename from libide/ide-configuration-manager.c
rename to libide/buildsystem/ide-configuration-manager.c
index f235d18..a94957a 100644
--- a/libide/ide-configuration-manager.c
+++ b/libide/buildsystem/ide-configuration-manager.c
@@ -20,13 +20,14 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-configuration.h"
-#include "ide-configuration-manager.h"
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-environment.h"
 #include "ide-macros.h"
-#include "ide-vcs.h"
+
+#include "buildsystem/ide-configuration-manager.h"
+#include "buildsystem/ide-configuration.h"
+#include "buildsystem/ide-environment.h"
+#include "vcs/ide-vcs.h"
 
 #define DOT_BUILD_CONFIG ".buildconfig"
 #define WRITEBACK_TIMEOUT_SECS 2
diff --git a/libide/ide-configuration-manager.h b/libide/buildsystem/ide-configuration-manager.h
similarity index 100%
rename from libide/ide-configuration-manager.h
rename to libide/buildsystem/ide-configuration-manager.h
diff --git a/libide/ide-configuration.c b/libide/buildsystem/ide-configuration.c
similarity index 99%
rename from libide/ide-configuration.c
rename to libide/buildsystem/ide-configuration.c
index e001916..8ee34cf 100644
--- a/libide/ide-configuration.c
+++ b/libide/buildsystem/ide-configuration.c
@@ -20,13 +20,14 @@
 
 #include <string.h>
 
-#include "ide-configuration.h"
 #include "ide-context.h"
-#include "ide-device.h"
-#include "ide-device-manager.h"
-#include "ide-environment.h"
-#include "ide-runtime.h"
-#include "ide-runtime-manager.h"
+
+#include "buildsystem/ide-configuration.h"
+#include "buildsystem/ide-environment.h"
+#include "devices/ide-device-manager.h"
+#include "devices/ide-device.h"
+#include "runtimes/ide-runtime-manager.h"
+#include "runtimes/ide-runtime.h"
 
 struct _IdeConfiguration
 {
diff --git a/libide/ide-configuration.h b/libide/buildsystem/ide-configuration.h
similarity index 100%
rename from libide/ide-configuration.h
rename to libide/buildsystem/ide-configuration.h
diff --git a/libide/ide-environment-variable.c b/libide/buildsystem/ide-environment-variable.c
similarity index 100%
rename from libide/ide-environment-variable.c
rename to libide/buildsystem/ide-environment-variable.c
diff --git a/libide/ide-environment-variable.h b/libide/buildsystem/ide-environment-variable.h
similarity index 100%
rename from libide/ide-environment-variable.h
rename to libide/buildsystem/ide-environment-variable.h
diff --git a/libide/ide-environment.c b/libide/buildsystem/ide-environment.c
similarity index 100%
rename from libide/ide-environment.c
rename to libide/buildsystem/ide-environment.c
diff --git a/libide/ide-environment.h b/libide/buildsystem/ide-environment.h
similarity index 100%
rename from libide/ide-environment.h
rename to libide/buildsystem/ide-environment.h
diff --git a/libide/ide-device-manager.c b/libide/devices/ide-device-manager.c
similarity index 100%
rename from libide/ide-device-manager.c
rename to libide/devices/ide-device-manager.c
diff --git a/libide/ide-device-manager.h b/libide/devices/ide-device-manager.h
similarity index 100%
rename from libide/ide-device-manager.h
rename to libide/devices/ide-device-manager.h
diff --git a/libide/ide-device-provider.c b/libide/devices/ide-device-provider.c
similarity index 100%
rename from libide/ide-device-provider.c
rename to libide/devices/ide-device-provider.c
diff --git a/libide/ide-device-provider.h b/libide/devices/ide-device-provider.h
similarity index 100%
rename from libide/ide-device-provider.h
rename to libide/devices/ide-device-provider.h
diff --git a/libide/ide-device.c b/libide/devices/ide-device.c
similarity index 98%
rename from libide/ide-device.c
rename to libide/devices/ide-device.c
index 13d67be..e3e8220 100644
--- a/libide/ide-device.c
+++ b/libide/devices/ide-device.c
@@ -16,10 +16,12 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-device"
+
 #include <glib/gi18n.h>
 
-#include "ide-configuration.h"
-#include "ide-device.h"
+#include "buildsystem/ide-configuration.h"
+#include "devices/ide-device.h"
 
 typedef struct
 {
diff --git a/libide/ide-device.h b/libide/devices/ide-device.h
similarity index 100%
rename from libide/ide-device.h
rename to libide/devices/ide-device.h
diff --git a/libide/ide-diagnostic-provider.c b/libide/diagnostics/ide-diagnostic-provider.c
similarity index 97%
rename from libide/ide-diagnostic-provider.c
rename to libide/diagnostics/ide-diagnostic-provider.c
index 6434d60..af0a45f 100644
--- a/libide/ide-diagnostic-provider.c
+++ b/libide/diagnostics/ide-diagnostic-provider.c
@@ -19,8 +19,9 @@
 #define G_LOG_DOMAIN "ide-diagnostic-provider"
 
 #include "ide-context.h"
-#include "ide-diagnostic-provider.h"
-#include "ide-file.h"
+
+#include "diagnostics/ide-diagnostic-provider.h"
+#include "files/ide-file.h"
 
 G_DEFINE_INTERFACE (IdeDiagnosticProvider, ide_diagnostic_provider, IDE_TYPE_OBJECT)
 
diff --git a/libide/ide-diagnostic-provider.h b/libide/diagnostics/ide-diagnostic-provider.h
similarity index 100%
rename from libide/ide-diagnostic-provider.h
rename to libide/diagnostics/ide-diagnostic-provider.h
diff --git a/libide/ide-diagnostic.c b/libide/diagnostics/ide-diagnostic.c
similarity index 100%
rename from libide/ide-diagnostic.c
rename to libide/diagnostics/ide-diagnostic.c
diff --git a/libide/ide-diagnostic.h b/libide/diagnostics/ide-diagnostic.h
similarity index 100%
rename from libide/ide-diagnostic.h
rename to libide/diagnostics/ide-diagnostic.h
diff --git a/libide/ide-diagnostician.c b/libide/diagnostics/ide-diagnostician.c
similarity index 97%
rename from libide/ide-diagnostician.c
rename to libide/diagnostics/ide-diagnostician.c
index e5a5e84..171ff71 100644
--- a/libide/ide-diagnostician.c
+++ b/libide/diagnostics/ide-diagnostician.c
@@ -20,13 +20,14 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-diagnostic-provider.h"
-#include "ide-diagnostician.h"
-#include "ide-diagnostics.h"
-#include "ide-extension-set-adapter.h"
-#include "ide-file.h"
 #include "ide-internal.h"
 
+#include "diagnostics/ide-diagnostic-provider.h"
+#include "diagnostics/ide-diagnostician.h"
+#include "diagnostics/ide-diagnostics.h"
+#include "plugins/ide-extension-set-adapter.h"
+#include "files/ide-file.h"
+
 struct _IdeDiagnostician
 {
   IdeObject               parent_instance;
diff --git a/libide/ide-diagnostician.h b/libide/diagnostics/ide-diagnostician.h
similarity index 100%
rename from libide/ide-diagnostician.h
rename to libide/diagnostics/ide-diagnostician.h
diff --git a/libide/ide-diagnostics.c b/libide/diagnostics/ide-diagnostics.c
similarity index 100%
rename from libide/ide-diagnostics.c
rename to libide/diagnostics/ide-diagnostics.c
diff --git a/libide/ide-diagnostics.h b/libide/diagnostics/ide-diagnostics.h
similarity index 100%
rename from libide/ide-diagnostics.h
rename to libide/diagnostics/ide-diagnostics.h
diff --git a/libide/ide-fixit.c b/libide/diagnostics/ide-fixit.c
similarity index 100%
rename from libide/ide-fixit.c
rename to libide/diagnostics/ide-fixit.c
diff --git a/libide/ide-fixit.h b/libide/diagnostics/ide-fixit.h
similarity index 100%
rename from libide/ide-fixit.h
rename to libide/diagnostics/ide-fixit.h
diff --git a/libide/ide-source-location.c b/libide/diagnostics/ide-source-location.c
similarity index 97%
rename from libide/ide-source-location.c
rename to libide/diagnostics/ide-source-location.c
index 30cc7ff..4a14699 100644
--- a/libide/ide-source-location.c
+++ b/libide/diagnostics/ide-source-location.c
@@ -18,10 +18,10 @@
 
 #define G_LOG_DOMAIN "ide-source-location"
 
-#include "egg-counter.h"
+#include <egg-counter.h>
 
-#include "ide-file.h"
-#include "ide-source-location.h"
+#include "files/ide-file.h"
+#include "diagnostics/ide-source-location.h"
 
 G_DEFINE_BOXED_TYPE (IdeSourceLocation, ide_source_location,
                      ide_source_location_ref, ide_source_location_unref)
diff --git a/libide/ide-source-location.h b/libide/diagnostics/ide-source-location.h
similarity index 98%
rename from libide/ide-source-location.h
rename to libide/diagnostics/ide-source-location.h
index 34f0238..3fae79d 100644
--- a/libide/ide-source-location.h
+++ b/libide/diagnostics/ide-source-location.h
@@ -20,7 +20,8 @@
 #define IDE_SOURCE_LOCATION_H
 
 #include "ide-types.h"
-#include "ide-uri.h"
+
+#include "util/ide-uri.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-source-range.c b/libide/diagnostics/ide-source-range.c
similarity index 95%
rename from libide/ide-source-range.c
rename to libide/diagnostics/ide-source-range.c
index bc955aa..9550481 100644
--- a/libide/ide-source-range.c
+++ b/libide/diagnostics/ide-source-range.c
@@ -18,11 +18,11 @@
 
 #define G_LOG_DOMAIN "ide-source-range"
 
-#include "egg-counter.h"
+#include <egg-counter.h>
 
-#include "ide-file.h"
-#include "ide-source-location.h"
-#include "ide-source-range.h"
+#include "diagnostics/ide-source-location.h"
+#include "diagnostics/ide-source-range.h"
+#include "files/ide-file.h"
 
 G_DEFINE_BOXED_TYPE (IdeSourceRange, ide_source_range, ide_source_range_ref, ide_source_range_unref)
 
diff --git a/libide/ide-source-range.h b/libide/diagnostics/ide-source-range.h
similarity index 100%
rename from libide/ide-source-range.h
rename to libide/diagnostics/ide-source-range.h
diff --git a/libide/directory/ide-directory-build-system.c b/libide/directory/ide-directory-build-system.c
index 1445c23..2a581b1 100644
--- a/libide/directory/ide-directory-build-system.c
+++ b/libide/directory/ide-directory-build-system.c
@@ -16,15 +16,18 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "directory-build-system"
+
 #include <glib/gi18n.h>
 
-#include "ide-configuration.h"
-#include "ide-configuration-manager.h"
 #include "ide-context.h"
-#include "ide-directory-build-system.h"
-#include "ide-project.h"
-#include "ide-project-file.h"
-#include "ide-project-item.h"
+
+#include "buildsystem/ide-configuration-manager.h"
+#include "buildsystem/ide-configuration.h"
+#include "directory/ide-directory-build-system.h"
+#include "projects/ide-project-file.h"
+#include "projects/ide-project-item.h"
+#include "projects/ide-project.h"
 
 struct _IdeDirectoryBuildSystem
 {
diff --git a/libide/directory/ide-directory-build-system.h b/libide/directory/ide-directory-build-system.h
index db18864..de7044f 100644
--- a/libide/directory/ide-directory-build-system.h
+++ b/libide/directory/ide-directory-build-system.h
@@ -19,7 +19,7 @@
 #ifndef IDE_DIRECTORY_BUILD_SYSTEM_H
 #define IDE_DIRECTORY_BUILD_SYSTEM_H
 
-#include "ide-build-system.h"
+#include "buildsystem/ide-build-system.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/directory/ide-directory-genesis-addin.c b/libide/directory/ide-directory-genesis-addin.c
index 7832a09..c9ec9dc 100644
--- a/libide/directory/ide-directory-genesis-addin.c
+++ b/libide/directory/ide-directory-genesis-addin.c
@@ -16,13 +16,15 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-directory-genesis-addin"
+
 #include <glib/gi18n.h>
 #include <libpeas/peas.h>
 
-#include "ide-directory-genesis-addin.h"
-#include "ide-genesis-addin.h"
-#include "ide-gtk.h"
-#include "ide-workbench.h"
+#include "directory/ide-directory-genesis-addin.h"
+#include "genesis/ide-genesis-addin.h"
+#include "util/ide-gtk.h"
+#include "workbench/ide-workbench.h"
 
 struct _IdeDirectoryGenesisAddin
 {
diff --git a/libide/directory/ide-directory-plugin.c b/libide/directory/ide-directory-plugin.c
index a8ac19f..fa7c2c6 100644
--- a/libide/directory/ide-directory-plugin.c
+++ b/libide/directory/ide-directory-plugin.c
@@ -16,13 +16,15 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-directory-plugin"
+
 #include <libpeas/peas.h>
 
-#include "ide-build-system.h"
-#include "ide-directory-build-system.h"
-#include "ide-directory-genesis-addin.h"
-#include "ide-directory-vcs.h"
-#include "ide-genesis-addin.h"
+#include "buildsystem/ide-build-system.h"
+#include "directory/ide-directory-build-system.h"
+#include "directory/ide-directory-genesis-addin.h"
+#include "directory/ide-directory-vcs.h"
+#include "genesis/ide-genesis-addin.h"
 
 void
 ide_directory_register_types (PeasObjectModule *module)
diff --git a/libide/directory/ide-directory-vcs.c b/libide/directory/ide-directory-vcs.c
index c38a074..3ef1219 100644
--- a/libide/directory/ide-directory-vcs.c
+++ b/libide/directory/ide-directory-vcs.c
@@ -16,11 +16,14 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-directory-vcs"
+
 #include <glib/gi18n.h>
 
 #include "ide-context.h"
-#include "ide-directory-vcs.h"
-#include "ide-project.h"
+
+#include "directory/ide-directory-vcs.h"
+#include "projects/ide-project.h"
 
 struct _IdeDirectoryVcs
 {
diff --git a/libide/directory/ide-directory-vcs.h b/libide/directory/ide-directory-vcs.h
index d3d49c5..fdf6711 100644
--- a/libide/directory/ide-directory-vcs.h
+++ b/libide/directory/ide-directory-vcs.h
@@ -19,7 +19,7 @@
 #ifndef IDE_DIRECTORY_VCS_H
 #define IDE_DIRECTORY_VCS_H
 
-#include "ide-vcs.h"
+#include "vcs/ide-vcs.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/editor/ide-editor-frame-private.h b/libide/editor/ide-editor-frame-private.h
index 8b3f366..165e296 100644
--- a/libide/editor/ide-editor-frame-private.h
+++ b/libide/editor/ide-editor-frame-private.h
@@ -19,12 +19,13 @@
 #ifndef IDE_EDITOR_FRAME_PRIVATE_H
 #define IDE_EDITOR_FRAME_PRIVATE_H
 
+#include <gd-tagged-entry.h>
 #include <gtk/gtk.h>
-#include <ide.h>
+#include <nautilus-floating-bar.h>
 
-#include "ide-editor-map-bin.h"
-#include "gd-tagged-entry.h"
-#include "nautilus-floating-bar.h"
+#include "editor/ide-editor-map-bin.h"
+#include "sourceview/ide-source-map.h"
+#include "sourceview/ide-source-view.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/editor/ide-editor-frame.c b/libide/editor/ide-editor-frame.c
index 77e387f..51bf307 100644
--- a/libide/editor/ide-editor-frame.c
+++ b/libide/editor/ide-editor-frame.c
@@ -20,15 +20,20 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-dnd.h"
-#include "ide-editor-frame-actions.h"
-#include "ide-editor-frame-private.h"
-#include "ide-editor-frame.h"
-#include "ide-editor-map-bin.h"
-#include "ide-gtk.h"
-#include "ide-layout-stack.h"
-#include "ide-source-location.h"
-#include "ide-workbench.h"
+#include "ide-debug.h"
+
+#include "application/ide-application.h"
+#include "diagnostics/ide-source-location.h"
+#include "editor/ide-editor-frame-actions.h"
+#include "editor/ide-editor-frame-private.h"
+#include "editor/ide-editor-frame.h"
+#include "editor/ide-editor-map-bin.h"
+#include "editor/ide-editor-perspective.h"
+#include "history/ide-back-forward-list.h"
+#include "util/ide-dnd.h"
+#include "util/ide-gtk.h"
+#include "workbench/ide-layout-stack.h"
+#include "workbench/ide-workbench.h"
 
 #define MINIMAP_HIDE_DURATION 1000
 #define MINIMAP_SHOW_DURATION 250
diff --git a/libide/editor/ide-editor-frame.h b/libide/editor/ide-editor-frame.h
index 6fd862c..9b0bc7e 100644
--- a/libide/editor/ide-editor-frame.h
+++ b/libide/editor/ide-editor-frame.h
@@ -21,8 +21,8 @@
 
 #include <gtk/gtk.h>
 
-#include "ide-buffer.h"
-#include "ide-source-view.h"
+#include "buffers/ide-buffer.h"
+#include "sourceview/ide-source-view.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/editor/ide-editor-map-bin.c b/libide/editor/ide-editor-map-bin.c
index eaabeb8..8a3592c 100644
--- a/libide/editor/ide-editor-map-bin.c
+++ b/libide/editor/ide-editor-map-bin.c
@@ -16,11 +16,15 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-editor-map-bin"
+
 #include <glib/gi18n.h>
-#include <ide.h>
 #include <pango/pangofc-fontmap.h>
 
-#include "ide-editor-map-bin.h"
+#include "ide-macros.h"
+
+#include "editor/ide-editor-map-bin.h"
+#include "sourceview/ide-source-map.h"
 
 struct _IdeEditorMapBin
 {
@@ -103,7 +107,7 @@ ide_editor_map_bin_size_allocate (GtkWidget     *widget,
 
 static void
 ide_editor_map_bin_add (GtkContainer *container,
-                       GtkWidget    *child)
+                        GtkWidget    *child)
 {
   IdeEditorMapBin *self = (IdeEditorMapBin *)container;
 
@@ -130,7 +134,7 @@ ide_editor_map_bin_add (GtkContainer *container,
 
 static void
 ide_editor_map_bin_remove (GtkContainer *container,
-                          GtkWidget    *child)
+                           GtkWidget    *child)
 {
   IdeEditorMapBin *self = (IdeEditorMapBin *)container;
 
@@ -155,9 +159,9 @@ ide_editor_map_bin_finalize (GObject *object)
 
 static void
 ide_editor_map_bin_get_property (GObject    *object,
-                                guint       prop_id,
-                                GValue     *value,
-                                GParamSpec *pspec)
+                                 guint       prop_id,
+                                 GValue     *value,
+                                 GParamSpec *pspec)
 {
   IdeEditorMapBin *self = IDE_EDITOR_MAP_BIN (object);
 
@@ -174,9 +178,9 @@ ide_editor_map_bin_get_property (GObject    *object,
 
 static void
 ide_editor_map_bin_set_property (GObject      *object,
-                                guint         prop_id,
-                                const GValue *value,
-                                GParamSpec   *pspec)
+                                 guint         prop_id,
+                                 const GValue *value,
+                                 GParamSpec   *pspec)
 {
   IdeEditorMapBin *self = IDE_EDITOR_MAP_BIN (object);
 
diff --git a/libide/editor/ide-editor-perspective.c b/libide/editor/ide-editor-perspective.c
index 849fc3e..33f555a 100644
--- a/libide/editor/ide-editor-perspective.c
+++ b/libide/editor/ide-editor-perspective.c
@@ -18,19 +18,19 @@
 
 #define G_LOG_DOMAIN "ide-editor-perspective"
 
+#include <egg-signal-group.h>
 #include <glib/gi18n.h>
 
-#include "egg-signal-group.h"
-
-#include "ide-buffer.h"
-#include "ide-buffer-manager.h"
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-editor-perspective.h"
-#include "ide-editor-view.h"
-#include "ide-gtk.h"
-#include "ide-layout-grid.h"
-#include "ide-workbench-header-bar.h"
+
+#include "buffers/ide-buffer-manager.h"
+#include "buffers/ide-buffer.h"
+#include "editor/ide-editor-perspective.h"
+#include "editor/ide-editor-view.h"
+#include "util/ide-gtk.h"
+#include "workbench/ide-layout-grid.h"
+#include "workbench/ide-workbench-header-bar.h"
 
 struct _IdeEditorPerspective
 {
diff --git a/libide/editor/ide-editor-perspective.h b/libide/editor/ide-editor-perspective.h
index d36245d..751327f 100644
--- a/libide/editor/ide-editor-perspective.h
+++ b/libide/editor/ide-editor-perspective.h
@@ -21,9 +21,9 @@
 
 #include <gtk/gtk.h>
 
-#include "ide-layout.h"
-#include "ide-perspective.h"
-#include "ide-source-location.h"
+#include "diagnostics/ide-source-location.h"
+#include "workbench/ide-layout.h"
+#include "workbench/ide-perspective.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/editor/ide-editor-plugin.c b/libide/editor/ide-editor-plugin.c
index ec58c6a..d678f6e 100644
--- a/libide/editor/ide-editor-plugin.c
+++ b/libide/editor/ide-editor-plugin.c
@@ -16,10 +16,12 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-editor-plugin"
+
 #include <libpeas/peas.h>
 
-#include "ide-editor-workbench-addin.h"
-#include "ide-workbench-addin.h"
+#include "editor/ide-editor-workbench-addin.h"
+#include "workbench/ide-workbench-addin.h"
 
 void
 ide_editor_register_types (PeasObjectModule *module)
diff --git a/libide/editor/ide-editor-print-operation.c b/libide/editor/ide-editor-print-operation.c
index 2adce17..3743107 100644
--- a/libide/editor/ide-editor-print-operation.c
+++ b/libide/editor/ide-editor-print-operation.c
@@ -20,16 +20,15 @@
 
 #include <glib/gi18n.h>
 #include <gtksourceview/gtksource.h>
-#include <ide.h>
 
 #include "ide-editor-print-operation.h"
 #include "ide-editor-view.h"
 
 struct _IdeEditorPrintOperation
 {
-  GtkPrintOperation parent_instance;
+  GtkPrintOperation         parent_instance;
 
-  IdeSourceView *view;
+  IdeSourceView            *view;
   GtkSourcePrintCompositor *compositor;
 };
 
diff --git a/libide/editor/ide-editor-tweak-widget.c b/libide/editor/ide-editor-tweak-widget.c
index 63ece92..2dc2ef3 100644
--- a/libide/editor/ide-editor-tweak-widget.c
+++ b/libide/editor/ide-editor-tweak-widget.c
@@ -21,8 +21,8 @@
 #include <glib/gi18n.h>
 #include <gtksourceview/gtksource.h>
 
-#include "ide-editor-tweak-widget.h"
-#include "ide-gtk.h"
+#include "editor/ide-editor-tweak-widget.h"
+#include "util/ide-gtk.h"
 
 struct _IdeEditorTweakWidget
 {
diff --git a/libide/editor/ide-editor-tweak-widget.h b/libide/editor/ide-editor-tweak-widget.h
index 4cbc5b1..b90c3e1 100644
--- a/libide/editor/ide-editor-tweak-widget.h
+++ b/libide/editor/ide-editor-tweak-widget.h
@@ -20,7 +20,6 @@
 #define IDE_EDITOR_TWEAK_WIDGET_H
 
 #include <gtk/gtk.h>
-#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/libide/editor/ide-editor-view-actions.c b/libide/editor/ide-editor-view-actions.c
index becfac8..6fce05d 100644
--- a/libide/editor/ide-editor-view-actions.c
+++ b/libide/editor/ide-editor-view-actions.c
@@ -21,11 +21,19 @@
 #include <glib/gi18n.h>
 #include <string.h>
 
-#include "ide-editor-frame-private.h"
-#include "ide-editor-print-operation.h"
-#include "ide-editor-view-actions.h"
-#include "ide-editor-view-private.h"
-#include "ide-gtk.h"
+#include "buffers/ide-buffer.h"
+#include "buffers/ide-buffer-manager.h"
+#include "files/ide-file.h"
+#include "files/ide-file-settings.h"
+#include "editor/ide-editor-frame-private.h"
+#include "editor/ide-editor-print-operation.h"
+#include "editor/ide-editor-view-actions.h"
+#include "editor/ide-editor-view-private.h"
+#include "editor/ide-editor-view.h"
+#include "projects/ide-project.h"
+#include "util/ide-gtk.h"
+#include "util/ide-progress.h"
+#include "vcs/ide-vcs.h"
 
 static void
 ide_editor_view_actions_source_view_notify (IdeSourceView *source_view,
diff --git a/libide/editor/ide-editor-view-private.h b/libide/editor/ide-editor-view-private.h
index 4a13687..63f6bfc 100644
--- a/libide/editor/ide-editor-view-private.h
+++ b/libide/editor/ide-editor-view-private.h
@@ -19,16 +19,15 @@
 #ifndef IDE_EDITOR_VIEW_PRIVATE_H
 #define IDE_EDITOR_VIEW_PRIVATE_H
 
+#include <egg-simple-label.h>
+#include <egg-simple-popover.h>
 #include <libpeas/peas.h>
 #include <gtk/gtk.h>
 
-#include "egg-simple-label.h"
-#include "egg-simple-popover.h"
-
-#include "ide-buffer.h"
-#include "ide-editor-frame.h"
-#include "ide-editor-tweak-widget.h"
-#include "ide-layout-view.h"
+#include "buffers/ide-buffer.h"
+#include "editor/ide-editor-frame.h"
+#include "editor/ide-editor-tweak-widget.h"
+#include "workbench/ide-layout-view.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/editor/ide-editor-view.c b/libide/editor/ide-editor-view.c
index ebb2595..d7e4b02 100644
--- a/libide/editor/ide-editor-view.c
+++ b/libide/editor/ide-editor-view.c
@@ -18,19 +18,21 @@
 
 #define G_LOG_DOMAIN "ide-editor-view"
 
+#include <egg-simple-popover.h>
 #include <glib/gi18n.h>
 #include <glib/gprintf.h>
 
-#include "egg-simple-popover.h"
-
-#include "ide-editor-frame-private.h"
-#include "ide-editor-view-actions.h"
-#include "ide-editor-view-addin.h"
-#include "ide-editor-view.h"
-#include "ide-editor-view-addin-private.h"
-#include "ide-editor-view-private.h"
+#include "ide-debug.h"
 #include "ide-macros.h"
 
+#include "editor/ide-editor-frame-private.h"
+#include "editor/ide-editor-view-actions.h"
+#include "editor/ide-editor-view-addin.h"
+#include "editor/ide-editor-view.h"
+#include "editor/ide-editor-view-addin-private.h"
+#include "editor/ide-editor-view-private.h"
+#include "workbench/ide-workbench.h"
+
 G_DEFINE_TYPE (IdeEditorView, ide_editor_view, IDE_TYPE_LAYOUT_VIEW)
 
 enum {
diff --git a/libide/editor/ide-editor-view.h b/libide/editor/ide-editor-view.h
index f256559..5e69786 100644
--- a/libide/editor/ide-editor-view.h
+++ b/libide/editor/ide-editor-view.h
@@ -19,9 +19,9 @@
 #ifndef IDE_EDITOR_VIEW_H
 #define IDE_EDITOR_VIEW_H
 
-#include "ide-buffer.h"
-#include "ide-source-view.h"
-#include "ide-layout-view.h"
+#include "buffers/ide-buffer.h"
+#include "sourceview/ide-source-view.h"
+#include "workbench/ide-layout-view.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/editor/ide-editor-workbench-addin.c b/libide/editor/ide-editor-workbench-addin.c
index fc1da1e..90a9c0a 100644
--- a/libide/editor/ide-editor-workbench-addin.c
+++ b/libide/editor/ide-editor-workbench-addin.c
@@ -21,14 +21,15 @@
 #include <gtksourceview/gtksource.h>
 #include <string.h>
 
-#include "ide-gtk.h"
-#include "ide-buffer.h"
-#include "ide-buffer-manager.h"
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-editor-perspective.h"
-#include "ide-editor-workbench-addin.h"
-#include "ide-workbench-header-bar.h"
+
+#include "buffers/ide-buffer-manager.h"
+#include "buffers/ide-buffer.h"
+#include "editor/ide-editor-perspective.h"
+#include "editor/ide-editor-workbench-addin.h"
+#include "util/ide-gtk.h"
+#include "workbench/ide-workbench-header-bar.h"
 
 struct _IdeEditorWorkbenchAddin
 {
diff --git a/libide/editor/ide-editor-workbench-addin.h b/libide/editor/ide-editor-workbench-addin.h
index 1fba5e9..8c76757 100644
--- a/libide/editor/ide-editor-workbench-addin.h
+++ b/libide/editor/ide-editor-workbench-addin.h
@@ -19,7 +19,7 @@
 #ifndef IDE_EDITOR_WORKBENCH_ADDIN_H
 #define IDE_EDITOR_WORKBENCH_ADDIN_H
 
-#include "ide-workbench-addin.h"
+#include "workbench/ide-workbench-addin.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/editorconfig/ide-editorconfig-file-settings.c 
b/libide/editorconfig/ide-editorconfig-file-settings.c
index fc1f9c7..0e1cae2 100644
--- a/libide/editorconfig/ide-editorconfig-file-settings.c
+++ b/libide/editorconfig/ide-editorconfig-file-settings.c
@@ -21,9 +21,10 @@
 #include <editorconfig-glib.h>
 #include <glib/gi18n.h>
 
-#include "ide-editorconfig-file-settings.h"
 #include "ide-debug.h"
-#include "ide-file.h"
+
+#include "editorconfig/ide-editorconfig-file-settings.h"
+#include "files/ide-file.h"
 
 struct _IdeEditorconfigFileSettings
 {
diff --git a/libide/editorconfig/ide-editorconfig-file-settings.h 
b/libide/editorconfig/ide-editorconfig-file-settings.h
index 4f3405d..71fc34d 100644
--- a/libide/editorconfig/ide-editorconfig-file-settings.h
+++ b/libide/editorconfig/ide-editorconfig-file-settings.h
@@ -19,7 +19,7 @@
 #ifndef IDE_EDITORCONFIG_FILE_SETTINGS_H
 #define IDE_EDITORCONFIG_FILE_SETTINGS_H
 
-#include "ide-file-settings.h"
+#include "files/ide-file-settings.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-file-settings.c b/libide/files/ide-file-settings.c
similarity index 100%
rename from libide/ide-file-settings.c
rename to libide/files/ide-file-settings.c
diff --git a/libide/ide-file-settings.defs b/libide/files/ide-file-settings.defs
similarity index 100%
rename from libide/ide-file-settings.defs
rename to libide/files/ide-file-settings.defs
diff --git a/libide/ide-file-settings.h b/libide/files/ide-file-settings.h
similarity index 100%
rename from libide/ide-file-settings.h
rename to libide/files/ide-file-settings.h
diff --git a/libide/ide-file.c b/libide/files/ide-file.c
similarity index 99%
rename from libide/ide-file.c
rename to libide/files/ide-file.c
index 9c61bbd..9d1da8b 100644
--- a/libide/ide-file.c
+++ b/libide/files/ide-file.c
@@ -18,16 +18,16 @@
 
 #define G_LOG_DOMAIN "ide-file"
 
+#include <egg-counter.h>
 #include <glib/gi18n.h>
 #include <gtksourceview/gtksource.h>
 
-#include "egg-counter.h"
-
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-file.h"
-#include "ide-file-settings.h"
-#include "ide-vcs.h"
+
+#include "files/ide-file.h"
+#include "files/ide-file-settings.h"
+#include "vcs/ide-vcs.h"
 
 struct _IdeFile
 {
diff --git a/libide/ide-file.h b/libide/files/ide-file.h
similarity index 100%
rename from libide/ide-file.h
rename to libide/files/ide-file.h
diff --git a/libide/ide-indent-style.h b/libide/files/ide-indent-style.h
similarity index 100%
rename from libide/ide-indent-style.h
rename to libide/files/ide-indent-style.h
diff --git a/libide/genesis/ide-genesis-perspective.c b/libide/genesis/ide-genesis-perspective.c
index 5140d77..c18636f 100644
--- a/libide/genesis/ide-genesis-perspective.c
+++ b/libide/genesis/ide-genesis-perspective.c
@@ -16,14 +16,17 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-genesis-perspective"
+
 #include <glib/gi18n.h>
 #include <libpeas/peas.h>
 
-#include "ide-genesis-addin.h"
-#include "ide-genesis-perspective.h"
-#include "ide-gtk.h"
 #include "ide-macros.h"
-#include "ide-workbench.h"
+
+#include "genesis/ide-genesis-addin.h"
+#include "genesis/ide-genesis-perspective.h"
+#include "util/ide-gtk.h"
+#include "workbench/ide-workbench.h"
 
 struct _IdeGenesisPerspective
 {
diff --git a/libide/genesis/ide-genesis-perspective.h b/libide/genesis/ide-genesis-perspective.h
index 4c77392..69c69b0 100644
--- a/libide/genesis/ide-genesis-perspective.h
+++ b/libide/genesis/ide-genesis-perspective.h
@@ -19,7 +19,7 @@
 #ifndef IDE_GENESIS_PERSPECTIVE_H
 #define IDE_GENESIS_PERSPECTIVE_H
 
-#include "ide-perspective.h"
+#include "workbench/ide-perspective.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/greeter/ide-greeter-perspective.c b/libide/greeter/ide-greeter-perspective.c
index e3df089..69191ed 100644
--- a/libide/greeter/ide-greeter-perspective.c
+++ b/libide/greeter/ide-greeter-perspective.c
@@ -18,21 +18,20 @@
 
 #define G_LOG_DOMAIN "ide-greeter-perspective"
 
+#include <egg-search-bar.h>
+#include <egg-signal-group.h>
+#include <egg-state-machine.h>
 #include <glib/gi18n.h>
 
-#include "egg-search-bar.h"
-#include "egg-signal-group.h"
-#include "egg-state-machine.h"
-
-#include "ide-application.h"
-#include "ide-greeter-perspective.h"
-#include "ide-greeter-project-row.h"
-#include "ide-gtk.h"
+#include "application/ide-application.h"
+#include "greeter/ide-greeter-perspective.h"
+#include "greeter/ide-greeter-project-row.h"
 #include "ide-macros.h"
-#include "ide-pattern-spec.h"
-#include "ide-perspective.h"
-#include "ide-workbench.h"
-#include "ide-workbench-private.h"
+#include "search/ide-pattern-spec.h"
+#include "util/ide-gtk.h"
+#include "workbench/ide-perspective.h"
+#include "workbench/ide-workbench-private.h"
+#include "workbench/ide-workbench.h"
 
 struct _IdeGreeterPerspective
 {
diff --git a/libide/greeter/ide-greeter-perspective.h b/libide/greeter/ide-greeter-perspective.h
index 5512ffe..cf4c45a 100644
--- a/libide/greeter/ide-greeter-perspective.h
+++ b/libide/greeter/ide-greeter-perspective.h
@@ -21,7 +21,7 @@
 
 #include <gtk/gtk.h>
 
-#include "ide-recent-projects.h"
+#include "projects/ide-recent-projects.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/greeter/ide-greeter-project-row.c b/libide/greeter/ide-greeter-project-row.c
index a9bcbb4..243eaf4 100644
--- a/libide/greeter/ide-greeter-project-row.c
+++ b/libide/greeter/ide-greeter-project-row.c
@@ -18,13 +18,12 @@
 
 #define G_LOG_DOMAIN "ide-greeter-project-row"
 
+#include <egg-binding-group.h>
+#include <egg-date-time.h>
+#include <egg-pill-box.h>
 #include <glib/gi18n.h>
 
-#include "egg-binding-group.h"
-#include "egg-date-time.h"
-#include "egg-pill-box.h"
-
-#include "ide-greeter-project-row.h"
+#include "greeter/ide-greeter-project-row.h"
 
 struct _IdeGreeterProjectRow
 {
diff --git a/libide/greeter/ide-greeter-project-row.h b/libide/greeter/ide-greeter-project-row.h
index 8394b0b..da30f32 100644
--- a/libide/greeter/ide-greeter-project-row.h
+++ b/libide/greeter/ide-greeter-project-row.h
@@ -21,7 +21,7 @@
 
 #include <gtk/gtk.h>
 
-#include "ide-project-info.h"
+#include "projects/ide-project-info.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/gsettings/ide-gsettings-file-settings.c b/libide/gsettings/ide-gsettings-file-settings.c
index 8443708..4ad7fe3 100644
--- a/libide/gsettings/ide-gsettings-file-settings.c
+++ b/libide/gsettings/ide-gsettings-file-settings.c
@@ -18,16 +18,16 @@
 
 #define G_LOG_DOMAIN "ide-gsettings-file-settings"
 
+#include <egg-signal-group.h>
 #include <glib/gi18n.h>
 
-#include "egg-signal-group.h"
-
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-file.h"
-#include "ide-gsettings-file-settings.h"
-#include "ide-language-defaults.h"
-#include "ide-settings.h"
+
+#include "files/ide-file.h"
+#include "gsettings/ide-gsettings-file-settings.h"
+#include "gsettings/ide-language-defaults.h"
+#include "util/ide-settings.h"
 
 struct _IdeGsettingsFileSettings
 {
diff --git a/libide/gsettings/ide-gsettings-file-settings.h b/libide/gsettings/ide-gsettings-file-settings.h
index bd275c3..5a69dee 100644
--- a/libide/gsettings/ide-gsettings-file-settings.h
+++ b/libide/gsettings/ide-gsettings-file-settings.h
@@ -19,7 +19,7 @@
 #ifndef IDE_GSETTINGS_FILE_SETTINGS_H
 #define IDE_GSETTINGS_FILE_SETTINGS_H
 
-#include "ide-file-settings.h"
+#include "files/ide-file-settings.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/gsettings/ide-language-defaults.c b/libide/gsettings/ide-language-defaults.c
index 62d2dd3..c86a8fa 100644
--- a/libide/gsettings/ide-language-defaults.c
+++ b/libide/gsettings/ide-language-defaults.c
@@ -21,9 +21,10 @@
 #include <errno.h>
 #include <glib/gi18n.h>
 
-#include "ide-debug.h"
 #include "ide-global.h"
-#include "ide-language-defaults.h"
+#include "ide-debug.h"
+
+#include "gsettings/ide-language-defaults.h"
 
 #define SCHEMA_ID "org.gnome.builder.editor.language"
 #define PATH_BASE "/org/gnome/builder/editor/language/"
diff --git a/libide/ide-highlight-engine.c b/libide/highlighting/ide-highlight-engine.c
similarity index 97%
rename from libide/ide-highlight-engine.c
rename to libide/highlighting/ide-highlight-engine.c
index fa3955c..b2ad102 100644
--- a/libide/ide-highlight-engine.c
+++ b/libide/highlighting/ide-highlight-engine.c
@@ -18,42 +18,42 @@
 
 #define G_LOG_DOMAIN "ide-highlight-engine"
 
+#include <egg-signal-group.h>
 #include <glib/gi18n.h>
 #include <string.h>
 
-#include "egg-signal-group.h"
-
 #include "ide-debug.h"
-#include "ide-extension-adapter.h"
-#include "ide-highlight-engine.h"
-#include "ide-types.h"
 #include "ide-internal.h"
+#include "ide-types.h"
+
+#include "highlighting/ide-highlight-engine.h"
+#include "plugins/ide-extension-adapter.h"
 
-#define HIGHLIGHT_QUANTA_USEC      5000
-#define PRIVATE_TAG_PREFIX        "gb-private-tag"
+#define HIGHLIGHT_QUANTA_USEC 5000
+#define PRIVATE_TAG_PREFIX    "gb-private-tag"
 
 struct _IdeHighlightEngine
 {
-  IdeObject       parent_instance;
+  IdeObject            parent_instance;
 
-  EggSignalGroup *signal_group;
-  IdeBuffer      *buffer;
-  IdeHighlighter *highlighter;
-  GSettings      *settings;
+  EggSignalGroup      *signal_group;
+  IdeBuffer           *buffer;
+  IdeHighlighter      *highlighter;
+  GSettings           *settings;
 
   IdeExtensionAdapter *extension;
 
-  GtkTextMark    *invalid_begin;
-  GtkTextMark    *invalid_end;
+  GtkTextMark         *invalid_begin;
+  GtkTextMark         *invalid_end;
 
-  GSList         *private_tags;
-  GSList         *public_tags;
+  GSList              *private_tags;
+  GSList              *public_tags;
 
-  guint64         quanta_expiration;
+  guint64              quanta_expiration;
 
-  guint           work_timeout;
+  guint                work_timeout;
 
-  guint           enabled : 1;
+  guint                enabled : 1;
 };
 
 G_DEFINE_TYPE (IdeHighlightEngine, ide_highlight_engine, IDE_TYPE_OBJECT)
diff --git a/libide/ide-highlight-engine.h b/libide/highlighting/ide-highlight-engine.h
similarity index 96%
rename from libide/ide-highlight-engine.h
rename to libide/highlighting/ide-highlight-engine.h
index ec34e9a..6f522a9 100644
--- a/libide/ide-highlight-engine.h
+++ b/libide/highlighting/ide-highlight-engine.h
@@ -19,9 +19,9 @@
 #ifndef IDE_HIGHLIGHT_ENGINE_H
 #define IDE_HIGHLIGHT_ENGINE_H
 
-#include "ide-buffer.h"
 #include "ide-object.h"
-#include "ide-highlighter.h"
+#include "buffers/ide-buffer.h"
+#include "highlighting/ide-highlighter.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-highlight-index.c b/libide/highlighting/ide-highlight-index.c
similarity index 97%
rename from libide/ide-highlight-index.c
rename to libide/highlighting/ide-highlight-index.c
index 64f58eb..1e90686 100644
--- a/libide/ide-highlight-index.c
+++ b/libide/highlighting/ide-highlight-index.c
@@ -18,13 +18,13 @@
 
 #define G_LOG_DOMAIN "ide-highlight-index"
 
+#include <egg-counter.h>
 #include <string.h>
 
-#include "egg-counter.h"
-
 #include "ide-debug.h"
-#include "ide-highlight-index.h"
-#include "ide-posix.h"
+
+#include "highlighting/ide-highlight-index.h"
+#include "util/ide-posix.h"
 
 G_DEFINE_BOXED_TYPE (IdeHighlightIndex, ide_highlight_index,
                      ide_highlight_index_ref, ide_highlight_index_unref)
diff --git a/libide/ide-highlight-index.h b/libide/highlighting/ide-highlight-index.h
similarity index 100%
rename from libide/ide-highlight-index.h
rename to libide/highlighting/ide-highlight-index.h
diff --git a/libide/ide-highlighter.c b/libide/highlighting/ide-highlighter.c
similarity index 100%
rename from libide/ide-highlighter.c
rename to libide/highlighting/ide-highlighter.c
diff --git a/libide/ide-highlighter.h b/libide/highlighting/ide-highlighter.h
similarity index 97%
rename from libide/ide-highlighter.h
rename to libide/highlighting/ide-highlighter.h
index 4e363ef..67fb037 100644
--- a/libide/ide-highlighter.h
+++ b/libide/highlighting/ide-highlighter.h
@@ -21,11 +21,12 @@
 
 #include <gtk/gtk.h>
 
-#include "ide-buffer.h"
 #include "ide-object.h"
-#include "ide-source-view.h"
 #include "ide-types.h"
 
+#include "buffers/ide-buffer.h"
+#include "sourceview/ide-source-view.h"
+
 G_BEGIN_DECLS
 
 #define IDE_TYPE_HIGHLIGHTER (ide_highlighter_get_type())
diff --git a/libide/ide-back-forward-item.c b/libide/history/ide-back-forward-item.c
similarity index 97%
rename from libide/ide-back-forward-item.c
rename to libide/history/ide-back-forward-item.c
index fb29438..8caff28 100644
--- a/libide/ide-back-forward-item.c
+++ b/libide/history/ide-back-forward-item.c
@@ -16,11 +16,13 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-back-forward-item"
+
 #include <glib/gi18n.h>
 
-#include "ide-back-forward-item.h"
-#include "ide-file.h"
-#include "ide-source-location.h"
+#include "diagnostics/ide-source-location.h"
+#include "files/ide-file.h"
+#include "history/ide-back-forward-item.h"
 
 #define NUM_LINES_CHAIN_MAX 5
 
diff --git a/libide/ide-back-forward-item.h b/libide/history/ide-back-forward-item.h
similarity index 98%
rename from libide/ide-back-forward-item.h
rename to libide/history/ide-back-forward-item.h
index 4837fe3..20b514d 100644
--- a/libide/ide-back-forward-item.h
+++ b/libide/history/ide-back-forward-item.h
@@ -20,7 +20,8 @@
 #define IDE_BACK_FORWARD_ITEM_H
 
 #include "ide-object.h"
-#include "ide-uri.h"
+
+#include "util/ide-uri.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-back-forward-list-load.c b/libide/history/ide-back-forward-list-load.c
similarity index 97%
rename from libide/ide-back-forward-list-load.c
rename to libide/history/ide-back-forward-list-load.c
index 111a84d..c931c1f 100644
--- a/libide/ide-back-forward-list-load.c
+++ b/libide/history/ide-back-forward-list-load.c
@@ -21,12 +21,13 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "ide-back-forward-item.h"
-#include "ide-back-forward-list.h"
-#include "ide-back-forward-list-private.h"
 #include "ide-context.h"
 #include "ide-debug.h"
 
+#include "history/ide-back-forward-item.h"
+#include "history/ide-back-forward-list.h"
+#include "history/ide-back-forward-list-private.h"
+
 static void
 ide_back_forward_list_load_cb (GObject      *object,
                                GAsyncResult *result,
diff --git a/libide/ide-back-forward-list-private.h b/libide/history/ide-back-forward-list-private.h
similarity index 100%
rename from libide/ide-back-forward-list-private.h
rename to libide/history/ide-back-forward-list-private.h
diff --git a/libide/ide-back-forward-list-save.c b/libide/history/ide-back-forward-list-save.c
similarity index 97%
rename from libide/ide-back-forward-list-save.c
rename to libide/history/ide-back-forward-list-save.c
index 40d789b..5038143 100644
--- a/libide/ide-back-forward-list-save.c
+++ b/libide/history/ide-back-forward-list-save.c
@@ -18,11 +18,12 @@
 
 #define G_LOG_DOMAIN "ide-back-forward-list"
 
-#include "ide-back-forward-item.h"
-#include "ide-back-forward-list.h"
-#include "ide-back-forward-list-private.h"
 #include "ide-debug.h"
 
+#include "history/ide-back-forward-item.h"
+#include "history/ide-back-forward-list.h"
+#include "history/ide-back-forward-list-private.h"
+
 #define MAX_ITEMS_PER_FILE 5
 
 typedef struct
diff --git a/libide/ide-back-forward-list.c b/libide/history/ide-back-forward-list.c
similarity index 98%
rename from libide/ide-back-forward-list.c
rename to libide/history/ide-back-forward-list.c
index c7f3b19..8f6ae74 100644
--- a/libide/ide-back-forward-list.c
+++ b/libide/history/ide-back-forward-list.c
@@ -25,13 +25,14 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-back-forward-item.h"
-#include "ide-back-forward-list.h"
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-file.h"
-#include "ide-project.h"
-#include "ide-source-location.h"
+
+#include "diagnostics/ide-source-location.h"
+#include "files/ide-file.h"
+#include "history/ide-back-forward-item.h"
+#include "history/ide-back-forward-list.h"
+#include "projects/ide-project.h"
 
 #define MAX_ITEMS_TOTAL 100
 
diff --git a/libide/ide-back-forward-list.h b/libide/history/ide-back-forward-list.h
similarity index 100%
rename from libide/ide-back-forward-list.h
rename to libide/history/ide-back-forward-list.h
diff --git a/libide/ide-context.c b/libide/ide-context.c
index 70812f6..79f574a 100644
--- a/libide/ide-context.c
+++ b/libide/ide-context.c
@@ -21,34 +21,34 @@
 #include <glib/gi18n.h>
 #include <libpeas/peas.h>
 
-#include "ide-async-helper.h"
-#include "ide-back-forward-list.h"
-#include "ide-back-forward-list-private.h"
-#include "ide-buffer-manager.h"
-#include "ide-buffer.h"
-#include "ide-build-system.h"
-#include "ide-configuration-manager.h"
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-device-manager.h"
 #include "ide-global.h"
 #include "ide-internal.h"
-#include "ide-project.h"
-#include "ide-project-item.h"
-#include "ide-project-files.h"
-#include "ide-runtime-manager.h"
-#include "ide-script-manager.h"
-#include "ide-search-engine.h"
-#include "ide-search-provider.h"
 #include "ide-service.h"
-#include "ide-settings.h"
-#include "ide-source-snippets-manager.h"
-#include "ide-unsaved-file.h"
-#include "ide-unsaved-files.h"
-#include "ide-vcs.h"
-#include "ide-recent-projects.h"
 
+#include "buffers/ide-buffer-manager.h"
+#include "buffers/ide-buffer.h"
+#include "buffers/ide-unsaved-file.h"
+#include "buffers/ide-unsaved-files.h"
+#include "buildsystem/ide-build-system.h"
+#include "buildsystem/ide-configuration-manager.h"
+#include "devices/ide-device-manager.h"
 #include "doap/ide-doap.h"
+#include "history/ide-back-forward-list-private.h"
+#include "history/ide-back-forward-list.h"
+#include "projects/ide-project-files.h"
+#include "projects/ide-project-item.h"
+#include "projects/ide-project.h"
+#include "projects/ide-recent-projects.h"
+#include "runtimes/ide-runtime-manager.h"
+#include "scripting/ide-script-manager.h"
+#include "search/ide-search-engine.h"
+#include "search/ide-search-provider.h"
+#include "snippets/ide-source-snippets-manager.h"
+#include "util/ide-async-helper.h"
+#include "util/ide-settings.h"
+#include "vcs/ide-vcs.h"
 
 #define RESTORE_FILES_MAX_FILES 20
 
diff --git a/libide/ide-enums.c.in b/libide/ide-enums.c.in
index e7647e1..3e37734 100644
--- a/libide/ide-enums.c.in
+++ b/libide/ide-enums.c.in
@@ -1,21 +1,20 @@
 /*** BEGIN file-header ***/
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+
+#include "config.h"
 
 #include "ide-enums.h"
 
-#include "ide-buffer.h"
-#include "ide-build-result.h"
-#include "ide-diagnostic.h"
-#include "ide-doap.h"
-#include "ide-highlighter.h"
-#include "ide-indent-style.h"
-#include "ide-layout-stack-split.h"
-#include "ide-source-view.h"
-#include "ide-symbol.h"
-#include "ide-thread-pool.h"
-#include "ide-vcs-config.h"
+#include "buffers/ide-buffer.h"
+#include "buildsystem/ide-build-result.h"
+#include "diagnostics/ide-diagnostic.h"
+#include "doap/ide-doap.h"
+#include "files/ide-indent-style.h"
+#include "highlighting/ide-highlighter.h"
+#include "sourceview/ide-source-view.h"
+#include "symbols/ide-symbol.h"
+#include "threading/ide-thread-pool.h"
+#include "vcs/ide-vcs-config.h"
+#include "workbench/ide-layout-stack-split.h"
 
 /*** END file-header ***/
 
diff --git a/libide/ide-internal.h b/libide/ide-internal.h
index 6f30219..c102f23 100644
--- a/libide/ide-internal.h
+++ b/libide/ide-internal.h
@@ -16,20 +16,21 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef IDE_PRIVATE_H
-#define IDE_PRIVATE_H
+#ifndef IDE_INTERNAL_H
+#define IDE_INTERNAL_H
 
 #include <gtksourceview/gtksource.h>
 
-#include "ide-back-forward-item.h"
-#include "ide-back-forward-list.h"
-#include "ide-diagnostic.h"
 #include "ide-types.h"
-#include "ide-settings.h"
-#include "ide-source-view.h"
-#include "ide-source-view-mode.h"
-#include "ide-symbol.h"
-#include "ide-highlight-engine.h"
+
+#include "diagnostics/ide-diagnostic.h"
+#include "highlighting/ide-highlight-engine.h"
+#include "history/ide-back-forward-item.h"
+#include "history/ide-back-forward-list.h"
+#include "sourceview/ide-source-view-mode.h"
+#include "sourceview/ide-source-view.h"
+#include "symbols/ide-symbol.h"
+#include "util/ide-settings.h"
 
 G_BEGIN_DECLS
 
@@ -88,4 +89,4 @@ const gchar        *_ide_source_view_get_mode_name          (IdeSourceView
 
 G_END_DECLS
 
-#endif /* IDE_PRIVATE_H */
+#endif /* IDE_INTERNAL_H */
diff --git a/libide/ide.c b/libide/ide.c
index 8d792e3..e76f645 100644
--- a/libide/ide.c
+++ b/libide/ide.c
@@ -23,16 +23,16 @@
 #include "gconstructor.h"
 #include "ide.h"
 
-#include "ide-file-settings.h"
-#include "ide-gsettings-file-settings.h"
-#include "ide-modelines-file-settings.h"
+#include "files/ide-file-settings.h"
+#include "gsettings/ide-gsettings-file-settings.h"
+#include "modelines/ide-modelines-file-settings.h"
 
 #ifdef ENABLE_EDITORCONFIG
-# include "ide-editorconfig-file-settings.h"
+# include "editorconfig/ide-editorconfig-file-settings.h"
 #endif
 
 #ifdef ENABLE_PYTHON_SCRIPTING
-# include "ide-pygobject-script.h"
+# include "pygobject/ide-pygobject-script.h"
 #endif
 
 static gboolean     programNameRead;
diff --git a/libide/ide.h b/libide/ide.h
index 22b2606..0047c41 100644
--- a/libide/ide.h
+++ b/libide/ide.h
@@ -27,127 +27,118 @@ G_BEGIN_DECLS
 
 #include "ide-types.h"
 
-#include "ide-application.h"
-#include "ide-application-addin.h"
-#include "ide-application-tool.h"
-#include "ide-back-forward-item.h"
-#include "ide-back-forward-list.h"
-#include "ide-build-result.h"
-#include "ide-build-result-addin.h"
-#include "ide-build-system.h"
-#include "ide-builder.h"
-#include "ide-buffer.h"
-#include "ide-buffer-change-monitor.h"
-#include "ide-buffer-manager.h"
-#include "ide-completion-item.h"
-#include "ide-completion-provider.h"
-#include "ide-completion-results.h"
-#include "ide-configuration.h"
-#include "ide-configuration-manager.h"
+#include "application/ide-application-addin.h"
+#include "application/ide-application-tool.h"
+#include "application/ide-application.h"
+#include "buffers/ide-buffer-change-monitor.h"
+#include "buffers/ide-buffer-manager.h"
+#include "buffers/ide-buffer.h"
+#include "buffers/ide-unsaved-file.h"
+#include "buffers/ide-unsaved-files.h"
+#include "buildsystem/ide-build-result-addin.h"
+#include "buildsystem/ide-build-result.h"
+#include "buildsystem/ide-build-system.h"
+#include "buildsystem/ide-builder.h"
+#include "buildsystem/ide-configuration-manager.h"
+#include "buildsystem/ide-configuration.h"
+#include "buildsystem/ide-environment-variable.h"
+#include "buildsystem/ide-environment.h"
+#include "devices/ide-device-manager.h"
+#include "devices/ide-device-provider.h"
+#include "devices/ide-device.h"
+#include "diagnostics/ide-diagnostic-provider.h"
+#include "diagnostics/ide-diagnostic.h"
+#include "diagnostics/ide-diagnostician.h"
+#include "diagnostics/ide-diagnostics.h"
+#include "diagnostics/ide-source-location.h"
+#include "diagnostics/ide-source-range.h"
+#include "doap/ide-doap-person.h"
+#include "doap/ide-doap.h"
+#include "editor/ide-editor-perspective.h"
+#include "editor/ide-editor-view-addin.h"
+#include "editor/ide-editor-view.h"
+#include "files/ide-file-settings.h"
+#include "files/ide-file.h"
+#include "genesis/ide-genesis-addin.h"
+#include "highlighting/ide-highlight-engine.h"
+#include "highlighting/ide-highlight-index.h"
+#include "highlighting/ide-highlighter.h"
+#include "history/ide-back-forward-item.h"
+#include "history/ide-back-forward-list.h"
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-debugger.h"
-#include "ide-deployer.h"
-#include "ide-device.h"
-#include "ide-device-provider.h"
-#include "ide-device-manager.h"
-#include "ide-diagnostic.h"
-#include "ide-diagnostics.h"
-#include "ide-diagnostician.h"
-#include "ide-diagnostic-provider.h"
 #include "ide-enums.h"
-#include "ide-environment.h"
-#include "ide-environment-editor.h"
-#include "ide-environment-variable.h"
-#include "ide-executable.h"
-#include "ide-executer.h"
-#include "ide-file.h"
-#include "ide-file-settings.h"
 #include "ide-global.h"
-#include "ide-highlight-engine.h"
-#include "ide-highlighter.h"
-#include "ide-indenter.h"
-#include "ide-language.h"
-#include "ide-layout-grid.h"
-#include "ide-layout-pane.h"
-#include "ide-layout-stack.h"
-#include "ide-layout-view.h"
-#include "ide-layout.h"
-#include "ide-log.h"
 #include "ide-macros.h"
 #include "ide-object.h"
-#include "ide-pattern-spec.h"
-#include "ide-perspective.h"
-#include "ide-preferences.h"
-#include "ide-preferences-addin.h"
-#include "ide-process.h"
-#include "ide-progress.h"
-#include "ide-project.h"
-#include "ide-project-file.h"
-#include "ide-project-files.h"
-#include "ide-project-item.h"
-#include "ide-recent-projects.h"
-#include "ide-refactory.h"
-#include "ide-runtime.h"
-#include "ide-runtime-manager.h"
-#include "ide-runtime-provider.h"
-#include "ide-script.h"
-#include "ide-script-manager.h"
-#include "ide-search-context.h"
-#include "ide-search-engine.h"
-#include "ide-search-provider.h"
-#include "ide-search-reducer.h"
-#include "ide-search-result.h"
 #include "ide-service.h"
-#include "ide-source-location.h"
-#include "ide-source-map.h"
-#include "ide-source-range.h"
-#include "ide-source-snippet-chunk.h"
-#include "ide-source-snippet-context.h"
-#include "ide-source-snippet.h"
-#include "ide-source-snippets-manager.h"
-#include "ide-source-snippets.h"
-#include "ide-source-style-scheme.h"
-#include "ide-source-view.h"
-#include "ide-subprocess-launcher.h"
-#include "ide-symbol-resolver.h"
-#include "ide-symbol.h"
-#include "ide-target.h"
-#include "ide-test-case.h"
-#include "ide-test-suite.h"
-#include "ide-thread-pool.h"
-#include "ide-tree-types.h"
-#include "ide-tree.h"
-#include "ide-tree-builder.h"
-#include "ide-tree-node.h"
 #include "ide-types.h"
-#include "ide-unsaved-file.h"
-#include "ide-unsaved-files.h"
-#include "ide-uri.h"
-#include "ide-vcs.h"
-#include "ide-vcs-config.h"
-#include "ide-vcs-initializer.h"
-#include "ide-vcs-uri.h"
-#include "ide-workbench.h"
-#include "ide-workbench-addin.h"
-#include "ide-workbench-header-bar.h"
-
-#include "editor/ide-editor-perspective.h"
-#include "editor/ide-editor-view.h"
-#include "editor/ide-editor-view-addin.h"
-
-#include "genesis/ide-genesis-addin.h"
-
-#include "doap/ide-doap-person.h"
-#include "doap/ide-doap.h"
 #include "local/ide-local-device.h"
+#include "logging/ide-log.h"
+#include "preferences/ide-preferences-addin.h"
+#include "preferences/ide-preferences.h"
+#include "projects/ide-project-file.h"
+#include "projects/ide-project-files.h"
+#include "projects/ide-project-item.h"
+#include "projects/ide-project-miner.h"
+#include "projects/ide-project.h"
+#include "projects/ide-recent-projects.h"
+#include "runtimes/ide-runtime-manager.h"
+#include "runtimes/ide-runtime-provider.h"
+#include "runtimes/ide-runtime.h"
+#include "scripting/ide-script-manager.h"
+#include "scripting/ide-script.h"
 #include "search/ide-omni-search-row.h"
+#include "search/ide-pattern-spec.h"
+#include "search/ide-search-context.h"
+#include "search/ide-search-engine.h"
+#include "search/ide-search-provider.h"
+#include "search/ide-search-reducer.h"
+#include "search/ide-search-result.h"
+#include "snippets/ide-source-snippet-chunk.h"
+#include "snippets/ide-source-snippet-context.h"
+#include "snippets/ide-source-snippet.h"
+#include "snippets/ide-source-snippets-manager.h"
+#include "snippets/ide-source-snippets.h"
+#include "sourceview/ide-completion-item.h"
+#include "sourceview/ide-completion-provider.h"
+#include "sourceview/ide-completion-results.h"
+#include "sourceview/ide-indenter.h"
+#include "sourceview/ide-language.h"
+#include "sourceview/ide-source-map.h"
+#include "sourceview/ide-source-style-scheme.h"
+#include "sourceview/ide-source-view.h"
+#include "symbols/ide-symbol-resolver.h"
+#include "symbols/ide-symbol.h"
+#include "symbols/ide-tags-builder.h"
 #include "template/ide-project-template.h"
 #include "template/ide-template-provider.h"
+#include "threading/ide-thread-pool.h"
+#include "tree/ide-tree-builder.h"
+#include "tree/ide-tree-node.h"
+#include "tree/ide-tree-types.h"
+#include "tree/ide-tree.h"
 #include "util/ide-file-manager.h"
 #include "util/ide-gtk.h"
 #include "util/ide-line-reader.h"
 #include "util/ide-list-inline.h"
+#include "util/ide-progress.h"
+#include "util/ide-ref-ptr.h"
+#include "util/ide-uri.h"
+#include "vcs/ide-vcs-config.h"
+#include "vcs/ide-vcs-initializer.h"
+#include "vcs/ide-vcs-uri.h"
+#include "vcs/ide-vcs.h"
+#include "workbench/ide-layout-grid.h"
+#include "workbench/ide-layout-pane.h"
+#include "workbench/ide-layout-stack.h"
+#include "workbench/ide-layout-view.h"
+#include "workbench/ide-layout.h"
+#include "workbench/ide-perspective.h"
+#include "workbench/ide-workbench-addin.h"
+#include "workbench/ide-workbench-header-bar.h"
+#include "workbench/ide-workbench.h"
+#include "workers/ide-subprocess-launcher.h"
 
 #undef IDE_INSIDE
 
diff --git a/libide/ide-keybindings.c b/libide/keybindings/ide-keybindings.c
similarity index 99%
rename from libide/ide-keybindings.c
rename to libide/keybindings/ide-keybindings.c
index 3c8a54a..0758622 100644
--- a/libide/ide-keybindings.c
+++ b/libide/keybindings/ide-keybindings.c
@@ -22,9 +22,10 @@
 #include <libpeas/peas.h>
 
 #include "ide-debug.h"
-#include "ide-keybindings.h"
 #include "ide-macros.h"
 
+#include "keybindings/ide-keybindings.h"
+
 struct _IdeKeybindings
 {
   GObject         parent_instance;
diff --git a/libide/ide-keybindings.h b/libide/keybindings/ide-keybindings.h
similarity index 100%
rename from libide/ide-keybindings.h
rename to libide/keybindings/ide-keybindings.h
diff --git a/libide/ide-shortcuts-window.c b/libide/keybindings/ide-shortcuts-window.c
similarity index 100%
rename from libide/ide-shortcuts-window.c
rename to libide/keybindings/ide-shortcuts-window.c
diff --git a/libide/ide-shortcuts-window.h b/libide/keybindings/ide-shortcuts-window.h
similarity index 100%
rename from libide/ide-shortcuts-window.h
rename to libide/keybindings/ide-shortcuts-window.h
diff --git a/libide/local/ide-local-device.c b/libide/local/ide-local-device.c
index 9314cbf..99f468e 100644
--- a/libide/local/ide-local-device.c
+++ b/libide/local/ide-local-device.c
@@ -16,6 +16,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-loca-device"
+
 #include <string.h>
 #include <sys/utsname.h>
 
diff --git a/libide/local/ide-local-device.h b/libide/local/ide-local-device.h
index 31f9132..c27d5ae 100644
--- a/libide/local/ide-local-device.h
+++ b/libide/local/ide-local-device.h
@@ -19,14 +19,13 @@
 #ifndef IDE_LOCAL_DEVICE_H
 #define IDE_LOCAL_DEVICE_H
 
-#include "ide-device.h"
+#include "devices/ide-device.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_LOCAL_DEVICE (ide_local_device_get_type())
 
-G_DECLARE_DERIVABLE_TYPE (IdeLocalDevice, ide_local_device, IDE, LOCAL_DEVICE,
-                          IdeDevice)
+G_DECLARE_DERIVABLE_TYPE (IdeLocalDevice, ide_local_device, IDE, LOCAL_DEVICE, IdeDevice)
 
 struct _IdeLocalDeviceClass
 {
diff --git a/libide/ide-log.c b/libide/logging/ide-log.c
similarity index 99%
rename from libide/ide-log.c
rename to libide/logging/ide-log.c
index 28cfbd8..99c7f01 100644
--- a/libide/ide-log.c
+++ b/libide/logging/ide-log.c
@@ -31,7 +31,8 @@
 #include <unistd.h>
 
 #include "ide-debug.h"
-#include "ide-log.h"
+
+#include "logging/ide-log.h"
 
 typedef const gchar *(*IdeLogLevelStrFunc) (GLogLevelFlags log_level);
 
diff --git a/libide/ide-log.h b/libide/logging/ide-log.h
similarity index 100%
rename from libide/ide-log.h
rename to libide/logging/ide-log.h
diff --git a/libide/modelines/ide-modelines-file-settings.c b/libide/modelines/ide-modelines-file-settings.c
index 82dafd0..b3f6ca6 100644
--- a/libide/modelines/ide-modelines-file-settings.c
+++ b/libide/modelines/ide-modelines-file-settings.c
@@ -20,12 +20,12 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-buffer.h"
-#include "ide-buffer-manager.h"
 #include "ide-context.h"
-#include "ide-modelines-file-settings.h"
 
-#include "modeline-parser.h"
+#include "buffers/ide-buffer-manager.h"
+#include "buffers/ide-buffer.h"
+#include "modelines/ide-modelines-file-settings.h"
+#include "modelines/modeline-parser.h"
 
 struct _IdeModelinesFileSettings
 {
diff --git a/libide/modelines/ide-modelines-file-settings.h b/libide/modelines/ide-modelines-file-settings.h
index 5c95470..7415267 100644
--- a/libide/modelines/ide-modelines-file-settings.h
+++ b/libide/modelines/ide-modelines-file-settings.h
@@ -19,7 +19,7 @@
 #ifndef IDE_MODELINES_FILE_SETTINGS_H
 #define IDE_MODELINES_FILE_SETTINGS_H
 
-#include "ide-file-settings.h"
+#include "files/ide-file-settings.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/modelines/modeline-parser.h b/libide/modelines/modeline-parser.h
index 1b80b6b..e392445 100644
--- a/libide/modelines/modeline-parser.h
+++ b/libide/modelines/modeline-parser.h
@@ -24,7 +24,7 @@
 #include <glib.h>
 #include <gtksourceview/gtksource.h>
 
-#include "ide-file-settings.h"
+#include "files/ide-file-settings.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-extension-adapter.c b/libide/plugins/ide-extension-adapter.c
similarity index 100%
rename from libide/ide-extension-adapter.c
rename to libide/plugins/ide-extension-adapter.c
diff --git a/libide/ide-extension-adapter.h b/libide/plugins/ide-extension-adapter.h
similarity index 100%
rename from libide/ide-extension-adapter.h
rename to libide/plugins/ide-extension-adapter.h
diff --git a/libide/ide-extension-set-adapter.c b/libide/plugins/ide-extension-set-adapter.c
similarity index 100%
rename from libide/ide-extension-set-adapter.c
rename to libide/plugins/ide-extension-set-adapter.c
diff --git a/libide/ide-extension-set-adapter.h b/libide/plugins/ide-extension-set-adapter.h
similarity index 100%
rename from libide/ide-extension-set-adapter.h
rename to libide/plugins/ide-extension-set-adapter.h
diff --git a/libide/ide-extension-util.c b/libide/plugins/ide-extension-util.c
similarity index 100%
rename from libide/ide-extension-util.c
rename to libide/plugins/ide-extension-util.c
diff --git a/libide/ide-extension-util.h b/libide/plugins/ide-extension-util.h
similarity index 100%
rename from libide/ide-extension-util.h
rename to libide/plugins/ide-extension-util.h
diff --git a/libide/ide-preferences-addin.c b/libide/preferences/ide-preferences-addin.c
similarity index 100%
rename from libide/ide-preferences-addin.c
rename to libide/preferences/ide-preferences-addin.c
diff --git a/libide/ide-preferences-addin.h b/libide/preferences/ide-preferences-addin.h
similarity index 100%
rename from libide/ide-preferences-addin.h
rename to libide/preferences/ide-preferences-addin.h
diff --git a/libide/preferences/ide-preferences-bin.h b/libide/preferences/ide-preferences-bin.h
index c014817..0577482 100644
--- a/libide/preferences/ide-preferences-bin.h
+++ b/libide/preferences/ide-preferences-bin.h
@@ -21,7 +21,7 @@
 
 #include <gtk/gtk.h>
 
-#include "ide-pattern-spec.h"
+#include "search/ide-pattern-spec.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/preferences/ide-preferences-builtin.c b/libide/preferences/ide-preferences-builtin.c
index 14cdf4f..acbc665 100644
--- a/libide/preferences/ide-preferences-builtin.c
+++ b/libide/preferences/ide-preferences-builtin.c
@@ -16,16 +16,19 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-preferences-builtin"
+
 #include <glib/gi18n.h>
 #include <gtksourceview/gtksource.h>
 #include <libpeas/peas.h>
 
-#include "ide-application-private.h"
 #include "ide-macros.h"
-#include "ide-preferences-builtin.h"
-#include "ide-preferences-entry.h"
-#include "ide-preferences-language-row.h"
-#include "ide-preferences-spin-button.h"
+
+#include "application/ide-application-private.h"
+#include "preferences/ide-preferences-builtin.h"
+#include "preferences/ide-preferences-entry.h"
+#include "preferences/ide-preferences-language-row.h"
+#include "preferences/ide-preferences-spin-button.h"
 
 static void
 ide_preferences_builtin_register_plugins (IdePreferences *preferences)
diff --git a/libide/preferences/ide-preferences-group-private.h 
b/libide/preferences/ide-preferences-group-private.h
index 2a52529..2502c2a 100644
--- a/libide/preferences/ide-preferences-group-private.h
+++ b/libide/preferences/ide-preferences-group-private.h
@@ -19,8 +19,8 @@
 #ifndef IDE_PREFERENCES_GROUP_PRIVATE_H
 #define IDE_PREFERENCES_GROUP_PRIVATE_H
 
-#include "ide-pattern-spec.h"
-#include "ide-preferences-group.h"
+#include "preferences/ide-preferences-group.h"
+#include "search/ide-pattern-spec.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/preferences/ide-preferences-page-private.h 
b/libide/preferences/ide-preferences-page-private.h
index 50bfbf1..80e4653 100644
--- a/libide/preferences/ide-preferences-page-private.h
+++ b/libide/preferences/ide-preferences-page-private.h
@@ -19,8 +19,8 @@
 #ifndef IDE_PREFERENCES_PAGE_PRIVATE_H
 #define IDE_PREFERENCES_PAGE_PRIVATE_H
 
-#include "ide-pattern-spec.h"
-#include "ide-preferences-page.h"
+#include "preferences/ide-preferences-page.h"
+#include "search/ide-pattern-spec.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/preferences/ide-preferences-perspective.c 
b/libide/preferences/ide-preferences-perspective.c
index 39a8bb3..1cb1e10 100644
--- a/libide/preferences/ide-preferences-perspective.c
+++ b/libide/preferences/ide-preferences-perspective.c
@@ -22,20 +22,21 @@
 #include <libpeas/peas.h>
 
 #include "ide-macros.h"
-#include "ide-pattern-spec.h"
-#include "ide-perspective.h"
-#include "ide-preferences.h"
-#include "ide-preferences-addin.h"
-#include "ide-preferences-builtin.h"
-#include "ide-preferences-file-chooser-button.h"
-#include "ide-preferences-font-button.h"
-#include "ide-preferences-group.h"
-#include "ide-preferences-page.h"
-#include "ide-preferences-page-private.h"
-#include "ide-preferences-perspective.h"
-#include "ide-preferences-spin-button.h"
-#include "ide-preferences-switch.h"
-#include "ide-workbench-header-bar.h"
+
+#include "search/ide-pattern-spec.h"
+#include "workbench/ide-perspective.h"
+#include "preferences/ide-preferences.h"
+#include "preferences/ide-preferences-addin.h"
+#include "preferences/ide-preferences-builtin.h"
+#include "preferences/ide-preferences-file-chooser-button.h"
+#include "preferences/ide-preferences-font-button.h"
+#include "preferences/ide-preferences-group.h"
+#include "preferences/ide-preferences-page.h"
+#include "preferences/ide-preferences-page-private.h"
+#include "preferences/ide-preferences-perspective.h"
+#include "preferences/ide-preferences-spin-button.h"
+#include "preferences/ide-preferences-switch.h"
+#include "workbench/ide-workbench-header-bar.h"
 
 struct _IdePreferencesPerspective
 {
diff --git a/libide/ide-preferences.c b/libide/preferences/ide-preferences.c
similarity index 100%
rename from libide/ide-preferences.c
rename to libide/preferences/ide-preferences.c
diff --git a/libide/ide-preferences.h b/libide/preferences/ide-preferences.h
similarity index 100%
rename from libide/ide-preferences.h
rename to libide/preferences/ide-preferences.h
diff --git a/libide/ide-project-file.c b/libide/projects/ide-project-file.c
similarity index 100%
rename from libide/ide-project-file.c
rename to libide/projects/ide-project-file.c
diff --git a/libide/ide-project-file.h b/libide/projects/ide-project-file.h
similarity index 95%
rename from libide/ide-project-file.h
rename to libide/projects/ide-project-file.h
index 45d94cf..214c74d 100644
--- a/libide/ide-project-file.h
+++ b/libide/projects/ide-project-file.h
@@ -21,8 +21,8 @@
 
 #include <gio/gio.h>
 
-#include "ide-file.h"
-#include "ide-project-item.h"
+#include "files/ide-file.h"
+#include "projects/ide-project-item.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-project-files.c b/libide/projects/ide-project-files.c
similarity index 98%
rename from libide/ide-project-files.c
rename to libide/projects/ide-project-files.c
index 8005fa2..42b3807 100644
--- a/libide/ide-project-files.c
+++ b/libide/projects/ide-project-files.c
@@ -16,10 +16,13 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-project-files"
+
 #include "ide-context.h"
-#include "ide-project-file.h"
-#include "ide-project-files.h"
-#include "ide-vcs.h"
+
+#include "projects/ide-project-file.h"
+#include "projects/ide-project-files.h"
+#include "vcs/ide-vcs.h"
 
 typedef struct
 {
diff --git a/libide/ide-project-files.h b/libide/projects/ide-project-files.h
similarity index 100%
rename from libide/ide-project-files.h
rename to libide/projects/ide-project-files.h
diff --git a/libide/ide-project-info.c b/libide/projects/ide-project-info.c
similarity index 100%
rename from libide/ide-project-info.c
rename to libide/projects/ide-project-info.c
diff --git a/libide/ide-project-info.h b/libide/projects/ide-project-info.h
similarity index 100%
rename from libide/ide-project-info.h
rename to libide/projects/ide-project-info.h
diff --git a/libide/ide-project-item.c b/libide/projects/ide-project-item.c
similarity index 100%
rename from libide/ide-project-item.c
rename to libide/projects/ide-project-item.c
diff --git a/libide/ide-project-item.h b/libide/projects/ide-project-item.h
similarity index 100%
rename from libide/ide-project-item.h
rename to libide/projects/ide-project-item.h
diff --git a/libide/ide-project-miner.c b/libide/projects/ide-project-miner.c
similarity index 100%
rename from libide/ide-project-miner.c
rename to libide/projects/ide-project-miner.c
diff --git a/libide/ide-project-miner.h b/libide/projects/ide-project-miner.h
similarity index 100%
rename from libide/ide-project-miner.h
rename to libide/projects/ide-project-miner.h
diff --git a/libide/ide-project.c b/libide/projects/ide-project.c
similarity index 98%
rename from libide/ide-project.c
rename to libide/projects/ide-project.c
index 071c7ab..27390d6 100644
--- a/libide/ide-project.c
+++ b/libide/projects/ide-project.c
@@ -16,15 +16,18 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-project"
+
 #include <glib/gi18n.h>
 
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-file.h"
-#include "ide-project.h"
-#include "ide-project-files.h"
-#include "ide-project-item.h"
-#include "ide-vcs.h"
+
+#include "files/ide-file.h"
+#include "projects/ide-project-files.h"
+#include "projects/ide-project-item.h"
+#include "projects/ide-project.h"
+#include "vcs/ide-vcs.h"
 
 struct _IdeProject
 {
diff --git a/libide/ide-project.h b/libide/projects/ide-project.h
similarity index 100%
rename from libide/ide-project.h
rename to libide/projects/ide-project.h
diff --git a/libide/ide-recent-projects.c b/libide/projects/ide-recent-projects.c
similarity index 100%
rename from libide/ide-recent-projects.c
rename to libide/projects/ide-recent-projects.c
diff --git a/libide/ide-recent-projects.h b/libide/projects/ide-recent-projects.h
similarity index 100%
rename from libide/ide-recent-projects.h
rename to libide/projects/ide-recent-projects.h
diff --git a/libide/pygobject/ide-pygobject-script.h b/libide/pygobject/ide-pygobject-script.h
index fa059f2..1d77708 100644
--- a/libide/pygobject/ide-pygobject-script.h
+++ b/libide/pygobject/ide-pygobject-script.h
@@ -19,7 +19,7 @@
 #ifndef IDE_PYGOBJECT_SCRIPT_H
 #define IDE_PYGOBJECT_SCRIPT_H
 
-#include "ide-script.h"
+#include "scripting/ide-script.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-runtime-manager.c b/libide/runtimes/ide-runtime-manager.c
similarity index 100%
rename from libide/ide-runtime-manager.c
rename to libide/runtimes/ide-runtime-manager.c
diff --git a/libide/ide-runtime-manager.h b/libide/runtimes/ide-runtime-manager.h
similarity index 100%
rename from libide/ide-runtime-manager.h
rename to libide/runtimes/ide-runtime-manager.h
diff --git a/libide/ide-runtime-provider.c b/libide/runtimes/ide-runtime-provider.c
similarity index 100%
rename from libide/ide-runtime-provider.c
rename to libide/runtimes/ide-runtime-provider.c
diff --git a/libide/ide-runtime-provider.h b/libide/runtimes/ide-runtime-provider.h
similarity index 100%
rename from libide/ide-runtime-provider.h
rename to libide/runtimes/ide-runtime-provider.h
diff --git a/libide/ide-runtime.c b/libide/runtimes/ide-runtime.c
similarity index 98%
rename from libide/ide-runtime.c
rename to libide/runtimes/ide-runtime.c
index 4bde63c..a67f9d1 100644
--- a/libide/ide-runtime.c
+++ b/libide/runtimes/ide-runtime.c
@@ -18,11 +18,12 @@
 
 #define G_LOG_DOMAIN "ide-runtime"
 
-#include "ide-builder.h"
-#include "ide-configuration.h"
 #include "ide-context.h"
-#include "ide-project.h"
-#include "ide-runtime.h"
+
+#include "buildsystem/ide-builder.h"
+#include "buildsystem/ide-configuration.h"
+#include "projects/ide-project.h"
+#include "runtimes/ide-runtime.h"
 
 typedef struct
 {
diff --git a/libide/ide-runtime.h b/libide/runtimes/ide-runtime.h
similarity index 99%
rename from libide/ide-runtime.h
rename to libide/runtimes/ide-runtime.h
index c5aa19e..daa0fe0 100644
--- a/libide/ide-runtime.h
+++ b/libide/runtimes/ide-runtime.h
@@ -22,7 +22,8 @@
 #include <gio/gio.h>
 
 #include "ide-object.h"
-#include "ide-subprocess-launcher.h"
+
+#include "workers/ide-subprocess-launcher.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-script-manager.c b/libide/scripting/ide-script-manager.c
similarity index 100%
rename from libide/ide-script-manager.c
rename to libide/scripting/ide-script-manager.c
diff --git a/libide/ide-script-manager.h b/libide/scripting/ide-script-manager.h
similarity index 100%
rename from libide/ide-script-manager.h
rename to libide/scripting/ide-script-manager.h
diff --git a/libide/ide-script.c b/libide/scripting/ide-script.c
similarity index 100%
rename from libide/ide-script.c
rename to libide/scripting/ide-script.c
diff --git a/libide/ide-script.h b/libide/scripting/ide-script.h
similarity index 100%
rename from libide/ide-script.h
rename to libide/scripting/ide-script.h
diff --git a/libide/search/ide-omni-search-display.c b/libide/search/ide-omni-search-display.c
index 5b5f0d9..b143ae8 100644
--- a/libide/search/ide-omni-search-display.c
+++ b/libide/search/ide-omni-search-display.c
@@ -20,9 +20,11 @@
 
 #include <glib/gi18n.h>
 
+#include "ide-debug.h"
 #include "ide-macros.h"
-#include "ide-omni-search-group.h"
-#include "ide-omni-search-display.h"
+
+#include "search/ide-omni-search-group.h"
+#include "search/ide-omni-search-display.h"
 
 struct _IdeOmniSearchDisplay
 {
diff --git a/libide/search/ide-omni-search-entry.c b/libide/search/ide-omni-search-entry.c
index d31f3dd..74e786c 100644
--- a/libide/search/ide-omni-search-entry.c
+++ b/libide/search/ide-omni-search-entry.c
@@ -16,13 +16,16 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#define G_LOG_DOMAIN "ide-search-box"
+#define G_LOG_DOMAIN "ide-omni-search-entry"
 
 #include <glib/gi18n.h>
 
 #include "ide-macros.h"
-#include "ide-omni-search-entry.h"
-#include "ide-omni-search-display.h"
+
+#include "search/ide-omni-search-entry.h"
+#include "search/ide-omni-search-display.h"
+#include "search/ide-search-result.h"
+#include "util/ide-gtk.h"
 
 #define SHORT_DELAY_TIMEOUT_MSEC 20
 #define LONG_DELAY_TIMEOUT_MSEC  50
diff --git a/libide/search/ide-omni-search-entry.h b/libide/search/ide-omni-search-entry.h
index a7aed7c..ab6a75b 100644
--- a/libide/search/ide-omni-search-entry.h
+++ b/libide/search/ide-omni-search-entry.h
@@ -20,7 +20,8 @@
 #define IDE_OMNI_SEARCH_ENTRY_H
 
 #include <gtk/gtk.h>
-#include <ide.h>
+
+#include "ide-search-engine.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/search/ide-omni-search-group.h b/libide/search/ide-omni-search-group.h
index e612ae7..dd4e30c 100644
--- a/libide/search/ide-omni-search-group.h
+++ b/libide/search/ide-omni-search-group.h
@@ -20,7 +20,8 @@
 #define IDE_OMNI_SEARCH_GROUP_H
 
 #include <gtk/gtk.h>
-#include <ide.h>
+
+#include "ide-search-result.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-pattern-spec.c b/libide/search/ide-pattern-spec.c
similarity index 100%
rename from libide/ide-pattern-spec.c
rename to libide/search/ide-pattern-spec.c
diff --git a/libide/ide-pattern-spec.h b/libide/search/ide-pattern-spec.h
similarity index 100%
rename from libide/ide-pattern-spec.h
rename to libide/search/ide-pattern-spec.h
diff --git a/libide/ide-search-context.c b/libide/search/ide-search-context.c
similarity index 98%
rename from libide/ide-search-context.c
rename to libide/search/ide-search-context.c
index f763167..4b343b6 100644
--- a/libide/ide-search-context.c
+++ b/libide/search/ide-search-context.c
@@ -19,9 +19,10 @@
 #define G_LOG_DOMAIN "ide-search-context"
 
 #include "ide-debug.h"
-#include "ide-search-context.h"
-#include "ide-search-provider.h"
-#include "ide-search-result.h"
+
+#include "search/ide-search-context.h"
+#include "search/ide-search-provider.h"
+#include "search/ide-search-result.h"
 
 struct _IdeSearchContext
 {
diff --git a/libide/ide-search-context.h b/libide/search/ide-search-context.h
similarity index 100%
rename from libide/ide-search-context.h
rename to libide/search/ide-search-context.h
diff --git a/libide/ide-search-engine.c b/libide/search/ide-search-engine.c
similarity index 100%
rename from libide/ide-search-engine.c
rename to libide/search/ide-search-engine.c
diff --git a/libide/ide-search-engine.h b/libide/search/ide-search-engine.h
similarity index 100%
rename from libide/ide-search-engine.h
rename to libide/search/ide-search-engine.h
diff --git a/libide/ide-search-provider.c b/libide/search/ide-search-provider.c
similarity index 100%
rename from libide/ide-search-provider.c
rename to libide/search/ide-search-provider.c
diff --git a/libide/ide-search-provider.h b/libide/search/ide-search-provider.h
similarity index 100%
rename from libide/ide-search-provider.h
rename to libide/search/ide-search-provider.h
diff --git a/libide/ide-search-reducer.c b/libide/search/ide-search-reducer.c
similarity index 100%
rename from libide/ide-search-reducer.c
rename to libide/search/ide-search-reducer.c
diff --git a/libide/ide-search-reducer.h b/libide/search/ide-search-reducer.h
similarity index 100%
rename from libide/ide-search-reducer.h
rename to libide/search/ide-search-reducer.h
diff --git a/libide/ide-search-result.c b/libide/search/ide-search-result.c
similarity index 100%
rename from libide/ide-search-result.c
rename to libide/search/ide-search-result.c
diff --git a/libide/ide-search-result.h b/libide/search/ide-search-result.h
similarity index 100%
rename from libide/ide-search-result.h
rename to libide/search/ide-search-result.h
diff --git a/libide/ide-source-snippet-chunk.c b/libide/snippets/ide-source-snippet-chunk.c
similarity index 100%
rename from libide/ide-source-snippet-chunk.c
rename to libide/snippets/ide-source-snippet-chunk.c
diff --git a/libide/ide-source-snippet-chunk.h b/libide/snippets/ide-source-snippet-chunk.h
similarity index 100%
rename from libide/ide-source-snippet-chunk.h
rename to libide/snippets/ide-source-snippet-chunk.h
diff --git a/libide/ide-source-snippet-completion-item.c 
b/libide/snippets/ide-source-snippet-completion-item.c
similarity index 100%
rename from libide/ide-source-snippet-completion-item.c
rename to libide/snippets/ide-source-snippet-completion-item.c
diff --git a/libide/ide-source-snippet-completion-item.h 
b/libide/snippets/ide-source-snippet-completion-item.h
similarity index 100%
rename from libide/ide-source-snippet-completion-item.h
rename to libide/snippets/ide-source-snippet-completion-item.h
diff --git a/libide/ide-source-snippet-completion-provider.c 
b/libide/snippets/ide-source-snippet-completion-provider.c
similarity index 100%
rename from libide/ide-source-snippet-completion-provider.c
rename to libide/snippets/ide-source-snippet-completion-provider.c
diff --git a/libide/ide-source-snippet-completion-provider.h 
b/libide/snippets/ide-source-snippet-completion-provider.h
similarity index 83%
rename from libide/ide-source-snippet-completion-provider.h
rename to libide/snippets/ide-source-snippet-completion-provider.h
index df696f8..330c6e3 100644
--- a/libide/ide-source-snippet-completion-provider.h
+++ b/libide/snippets/ide-source-snippet-completion-provider.h
@@ -21,18 +21,17 @@
 
 #include <gtksourceview/gtksourcecompletionprovider.h>
 
-#include "ide-source-snippets.h"
-#include "ide-source-view.h"
+#include "snippets/ide-source-snippets.h"
+#include "sourceview/ide-source-view.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_SOURCE_SNIPPET_COMPLETION_PROVIDER (ide_source_snippet_completion_provider_get_type())
 
-G_DECLARE_FINAL_TYPE (IdeSourceSnippetCompletionProvider, ide_source_snippet_completion_provider,
-                      IDE, SOURCE_SNIPPET_COMPLETION_PROVIDER, GObject)
+G_DECLARE_FINAL_TYPE (IdeSourceSnippetCompletionProvider, ide_source_snippet_completion_provider, IDE, 
SOURCE_SNIPPET_COMPLETION_PROVIDER, GObject)
 
-GtkSourceCompletionProvider *ide_source_snippet_completion_provider_new      (IdeSourceView     *source_view,
-                                                                             IdeSourceSnippets *snippets);
+GtkSourceCompletionProvider *ide_source_snippet_completion_provider_new (IdeSourceView     *source_view,
+                                                                         IdeSourceSnippets *snippets);
 
 G_END_DECLS
 
diff --git a/libide/ide-source-snippet-context.c b/libide/snippets/ide-source-snippet-context.c
similarity index 100%
rename from libide/ide-source-snippet-context.c
rename to libide/snippets/ide-source-snippet-context.c
diff --git a/libide/ide-source-snippet-context.h b/libide/snippets/ide-source-snippet-context.h
similarity index 100%
rename from libide/ide-source-snippet-context.h
rename to libide/snippets/ide-source-snippet-context.h
diff --git a/libide/ide-source-snippet-parser.c b/libide/snippets/ide-source-snippet-parser.c
similarity index 100%
rename from libide/ide-source-snippet-parser.c
rename to libide/snippets/ide-source-snippet-parser.c
diff --git a/libide/ide-source-snippet-parser.h b/libide/snippets/ide-source-snippet-parser.h
similarity index 100%
rename from libide/ide-source-snippet-parser.h
rename to libide/snippets/ide-source-snippet-parser.h
diff --git a/libide/ide-source-snippet-private.h b/libide/snippets/ide-source-snippet-private.h
similarity index 100%
rename from libide/ide-source-snippet-private.h
rename to libide/snippets/ide-source-snippet-private.h
diff --git a/libide/ide-source-snippet.c b/libide/snippets/ide-source-snippet.c
similarity index 100%
rename from libide/ide-source-snippet.c
rename to libide/snippets/ide-source-snippet.c
diff --git a/libide/ide-source-snippet.h b/libide/snippets/ide-source-snippet.h
similarity index 100%
rename from libide/ide-source-snippet.h
rename to libide/snippets/ide-source-snippet.h
diff --git a/libide/ide-source-snippets-manager.c b/libide/snippets/ide-source-snippets-manager.c
similarity index 100%
rename from libide/ide-source-snippets-manager.c
rename to libide/snippets/ide-source-snippets-manager.c
diff --git a/libide/ide-source-snippets-manager.h b/libide/snippets/ide-source-snippets-manager.h
similarity index 100%
rename from libide/ide-source-snippets-manager.h
rename to libide/snippets/ide-source-snippets-manager.h
diff --git a/libide/ide-source-snippets.c b/libide/snippets/ide-source-snippets.c
similarity index 100%
rename from libide/ide-source-snippets.c
rename to libide/snippets/ide-source-snippets.c
diff --git a/libide/ide-source-snippets.h b/libide/snippets/ide-source-snippets.h
similarity index 100%
rename from libide/ide-source-snippets.h
rename to libide/snippets/ide-source-snippets.h
diff --git a/libide/ide-completion-item.c b/libide/sourceview/ide-completion-item.c
similarity index 100%
rename from libide/ide-completion-item.c
rename to libide/sourceview/ide-completion-item.c
diff --git a/libide/ide-completion-item.h b/libide/sourceview/ide-completion-item.h
similarity index 100%
rename from libide/ide-completion-item.h
rename to libide/sourceview/ide-completion-item.h
diff --git a/libide/ide-completion-provider.c b/libide/sourceview/ide-completion-provider.c
similarity index 100%
rename from libide/ide-completion-provider.c
rename to libide/sourceview/ide-completion-provider.c
diff --git a/libide/ide-completion-provider.h b/libide/sourceview/ide-completion-provider.h
similarity index 100%
rename from libide/ide-completion-provider.h
rename to libide/sourceview/ide-completion-provider.h
diff --git a/libide/ide-completion-results.c b/libide/sourceview/ide-completion-results.c
similarity index 99%
rename from libide/ide-completion-results.c
rename to libide/sourceview/ide-completion-results.c
index 254991f..c2b553c 100644
--- a/libide/ide-completion-results.c
+++ b/libide/sourceview/ide-completion-results.c
@@ -18,13 +18,13 @@
 
 #define G_LOG_DOMAIN "ide-completion-results"
 
+#include <egg-counter.h>
 #include <string.h>
 
-#include "egg-counter.h"
-
-#include "ide-completion-results.h"
 #include "ide-debug.h"
-#include "ide-list-inline.h"
+
+#include "sourceview/ide-completion-results.h"
+#include "util/ide-list-inline.h"
 
 typedef struct
 {
diff --git a/libide/ide-completion-results.h b/libide/sourceview/ide-completion-results.h
similarity index 100%
rename from libide/ide-completion-results.h
rename to libide/sourceview/ide-completion-results.h
diff --git a/libide/ide-indenter.c b/libide/sourceview/ide-indenter.c
similarity index 100%
rename from libide/ide-indenter.c
rename to libide/sourceview/ide-indenter.c
diff --git a/libide/ide-indenter.h b/libide/sourceview/ide-indenter.h
similarity index 100%
rename from libide/ide-indenter.h
rename to libide/sourceview/ide-indenter.h
diff --git a/libide/ide-language.c b/libide/sourceview/ide-language.c
similarity index 97%
rename from libide/ide-language.c
rename to libide/sourceview/ide-language.c
index 8459eac..6f633c8 100644
--- a/libide/ide-language.c
+++ b/libide/sourceview/ide-language.c
@@ -21,8 +21,8 @@
 #include <string.h>
 #include <tmpl-glib.h>
 
-#include "ide-language.h"
-#include "ide-line-reader.h"
+#include "sourceview/ide-language.h"
+#include "util/ide-line-reader.h"
 
 gchar *
 ide_language_format_header (GtkSourceLanguage *self,
diff --git a/libide/ide-language.h b/libide/sourceview/ide-language.h
similarity index 100%
rename from libide/ide-language.h
rename to libide/sourceview/ide-language.h
diff --git a/libide/ide-line-change-gutter-renderer.c b/libide/sourceview/ide-line-change-gutter-renderer.c
similarity index 98%
rename from libide/ide-line-change-gutter-renderer.c
rename to libide/sourceview/ide-line-change-gutter-renderer.c
index 47a429e..2dbd896 100644
--- a/libide/ide-line-change-gutter-renderer.c
+++ b/libide/sourceview/ide-line-change-gutter-renderer.c
@@ -16,11 +16,14 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "ide-buffer.h"
+#define G_LOG_DOMAIN "ide-line-change-gutter-renderer"
+
 #include "ide-context.h"
-#include "ide-file.h"
-#include "ide-line-change-gutter-renderer.h"
-#include "ide-vcs.h"
+
+#include "buffers/ide-buffer.h"
+#include "files/ide-file.h"
+#include "sourceview/ide-line-change-gutter-renderer.h"
+#include "vcs/ide-vcs.h"
 
 #define DELETE_WIDTH  5.0
 #define DELETE_HEIGHT 8.0
diff --git a/libide/ide-line-change-gutter-renderer.h b/libide/sourceview/ide-line-change-gutter-renderer.h
similarity index 100%
rename from libide/ide-line-change-gutter-renderer.h
rename to libide/sourceview/ide-line-change-gutter-renderer.h
diff --git a/libide/ide-line-diagnostics-gutter-renderer.c 
b/libide/sourceview/ide-line-diagnostics-gutter-renderer.c
similarity index 94%
rename from libide/ide-line-diagnostics-gutter-renderer.c
rename to libide/sourceview/ide-line-diagnostics-gutter-renderer.c
index 3e0426e..95181cb 100644
--- a/libide/ide-line-diagnostics-gutter-renderer.c
+++ b/libide/sourceview/ide-line-diagnostics-gutter-renderer.c
@@ -16,8 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "ide-buffer.h"
-#include "ide-line-diagnostics-gutter-renderer.h"
+#define G_LOG_DOMAIN "ide-line-diagnostics-gutter-renderer"
+
+#include "buffers/ide-buffer.h"
+#include "sourceview/ide-line-diagnostics-gutter-renderer.h"
 
 struct _IdeLineDiagnosticsGutterRenderer
 {
diff --git a/libide/ide-line-diagnostics-gutter-renderer.h 
b/libide/sourceview/ide-line-diagnostics-gutter-renderer.h
similarity index 100%
rename from libide/ide-line-diagnostics-gutter-renderer.h
rename to libide/sourceview/ide-line-diagnostics-gutter-renderer.h
diff --git a/libide/ide-source-iter.c b/libide/sourceview/ide-source-iter.c
similarity index 100%
rename from libide/ide-source-iter.c
rename to libide/sourceview/ide-source-iter.c
diff --git a/libide/ide-source-iter.h b/libide/sourceview/ide-source-iter.h
similarity index 100%
rename from libide/ide-source-iter.h
rename to libide/sourceview/ide-source-iter.h
diff --git a/libide/ide-source-map.c b/libide/sourceview/ide-source-map.c
similarity index 99%
rename from libide/ide-source-map.c
rename to libide/sourceview/ide-source-map.c
index 859bac6..4327dbb 100644
--- a/libide/ide-source-map.c
+++ b/libide/sourceview/ide-source-map.c
@@ -18,10 +18,11 @@
 
 #define G_LOG_DOMAIN "ide-source-map"
 
+#include <egg-signal-group.h>
 #include <glib/gi18n.h>
 
-#include "egg-signal-group.h"
-#include "ide-buffer.h"
+#include "buffers/ide-buffer.h"
+
 #include "ide-line-change-gutter-renderer.h"
 #include "ide-source-map.h"
 #include "ide-source-view.h"
diff --git a/libide/ide-source-map.h b/libide/sourceview/ide-source-map.h
similarity index 83%
rename from libide/ide-source-map.h
rename to libide/sourceview/ide-source-map.h
index 1f9548b..c016d0e 100644
--- a/libide/ide-source-map.h
+++ b/libide/sourceview/ide-source-map.h
@@ -23,10 +23,9 @@
 
 G_BEGIN_DECLS
 
-#define IDE_TYPE_SOURCE_MAP            (ide_source_map_get_type())
+#define IDE_TYPE_SOURCE_MAP (ide_source_map_get_type())
 
-G_DECLARE_FINAL_TYPE (IdeSourceMap, ide_source_map,
-                      IDE, SOURCE_MAP, GtkSourceMap)
+G_DECLARE_FINAL_TYPE (IdeSourceMap, ide_source_map, IDE, SOURCE_MAP, GtkSourceMap)
 
 G_END_DECLS
 
diff --git a/libide/ide-source-style-scheme.c b/libide/sourceview/ide-source-style-scheme.c
similarity index 100%
rename from libide/ide-source-style-scheme.c
rename to libide/sourceview/ide-source-style-scheme.c
diff --git a/libide/ide-source-style-scheme.h b/libide/sourceview/ide-source-style-scheme.h
similarity index 100%
rename from libide/ide-source-style-scheme.h
rename to libide/sourceview/ide-source-style-scheme.h
diff --git a/libide/ide-source-view-capture.c b/libide/sourceview/ide-source-view-capture.c
similarity index 100%
rename from libide/ide-source-view-capture.c
rename to libide/sourceview/ide-source-view-capture.c
diff --git a/libide/ide-source-view-capture.h b/libide/sourceview/ide-source-view-capture.h
similarity index 100%
rename from libide/ide-source-view-capture.h
rename to libide/sourceview/ide-source-view-capture.h
diff --git a/libide/ide-source-view-mode.c b/libide/sourceview/ide-source-view-mode.c
similarity index 99%
rename from libide/ide-source-view-mode.c
rename to libide/sourceview/ide-source-view-mode.c
index 73e9387..313bb47 100644
--- a/libide/ide-source-view-mode.c
+++ b/libide/sourceview/ide-source-view-mode.c
@@ -22,8 +22,9 @@
 #include <glib/gi18n.h>
 
 #include "ide-debug.h"
-#include "ide-source-view.h"
-#include "ide-source-view-mode.h"
+
+#include "sourceview/ide-source-view.h"
+#include "sourceview/ide-source-view-mode.h"
 
 struct _IdeSourceViewMode
 {
diff --git a/libide/ide-source-view-mode.h b/libide/sourceview/ide-source-view-mode.h
similarity index 100%
rename from libide/ide-source-view-mode.h
rename to libide/sourceview/ide-source-view-mode.h
diff --git a/libide/ide-source-view-movements.c b/libide/sourceview/ide-source-view-movements.c
similarity index 99%
rename from libide/ide-source-view-movements.c
rename to libide/sourceview/ide-source-view-movements.c
index 96b37bb..eefda1c 100644
--- a/libide/ide-source-view-movements.c
+++ b/libide/sourceview/ide-source-view-movements.c
@@ -16,17 +16,18 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#define G_LOG_DOMAIN "ide-source-view"
+#define G_LOG_DOMAIN "ide-source-view-movements"
 
 #include <string.h>
 
-#include "ide-debug.h"
 #include "ide-enums.h"
+#include "ide-debug.h"
 #include "ide-internal.h"
-#include "ide-cairo.h"
-#include "ide-source-iter.h"
-#include "ide-source-view-movements.h"
-#include "ide-text-iter.h"
+
+#include "sourceview/ide-source-iter.h"
+#include "sourceview/ide-source-view-movements.h"
+#include "sourceview/ide-text-iter.h"
+#include "util/ide-cairo.h"
 
 #define ANCHOR_BEGIN "SELECTION_ANCHOR_BEGIN"
 #define ANCHOR_END   "SELECTION_ANCHOR_END"
diff --git a/libide/ide-source-view-movements.h b/libide/sourceview/ide-source-view-movements.h
similarity index 100%
rename from libide/ide-source-view-movements.h
rename to libide/sourceview/ide-source-view-movements.h
diff --git a/libide/ide-source-view.c b/libide/sourceview/ide-source-view.c
similarity index 99%
rename from libide/ide-source-view.c
rename to libide/sourceview/ide-source-view.c
index ecfaba6..bb04d0a 100644
--- a/libide/ide-source-view.c
+++ b/libide/sourceview/ide-source-view.c
@@ -21,54 +21,54 @@
 #include <glib/gi18n.h>
 #include <stdlib.h>
 
-#include "egg-animation.h"
-#include "egg-binding-group.h"
-#include "egg-counter.h"
-#include "egg-signal-group.h"
-#include "egg-widget-action-group.h"
-
-#include "ide-application.h"
-#include "ide-back-forward-item.h"
-#include "ide-back-forward-list.h"
-#include "ide-box-theatric.h"
-#include "ide-buffer.h"
-#include "ide-buffer-manager.h"
-#include "ide-cairo.h"
-#include "ide-completion-provider.h"
+#include <egg-animation.h>
+#include <egg-binding-group.h>
+#include <egg-counter.h>
+#include <egg-signal-group.h>
+#include <egg-widget-action-group.h>
+
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-diagnostic.h"
 #include "ide-enums.h"
-#include "ide-extension-adapter.h"
-#include "ide-extension-set-adapter.h"
-#include "ide-file.h"
-#include "ide-file-settings.h"
-#include "ide-fixit.h"
-#include "ide-gdk.h"
-#include "ide-gtk.h"
-#include "ide-highlighter.h"
 #include "ide-internal.h"
-#include "ide-indenter.h"
-#include "ide-line-change-gutter-renderer.h"
-#include "ide-line-diagnostics-gutter-renderer.h"
-#include "ide-pango.h"
-#include "ide-rgba.h"
-#include "ide-source-range.h"
-#include "ide-source-snippet.h"
-#include "ide-source-snippet-chunk.h"
-#include "ide-source-snippet-completion-provider.h"
-#include "ide-source-snippet-context.h"
-#include "ide-source-snippet-private.h"
-#include "ide-source-snippets-manager.h"
-#include "ide-source-location.h"
-#include "ide-source-view.h"
-#include "ide-source-view-capture.h"
-#include "ide-source-view-mode.h"
-#include "ide-source-view-movements.h"
-#include "ide-symbol.h"
-#include "ide-text-util.h"
-#include "ide-vcs.h"
-#include "ide-workbench-private.h"
+
+#include "application/ide-application.h"
+#include "buffers/ide-buffer-manager.h"
+#include "buffers/ide-buffer.h"
+#include "diagnostics/ide-diagnostic.h"
+#include "diagnostics/ide-fixit.h"
+#include "diagnostics/ide-source-location.h"
+#include "diagnostics/ide-source-range.h"
+#include "files/ide-file-settings.h"
+#include "files/ide-file.h"
+#include "history/ide-back-forward-item.h"
+#include "history/ide-back-forward-list.h"
+#include "plugins/ide-extension-adapter.h"
+#include "plugins/ide-extension-set-adapter.h"
+#include "snippets/ide-source-snippet-chunk.h"
+#include "snippets/ide-source-snippet-completion-provider.h"
+#include "snippets/ide-source-snippet-context.h"
+#include "snippets/ide-source-snippet-private.h"
+#include "snippets/ide-source-snippet.h"
+#include "snippets/ide-source-snippets-manager.h"
+#include "sourceview/ide-completion-provider.h"
+#include "sourceview/ide-indenter.h"
+#include "sourceview/ide-line-change-gutter-renderer.h"
+#include "sourceview/ide-line-diagnostics-gutter-renderer.h"
+#include "sourceview/ide-source-view-capture.h"
+#include "sourceview/ide-source-view-mode.h"
+#include "sourceview/ide-source-view-movements.h"
+#include "sourceview/ide-source-view.h"
+#include "sourceview/ide-text-util.h"
+#include "symbols/ide-symbol.h"
+#include "theatrics/ide-box-theatric.h"
+#include "util/ide-cairo.h"
+#include "util/ide-gdk.h"
+#include "util/ide-gtk.h"
+#include "util/ide-pango.h"
+#include "util/ide-rgba.h"
+#include "vcs/ide-vcs.h"
+#include "workbench/ide-workbench-private.h"
 
 #define INCLUDE_STATEMENTS "^#include[\\s]+[\\\"\\<][^\\s\\\"\\\'\\<\\>[:cntrl:]]+[\\\"\\>]"
 
diff --git a/libide/ide-source-view.h b/libide/sourceview/ide-source-view.h
similarity index 100%
rename from libide/ide-source-view.h
rename to libide/sourceview/ide-source-view.h
diff --git a/libide/ide-text-iter.c b/libide/sourceview/ide-text-iter.c
similarity index 99%
rename from libide/ide-text-iter.c
rename to libide/sourceview/ide-text-iter.c
index 4c0ca68..aea3e83 100644
--- a/libide/ide-text-iter.c
+++ b/libide/sourceview/ide-text-iter.c
@@ -16,13 +16,16 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-text-iter"
+
 #include <string.h>
 
 #include <gtk/gtk.h>
 
 #include "ide-debug.h"
 #include "ide-macros.h"
-#include "ide-text-iter.h"
+
+#include "sourceview/ide-text-iter.h"
 
 typedef enum
 {
diff --git a/libide/ide-text-iter.h b/libide/sourceview/ide-text-iter.h
similarity index 100%
rename from libide/ide-text-iter.h
rename to libide/sourceview/ide-text-iter.h
diff --git a/libide/util/ide-text-util.c b/libide/sourceview/ide-text-util.c
similarity index 100%
rename from libide/util/ide-text-util.c
rename to libide/sourceview/ide-text-util.c
diff --git a/libide/util/ide-text-util.h b/libide/sourceview/ide-text-util.h
similarity index 100%
rename from libide/util/ide-text-util.h
rename to libide/sourceview/ide-text-util.h
diff --git a/libide/ide-symbol-node.c b/libide/symbols/ide-symbol-node.c
similarity index 100%
rename from libide/ide-symbol-node.c
rename to libide/symbols/ide-symbol-node.c
diff --git a/libide/ide-symbol-node.h b/libide/symbols/ide-symbol-node.h
similarity index 94%
rename from libide/ide-symbol-node.h
rename to libide/symbols/ide-symbol-node.h
index 771b25d..ff420fe 100644
--- a/libide/ide-symbol-node.h
+++ b/libide/symbols/ide-symbol-node.h
@@ -20,8 +20,9 @@
 #define IDE_SYMBOL_NODE_H
 
 #include "ide-object.h"
-#include "ide-symbol.h"
-#include "ide-source-location.h"
+
+#include "symbols/ide-symbol.h"
+#include "diagnostics/ide-source-location.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-symbol-resolver.c b/libide/symbols/ide-symbol-resolver.c
similarity index 98%
rename from libide/ide-symbol-resolver.c
rename to libide/symbols/ide-symbol-resolver.c
index c5a2c7d..c60abbd 100644
--- a/libide/ide-symbol-resolver.c
+++ b/libide/symbols/ide-symbol-resolver.c
@@ -19,8 +19,9 @@
 #define G_LOG_DOMAIN "ide-symbol-resolver"
 
 #include "ide-context.h"
-#include "ide-file.h"
-#include "ide-symbol-resolver.h"
+
+#include "files/ide-file.h"
+#include "symbols/ide-symbol-resolver.h"
 
 G_DEFINE_INTERFACE (IdeSymbolResolver, ide_symbol_resolver, IDE_TYPE_OBJECT)
 
diff --git a/libide/ide-symbol-resolver.h b/libide/symbols/ide-symbol-resolver.h
similarity index 100%
rename from libide/ide-symbol-resolver.h
rename to libide/symbols/ide-symbol-resolver.h
diff --git a/libide/ide-symbol-tree.c b/libide/symbols/ide-symbol-tree.c
similarity index 100%
rename from libide/ide-symbol-tree.c
rename to libide/symbols/ide-symbol-tree.c
diff --git a/libide/ide-symbol-tree.h b/libide/symbols/ide-symbol-tree.h
similarity index 100%
rename from libide/ide-symbol-tree.h
rename to libide/symbols/ide-symbol-tree.h
diff --git a/libide/ide-symbol.c b/libide/symbols/ide-symbol.c
similarity index 97%
rename from libide/ide-symbol.c
rename to libide/symbols/ide-symbol.c
index 077cdf2..321eb2f 100644
--- a/libide/ide-symbol.c
+++ b/libide/symbols/ide-symbol.c
@@ -18,10 +18,10 @@
 
 #define G_LOG_DOMAIN "ide-symbol"
 
-#include "egg-counter.h"
+#include <egg-counter.h>
 
-#include "ide-symbol.h"
-#include "ide-source-location.h"
+#include "diagnostics/ide-source-location.h"
+#include "symbols/ide-symbol.h"
 
 struct _IdeSymbol
 {
diff --git a/libide/ide-symbol.h b/libide/symbols/ide-symbol.h
similarity index 100%
rename from libide/ide-symbol.h
rename to libide/symbols/ide-symbol.h
diff --git a/libide/ide-tags-builder.c b/libide/symbols/ide-tags-builder.c
similarity index 100%
rename from libide/ide-tags-builder.c
rename to libide/symbols/ide-tags-builder.c
diff --git a/libide/ide-tags-builder.h b/libide/symbols/ide-tags-builder.h
similarity index 100%
rename from libide/ide-tags-builder.h
rename to libide/symbols/ide-tags-builder.h
diff --git a/libide/theatrics/ide-box-theatric.c b/libide/theatrics/ide-box-theatric.c
index 061828e..d470091 100644
--- a/libide/theatrics/ide-box-theatric.c
+++ b/libide/theatrics/ide-box-theatric.c
@@ -16,13 +16,13 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#define G_LOG_DOMAIN "theatrics"
+#define G_LOG_DOMAIN "ide-box-theatric"
 
+#include <egg-animation.h>
 #include <glib/gi18n.h>
 
-#include "egg-animation.h"
-#include "ide-box-theatric.h"
-#include "ide-cairo.h"
+#include "theatrics/ide-box-theatric.h"
+#include "util/ide-cairo.h"
 
 struct _IdeBoxTheatric
 {
diff --git a/libide/ide-css-provider.c b/libide/theming/ide-css-provider.c
similarity index 99%
rename from libide/ide-css-provider.c
rename to libide/theming/ide-css-provider.c
index 33f1a8b..2d9154a 100644
--- a/libide/ide-css-provider.c
+++ b/libide/theming/ide-css-provider.c
@@ -20,9 +20,10 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-css-provider.h"
 #include "ide-debug.h"
 
+#include "theming/ide-css-provider.h"
+
 struct _IdeCssProvider
 {
   GtkCssProvider  parent_instance;
diff --git a/libide/ide-css-provider.h b/libide/theming/ide-css-provider.h
similarity index 100%
rename from libide/ide-css-provider.h
rename to libide/theming/ide-css-provider.h
diff --git a/libide/ide-theme-manager.c b/libide/theming/ide-theme-manager.c
similarity index 100%
rename from libide/ide-theme-manager.c
rename to libide/theming/ide-theme-manager.c
diff --git a/libide/ide-theme-manager.h b/libide/theming/ide-theme-manager.h
similarity index 100%
rename from libide/ide-theme-manager.h
rename to libide/theming/ide-theme-manager.h
diff --git a/libide/ide-thread-pool.c b/libide/threading/ide-thread-pool.c
similarity index 98%
rename from libide/ide-thread-pool.c
rename to libide/threading/ide-thread-pool.c
index 4eaa613..5803342 100644
--- a/libide/ide-thread-pool.c
+++ b/libide/threading/ide-thread-pool.c
@@ -18,10 +18,11 @@
 
 #define G_LOG_DOMAIN "ide-thread-pool"
 
-#include "egg-counter.h"
+#include <egg-counter.h>
 
 #include "ide-debug.h"
-#include "ide-thread-pool.h"
+
+#include "threading/ide-thread-pool.h"
 
 #define COMPILER_MAX_THREADS 4
 #define INDEXER_MAX_THREADS  1
diff --git a/libide/ide-thread-pool.h b/libide/threading/ide-thread-pool.h
similarity index 100%
rename from libide/ide-thread-pool.h
rename to libide/threading/ide-thread-pool.h
diff --git a/libide/ide-tree-builder.c b/libide/tree/ide-tree-builder.c
similarity index 100%
rename from libide/ide-tree-builder.c
rename to libide/tree/ide-tree-builder.c
diff --git a/libide/ide-tree-builder.h b/libide/tree/ide-tree-builder.h
similarity index 100%
rename from libide/ide-tree-builder.h
rename to libide/tree/ide-tree-builder.h
diff --git a/libide/ide-tree-node.c b/libide/tree/ide-tree-node.c
similarity index 100%
rename from libide/ide-tree-node.c
rename to libide/tree/ide-tree-node.c
diff --git a/libide/ide-tree-node.h b/libide/tree/ide-tree-node.h
similarity index 100%
rename from libide/ide-tree-node.h
rename to libide/tree/ide-tree-node.h
diff --git a/libide/ide-tree-private.h b/libide/tree/ide-tree-private.h
similarity index 100%
rename from libide/ide-tree-private.h
rename to libide/tree/ide-tree-private.h
diff --git a/libide/ide-tree-types.h b/libide/tree/ide-tree-types.h
similarity index 100%
rename from libide/ide-tree-types.h
rename to libide/tree/ide-tree-types.h
diff --git a/libide/ide-tree.c b/libide/tree/ide-tree.c
similarity index 99%
rename from libide/ide-tree.c
rename to libide/tree/ide-tree.c
index b58edba..f332ec3 100644
--- a/libide/ide-tree.c
+++ b/libide/tree/ide-tree.c
@@ -16,15 +16,16 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#define G_LOG_DOMAIN "tree"
+#define G_LOG_DOMAIN "ide-tree"
 
 #include <glib/gi18n.h>
-#include <ide.h>
 
-#include "ide-gtk.h"
-#include "ide-tree.h"
-#include "ide-tree-node.h"
-#include "ide-tree-private.h"
+#include "ide-debug.h"
+
+#include "tree/ide-tree.h"
+#include "tree/ide-tree-node.h"
+#include "tree/ide-tree-private.h"
+#include "util/ide-gtk.h"
 
 typedef struct
 {
diff --git a/libide/ide-tree.h b/libide/tree/ide-tree.h
similarity index 100%
rename from libide/ide-tree.h
rename to libide/tree/ide-tree.h
diff --git a/libide/ide-async-helper.c b/libide/util/ide-async-helper.c
similarity index 100%
rename from libide/ide-async-helper.c
rename to libide/util/ide-async-helper.c
diff --git a/libide/ide-async-helper.h b/libide/util/ide-async-helper.h
similarity index 100%
rename from libide/ide-async-helper.h
rename to libide/util/ide-async-helper.h
diff --git a/libide/ide-battery-monitor.c b/libide/util/ide-battery-monitor.c
similarity index 100%
rename from libide/ide-battery-monitor.c
rename to libide/util/ide-battery-monitor.c
diff --git a/libide/ide-battery-monitor.h b/libide/util/ide-battery-monitor.h
similarity index 100%
rename from libide/ide-battery-monitor.h
rename to libide/util/ide-battery-monitor.h
diff --git a/libide/util/ide-gtk.c b/libide/util/ide-gtk.c
index 42b28a6..41b2650 100644
--- a/libide/util/ide-gtk.c
+++ b/libide/util/ide-gtk.c
@@ -18,10 +18,11 @@
 
 #define G_LOG_DOMAIN "ide-gtk"
 
-#include "egg-animation.h"
+#include <egg-animation.h>
 
 #include "ide-debug.h"
-#include "ide-gtk.h"
+
+#include "util/ide-gtk.h"
 
 gboolean
 ide_widget_action (GtkWidget   *widget,
diff --git a/libide/util/ide-gtk.h b/libide/util/ide-gtk.h
index eaf91af..df586c4 100644
--- a/libide/util/ide-gtk.h
+++ b/libide/util/ide-gtk.h
@@ -22,7 +22,8 @@
 #include <gtk/gtk.h>
 
 #include "ide-context.h"
-#include "ide-workbench.h"
+
+#include "workbench/ide-workbench.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-progress.c b/libide/util/ide-progress.c
similarity index 100%
rename from libide/ide-progress.c
rename to libide/util/ide-progress.c
diff --git a/libide/ide-progress.h b/libide/util/ide-progress.h
similarity index 100%
rename from libide/ide-progress.h
rename to libide/util/ide-progress.h
diff --git a/libide/ide-ref-ptr.c b/libide/util/ide-ref-ptr.c
similarity index 100%
rename from libide/ide-ref-ptr.c
rename to libide/util/ide-ref-ptr.c
diff --git a/libide/ide-ref-ptr.h b/libide/util/ide-ref-ptr.h
similarity index 100%
rename from libide/ide-ref-ptr.h
rename to libide/util/ide-ref-ptr.h
diff --git a/libide/ide-settings.c b/libide/util/ide-settings.c
similarity index 99%
rename from libide/ide-settings.c
rename to libide/util/ide-settings.c
index 9c16648..b1b5dea 100644
--- a/libide/ide-settings.c
+++ b/libide/util/ide-settings.c
@@ -18,17 +18,17 @@
 
 #define G_LOG_DOMAIN "ide-settings"
 
+#include <egg-settings-sandwich.h>
 #include <glib/gi18n.h>
 #include <stdlib.h>
 
-#include "egg-settings-sandwich.h"
-
 #include "ide-context.h"
 #include "ide-debug.h"
-#include "ide-project.h"
-#include "ide-settings.h"
 #include "ide-internal.h"
 
+#include "projects/ide-project.h"
+#include "util/ide-settings.h"
+
 /**
  * SECTION:ide-settings
  * @title: IdeSettings
diff --git a/libide/ide-settings.h b/libide/util/ide-settings.h
similarity index 100%
rename from libide/ide-settings.h
rename to libide/util/ide-settings.h
diff --git a/libide/ide-uri.c b/libide/util/ide-uri.c
similarity index 100%
rename from libide/ide-uri.c
rename to libide/util/ide-uri.c
diff --git a/libide/ide-uri.h b/libide/util/ide-uri.h
similarity index 100%
rename from libide/ide-uri.h
rename to libide/util/ide-uri.h
diff --git a/libide/ide-vcs-config.c b/libide/vcs/ide-vcs-config.c
similarity index 100%
rename from libide/ide-vcs-config.c
rename to libide/vcs/ide-vcs-config.c
diff --git a/libide/ide-vcs-config.h b/libide/vcs/ide-vcs-config.h
similarity index 100%
rename from libide/ide-vcs-config.h
rename to libide/vcs/ide-vcs-config.h
diff --git a/libide/ide-vcs-initializer.c b/libide/vcs/ide-vcs-initializer.c
similarity index 100%
rename from libide/ide-vcs-initializer.c
rename to libide/vcs/ide-vcs-initializer.c
diff --git a/libide/ide-vcs-initializer.h b/libide/vcs/ide-vcs-initializer.h
similarity index 100%
rename from libide/ide-vcs-initializer.h
rename to libide/vcs/ide-vcs-initializer.h
diff --git a/libide/ide-vcs-uri.c b/libide/vcs/ide-vcs-uri.c
similarity index 100%
rename from libide/ide-vcs-uri.c
rename to libide/vcs/ide-vcs-uri.c
diff --git a/libide/ide-vcs-uri.h b/libide/vcs/ide-vcs-uri.h
similarity index 100%
rename from libide/ide-vcs-uri.h
rename to libide/vcs/ide-vcs-uri.h
diff --git a/libide/ide-vcs.c b/libide/vcs/ide-vcs.c
similarity index 97%
rename from libide/ide-vcs.c
rename to libide/vcs/ide-vcs.c
index 98f0450..115b6cb 100644
--- a/libide/ide-vcs.c
+++ b/libide/vcs/ide-vcs.c
@@ -16,10 +16,13 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "ide-buffer.h"
-#include "ide-buffer-change-monitor.h"
+#define G_LOG_DOMAIN "ide-vcs"
+
 #include "ide-context.h"
-#include "ide-vcs.h"
+
+#include "buffers/ide-buffer.h"
+#include "buffers/ide-buffer-change-monitor.h"
+#include "vcs/ide-vcs.h"
 
 G_DEFINE_INTERFACE (IdeVcs, ide_vcs, IDE_TYPE_OBJECT)
 
diff --git a/libide/ide-vcs.h b/libide/vcs/ide-vcs.h
similarity index 100%
rename from libide/ide-vcs.h
rename to libide/vcs/ide-vcs.h
diff --git a/libide/ide-layout-grid.c b/libide/workbench/ide-layout-grid.c
similarity index 99%
rename from libide/ide-layout-grid.c
rename to libide/workbench/ide-layout-grid.c
index bec9f20..3b7c8ba 100644
--- a/libide/ide-layout-grid.c
+++ b/libide/workbench/ide-layout-grid.c
@@ -20,11 +20,11 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-gtk.h"
-#include "ide-layout-grid.h"
-#include "ide-layout-stack.h"
-#include "ide-layout-stack-private.h"
-#include "ide-layout-view.h"
+#include "util/ide-gtk.h"
+#include "workbench/ide-layout-grid.h"
+#include "workbench/ide-layout-stack.h"
+#include "workbench/ide-layout-stack-private.h"
+#include "workbench/ide-layout-view.h"
 
 struct _IdeLayoutGrid
 {
diff --git a/libide/ide-layout-grid.h b/libide/workbench/ide-layout-grid.h
similarity index 100%
rename from libide/ide-layout-grid.h
rename to libide/workbench/ide-layout-grid.h
diff --git a/libide/ide-layout-pane.c b/libide/workbench/ide-layout-pane.c
similarity index 100%
rename from libide/ide-layout-pane.c
rename to libide/workbench/ide-layout-pane.c
diff --git a/libide/ide-layout-pane.h b/libide/workbench/ide-layout-pane.h
similarity index 100%
rename from libide/ide-layout-pane.h
rename to libide/workbench/ide-layout-pane.h
diff --git a/libide/ide-layout-stack-actions.c b/libide/workbench/ide-layout-stack-actions.c
similarity index 96%
rename from libide/ide-layout-stack-actions.c
rename to libide/workbench/ide-layout-stack-actions.c
index 5085aa8..3ae878f 100644
--- a/libide/ide-layout-stack-actions.c
+++ b/libide/workbench/ide-layout-stack-actions.c
@@ -16,15 +16,16 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#define G_LOG_DOMAIN "gb-view-stack"
+#define G_LOG_DOMAIN "ide-layout-stack-actions"
 
 #include "ide-debug.h"
-#include "ide-layout.h"
-#include "ide-layout-grid.h"
-#include "ide-layout-stack.h"
-#include "ide-layout-stack-actions.h"
-#include "ide-layout-stack-private.h"
-#include "ide-layout-view.h"
+
+#include "workbench/ide-layout.h"
+#include "workbench/ide-layout-grid.h"
+#include "workbench/ide-layout-stack.h"
+#include "workbench/ide-layout-stack-actions.h"
+#include "workbench/ide-layout-stack-private.h"
+#include "workbench/ide-layout-view.h"
 
 static gboolean
 ide_layout_stack_actions_close_cb (gpointer data)
diff --git a/libide/ide-layout-stack-actions.h b/libide/workbench/ide-layout-stack-actions.h
similarity index 100%
rename from libide/ide-layout-stack-actions.h
rename to libide/workbench/ide-layout-stack-actions.h
diff --git a/libide/ide-layout-stack-private.h b/libide/workbench/ide-layout-stack-private.h
similarity index 94%
rename from libide/ide-layout-stack-private.h
rename to libide/workbench/ide-layout-stack-private.h
index ae9205d..28cdd19 100644
--- a/libide/ide-layout-stack-private.h
+++ b/libide/workbench/ide-layout-stack-private.h
@@ -22,8 +22,9 @@
 #include <gtk/gtk.h>
 
 #include "ide-context.h"
-#include "ide-back-forward-list.h"
-#include "ide-layout-tab-bar.h"
+
+#include "history/ide-back-forward-list.h"
+#include "workbench/ide-layout-tab-bar.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-layout-stack-split.h b/libide/workbench/ide-layout-stack-split.h
similarity index 100%
rename from libide/ide-layout-stack-split.h
rename to libide/workbench/ide-layout-stack-split.h
diff --git a/libide/ide-layout-stack.c b/libide/workbench/ide-layout-stack.c
similarity index 96%
rename from libide/ide-layout-stack.c
rename to libide/workbench/ide-layout-stack.c
index eb81e2e..94f39dc 100644
--- a/libide/ide-layout-stack.c
+++ b/libide/workbench/ide-layout-stack.c
@@ -16,23 +16,26 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-layout-view-stack"
+
 #include <glib/gi18n.h>
 
-#include "ide-application.h"
-#include "ide-back-forward-item.h"
-#include "ide-buffer.h"
-#include "ide-buffer-manager.h"
 #include "ide-enums.h"
-#include "ide-file.h"
-#include "ide-gtk.h"
-#include "ide-layout-view.h"
-#include "ide-layout-grid.h"
-#include "ide-layout-stack.h"
-#include "ide-layout-stack-actions.h"
-#include "ide-layout-stack-private.h"
-#include "ide-layout-stack-split.h"
-#include "ide-layout-tab-bar.h"
-#include "ide-workbench.h"
+
+#include "application/ide-application.h"
+#include "buffers/ide-buffer-manager.h"
+#include "buffers/ide-buffer.h"
+#include "files/ide-file.h"
+#include "history/ide-back-forward-item.h"
+#include "util/ide-gtk.h"
+#include "workbench/ide-layout-grid.h"
+#include "workbench/ide-layout-stack-actions.h"
+#include "workbench/ide-layout-stack-private.h"
+#include "workbench/ide-layout-stack-split.h"
+#include "workbench/ide-layout-stack.h"
+#include "workbench/ide-layout-tab-bar.h"
+#include "workbench/ide-layout-view.h"
+#include "workbench/ide-workbench.h"
 
 G_DEFINE_TYPE (IdeLayoutStack, ide_layout_stack, GTK_TYPE_BIN)
 
diff --git a/libide/ide-layout-stack.h b/libide/workbench/ide-layout-stack.h
similarity index 100%
rename from libide/ide-layout-stack.h
rename to libide/workbench/ide-layout-stack.h
diff --git a/libide/ide-layout-tab-bar.c b/libide/workbench/ide-layout-tab-bar.c
similarity index 97%
rename from libide/ide-layout-tab-bar.c
rename to libide/workbench/ide-layout-tab-bar.c
index a43b1d8..8afd067 100644
--- a/libide/ide-layout-tab-bar.c
+++ b/libide/workbench/ide-layout-tab-bar.c
@@ -18,13 +18,13 @@
 
 #define G_LOG_DOMAIN "ide-layout-tab-bar"
 
-#include "ide-gtk.h"
-#include "ide-layout-stack.h"
-#include "ide-layout-tab.h"
-#include "ide-layout-tab-bar.h"
-#include "ide-layout-view.h"
-#include "ide-workbench.h"
-#include "ide-workbench-private.h"
+#include "util/ide-gtk.h"
+#include "workbench/ide-layout-stack.h"
+#include "workbench/ide-layout-tab-bar.h"
+#include "workbench/ide-layout-tab.h"
+#include "workbench/ide-layout-view.h"
+#include "workbench/ide-workbench-private.h"
+#include "workbench/ide-workbench.h"
 
 struct _IdeLayoutTabBar
 {
diff --git a/libide/ide-layout-tab-bar.h b/libide/workbench/ide-layout-tab-bar.h
similarity index 100%
rename from libide/ide-layout-tab-bar.h
rename to libide/workbench/ide-layout-tab-bar.h
diff --git a/libide/ide-layout-tab.c b/libide/workbench/ide-layout-tab.c
similarity index 98%
rename from libide/ide-layout-tab.c
rename to libide/workbench/ide-layout-tab.c
index 47ca28a..696426e 100644
--- a/libide/ide-layout-tab.c
+++ b/libide/workbench/ide-layout-tab.c
@@ -18,11 +18,12 @@
 
 #define G_LOG_DOMAIN "ide-layout-tab"
 
-#include "ide-application.h"
-#include "ide-layout-view.h"
-#include "ide-layout-tab.h"
 #include "ide-macros.h"
 
+#include "application/ide-application.h"
+#include "workbench/ide-layout-view.h"
+#include "workbench/ide-layout-tab.h"
+
 struct _IdeLayoutTab
 {
   GtkEventBox    parent_instance;
diff --git a/libide/ide-layout-tab.h b/libide/workbench/ide-layout-tab.h
similarity index 100%
rename from libide/ide-layout-tab.h
rename to libide/workbench/ide-layout-tab.h
diff --git a/libide/ide-layout-view.c b/libide/workbench/ide-layout-view.c
similarity index 98%
rename from libide/ide-layout-view.c
rename to libide/workbench/ide-layout-view.c
index 8678523..809ff23 100644
--- a/libide/ide-layout-view.c
+++ b/libide/workbench/ide-layout-view.c
@@ -16,10 +16,12 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-layout-view"
+
 #include <glib/gi18n.h>
 
-#include "ide-application.h"
-#include "ide-layout-view.h"
+#include "application/ide-application.h"
+#include "workbench/ide-layout-view.h"
 
 typedef struct
 {
diff --git a/libide/ide-layout-view.h b/libide/workbench/ide-layout-view.h
similarity index 97%
rename from libide/ide-layout-view.h
rename to libide/workbench/ide-layout-view.h
index 8a99fa1..9f58dee 100644
--- a/libide/ide-layout-view.h
+++ b/libide/workbench/ide-layout-view.h
@@ -21,8 +21,8 @@
 
 #include <gtk/gtk.h>
 
-#include "ide-back-forward-list.h"
-#include "ide-source-location.h"
+#include "diagnostics/ide-source-location.h"
+#include "history/ide-back-forward-list.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-layout.c b/libide/workbench/ide-layout.c
similarity index 100%
rename from libide/ide-layout.c
rename to libide/workbench/ide-layout.c
diff --git a/libide/ide-layout.h b/libide/workbench/ide-layout.h
similarity index 100%
rename from libide/ide-layout.h
rename to libide/workbench/ide-layout.h
diff --git a/libide/ide-perspective-switcher.c b/libide/workbench/ide-perspective-switcher.c
similarity index 100%
rename from libide/ide-perspective-switcher.c
rename to libide/workbench/ide-perspective-switcher.c
diff --git a/libide/ide-perspective-switcher.h b/libide/workbench/ide-perspective-switcher.h
similarity index 100%
rename from libide/ide-perspective-switcher.h
rename to libide/workbench/ide-perspective-switcher.h
diff --git a/libide/ide-perspective.c b/libide/workbench/ide-perspective.c
similarity index 100%
rename from libide/ide-perspective.c
rename to libide/workbench/ide-perspective.c
diff --git a/libide/ide-perspective.h b/libide/workbench/ide-perspective.h
similarity index 100%
rename from libide/ide-perspective.h
rename to libide/workbench/ide-perspective.h
diff --git a/libide/ide-workbench-actions.c b/libide/workbench/ide-workbench-actions.c
similarity index 97%
rename from libide/ide-workbench-actions.c
rename to libide/workbench/ide-workbench-actions.c
index a92d498..7e11692 100644
--- a/libide/ide-workbench-actions.c
+++ b/libide/workbench/ide-workbench-actions.c
@@ -20,11 +20,12 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-application.h"
-#include "ide-buffer-manager.h"
 #include "ide-debug.h"
-#include "ide-workbench.h"
-#include "ide-workbench-private.h"
+
+#include "application/ide-application.h"
+#include "buffers/ide-buffer-manager.h"
+#include "workbench/ide-workbench-private.h"
+#include "workbench/ide-workbench.h"
 
 static void
 ide_workbench_actions_open_with_dialog_cb (GObject      *object,
diff --git a/libide/ide-workbench-addin.c b/libide/workbench/ide-workbench-addin.c
similarity index 100%
rename from libide/ide-workbench-addin.c
rename to libide/workbench/ide-workbench-addin.c
diff --git a/libide/ide-workbench-addin.h b/libide/workbench/ide-workbench-addin.h
similarity index 97%
rename from libide/ide-workbench-addin.h
rename to libide/workbench/ide-workbench-addin.h
index 14d38d1..ad97df0 100644
--- a/libide/ide-workbench-addin.h
+++ b/libide/workbench/ide-workbench-addin.h
@@ -19,9 +19,9 @@
 #ifndef IDE_WORKBENCH_ADDIN_H
 #define IDE_WORKBENCH_ADDIN_H
 
-#include "ide-perspective.h"
-#include "ide-uri.h"
-#include "ide-workbench.h"
+#include "util/ide-uri.h"
+#include "workbench/ide-perspective.h"
+#include "workbench/ide-workbench.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-workbench-header-bar.c b/libide/workbench/ide-workbench-header-bar.c
similarity index 96%
rename from libide/ide-workbench-header-bar.c
rename to libide/workbench/ide-workbench-header-bar.c
index 2a4aa61..fc6e0ec 100644
--- a/libide/ide-workbench-header-bar.c
+++ b/libide/workbench/ide-workbench-header-bar.c
@@ -18,8 +18,8 @@
 
 #define G_LOG_DOMAIN "ide-workbench-header-bar"
 
-#include "ide-application.h"
-#include "ide-workbench-header-bar.h"
+#include "application/ide-application.h"
+#include "workbench/ide-workbench-header-bar.h"
 
 typedef struct
 {
diff --git a/libide/ide-workbench-header-bar.h b/libide/workbench/ide-workbench-header-bar.h
similarity index 100%
rename from libide/ide-workbench-header-bar.h
rename to libide/workbench/ide-workbench-header-bar.h
diff --git a/libide/ide-workbench-open.c b/libide/workbench/ide-workbench-open.c
similarity index 98%
rename from libide/ide-workbench-open.c
rename to libide/workbench/ide-workbench-open.c
index 4170105..acfabcd 100644
--- a/libide/ide-workbench-open.c
+++ b/libide/workbench/ide-workbench-open.c
@@ -16,13 +16,15 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-workbench-open"
+
 #include <libpeas/peas.h>
 
-#include "ide-application.h"
-#include "ide-uri.h"
-#include "ide-workbench.h"
-#include "ide-workbench-addin.h"
-#include "ide-workbench-private.h"
+#include "application/ide-application.h"
+#include "util/ide-uri.h"
+#include "workbench/ide-workbench-addin.h"
+#include "workbench/ide-workbench-private.h"
+#include "workbench/ide-workbench.h"
 
 typedef struct
 {
diff --git a/libide/ide-workbench-private.h b/libide/workbench/ide-workbench-private.h
similarity index 100%
rename from libide/ide-workbench-private.h
rename to libide/workbench/ide-workbench-private.h
diff --git a/libide/ide-workbench.c b/libide/workbench/ide-workbench.c
similarity index 98%
rename from libide/ide-workbench.c
rename to libide/workbench/ide-workbench.c
index adc2e94..6d2e86e 100644
--- a/libide/ide-workbench.c
+++ b/libide/workbench/ide-workbench.c
@@ -21,20 +21,21 @@
 #include <glib/gi18n.h>
 
 #include "ide-debug.h"
-#include "ide-genesis-perspective.h"
-#include "ide-greeter-perspective.h"
-#include "ide-gtk.h"
-#include "ide-layout.h"
-#include "ide-layout-pane.h"
-#include "ide-layout-view.h"
-#include "ide-layout-stack.h"
+
+#include "genesis/ide-genesis-perspective.h"
+#include "greeter/ide-greeter-perspective.h"
 #include "ide-macros.h"
-#include "ide-preferences-perspective.h"
-#include "ide-window-settings.h"
-#include "ide-workbench.h"
-#include "ide-workbench-addin.h"
-#include "ide-workbench-header-bar.h"
-#include "ide-workbench-private.h"
+#include "preferences/ide-preferences-perspective.h"
+#include "util/ide-gtk.h"
+#include "util/ide-window-settings.h"
+#include "workbench/ide-layout-pane.h"
+#include "workbench/ide-layout-stack.h"
+#include "workbench/ide-layout-view.h"
+#include "workbench/ide-layout.h"
+#include "workbench/ide-workbench-addin.h"
+#include "workbench/ide-workbench-header-bar.h"
+#include "workbench/ide-workbench-private.h"
+#include "workbench/ide-workbench.h"
 
 #define STABLIZE_DELAY_MSEC 50
 
diff --git a/libide/ide-workbench.h b/libide/workbench/ide-workbench.h
similarity index 98%
rename from libide/ide-workbench.h
rename to libide/workbench/ide-workbench.h
index 33b7484..9a18534 100644
--- a/libide/ide-workbench.h
+++ b/libide/workbench/ide-workbench.h
@@ -22,8 +22,9 @@
 #include <gtk/gtk.h>
 
 #include "ide-context.h"
-#include "ide-perspective.h"
-#include "ide-uri.h"
+
+#include "util/ide-uri.h"
+#include "workbench/ide-perspective.h"
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-subprocess-launcher.c b/libide/workers/ide-subprocess-launcher.c
similarity index 98%
rename from libide/ide-subprocess-launcher.c
rename to libide/workers/ide-subprocess-launcher.c
index 5f1346a..ba37a9d 100644
--- a/libide/ide-subprocess-launcher.c
+++ b/libide/workers/ide-subprocess-launcher.c
@@ -16,16 +16,19 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-subprocess-launcher"
+
 #include <signal.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
 #include "ide-debug.h"
-#include "ide-environment.h"
-#include "ide-environment-variable.h"
 #include "ide-macros.h"
-#include "ide-subprocess-launcher.h"
+
+#include "buildsystem/ide-environment-variable.h"
+#include "buildsystem/ide-environment.h"
+#include "workers/ide-subprocess-launcher.h"
 
 typedef struct
 {
diff --git a/libide/ide-subprocess-launcher.h b/libide/workers/ide-subprocess-launcher.h
similarity index 100%
rename from libide/ide-subprocess-launcher.h
rename to libide/workers/ide-subprocess-launcher.h
diff --git a/libide/ide-worker-manager.c b/libide/workers/ide-worker-manager.c
similarity index 98%
rename from libide/ide-worker-manager.c
rename to libide/workers/ide-worker-manager.c
index 387eaf0..e202d74 100644
--- a/libide/ide-worker-manager.c
+++ b/libide/workers/ide-worker-manager.c
@@ -18,6 +18,7 @@
 
 #define G_LOG_DOMAIN "ide-worker-manager"
 
+#include <egg-counter.h>
 #include <gio/gio.h>
 #include <gio/gunixsocketaddress.h>
 #include <glib/gi18n.h>
@@ -25,11 +26,10 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "egg-counter.h"
-
 #include "ide-debug.h"
-#include "ide-worker-process.h"
-#include "ide-worker-manager.h"
+
+#include "workers/ide-worker-process.h"
+#include "workers/ide-worker-manager.h"
 
 struct _IdeWorkerManager
 {
diff --git a/libide/ide-worker-manager.h b/libide/workers/ide-worker-manager.h
similarity index 100%
rename from libide/ide-worker-manager.h
rename to libide/workers/ide-worker-manager.h
diff --git a/libide/ide-worker-process.c b/libide/workers/ide-worker-process.c
similarity index 99%
rename from libide/ide-worker-process.c
rename to libide/workers/ide-worker-process.c
index 682706d..e3102a9 100644
--- a/libide/ide-worker-process.c
+++ b/libide/workers/ide-worker-process.c
@@ -18,14 +18,14 @@
 
 #define G_LOG_DOMAIN "ide-worker-process"
 
+#include <egg-counter.h>
 #include <libpeas/peas.h>
 
-#include "egg-counter.h"
-
 #include "ide-debug.h"
-#include "ide-log.h"
-#include "ide-worker-process.h"
-#include "ide-worker.h"
+
+#include "logging/ide-log.h"
+#include "workers/ide-worker-process.h"
+#include "workers/ide-worker.h"
 
 struct _IdeWorkerProcess
 {
diff --git a/libide/ide-worker-process.h b/libide/workers/ide-worker-process.h
similarity index 100%
rename from libide/ide-worker-process.h
rename to libide/workers/ide-worker-process.h
diff --git a/libide/ide-worker.c b/libide/workers/ide-worker.c
similarity index 100%
rename from libide/ide-worker.c
rename to libide/workers/ide-worker.c
diff --git a/libide/ide-worker.h b/libide/workers/ide-worker.h
similarity index 100%
rename from libide/ide-worker.h
rename to libide/workers/ide-worker.h
diff --git a/plugins/autotools/ide-autotools-build-system.c b/plugins/autotools/ide-autotools-build-system.c
index 07940e0..12c9f97 100644
--- a/plugins/autotools/ide-autotools-build-system.c
+++ b/plugins/autotools/ide-autotools-build-system.c
@@ -18,32 +18,19 @@
 
 #define G_LOG_DOMAIN "ide-autotools-build-system"
 
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
 
+#include <egg-counter.h>
+#include <egg-task-cache.h>
 #include <glib/gi18n.h>
 #include <gio/gio.h>
 #include <gtksourceview/gtksource.h>
-
-#include "egg-counter.h"
-#include "egg-task-cache.h"
+#include <ide.h>
+#include <ide-internal.h>
 
 #include "ide-autotools-build-system.h"
 #include "ide-autotools-builder.h"
-#include "ide-buffer-manager.h"
-#include "ide-configuration.h"
-#include "ide-configuration-manager.h"
-#include "ide-context.h"
-#include "ide-debug.h"
-#include "ide-device.h"
-#include "ide-device-manager.h"
-#include "ide-file.h"
-#include "ide-internal.h"
 #include "ide-makecache.h"
-#include "ide-runtime.h"
-#include "ide-runtime-manager.h"
-#include "ide-tags-builder.h"
 
 #define MAKECACHE_KEY "makecache"
 #define DEFAULT_MAKECACHE_TTL 0
diff --git a/plugins/autotools/ide-autotools-build-system.h b/plugins/autotools/ide-autotools-build-system.h
index fd64727..0d1704c 100644
--- a/plugins/autotools/ide-autotools-build-system.h
+++ b/plugins/autotools/ide-autotools-build-system.h
@@ -19,7 +19,7 @@
 #ifndef IDE_AUTOTOOLS_BUILD_SYSTEM_H
 #define IDE_AUTOTOOLS_BUILD_SYSTEM_H
 
-#include "ide-build-system.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/autotools/ide-autotools-build-task.h b/plugins/autotools/ide-autotools-build-task.h
index 2dd19e1..f9ac97d 100644
--- a/plugins/autotools/ide-autotools-build-task.h
+++ b/plugins/autotools/ide-autotools-build-task.h
@@ -20,8 +20,7 @@
 #define IDE_AUTOTOOLS_BUILD_TASK_H
 
 #include <gio/gio.h>
-
-#include "ide-build-result.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/autotools/ide-autotools-builder.h b/plugins/autotools/ide-autotools-builder.h
index d6558cf..28be301 100644
--- a/plugins/autotools/ide-autotools-builder.h
+++ b/plugins/autotools/ide-autotools-builder.h
@@ -19,7 +19,7 @@
 #ifndef IDE_AUTOTOOLS_BUILDER_H
 #define IDE_AUTOTOOLS_BUILDER_H
 
-#include "ide-builder.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/autotools/ide-autotools-project-miner.h b/plugins/autotools/ide-autotools-project-miner.h
index 86a5d61..1aa270c 100644
--- a/plugins/autotools/ide-autotools-project-miner.h
+++ b/plugins/autotools/ide-autotools-project-miner.h
@@ -19,7 +19,7 @@
 #ifndef IDE_AUTOTOOLS_PROJECT_MINER_H
 #define IDE_AUTOTOOLS_PROJECT_MINER_H
 
-#include "ide-project-miner.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/build-tools/Makefile.am b/plugins/build-tools/Makefile.am
index 47961e0..d5cec6e 100644
--- a/plugins/build-tools/Makefile.am
+++ b/plugins/build-tools/Makefile.am
@@ -27,6 +27,10 @@ libbuild_tools_plugin_la_SOURCES = \
        gbp-build-tool.h \
        gbp-build-workbench-addin.c \
        gbp-build-workbench-addin.h \
+       ide-environment-editor-row.c \
+       ide-environment-editor-row.h \
+       ide-environment-editor.c \
+       ide-environment-editor.h \
        $(NULL)
 
 nodist_libbuild_tools_plugin_la_SOURCES = \
diff --git a/plugins/build-tools/gbp-build-configuration-view.c 
b/plugins/build-tools/gbp-build-configuration-view.c
index fd76b74..a86ed83 100644
--- a/plugins/build-tools/gbp-build-configuration-view.c
+++ b/plugins/build-tools/gbp-build-configuration-view.c
@@ -21,6 +21,7 @@
 
 #include "gbp-build-configuration-view.h"
 
+#include "ide-environment-editor.h"
 #include "ide-internal.h"
 
 struct _GbpBuildConfigurationView
diff --git a/libide/ide-environment-editor-row.c b/plugins/build-tools/ide-environment-editor-row.c
similarity index 100%
rename from libide/ide-environment-editor-row.c
rename to plugins/build-tools/ide-environment-editor-row.c
diff --git a/libide/ide-environment-editor-row.h b/plugins/build-tools/ide-environment-editor-row.h
similarity index 97%
rename from libide/ide-environment-editor-row.h
rename to plugins/build-tools/ide-environment-editor-row.h
index 309b042..b7ecb6f 100644
--- a/libide/ide-environment-editor-row.h
+++ b/plugins/build-tools/ide-environment-editor-row.h
@@ -20,8 +20,7 @@
 #define IDE_ENVIRONMENT_EDITOR_ROW_H
 
 #include <gtk/gtk.h>
-
-#include "ide-environment-variable.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/libide/ide-environment-editor.c b/plugins/build-tools/ide-environment-editor.c
similarity index 100%
rename from libide/ide-environment-editor.c
rename to plugins/build-tools/ide-environment-editor.c
diff --git a/libide/ide-environment-editor.h b/plugins/build-tools/ide-environment-editor.h
similarity index 97%
rename from libide/ide-environment-editor.h
rename to plugins/build-tools/ide-environment-editor.h
index 5862bed..1d86d0a 100644
--- a/libide/ide-environment-editor.h
+++ b/plugins/build-tools/ide-environment-editor.h
@@ -20,8 +20,7 @@
 #define IDE_ENVIRONMENT_EDITOR_H
 
 #include <gtk/gtk.h>
-
-#include "ide-environment.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/c-pack/ide-c-format-provider.c b/plugins/c-pack/ide-c-format-provider.c
index 439d122..8b51d85 100644
--- a/plugins/c-pack/ide-c-format-provider.c
+++ b/plugins/c-pack/ide-c-format-provider.c
@@ -16,6 +16,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-c-format-provider"
+
 #include <glib/gi18n.h>
 #include <gtksourceview/gtksource.h>
 
diff --git a/plugins/c-pack/ide-c-format-provider.h b/plugins/c-pack/ide-c-format-provider.h
index 5d1859b..7df5d77 100644
--- a/plugins/c-pack/ide-c-format-provider.h
+++ b/plugins/c-pack/ide-c-format-provider.h
@@ -20,9 +20,7 @@
 #define IDE_C_FORMAT_PROVIDER_H
 
 #include <gtksourceview/gtksourcecompletionprovider.h>
-
-#include "ide-completion-provider.h"
-#include "ide-object.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/c-pack/ide-c-indenter.c b/plugins/c-pack/ide-c-indenter.c
index 5be4f06..c5231f3 100644
--- a/plugins/c-pack/ide-c-indenter.c
+++ b/plugins/c-pack/ide-c-indenter.c
@@ -23,8 +23,6 @@
 
 #include "c-parse-helper.h"
 #include "ide-c-indenter.h"
-#include "ide-debug.h"
-#include "ide-source-view.h"
 
 #define ITER_INIT_LINE_START(iter, other) \
   gtk_text_buffer_get_iter_at_line( \
diff --git a/plugins/c-pack/ide-c-indenter.h b/plugins/c-pack/ide-c-indenter.h
index 3afface..a5ebacc 100644
--- a/plugins/c-pack/ide-c-indenter.h
+++ b/plugins/c-pack/ide-c-indenter.h
@@ -19,7 +19,7 @@
 #ifndef IDE_C_INDENTER_H
 #define IDE_C_INDENTER_H
 
-#include "ide-indenter.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/clang/ide-clang-completion-item-private.h 
b/plugins/clang/ide-clang-completion-item-private.h
index c9fb75e..6f88f48 100644
--- a/plugins/clang/ide-clang-completion-item-private.h
+++ b/plugins/clang/ide-clang-completion-item-private.h
@@ -21,10 +21,10 @@
 
 #include <clang-c/Index.h>
 #include <glib-object.h>
+#include <ide.h>
 #include <string.h>
 
 #include "ide-clang-completion-item.h"
-#include "ide-ref-ptr.h"
 
 G_BEGIN_DECLS
 
diff --git a/plugins/clang/ide-clang-completion-item.c b/plugins/clang/ide-clang-completion-item.c
index ca9608c..e9d5f1f 100644
--- a/plugins/clang/ide-clang-completion-item.c
+++ b/plugins/clang/ide-clang-completion-item.c
@@ -23,10 +23,6 @@
 
 #include "ide-clang-completion-item.h"
 #include "ide-clang-completion-item-private.h"
-#include "ide-debug.h"
-#include "ide-ref-ptr.h"
-#include "ide-source-snippet.h"
-#include "ide-source-snippet-chunk.h"
 
 static void completion_proposal_iface_init (GtkSourceCompletionProposalIface *);
 
diff --git a/plugins/clang/ide-clang-completion-item.h b/plugins/clang/ide-clang-completion-item.h
index b7d98a1..4578c41 100644
--- a/plugins/clang/ide-clang-completion-item.h
+++ b/plugins/clang/ide-clang-completion-item.h
@@ -20,8 +20,7 @@
 #define IDE_CLANG_COMPLETION_ITEM_H
 
 #include <gtksourceview/gtksourcecompletionproposal.h>
-
-#include "ide-source-snippet.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/clang/ide-clang-completion-provider.c b/plugins/clang/ide-clang-completion-provider.c
index d8b5545..26ea56a 100644
--- a/plugins/clang/ide-clang-completion-provider.c
+++ b/plugins/clang/ide-clang-completion-provider.c
@@ -18,10 +18,9 @@
 
 #define G_LOG_DOMAIN "clang-completion-provider"
 
+#include <ide.h>
 #include <string.h>
 
-#include "ide-buffer.h"
-#include "ide-completion-provider.h"
 #include "ide-clang-completion-item.h"
 #include "ide-clang-completion-item-private.h"
 #include "ide-clang-completion-provider.h"
diff --git a/plugins/clang/ide-clang-diagnostic-provider.c b/plugins/clang/ide-clang-diagnostic-provider.c
index 4ad6794..80682a0 100644
--- a/plugins/clang/ide-clang-diagnostic-provider.c
+++ b/plugins/clang/ide-clang-diagnostic-provider.c
@@ -23,9 +23,6 @@
 #include "ide-clang-diagnostic-provider.h"
 #include "ide-clang-service.h"
 #include "ide-clang-translation-unit.h"
-#include "ide-context.h"
-#include "ide-diagnostics.h"
-#include "ide-file.h"
 
 struct _IdeClangDiagnosticProvider
 {
diff --git a/plugins/clang/ide-clang-diagnostic-provider.h b/plugins/clang/ide-clang-diagnostic-provider.h
index a4a3064..1641d2c 100644
--- a/plugins/clang/ide-clang-diagnostic-provider.h
+++ b/plugins/clang/ide-clang-diagnostic-provider.h
@@ -19,7 +19,7 @@
 #ifndef IDE_CLANG_DIAGNOSTIC_PROVIDER_H
 #define IDE_CLANG_DIAGNOSTIC_PROVIDER_H
 
-#include "ide-diagnostic-provider.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/clang/ide-clang-highlighter.c b/plugins/clang/ide-clang-highlighter.c
index 92f02f5..f5ba0a2 100644
--- a/plugins/clang/ide-clang-highlighter.c
+++ b/plugins/clang/ide-clang-highlighter.c
@@ -21,9 +21,6 @@
 #include "ide-clang-highlighter.h"
 #include "ide-clang-service.h"
 #include "ide-clang-translation-unit.h"
-#include "ide-context.h"
-#include "ide-debug.h"
-#include "ide-highlight-engine.h"
 
 struct _IdeClangHighlighter
 {
diff --git a/plugins/clang/ide-clang-highlighter.h b/plugins/clang/ide-clang-highlighter.h
index a58cbf5..be3df33 100644
--- a/plugins/clang/ide-clang-highlighter.h
+++ b/plugins/clang/ide-clang-highlighter.h
@@ -19,7 +19,7 @@
 #ifndef IDE_CLANG_HIGHLIGHTER_H
 #define IDE_CLANG_HIGHLIGHTER_H
 
-#include "ide-highlighter.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/clang/ide-clang-private.h b/plugins/clang/ide-clang-private.h
index 6505e0f..01d7368 100644
--- a/plugins/clang/ide-clang-private.h
+++ b/plugins/clang/ide-clang-private.h
@@ -20,13 +20,11 @@
 #define IDE_CLANG_PRIVATE_H
 
 #include <clang-c/Index.h>
-
-#include "ide-types.h"
+#include <ide.h>
 
 #include "ide-clang-service.h"
 #include "ide-clang-symbol-node.h"
 #include "ide-clang-translation-unit.h"
-#include "ide-highlight-index.h"
 
 G_BEGIN_DECLS
 
diff --git a/plugins/clang/ide-clang-service.c b/plugins/clang/ide-clang-service.c
index ee2e65a..0245de3 100644
--- a/plugins/clang/ide-clang-service.c
+++ b/plugins/clang/ide-clang-service.c
@@ -19,22 +19,14 @@
 #define G_LOG_DOMAIN "gb-clang-service"
 
 #include <clang-c/Index.h>
+#include <egg-counter.h>
+#include <egg-task-cache.h>
 #include <glib/gi18n.h>
-
-#include "egg-counter.h"
-#include "egg-task-cache.h"
+#include <ide.h>
 
 #include "ide-clang-highlighter.h"
-#include "ide-build-system.h"
 #include "ide-clang-private.h"
 #include "ide-clang-service.h"
-#include "ide-context.h"
-#include "ide-debug.h"
-#include "ide-file.h"
-#include "ide-highlight-index.h"
-#include "ide-thread-pool.h"
-#include "ide-unsaved-file.h"
-#include "ide-unsaved-files.h"
 
 #define DEFAULT_EVICTION_MSEC (60 * 1000)
 
diff --git a/plugins/clang/ide-clang-service.h b/plugins/clang/ide-clang-service.h
index ac781fd..4111b34 100644
--- a/plugins/clang/ide-clang-service.h
+++ b/plugins/clang/ide-clang-service.h
@@ -20,7 +20,6 @@
 #define IDE_CLANG_SERVICE_H
 
 #include "ide-clang-translation-unit.h"
-#include "ide-service.h"
 
 G_BEGIN_DECLS
 
diff --git a/plugins/clang/ide-clang-symbol-node.c b/plugins/clang/ide-clang-symbol-node.c
index aef46ca..f024e1a 100644
--- a/plugins/clang/ide-clang-symbol-node.c
+++ b/plugins/clang/ide-clang-symbol-node.c
@@ -16,13 +16,13 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-clang-symbol-node"
+
 #include <clang-c/Index.h>
 #include <glib/gi18n.h>
 #include <gio/gio.h>
 
 #include "ide-clang-symbol-node.h"
-#include "ide-file.h"
-#include "ide-symbol.h"
 
 struct _IdeClangSymbolNode
 {
diff --git a/plugins/clang/ide-clang-symbol-node.h b/plugins/clang/ide-clang-symbol-node.h
index ed7afca..cd74301 100644
--- a/plugins/clang/ide-clang-symbol-node.h
+++ b/plugins/clang/ide-clang-symbol-node.h
@@ -19,7 +19,7 @@
 #ifndef IDE_CLANG_SYMBOL_NODE_H
 #define IDE_CLANG_SYMBOL_NODE_H
 
-#include "ide-symbol-node.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/clang/ide-clang-symbol-resolver.c b/plugins/clang/ide-clang-symbol-resolver.c
index fec532a..dbff264 100644
--- a/plugins/clang/ide-clang-symbol-resolver.c
+++ b/plugins/clang/ide-clang-symbol-resolver.c
@@ -18,13 +18,8 @@
 
 #define G_LOG_DOMAIN "clang-symbol-resolver"
 
-#include "ide-context.h"
 #include "ide-clang-service.h"
 #include "ide-clang-symbol-resolver.h"
-#include "ide-debug.h"
-#include "ide-file.h"
-#include "ide-source-location.h"
-#include "ide-symbol.h"
 
 struct _IdeClangSymbolResolver
 {
diff --git a/plugins/clang/ide-clang-symbol-resolver.h b/plugins/clang/ide-clang-symbol-resolver.h
index ae627e7..98f900b 100644
--- a/plugins/clang/ide-clang-symbol-resolver.h
+++ b/plugins/clang/ide-clang-symbol-resolver.h
@@ -19,7 +19,7 @@
 #ifndef IDE_CLANG_SYMBOL_RESOLVER_H
 #define IDE_CLANG_SYMBOL_RESOLVER_H
 
-#include "ide-symbol-resolver.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/clang/ide-clang-symbol-tree.c b/plugins/clang/ide-clang-symbol-tree.c
index 3857b52..29982c1 100644
--- a/plugins/clang/ide-clang-symbol-tree.c
+++ b/plugins/clang/ide-clang-symbol-tree.c
@@ -16,13 +16,14 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-clang-symbol-tree"
+
 #include <clang-c/Index.h>
 #include <glib/gi18n.h>
 
 #include "ide-clang-private.h"
 #include "ide-clang-symbol-node.h"
 #include "ide-clang-symbol-tree.h"
-#include "ide-ref-ptr.h"
 
 struct _IdeClangSymbolTree
 {
diff --git a/plugins/clang/ide-clang-symbol-tree.h b/plugins/clang/ide-clang-symbol-tree.h
index fb879a3..cdc8d6d 100644
--- a/plugins/clang/ide-clang-symbol-tree.h
+++ b/plugins/clang/ide-clang-symbol-tree.h
@@ -20,8 +20,7 @@
 #define IDE_CLANG_SYMBOL_TREE_H
 
 #include <gio/gio.h>
-
-#include "ide-symbol-tree.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/clang/ide-clang-translation-unit.c b/plugins/clang/ide-clang-translation-unit.c
index 05a4d7a..a6c5c39 100644
--- a/plugins/clang/ide-clang-translation-unit.c
+++ b/plugins/clang/ide-clang-translation-unit.c
@@ -19,30 +19,16 @@
 #define G_LOG_DOMAIN "clang-translation-unit"
 
 #include <clang-c/Index.h>
+#include <egg-counter.h>
 #include <glib/gi18n.h>
+#include <ide.h>
 
-#include "egg-counter.h"
-
-#include "ide-context.h"
 #include "ide-clang-completion-item.h"
 #include "ide-clang-completion-item-private.h"
 #include "ide-clang-private.h"
 #include "ide-clang-symbol-tree.h"
 #include "ide-clang-translation-unit.h"
-#include "ide-debug.h"
-#include "ide-diagnostic.h"
-#include "ide-diagnostics.h"
-#include "ide-file.h"
 #include "ide-internal.h"
-#include "ide-project.h"
-#include "ide-ref-ptr.h"
-#include "ide-source-location.h"
-#include "ide-source-range.h"
-#include "ide-symbol.h"
-#include "ide-thread-pool.h"
-#include "ide-unsaved-file.h"
-#include "ide-unsaved-files.h"
-#include "ide-vcs.h"
 
 struct _IdeClangTranslationUnit
 {
diff --git a/plugins/clang/ide-clang-translation-unit.h b/plugins/clang/ide-clang-translation-unit.h
index 213734f..8dd0107 100644
--- a/plugins/clang/ide-clang-translation-unit.h
+++ b/plugins/clang/ide-clang-translation-unit.h
@@ -20,10 +20,7 @@
 #define IDE_CLANG_TRANSLATION_UNIT_H
 
 #include <gtk/gtk.h>
-
-#include "ide-object.h"
-#include "ide-highlight-index.h"
-#include "ide-symbol-tree.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/command-bar/gb-command-bar.c b/plugins/command-bar/gb-command-bar.c
index 47e57a8..06fb815 100644
--- a/plugins/command-bar/gb-command-bar.c
+++ b/plugins/command-bar/gb-command-bar.c
@@ -27,9 +27,6 @@
 #include "gb-command-manager.h"
 #include "gb-command-vim-provider.h"
 
-#include "ide-workbench.h"
-#include "ide-workbench-addin.h"
-
 struct _GbCommandBar
 {
   GtkRevealer        parent_instance;
diff --git a/plugins/command-bar/gb-command-vim-provider.c b/plugins/command-bar/gb-command-vim-provider.c
index ddcedbe..67514cd 100644
--- a/plugins/command-bar/gb-command-vim-provider.c
+++ b/plugins/command-bar/gb-command-vim-provider.c
@@ -19,7 +19,6 @@
 #define G_LOG_DOMAIN "gb-vim-command-provider"
 
 #include <ide.h>
-#include "ide-gtk.h"
 
 #include "gb-command-vim.h"
 #include "gb-command-vim-provider.h"
diff --git a/plugins/command-bar/gb-vim.c b/plugins/command-bar/gb-vim.c
index ef64f22..16c012b 100644
--- a/plugins/command-bar/gb-vim.c
+++ b/plugins/command-bar/gb-vim.c
@@ -23,10 +23,8 @@
 #include <gtksourceview/gtksource.h>
 #include <ide.h>
 
-#include "ide-gtk.h"
-#include "ide-editor-frame.h"
-#include "ide-editor-frame-private.h"
-#include "ide-editor-view-private.h"
+#include "editor/ide-editor-frame-private.h"
+#include "editor/ide-editor-view-private.h"
 
 #include "gb-vim.h"
 
diff --git a/plugins/comment-code/gbp-comment-code-view-addin.c 
b/plugins/comment-code/gbp-comment-code-view-addin.c
index 732784a..18b6a27 100644
--- a/plugins/comment-code/gbp-comment-code-view-addin.c
+++ b/plugins/comment-code/gbp-comment-code-view-addin.c
@@ -19,9 +19,9 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 #include <gtksourceview/gtksource.h>
-
 #include <ide.h>
-#include "ide-text-iter.h"
+
+#include "sourceview/ide-text-iter.h"
 
 #include "gbp-comment-code-view-addin.h"
 
diff --git a/plugins/ctags/ide-ctags-builder.c b/plugins/ctags/ide-ctags-builder.c
index dd999e6..cbb0b3d 100644
--- a/plugins/ctags/ide-ctags-builder.c
+++ b/plugins/ctags/ide-ctags-builder.c
@@ -18,21 +18,12 @@
 
 #define G_LOG_DOMAIN "ide-ctags-builder"
 
+#include <egg-counter.h>
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
+#include <ide.h>
 
-#include "egg-counter.h"
-
-#include "ide-buffer.h"
-#include "ide-buffer-manager.h"
-#include "ide-context.h"
 #include "ide-ctags-builder.h"
-#include "ide-debug.h"
-#include "ide-global.h"
-#include "ide-macros.h"
-#include "ide-project.h"
-#include "ide-thread-pool.h"
-#include "ide-vcs.h"
 
 #define BUILD_CTAGS_DELAY_SECONDS 10
 
diff --git a/plugins/ctags/ide-ctags-completion-item.c b/plugins/ctags/ide-ctags-completion-item.c
index 055da04..bc5a99d 100644
--- a/plugins/ctags/ide-ctags-completion-item.c
+++ b/plugins/ctags/ide-ctags-completion-item.c
@@ -18,11 +18,9 @@
 
 #define G_LOG_DOMAIN "ide-ctags-completion-item"
 
+#include <egg-counter.h>
 #include <glib/gi18n.h>
 
-#include "egg-counter.h"
-
-#include "ide-completion-item.h"
 #include "ide-ctags-completion-item.h"
 #include "ide-ctags-completion-provider.h"
 #include "ide-ctags-completion-provider-private.h"
diff --git a/plugins/ctags/ide-ctags-completion-item.h b/plugins/ctags/ide-ctags-completion-item.h
index 87284ff..7e2632a 100644
--- a/plugins/ctags/ide-ctags-completion-item.h
+++ b/plugins/ctags/ide-ctags-completion-item.h
@@ -20,8 +20,8 @@
 #define IDE_CTAGS_COMPLETION_ITEM_H
 
 #include <gtksourceview/gtksource.h>
+#include <ide.h>
 
-#include "ide-completion-item.h"
 #include "ide-ctags-index.h"
 #include "ide-ctags-completion-provider.h"
 
diff --git a/plugins/ctags/ide-ctags-completion-provider-private.h 
b/plugins/ctags/ide-ctags-completion-provider-private.h
index 5370244..3f7f585 100644
--- a/plugins/ctags/ide-ctags-completion-provider-private.h
+++ b/plugins/ctags/ide-ctags-completion-provider-private.h
@@ -20,7 +20,6 @@
 #define IDE_CTAGS_COMPLETION_PROVIDER_PRIVATE_H
 
 #include "ide-ctags-completion-provider.h"
-#include "ide-completion-results.h"
 
 G_BEGIN_DECLS
 
diff --git a/plugins/ctags/ide-ctags-completion-provider.c b/plugins/ctags/ide-ctags-completion-provider.c
index 6dbbad6..def1051 100644
--- a/plugins/ctags/ide-ctags-completion-provider.c
+++ b/plugins/ctags/ide-ctags-completion-provider.c
@@ -19,19 +19,12 @@
 #define G_LOG_DOMAIN "ide-ctags-completion-provider"
 
 #include <glib/gi18n.h>
-#include <ide.h>
 
-#include "ide-completion-provider.h"
-#include "ide-completion-item.h"
-#include "ide-completion-results.h"
-#include "ide-context.h"
 #include "ide-ctags-completion-item.h"
 #include "ide-ctags-completion-provider.h"
 #include "ide-ctags-completion-provider-private.h"
 #include "ide-ctags-service.h"
 #include "ide-ctags-util.h"
-#include "ide-debug.h"
-#include "ide-macros.h"
 
 static void provider_iface_init (GtkSourceCompletionProviderIface *iface);
 
diff --git a/plugins/ctags/ide-ctags-completion-provider.h b/plugins/ctags/ide-ctags-completion-provider.h
index 3229736..e869e32 100644
--- a/plugins/ctags/ide-ctags-completion-provider.h
+++ b/plugins/ctags/ide-ctags-completion-provider.h
@@ -19,7 +19,8 @@
 #ifndef IDE_CTAGS_COMPLETION_PROVIDER_H
 #define IDE_CTAGS_COMPLETION_PROVIDER_H
 
-#include "ide-completion-provider.h"
+#include <ide.h>
+
 #include "ide-ctags-index.h"
 
 G_BEGIN_DECLS
diff --git a/plugins/ctags/ide-ctags-highlighter.c b/plugins/ctags/ide-ctags-highlighter.c
index 6230a7e..5be73b5 100644
--- a/plugins/ctags/ide-ctags-highlighter.c
+++ b/plugins/ctags/ide-ctags-highlighter.c
@@ -20,13 +20,8 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-context.h"
 #include "ide-ctags-highlighter.h"
 #include "ide-ctags-service.h"
-#include "ide-debug.h"
-#include "ide-file.h"
-#include "ide-highlight-engine.h"
-#include "ide-macros.h"
 
 struct _IdeCtagsHighlighter
 {
diff --git a/plugins/ctags/ide-ctags-highlighter.h b/plugins/ctags/ide-ctags-highlighter.h
index 7eddcf4..b4e04f0 100644
--- a/plugins/ctags/ide-ctags-highlighter.h
+++ b/plugins/ctags/ide-ctags-highlighter.h
@@ -19,9 +19,9 @@
 #ifndef IDE_CTAGS_HIGHLIGHTER_H
 #define IDE_CTAGS_HIGHLIGHTER_H
 
+#include <ide.h>
+
 #include "ide-ctags-index.h"
-#include "ide-highlighter.h"
-#include "ide-object.h"
 
 G_BEGIN_DECLS
 
diff --git a/plugins/ctags/ide-ctags-index.c b/plugins/ctags/ide-ctags-index.c
index 3a4088d..19445e5 100644
--- a/plugins/ctags/ide-ctags-index.c
+++ b/plugins/ctags/ide-ctags-index.c
@@ -18,15 +18,13 @@
 
 #define G_LOG_DOMAIN "ide-ctags-index"
 
+#include <egg-counter.h>
 #include <glib/gi18n.h>
+#include <ide.h>
 #include <stdlib.h>
 #include <string.h>
 
-#include "egg-counter.h"
-
 #include "ide-ctags-index.h"
-#include "ide-debug.h"
-#include "ide-line-reader.h"
 
 struct _IdeCtagsIndex
 {
diff --git a/plugins/ctags/ide-ctags-service.c b/plugins/ctags/ide-ctags-service.c
index fa88969..8264883 100644
--- a/plugins/ctags/ide-ctags-service.c
+++ b/plugins/ctags/ide-ctags-service.c
@@ -18,23 +18,15 @@
 
 #define G_LOG_DOMAIN "ide-ctags-service"
 
+#include <egg-task-cache.h>
 #include <glib/gi18n.h>
 #include <gtksourceview/gtksource.h>
 
-#include "egg-task-cache.h"
-
-#include "ide-buffer-manager.h"
-#include "ide-context.h"
 #include "ide-ctags-builder.h"
 #include "ide-ctags-completion-provider.h"
 #include "ide-ctags-highlighter.h"
 #include "ide-ctags-index.h"
 #include "ide-ctags-service.h"
-#include "ide-debug.h"
-#include "ide-global.h"
-#include "ide-project.h"
-#include "ide-tags-builder.h"
-#include "ide-vcs.h"
 
 struct _IdeCtagsService
 {
diff --git a/plugins/ctags/ide-ctags-service.h b/plugins/ctags/ide-ctags-service.h
index 2333914..e6d5d4e 100644
--- a/plugins/ctags/ide-ctags-service.h
+++ b/plugins/ctags/ide-ctags-service.h
@@ -20,11 +20,10 @@
 #define IDE_CTAGS_SERVICE_H
 
 #include <gtksourceview/gtksource.h>
+#include <ide.h>
 
 #include "ide-ctags-completion-provider.h"
 #include "ide-ctags-highlighter.h"
-#include "ide-service.h"
-#include "ide-highlighter.h"
 
 G_BEGIN_DECLS
 
diff --git a/plugins/ctags/ide-ctags-symbol-resolver.c b/plugins/ctags/ide-ctags-symbol-resolver.c
index 1030589..0e9b8a5 100644
--- a/plugins/ctags/ide-ctags-symbol-resolver.c
+++ b/plugins/ctags/ide-ctags-symbol-resolver.c
@@ -16,15 +16,16 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-ctags-symbol-resolver"
+
 #include <errno.h>
 #include <glib/gi18n.h>
 
+#include "ide-internal.h"
+
 #include "ide-ctags-service.h"
 #include "ide-ctags-symbol-resolver.h"
 #include "ide-ctags-util.h"
-#include "ide-internal.h"
-#include "ide-line-reader.h"
-#include "ide-symbol.h"
 
 struct _IdeCtagsSymbolResolver
 {
diff --git a/plugins/devhelp/gbp-devhelp-search-provider.c b/plugins/devhelp/gbp-devhelp-search-provider.c
index e1e18b5..0686673 100644
--- a/plugins/devhelp/gbp-devhelp-search-provider.c
+++ b/plugins/devhelp/gbp-devhelp-search-provider.c
@@ -21,7 +21,6 @@
 #include <ctype.h>
 #include <devhelp/devhelp.h>
 #include <glib/gi18n.h>
-#include <ide.h>
 #include <libpeas/peas.h>
 
 #include "gbp-devhelp-panel.h"
diff --git a/plugins/devhelp/gbp-devhelp-search-provider.h b/plugins/devhelp/gbp-devhelp-search-provider.h
index e8effb4..7e51508 100644
--- a/plugins/devhelp/gbp-devhelp-search-provider.h
+++ b/plugins/devhelp/gbp-devhelp-search-provider.h
@@ -19,7 +19,7 @@
 #ifndef GBP_DEVHELP_SEARCH_PROVIDER_H
 #define GBP_DEVHELP_SEARCH_PROVIDER_H
 
-#include "ide-search-provider.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/devhelp/gbp-devhelp-search-result.c b/plugins/devhelp/gbp-devhelp-search-result.c
index e667e00..105bffb 100644
--- a/plugins/devhelp/gbp-devhelp-search-result.c
+++ b/plugins/devhelp/gbp-devhelp-search-result.c
@@ -16,6 +16,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-devhelp-search-result"
+
 #include <glib/gi18n.h>
 
 #include "gbp-devhelp-search-result.h"
diff --git a/plugins/devhelp/gbp-devhelp-search-result.h b/plugins/devhelp/gbp-devhelp-search-result.h
index 8519925..34506ac 100644
--- a/plugins/devhelp/gbp-devhelp-search-result.h
+++ b/plugins/devhelp/gbp-devhelp-search-result.h
@@ -19,7 +19,7 @@
 #ifndef GBP_DEVHELP_SEARCH_RESULT_H
 #define GBP_DEVHELP_SEARCH_RESULT_H
 
-#include "ide-search-result.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/file-search/gb-file-search-result.c b/plugins/file-search/gb-file-search-result.c
index aa0bba6..986d034 100644
--- a/plugins/file-search/gb-file-search-result.c
+++ b/plugins/file-search/gb-file-search-result.c
@@ -16,6 +16,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "gb-file-search-result"
+
 #include "gb-file-search-result.h"
 
 struct _GbFileSearchResult
diff --git a/plugins/file-search/gb-file-search-result.h b/plugins/file-search/gb-file-search-result.h
index 34aac13..cb686cd 100644
--- a/plugins/file-search/gb-file-search-result.h
+++ b/plugins/file-search/gb-file-search-result.h
@@ -19,15 +19,13 @@
 #ifndef GB_FILE_SEARCH_RESULT_H
 #define GB_FILE_SEARCH_RESULT_H
 
-#include "ide-search-result.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
 #define GB_TYPE_FILE_SEARCH_RESULT (gb_file_search_result_get_type())
 
-G_DECLARE_FINAL_TYPE (GbFileSearchResult, gb_file_search_result,
-                      GB, FILE_SEARCH_RESULT,
-                      IdeSearchResult)
+G_DECLARE_FINAL_TYPE (GbFileSearchResult, gb_file_search_result, GB, FILE_SEARCH_RESULT, IdeSearchResult)
 
 G_END_DECLS
 
diff --git a/plugins/gettext/ide-gettext-diagnostic-provider.c 
b/plugins/gettext/ide-gettext-diagnostic-provider.c
index 5a73a1e..58c824f 100644
--- a/plugins/gettext/ide-gettext-diagnostic-provider.c
+++ b/plugins/gettext/ide-gettext-diagnostic-provider.c
@@ -18,19 +18,11 @@
 
 #define G_LOG_DOMAIN "ide-gettext-diagnostic-provider"
 
+#include <egg-task-cache.h>
 #include <glib/gi18n.h>
 #include <stdlib.h>
 
-#include "egg-task-cache.h"
-
-#include "ide-context.h"
-#include "ide-diagnostic.h"
-#include "ide-diagnostics.h"
-#include "ide-file.h"
 #include "ide-gettext-diagnostic-provider.h"
-#include "ide-source-location.h"
-#include "ide-unsaved-file.h"
-#include "ide-unsaved-files.h"
 
 struct _IdeGettextDiagnostics
 {
diff --git a/plugins/gettext/ide-gettext-diagnostic-provider.h 
b/plugins/gettext/ide-gettext-diagnostic-provider.h
index fbdcbf0..0d0f592 100644
--- a/plugins/gettext/ide-gettext-diagnostic-provider.h
+++ b/plugins/gettext/ide-gettext-diagnostic-provider.h
@@ -19,14 +19,14 @@
 #ifndef IDE_GETTEXT_DIAGNOSTIC_PROVIDER_H
 #define IDE_GETTEXT_DIAGNOSTIC_PROVIDER_H
 
-#include "ide-diagnostic-provider.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_GETTEXT_DIAGNOSTICS (ide_gettext_diagnostics_get_type ())
-G_DECLARE_FINAL_TYPE (IdeGettextDiagnostics, ide_gettext_diagnostics, IDE, GETTEXT_DIAGNOSTICS, GObject)
-
 #define IDE_TYPE_GETTEXT_DIAGNOSTIC_PROVIDER (ide_gettext_diagnostic_provider_get_type ())
+
+G_DECLARE_FINAL_TYPE (IdeGettextDiagnostics, ide_gettext_diagnostics, IDE, GETTEXT_DIAGNOSTICS, GObject)
 G_DECLARE_FINAL_TYPE (IdeGettextDiagnosticProvider, ide_gettext_diagnostic_provider, IDE, 
GETTEXT_DIAGNOSTIC_PROVIDER, IdeObject)
 
 G_END_DECLS
diff --git a/plugins/git/ide-git-buffer-change-monitor.c b/plugins/git/ide-git-buffer-change-monitor.c
index e11cabb..421ce31 100644
--- a/plugins/git/ide-git-buffer-change-monitor.c
+++ b/plugins/git/ide-git-buffer-change-monitor.c
@@ -18,16 +18,11 @@
 
 #define G_LOG_DOMAIN "ide-git-buffer-change-monitor"
 
+#include <egg-counter.h>
+#include <egg-signal-group.h>
 #include <glib/gi18n.h>
 #include <libgit2-glib/ggit.h>
 
-#include "egg-counter.h"
-#include "egg-signal-group.h"
-
-#include "ide-buffer.h"
-#include "ide-context.h"
-#include "ide-debug.h"
-#include "ide-file.h"
 #include "ide-git-buffer-change-monitor.h"
 #include "ide-git-vcs.h"
 
diff --git a/plugins/git/ide-git-buffer-change-monitor.h b/plugins/git/ide-git-buffer-change-monitor.h
index d626254..d4fae39 100644
--- a/plugins/git/ide-git-buffer-change-monitor.h
+++ b/plugins/git/ide-git-buffer-change-monitor.h
@@ -19,7 +19,7 @@
 #ifndef IDE_GIT_BUFFER_CHANGE_MONITOR_H
 #define IDE_GIT_BUFFER_CHANGE_MONITOR_H
 
-#include "ide-buffer-change-monitor.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/git/ide-git-remote-callbacks.c b/plugins/git/ide-git-remote-callbacks.c
index 62083d3..1cc36f3 100644
--- a/plugins/git/ide-git-remote-callbacks.c
+++ b/plugins/git/ide-git-remote-callbacks.c
@@ -16,13 +16,11 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <egg-animation.h>
 #include <glib/gi18n.h>
+#include <ide.h>
 
-#include "egg-animation.h"
-#include "ide-debug.h"
 #include "ide-git-remote-callbacks.h"
-#include "ide-macros.h"
-#include "ide-progress.h"
 
 #define ANIMATION_DURATION_MSEC 250
 
diff --git a/plugins/git/ide-git-remote-callbacks.h b/plugins/git/ide-git-remote-callbacks.h
index ae03a28..53206b4 100644
--- a/plugins/git/ide-git-remote-callbacks.h
+++ b/plugins/git/ide-git-remote-callbacks.h
@@ -20,8 +20,7 @@
 #define IDE_GIT_REMOTE_CALLBACKS_H
 
 #include <libgit2-glib/ggit.h>
-
-#include "ide-progress.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/git/ide-git-vcs.c b/plugins/git/ide-git-vcs.c
index 8df40a7..50192a0 100644
--- a/plugins/git/ide-git-vcs.c
+++ b/plugins/git/ide-git-vcs.c
@@ -22,15 +22,9 @@
 #include <glib/gi18n.h>
 #include <libgit2-glib/ggit.h>
 
-#include "ide-async-helper.h"
-#include "ide-context.h"
-#include "ide-debug.h"
 #include "ide-git-buffer-change-monitor.h"
 #include "ide-git-vcs.h"
 #include "ide-git-vcs-config.h"
-#include "ide-project.h"
-#include "ide-project-file.h"
-#include "ide-project-files.h"
 
 #define DEFAULT_CHANGED_TIMEOUT_SECS 1
 
diff --git a/plugins/git/ide-git-vcs.h b/plugins/git/ide-git-vcs.h
index ee66f6d..87247cd 100644
--- a/plugins/git/ide-git-vcs.h
+++ b/plugins/git/ide-git-vcs.h
@@ -20,8 +20,7 @@
 #define IDE_GIT_VCS_H
 
 #include <libgit2-glib/ggit.h>
-
-#include "ide-vcs.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/gnome-code-assistance/ide-gca-diagnostic-provider.c 
b/plugins/gnome-code-assistance/ide-gca-diagnostic-provider.c
index 1184a94..c2d4b67 100644
--- a/plugins/gnome-code-assistance/ide-gca-diagnostic-provider.c
+++ b/plugins/gnome-code-assistance/ide-gca-diagnostic-provider.c
@@ -21,17 +21,10 @@
 #include <gca-diagnostics.h>
 #include <glib/gi18n.h>
 
-#include "ide-context.h"
-#include "ide-debug.h"
-#include "ide-diagnostics.h"
-#include "ide-file.h"
+#include "ide-internal.h"
+
 #include "ide-gca-diagnostic-provider.h"
 #include "ide-gca-service.h"
-#include "ide-internal.h"
-#include "ide-source-location.h"
-#include "ide-source-range.h"
-#include "ide-unsaved-file.h"
-#include "ide-unsaved-files.h"
 
 #include "gca-structs.h"
 
diff --git a/plugins/gnome-code-assistance/ide-gca-diagnostic-provider.h 
b/plugins/gnome-code-assistance/ide-gca-diagnostic-provider.h
index a58339f..eb9dcb6 100644
--- a/plugins/gnome-code-assistance/ide-gca-diagnostic-provider.h
+++ b/plugins/gnome-code-assistance/ide-gca-diagnostic-provider.h
@@ -19,7 +19,7 @@
 #ifndef IDE_GCA_DIAGNOSTIC_PROVIDER_H
 #define IDE_GCA_DIAGNOSTIC_PROVIDER_H
 
-#include "ide-diagnostic-provider.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/html-completion/ide-html-completion-provider.c 
b/plugins/html-completion/ide-html-completion-provider.c
index 1f12f49..a930b6a 100644
--- a/plugins/html-completion/ide-html-completion-provider.c
+++ b/plugins/html-completion/ide-html-completion-provider.c
@@ -21,7 +21,6 @@
 #include <libpeas/peas.h>
 #include <string.h>
 
-#include "ide-completion-provider.h"
 #include "ide-html-completion-provider.h"
 
 #include "trie.h"
diff --git a/plugins/html-completion/ide-html-completion-provider.h 
b/plugins/html-completion/ide-html-completion-provider.h
index f1a20be..c21fe9a 100644
--- a/plugins/html-completion/ide-html-completion-provider.h
+++ b/plugins/html-completion/ide-html-completion-provider.h
@@ -20,8 +20,7 @@
 #define IDE_HTML_COMPLETION_PROVIDER_H
 
 #include <gtksourceview/gtksource.h>
-
-#include "ide-object.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/mingw/ide-mingw-device-provider.c b/plugins/mingw/ide-mingw-device-provider.c
index 3c6a881..297d74f 100644
--- a/plugins/mingw/ide-mingw-device-provider.c
+++ b/plugins/mingw/ide-mingw-device-provider.c
@@ -20,7 +20,6 @@
 
 #include <glib/gi18n.h>
 
-#include "ide-context.h"
 #include "ide-mingw-device.h"
 #include "ide-mingw-device-provider.h"
 
diff --git a/plugins/mingw/ide-mingw-device-provider.h b/plugins/mingw/ide-mingw-device-provider.h
index 2033e59..3867a12 100644
--- a/plugins/mingw/ide-mingw-device-provider.h
+++ b/plugins/mingw/ide-mingw-device-provider.h
@@ -19,8 +19,7 @@
 #ifndef IDE_MINGW_DEVICE_PROVIDER_H
 #define IDE_MINGW_DEVICE_PROVIDER_H
 
-#include "ide-device-provider.h"
-#include "ide-object.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/mingw/ide-mingw-device.h b/plugins/mingw/ide-mingw-device.h
index 80803f1..dd9a45b 100644
--- a/plugins/mingw/ide-mingw-device.h
+++ b/plugins/mingw/ide-mingw-device.h
@@ -19,7 +19,7 @@
 #ifndef IDE_MINGW_DEVICE_H
 #define IDE_MINGW_DEVICE_H
 
-#include "ide-device.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/python-pack/ide-python-format-provider.c 
b/plugins/python-pack/ide-python-format-provider.c
index 6b81ca5..a1688dd 100644
--- a/plugins/python-pack/ide-python-format-provider.c
+++ b/plugins/python-pack/ide-python-format-provider.c
@@ -17,6 +17,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-python-format-provider"
+
 #include <glib/gi18n.h>
 #include <gtksourceview/gtksource.h>
 
diff --git a/plugins/python-pack/ide-python-format-provider.h 
b/plugins/python-pack/ide-python-format-provider.h
index 694ad0d..7179ce0 100644
--- a/plugins/python-pack/ide-python-format-provider.h
+++ b/plugins/python-pack/ide-python-format-provider.h
@@ -20,9 +20,7 @@
 #define IDE_PYTHON_FORMAT_PROVIDER_H
 
 #include <gtksourceview/gtksourcecompletionprovider.h>
-
-#include "ide-completion-provider.h"
-#include "ide-object.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/python-pack/ide-python-indenter.c b/plugins/python-pack/ide-python-indenter.c
index 140398a..0b8d2e0 100644
--- a/plugins/python-pack/ide-python-indenter.c
+++ b/plugins/python-pack/ide-python-indenter.c
@@ -22,7 +22,6 @@
 #include <gtksourceview/gtksource.h>
 #include <string.h>
 
-#include "ide-debug.h"
 #include "ide-python-indenter.h"
 
 struct _IdePythonIndenter
diff --git a/plugins/python-pack/ide-python-indenter.h b/plugins/python-pack/ide-python-indenter.h
index c4afaaa..8fff68c 100644
--- a/plugins/python-pack/ide-python-indenter.h
+++ b/plugins/python-pack/ide-python-indenter.h
@@ -19,7 +19,7 @@
 #ifndef IDE_PYTHON_INDENTER_H
 #define IDE_PYTHON_INDENTER_H
 
-#include "ide-indenter.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/support/ide-support.c b/plugins/support/ide-support.c
index f4bd03b..61f8c9f 100644
--- a/plugins/support/ide-support.c
+++ b/plugins/support/ide-support.c
@@ -16,12 +16,13 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-support"
+
+#include <egg-counter.h>
 #include <gtk/gtk.h>
+#include <ide.h>
 #include <string.h>
 
-#include "egg-counter.h"
-
-#include "ide-application.h"
 #include "ide-support.h"
 
 static gchar *
diff --git a/plugins/xml-pack/ide-xml-highlighter.c b/plugins/xml-pack/ide-xml-highlighter.c
index 9649535..d97783f 100644
--- a/plugins/xml-pack/ide-xml-highlighter.c
+++ b/plugins/xml-pack/ide-xml-highlighter.c
@@ -16,15 +16,11 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <egg-signal-group.h>
 #include <glib/gi18n.h>
 
-#include "egg-signal-group.h"
-
 #include "ide-xml-highlighter.h"
-#include "ide-context.h"
-#include "ide-buffer.h"
 #include "ide-xml.h"
-#include "ide-highlight-engine.h"
 
 #define HIGHLIGH_TIMEOUT_MSEC    35
 #define XML_TAG_MATCH_STYLE_NAME "xml:tag-match"
diff --git a/plugins/xml-pack/ide-xml-highlighter.h b/plugins/xml-pack/ide-xml-highlighter.h
index 3263152..42c0acb 100644
--- a/plugins/xml-pack/ide-xml-highlighter.h
+++ b/plugins/xml-pack/ide-xml-highlighter.h
@@ -19,7 +19,7 @@
 #ifndef IDE_XML_HIGHLIGHTER_H
 #define IDE_XML_HIGHLIGHTER_H
 
-#include "ide-highlighter.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/xml-pack/ide-xml-indenter.c b/plugins/xml-pack/ide-xml-indenter.c
index b952fd1..76b6b48 100644
--- a/plugins/xml-pack/ide-xml-indenter.c
+++ b/plugins/xml-pack/ide-xml-indenter.c
@@ -22,7 +22,6 @@
 #include <gtksourceview/gtksource.h>
 #include <string.h>
 
-#include "ide-debug.h"
 #include "ide-xml-indenter.h"
 
 struct _IdeXmlIndenter
diff --git a/plugins/xml-pack/ide-xml-indenter.h b/plugins/xml-pack/ide-xml-indenter.h
index 4137805..c0bdb9b 100644
--- a/plugins/xml-pack/ide-xml-indenter.h
+++ b/plugins/xml-pack/ide-xml-indenter.h
@@ -19,7 +19,7 @@
 #ifndef IDE_XML_INDENTER_H
 #define IDE_XML_INDENTER_H
 
-#include "ide-indenter.h"
+#include <ide.h>
 
 G_BEGIN_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]