Skip to content

Instantly share code, notes, and snippets.

@chergert
Last active December 14, 2015 09:08
Show Gist options
  • Select an option

  • Save chergert/5062236 to your computer and use it in GitHub Desktop.

Select an option

Save chergert/5062236 to your computer and use it in GitHub Desktop.
builder design
Things that need to be written
==============================
GbProject // A project container. Can be saved/loaded to/from disk.
GbProjectItem // Base class, for items in a project.
GbProjectFile // A file that can exist in a project.
GbProjectTarget // A target within a project, like a library/program.
GbProjectDependency // Base class, handles success/failure cases.
GbProjectDependencyFramework // Depends on availability of a gnome framework.
GbProjectDependencyHeader // Depends on availability of a #include header.
GbProjectDependencyPackage // Depends on a pkgconfig package being installed.
GbProjectDependencyPypi // Deepends on a pypi python package being installed.
GbProjectDependencyGem // Depends on a ruby gem being installed.
GbLanguage // Base class, for all languages.
GbLanguageC // Handles quirks specific to C.
GbLanguageJavascript // Handles quirks specific to Javascript.
GbLanguageFormatter // Handles possible input formatting as they type (or after?)
GbLanguageFormatterC // Handles input formatting for C.
GbLanguageFormatterJs // Handles input formatting for JS.
GbCompiler // Base compiler class.
GbCompilerC // Compiler that uses Gcc/Clang.
GbCompilerJavascript // Compiler that uses javascript.
GbCompilerResult // Result from a compilation.
GbCompilerResultItem // Item within the compilation result.
GbRunner // Base class for executing things.
GbRunnerAndroid // Executes something inside of Android machine.
GbRunnerBoxes // Runs something inside of Gnome Boxes VM.
GbRunnerProgram // Runs an executable program w/ arguments.
GbProfiler // Base class for profilers.
GbProfilerLtrace // Ltrace profiler.
GbProfilerStrace // Strace profiler.
GbProfilerValgrind // Valgrind profiler.
GbDebugger // Debugger base class.
GbDebuggerGdb // GDB debugger implementation.
GbCompletion // Potential completion item, generates snippets for insertion.
GbCompletionProvider // Completion provider base class.
GbCompletionProviderC // C completion provider (clang_completeAt())
GbCompletionProviderJavascript // Javascript completion provider (using Reflect.parse())
GbSourceDiff // Tracks changes to text ranges in a GtkSourceBuffer
GbSourceView // Source view implementation with enhancements.
GbSourcePane // Window pane implementation for source view.
GbSourceGutterRendererDiff // Renders changes found in a GbSourceChanges.
GbSourceGutterRendererCompiler // Renders information about compilation result of the file.
GbSourceSnippet // Snippet that can be inserted into the source view.
GbSourceSnippetChunk // Single chunk of a snippet, can have a tab-stop, etc.
GbSourceSnippets // Collection of snippets.
GbSourceState // source view state base class.
GbSourceStateInsert // Basic insertion state of source view can insert snippets, etc.
GbSourceStateSnippet // Snippet insertion state of source view, can tab through tab-stops, type, etc
// Where do our types parsed from clang get inserted into the source view?
GbDocsView // Documentation browser view.
GbDocsProvider // Provider for documentation information.
GbDocsProviderDevhelp // Devhelp documentation provider. Can resolve docs for keywords, types, etc.
GbDocsProviderGir // Gir documentation provider. Can resolve docs for keywords, types, etc.
GbSymbolProvider // Base class for providing symbol information.
GbSymbolProviderC // Provider for C project/file using clang.
GbSymbolProviderJs // Provider for javascript using Reflect.parse()
GbSymbolPane // Browser widget pane for viewing (and jumping to source) of symbols.
GbSymbolCombobox // Combobox for dropdown list of symbols in project/file/etc.
GbSymbol // An actual symbol that can be visualized (and jumped to), has a GbSOurceLocation.
GbSymbolLocation // Location of a symbol within a file.
GbTerminalPane // A view containing a VTE terminal.
GbWorkspace // The toplevel window, contains everything.
GbWorkspaceLayout // The layout for the window (might change based on debug/run/etc modes)
GbWorkspacePane // A base class for all other views.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment