[gnome-builder] libide: start writing OVERVIEW.md documents



commit 719a09e0b0d21422c24636a283c1f821a547db22
Author: Christian Hergert <chergert redhat com>
Date:   Fri Jun 17 01:10:14 2016 -0400

    libide: start writing OVERVIEW.md documents
    
    We can start using this convention to describe how machinery works in the
    various directories.

 libide/application/OVERVIEW.md  |   50 +++++++++++++++++++++++++++++++++++++++
 libide/buffers/OVERVIEW.md      |   30 +++++++++++++++++++++++
 libide/buildsystem/OVERVIEW.md  |   42 ++++++++++++++++++++++++++++++++
 libide/devices/OVERVIEW.md      |   18 ++++++++++++++
 libide/directory/OVERVIEW.md    |   20 +++++++++++++++
 libide/doap/OVERVIEW.md         |   13 ++++++++++
 libide/editorconfig/OVERVIEW.md |    9 +++++++
 7 files changed, 182 insertions(+), 0 deletions(-)
---
diff --git a/libide/application/OVERVIEW.md b/libide/application/OVERVIEW.md
new file mode 100644
index 0000000..7f9c2e0
--- /dev/null
+++ b/libide/application/OVERVIEW.md
@@ -0,0 +1,50 @@
+# Application Components
+
+This directory contains the components that manage the application at runtime.
+
+## ide-application.*
+
+The IdeApplication is our primary component. Almost every Gtk application
+has one. Nothing special. However, it also manages a bunch of application-wide
+moving parts depending on the mode it is in.
+
+The IdeApplication can run in one of three modes:
+
+ * UI Application
+ * Worker process (running plugin code)
+ * CLI (the command line tool)
+ * Unit test mode (used by our unit tests for machinery)
+
+It also manages setting up theme helpers, skeleton directories, default
+settings, and a bunch of other stuff.
+
+## ide-application-addin.*
+
+This interface is used by plugins to hook into the application once-per UI
+process. They will be loaded at startup, and shutdown with the application.
+
+## ide-application-tool.*
+
+This interface is used by plugins that want to expose a command line too
+via the `gnome-builder-cli` command. You can add your own subcommand
+like `gnome-builder-cli build`.
+
+## ide-application-command-line.c
+
+This file handles the machinery when we are in command-line mode. This includes
+finding the proper plugin, and parsing arguments for the user.
+
+## ide-application-tests.c
+
+When running our unit tests from the toplevel tests/ directory, we need to
+have a mostly working IdeApplication instance. This helps make that work
+without running the whole program.
+
+## ide-application-credits.h
+
+Various contributors to the project. Add yourself here in the proper place.
+
+## ide-application-actions.c
+
+This file contains the implementation of various actions available with the
+"app." action prefix.
diff --git a/libide/buffers/OVERVIEW.md b/libide/buffers/OVERVIEW.md
new file mode 100644
index 0000000..59df0b1
--- /dev/null
+++ b/libide/buffers/OVERVIEW.md
@@ -0,0 +1,30 @@
+## Buffer Manager
+
+Libide has a buffer manager per-project context (each context has it's own
+workbench window). Buffers exist within the buffer manager, and can be
+autosaved when it is appropriate.
+
+## Buffer
+
+This is our actual buffer. It is a GtkTextBuffer (and GtkSourceBuffer) with
+a bunch of extra smarts to help us interact with version control, diagnostics,
+semantic highlighters, and more. You connect one of these to an IdeSourceView.
+
+## Unsaved Files
+
+This manages a collection of unsaved files. We often need to pass buffers off
+to the compiler subsystem, and anything we can do to avoid calling
+gtk_text_buffer_get_text() a bunch helps. This allows us to reduce the number
+of calls we do on that.
+
+## Unsaved File
+
+The unsaved file instance represents a single file within the Unsaved Files.
+This might get persisted to a drafts directory periodically. It can also be
+passed to subsystems that might need access to the whole, raw, buffer, such
+as the clang compiler.
+
+## Buffer Change Monitor
+
+The Buffer Change Monitor helps track changes to the buffer such as added
+and deleted lines. This can be rendered in the gutter of a source view.
diff --git a/libide/buildsystem/OVERVIEW.md b/libide/buildsystem/OVERVIEW.md
new file mode 100644
index 0000000..1382a0a
--- /dev/null
+++ b/libide/buildsystem/OVERVIEW.md
@@ -0,0 +1,42 @@
+# Build Systems
+
+Various build system machinery.
+
+## ide-builder.c
+
+This object manages a single build request. It contains things like a
+configuration and environment, which can be used to setup the builder.
+
+## ide-build-result-addin.c
+
+This interface can be used by plugins to attach to an IdeBuildResult. They
+might use the log signal to extract information from the build.
+
+## ide-build-result.c
+
+This represents a build result. It is created when the build starts and
+the builder should append information to it as necessary.
+
+## ide-build-system.c
+
+The core interface for the build system integration. This needs to create new
+IdeBuilder instances, help get file flags (such as CFLAGS for C files) and
+other high-level operations.
+
+## ide-configuration-manager.c
+
+Manages all configurations for the project, and reads/writes the .buildconfig
+file.
+
+## ide-configuration.c
+
+An individual configuration that was loaded/persisted to the .buildconfig file.
+
+## ide-environment.c
+
+Manages a collection of key/value pairs (IdeEnvironmentVariable). This is a
+GListModel to make writing environment editors easier.
+
+## ide-environment-variable.c
+
+A single variable within the environment.
diff --git a/libide/devices/OVERVIEW.md b/libide/devices/OVERVIEW.md
new file mode 100644
index 0000000..08f4709
--- /dev/null
+++ b/libide/devices/OVERVIEW.md
@@ -0,0 +1,18 @@
+# Devices
+
+Devices are plumbed into builder so that we can connect external devices
+and push/pull applications from them, remote debug, etc. However, not
+much of that exists yet.
+
+## IdeDevice
+
+Represents a device, such as the local computer or a tablet.
+
+## IdeDeviceManager
+
+Manages all the devices loaded in the context.
+
+## IdeDeviceProvider
+
+Plugin interface that creates devices and adds them to the device manager.
+
diff --git a/libide/directory/OVERVIEW.md b/libide/directory/OVERVIEW.md
new file mode 100644
index 0000000..fd6ae8b
--- /dev/null
+++ b/libide/directory/OVERVIEW.md
@@ -0,0 +1,20 @@
+# Directory Plugin
+
+The directory plugin is primarily a fallback plugin for when others solutions
+could not be found.
+
+## ide-directory-build-system.c
+
+A dummy build system that doesn't really do anything.
+
+## ide-directory-genesis-addin.c
+
+Allows creating a new project from an existing directory.
+
+## ide-directory-plugin.c
+
+Regiters the plugin.
+
+## ide-directory-vcs.c
+
+A dummy VCS that doesn't really do anything.
diff --git a/libide/doap/OVERVIEW.md b/libide/doap/OVERVIEW.md
new file mode 100644
index 0000000..4b4c0a2
--- /dev/null
+++ b/libide/doap/OVERVIEW.md
@@ -0,0 +1,13 @@
+# Doap
+
+This is a crappy doap parser.
+
+TODO: Port this to use GMarkupParseContext instead of xml-reader.h
+
+# IdeDoapPerson
+
+Represents a person (such as a maintainer) from a Doap file.
+
+# IdeDoap
+
+Performs the parsing of a doap file.
diff --git a/libide/editorconfig/OVERVIEW.md b/libide/editorconfig/OVERVIEW.md
new file mode 100644
index 0000000..0bf7b52
--- /dev/null
+++ b/libide/editorconfig/OVERVIEW.md
@@ -0,0 +1,9 @@
+## editorconfig-glib.c
+
+Wrapper for libeditorconfig that gets us the results in a more GLib friendly
+way.
+
+## ide-editorconfig-file-settings.c
+
+Integration with the IdeFileSettings (see files/) with information found
+in various .editorconfig files.


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