### Namespace

# Foundry – 1

A GNOME library providing IDE capabilities

Version | 1.1.1
Authors | Christian Hergert
License | LGPL-2.1-or-later
Website | https://gitlab.gnome.org/GNOME/foundry/
Source | https://gitlab.gnome.org/GNOME/foundry/

#### Build

C headers | `foundry.h`
pkg-config files | `libfoundry-1`

#### Dependencies

GLib—2.0 | The base type system library
| Browse documentation
GObject—2.0 | The base type system library
| Browse documentation

#### Additional documentation

- Overview
- Subsystems
- Classes Hierarchy

#### Classes

ActionIntent | Represents an intent to perform an action with optional parameters. since: 1.1
ActionMuxer | Custom GActionGroup integration.
AuthProvider | Abstract class for requesting credentials from a user.
BuildAddin | Customize build pipelines from plugins.
BuildFlags | Represents build flags to a compiler or other command.
BuildManager | Manages build operations and build system integration.
BuildPipeline | Manages build pipeline execution and coordination.
BuildProgress | Manages build progress tracking and stage execution.
BuildStage | A single state in a build pipeline.
BuildTarget | Abstract base class representing a singular build target.
CliCommandTree | Manages a hierarchical tree of CLI commands.
CliCommandTreeAddin | Addin interface for extending the CLI command tree. since: 1.1
CodeAction |
CodeTemplate | A template for generating new code in a project.
Command | A command that may be run in a shell environment.
CommandLine | Abstract base class for command line interface implementations.
CommandManager | Service managing command providers and their commands.
CommandProvider | Abstract base class allowing plugins to provide commands.
CommandStage | An `FoundryBuildStage` that runs a command in the build pipeline.
CompileCommands |
CompletionProposal | An abstract base class for completion providers.
CompletionProvider | Abstract base class for providing code completion suggestions.
CompletionRequest | Represents a single completion request.
Config | An abstract base class for build configurations.
ConfigManager | Manage configuration providers and their configs.
ConfigProvider | Abstract base class for plugins to implement access to custom configs.
Context | The central object representing an open project.
Contextual | Abstract base class for objects that are associated with a Foundry context.
DapDebugger | Debug Adapter Protocol (DAP) implementation of the debugger interface.
DBusService | Manages D-Bus service for remote command execution.
Debugger | Abstract base class for debugger implementations.
DebuggerActions | Simplified interface for performing debugger actions.
DebuggerBreakpoint | Abstract base class for debuggers to represent breakpoints.
DebuggerCountpoint | Abstract base class for debuggers to implement countpoints.
DebuggerEvent |
DebuggerInstruction | Represents a single assembly instruction.
DebuggerLogMessage | Abstract base class for representing log messages in the debugger.
DebuggerManager | Manages debugger providers and coordinates debugging operations.
DebuggerMappedRegion | Abstract base class for representing mapped memory regions in the debugger.
DebuggerModule | Abstract base class for representing modules in the debugger.
DebuggerProvider | Abstract base class for providing debugger functionality.
DebuggerSource | Represents a source code location.
DebuggerStackFrame | Abstract base class for representing stack frames in the debugger.
DebuggerStopEvent | Represents why a debugger has stopped.
DebuggerTarget | Abstract base class for representing the types of targets a debugger can connect to.
DebuggerTargetCommand | Command-based implementation of debugger target.
DebuggerTargetProcess | Represents a request to connect to an existing process.
DebuggerTargetRemote | Repreesnts connecting to a remote debugger instance.
DebuggerThread | Abstract base class for representing threads in the debugger.
DebuggerThreadGroup | Represents a group of threads.
DebuggerTrap | Abstract base class for different types of ways a debugger may stop.
DebuggerTrapParams | Represents parameters for debugger traps and breakpoints.
DebuggerVariable | Abstract base class for representing variables in the debugger.
DebuggerWatchpoint | Abstract base class for debuggers to imlement traps upon memory changing.
Dependency | Abstract base class to represent a dependency implemented by plugins.
DependencyManager | Manages plugins implementing `FoundryDependencyProvider`.
DependencyProvider | Abstract base class for plugins to provide known dependencies.
DeployStrategy | Represents how a plugin can deploy a build to a specific device for running.
Device | Represents a local or remote device that can be deployed to.
DeviceInfo | Minimal descriptive information about a device.
DeviceManager | Manage plugins providing device integration and their devices.
DeviceProvider | Abstract base class for plugins which want to provide specific device integration.
Diagnostic | Represents a single diagnostic.
DiagnosticFix | Represents a fix that may be applied to resolve a diagnostic.
DiagnosticManager | Manages diagnostic information and error reporting.
DiagnosticProvider | Abstract base class for plugins to provide diagnostics.
DiagnosticRange | Represents a range within a file that a diagnostic applies to.
DiagnosticTool | Simplified base class for working with diagnostic tooling which provide a structured format.
DirectoryItem | Represents a single item found with in a directory listing.
DirectoryListing | Manages directory contents and file listings.
DirectoryReaper | Simplified interface for deleting files or directories recursively.
DoapFile |
DoapPerson |
DoapService |
Documentation | Abstract base class for plugins to provide a documentation endpoint.
DocumentationBundle | Abstract base class for plugins to provide installable documentation.
DocumentationIntent | Represents an intent to display documentation. since: 1.1
DocumentationManager | Service that manages documentation plugins.
DocumentationMatches | Represents a set of matches from a documentation query.
DocumentationProvider | Abstract base class for plugins to provide documentation.
DocumentationQuery | Represents a query into the documentation engine.
DocumentationRoot | An area where documentation may be ingested from.
Extension | Represents a single plugin extension with FoundryContext support.
ExtensionSet | Manages a collection of extensions and provides unified access to their functionality.
FileManager | Manages file operations and provides file system abstraction.
FileMonitor | A file monitor which integrates well with DexFuture.
FileMonitorEvent | Represents an event that has occurred from a file monitor.
FileSearchMatch | A file search match result. since: 1.1
FileSearchOptions | Configuration options for file search operations. since: 1.1
FileSearchProvider | A pluggable file search provider. since: 1.1
FileSearchReplacement | Perform text replacements across search matches. since: 1.1
FlatpakArchOptions |
FlatpakExtension |
FlatpakExtensions |
FlatpakList |
FlatpakManifest |
FlatpakManifestLoader |
FlatpakModule |
FlatpakModules |
FlatpakOptions |
FlatpakSerializable |
FlatpakSource |
FlatpakSourceArchive |
FlatpakSourceBzr |
FlatpakSourceDir |
FlatpakSourceExtraData |
FlatpakSourceFile |
FlatpakSourceGit |
FlatpakSourceInline |
FlatpakSourcePatch |
FlatpakSources |
FlatpakSourceScript |
FlatpakSourceShell |
FlatpakSourceSvn |
Forge | Abstract base class for forge service implementations. since: 1.1
ForgeIssue | Abstract base class for representing issues from forge services.
ForgeListing | Abstract base class for managing paginated listings from forge services. since: 1.1
ForgeManager | Manages plugins providing `FoundryForge` implementations. since: 1.1
ForgeMergeRequest | Abstract base class for representing merge requests from forge services.
ForgeProject | Represents a project on a forge. since: 1.1
ForgeQuery |
ForgeUser | Represents a user on a forge.
Gir | Represents a GObject Introspection Repository (GIR) file.
GirNode | Represents a node in a GObject Introspection Repository (GIR) file.
GitBlame | Git implementation of blame information for version control files.
GitBranch |
GitCloner |
GitCommit |
GitCommitBuilder |
GitDelta |
GitDiff |
GitDiffHunk |
GitDiffLine |
GitFile |
GitReference |
GitRemote |
GitSignature |
GitStats |
GitStatusEntry |
GitStatusList |
GitTag |
GitTree |
GitVcs | Git implementation of the version control system interface.
HoverProvider | Abstract base class for plugins to provide hover tooltip features.
Inhibitor | Inhibit shutdown of `FoundryContext` during important operations.
Input | Base class for various types of user input.
InputChoice |
InputCombo |
InputFile |
InputFont |
InputGroup |
InputPassword |
InputSpin |
InputSwitch |
InputText |
InputValidator |
InputValidatorDelegate |
InputValidatorRegex |
Intent | Abstract base class for representing intents.
IntentHandler | Abstract base class for handling intents.
IntentManager | The intent manager provides a generic mechanism to handle intents within an application. since: 1.1
JsonListLlmResource |
JsonLlmResource |
KeyRotator | Abstract base class for rotating API keys. since: 1.1
Language | Represents a programming language or syntax.
LanguageGuesser | Abstract base class that plugins can implement to guess languages based on file content.
License | Represents a source code license.
LinkedPipelineStage | A pipeline stage that will execute another pipline before continuing the current pipeline.
LlmCompletion |
LlmCompletionChunk |
LlmConversation | Abstract base class for managing conversations with large language models.
LlmManager |
LlmMessage |
LlmModel |
LlmProvider |
LlmResource | Abstract base class for LLM resources.
LlmTool |
LlmToolCall |
LocalDevice |
LogManager |
LogMessage |
LspClient |
LspCompletionProposal |
LspCompletionProvider |
LspManager |
LspProvider |
LspServer |
Markup |
McpServer |
MenuSearchProvider |
MenuSearchResult |
ModelManager | Integrate with platform high-level models such as flatten or map.
NoVcs | A No-op VCS used to represent no VCS is active.
OnTypeDiagnostics | Represents diagnostics that are continually updated as the contents of a document are changed.
OnTypeFormatter | Abstract base class for plugins to implement formatting as you type.
OpenFileIntent | Represents an intent to open a file.
Operation | Represents a long-running operation in the development environment with progress tracking.
OperationManager | Manage operations that should be observed by the user as tasks.
PathCache | Thread-safe cache for path lookups.
PluginBuildAddin | The `FoundryPluginBuildAddin` class is a convenience object that may be used by plug-ins implementing a build system.
PluginLspProvider |
PluginManager |
ProcessLauncher | Manages process execution and subprocess launching.
ProjectTemplate | A template for creating a new project.
PtyDiagnostics | Custom PTY intermediate that can extract diagnostics.
RenameProvider |
RunManager | Manages application execution and runtime operations.
RunTool | Represents a specific tool that can be used to run the application.
Sdk | Represents a software development kit (SDK).
SdkManager | Manages plugins providing SDK providers and their SDKs.
SdkProvider | Abstract base class implemented by plugins to provide access to SDKs of a specific type.
SearchManager | Service that manages plugins providing search capabilities.
SearchProvider | Abstract base class allowing plugins to provide search capabilities.
SearchRequest | Abstract base class used by plugins to represent a singlular search result.
SearchResult | Abstract base class for search results.
SecretService | Manages secure storage and retrieval of API keys and sensitive data.
Service | Abstract base class for services in the development environment.
Settings | Abstraction for user, project, and application settings.
SimpleLlmMessage |
SimpleTextBuffer | Simple implementation of a text buffer.
Symbol | Abstract base class for representing symbols.
SymbolIntent | Represents an intent to navigate to a symbol location. since: 1.1
SymbolLocator |
SymbolProvider | Abstract base class allowing plugins to introspect symbols within a specific file or file content.
Template |
TemplateManager |
TemplateOutput |
TemplateProvider |
TerminalIntent |
TerminalLauncher | Simplified interface representing how a terminal should be spawned.
TerminalService | Service providing convenient access to terminal operations.
Test | Abstract base class representing a single test.
TestManager | Manages plugins providing test providers and their tests.
TestProvider | Abstract base class to be implemented by plugins that want to integrate with the unit testing system.
TestSuite | A grouping of `FoundryTest`. since: 1.1
TextBufferProvider | Interface to be implemented by platform libraries to integrate with their text buffer implementation of choice such as GtkSourceView.
TextDocument | Represents a text document in the development environment with editing capabilities.
TextDocumentAddin | Abstract base class for plugins to alter how documents work.
TextEdit | Represents a single text edit to a document.
TextFormatter | Abstract base class for plugins to implement custom text formatting.
TextManager | Manages text documents and provides text editing services.
TextSettings | Manages text editor settings and configuration.
TextSettingsProvider | Abstract base class for providing text editor settings.
TtyAuthProvider | Auth provider which requests credentials from a TTY.
Tweak | Represents a tweak that may be altered by a user.
TweakManager | Manages tweaks and configuration adjustments.
TweakProvider | Abstract base class for plugins to provide tweaks.
UnixFDMap |
Vcs | Abstract base class for plugins to implement support for a VCS.
VcsBlame |
VcsBranch |
VcsCommit |
VcsDelta |
VcsDiff |
VcsDiffHunk |
VcsDiffLine |
VcsFile |
VcsLineChanges |
VcsManager | Manages VCS implementations provided by plugins.
VcsProvider | Abstract base class for plugins to implement a version control system such as Git, Mercurial, Subversion, or CVS.
VcsReference |
VcsRemote | Abstract base class for version control system remote repository implementations.
VcsSignature |
VcsStats |
VcsTag |
VcsTree |
WebIntent | Represents an intent to open a URI with a web browser.

#### Interfaces

TextBuffer |

#### Structs

Action |
ActionMixin |
CliCommand |
CliOptions |
CliTool |
DiagnosticBuilder |
FileOpenIntent |
GitUri |
ObjectSerializerEntry | Used to determine what properties to serialize in command line data.
Pipeline |
TextIter |
TextIterVTable |
Triplet |
TweakInfo |
TweakPath |

#### Enumerations

CommandLineError | `FOUNDRY_COMMAND_LINE_ERROR_RUN_LOCAL`: indicate that the command should be run on the client side rather than in the parent process.
CommandLocality | `FOUNDRY_COMMAND_LOCALITY_SUBPROCESS`: run as a subprocess of builder `FOUNDRY_COMMAND_LOCALITY_HOST`: run on the host system, possibly bypassing container `FOUNDRY_COMMAND_LOCALITY_BUILD_PIPELINE`: run from build pipeline `FOUNDRY_COMMAND_LOCALITY_APPLICATION`: run like a target application.
CompletionActivation |
ContextError |
ContextualError |
DebuggerMovement |
DebuggerStopReason |
DebuggerTrapDisposition |
DebuggerTrapKind |
DeviceChassis |
DiagnosticSeverity |
DiagnosticToolError |
DoapFileError |
ForgeError |
GirError |
GirNodeType |
Locality |
MarkupKind |
ObjectSerializerFormat |
ProcessLauncherShell | Describes the type of shell to be used within the context.
SdkConfigOption |
ServiceError |
SettingsLayer |
TextBufferNotifyFlags | since: 1.1
TextSetting |
TextWrap |
VcsDeltaStatus |
VcsDiffLineOrigin |

#### Bitfields

BuildPipelinePhase |
ContextFlags |
DapDebuggerQuirk |
DebuggerWatchAccess |
ModifierType |
VcsFileStatus |
VcsLineChange |

#### Error Domains

BuildError |
GitCloneError |

#### Callbacks

ActionActivateFunc |
ExtensionSetForeachFunc |
InputValidatorCallback |
ListModelMapFunc |
OnTypeDiagnosticsForeachFunc |
ProcessLauncherHandler |
ServiceAction |
TextBufferCommitNotify | This callback maps to the same semantics as in GTK. since: 1.1
VcsLineChangesForeach |

#### Functions

build_error_quark |
dap_protocol_extract_error |
dap_protocol_has_error |
dap_protocol_unwrap_error |
dup_projects_directory |
dup_projects_directory_file |
file_canonicalize |
file_find_in_ancestors | Locates `name` within any of the ancestors of `file` up to the root of the filesystem.
file_find_regex_with_depth | Locates files starting from `file` matching `regex`.
file_find_with_depth | Locates files starting from `file` matching `pattern`.
file_is_in |
file_list_children_typed |
file_query_exists_nofollow | Resolves to true if `file` exists.
file_read_link | Asynchronously resolves `file` if it is a symbolic link. since: 1.1
file_read_link_recurse | Asynchronously resolves `file` by repeatedly following symbolic links until the result is not a symbolic link, or `max_depth` steps have been taken. since: 1.1
file_test | Similar to `g_file_test()` but performed on the thread pool and yields a future.
flatten_list_model_new |
fuzzy_match | This helper function can do a fuzzy match for you giving a haystack and casefolded needle. since: 1.1
get_default_arch |
get_os_info |
get_version_string |
git_clone_error_quark |
git_initialize | Initializes a new git repository.
host_file_get_contents_bytes |
init | Initializes libfoundry which is completed once the resulting `DexFuture` completes.
json_node_from_bytes | Bytes to be deocded into a json node.
json_node_get_string_at |
json_node_new_strv |
json_node_to_bytes | `node` must not be modified after calling this function until the future as resolved or rejected.
json_node_to_bytes_full | Converts `node` to a `GBytes` asynchronously. since: 1.1
json_node_to_string | Converts `node` to a string synchronously using a `JsonGenerator`. since: 1.1
json_parser_load_from_file | Loads `file` into `parser` and returns a future that resolves when that has completed.
json_parser_load_from_stream | Like `json_parser_load_from_stream()` but asynchronous and returns a `DexFuture` which can be awaited upon.
key_file_new_from_file | Similar to calling `g_key_file_new()` followed by a load function. This handles both construction and loading as well as doing parsing off of the main thread.
key_file_new_merged |
list_model_await | Returns a future that resolves when the list has completed being populated or rejects with error.
list_model_set_future | Sets the future that can be awaited for completion of populating the list model.
map_list_model_new |
mkdir_with_parents | Similar to `g_mkdir_with_parents()` but runs on a dedicated thread. deprecated: 1.1
path_collapse | This function will collapse a path that starts with the users home directory into a shorthand notation using ~/ for the home directory.
path_expand | This function will expand various “shell-like” features of the provided path using the POSIX wordexp(3) function. Command substitution will not be enabled, but path features such as ~user will be expanded.
pipe |
pty_create_producer |
search_path_append |
search_path_prepend |
shell_get_default | Gets the user preferred shell on the host.
shell_get_default_path | Gets the default `$PATH` on the system for the user on the host.
shell_supports_dash_c |
shell_supports_dash_login | Checks if the shell is known to support login semantics. Originally, this meant `--login`, but now is meant to mean `-l` as more shells support `-l` than `--login` (notably dash).
subprocess_communicate | Like `g_subprocess_communicate()` but only supports stdout and is returned as a future to `GBytes`.
subprocess_communicate_utf8 | Like `g_subprocess_communicate_utf8()` but only supports stdout and is returned as a future to a string.
subprocess_wait_check | If `cancellable` is cancelled, then `subprocess` will be force exited.

#### Function Macros

ALIGNED_BEGIN |
ALIGNED_END |
BUILD_PIPELINE_PHASE_MASK |
BUILD_PIPELINE_PHASE_WHENCE_MASK |
CONTEXTUAL_DEBUG |
CONTEXTUAL_INFO |
CONTEXTUAL_MESSAGE |
CONTEXTUAL_WARNING |
DEBUG |
DECLARE_INTERNAL_TYPE |
DEPRECATED_FOR |
DEPRECATED_IN_1_0_FOR |
DEPRECATED_IN_1_1_FOR |
INFO |
MESSAGE |
PLUGIN_DEFINE |
PLUGIN_REGISTER_TYPE |
STRV_INIT |
UNAVAILABLE |
WARNING |

#### Constants

DOCUMENTATION_ATTRIBUTE_DEPRECATED |
DOCUMENTATION_ATTRIBUTE_SINCE |
DOCUMENTATION_ATTRIBUTE_STABILITY |
GIR_NODE_LAST |
SEARCH_CATEGORY_ACTIONS |
SEARCH_CATEGORY_DOCUMENTATION |
SEARCH_CATEGORY_FILES |
SEARCH_CATEGORY_SYMBOLS |
TEXT_SETTING_LAST |