Subsystems
Project Contexts
Context
At the root of the object graph in Foundry is the FoundryContext.
Generally, it represents a single project on the users system.
However, to allow for project-less use-cases a “shared” context may be created.
See foundry_context_new() to create a new context for a specific project.
See foundry_context_new_for_user() to create a new context for the user without involving a project such as for simple text editor or documentation services.
Contextual
For objects that are to be used solely within the context of a FoundryContext, subclass FoundryContextual.
These objects will have their FoundryContextual:context property cleared when the foundry is shutdown.
Contextuals do not hold a full reference to the FoundryContext.
Instead it is a weak reference which may be upgraded to a full reference when calling foundry_contextual_dup_context().
Inhibitor
Use FoundryInhibitor to prevent the shutdown of a context during a long running operation.
Calls to foundry_context_shutdown() will be asynchornously delayed until the inhibitor as released the shutdown lock.
Services
Many features in Foundry are implemented through independent services.
The FoundryService base-class is inhereted by these services and attached to the FoundryContext.
You may implement your own services in your application using libfoundry.
Register the dynamically by calling foundry_context_dup_service_typed().
SDK Management
Building
FoundryBuildManagerFoundryBuildPipelineFoundryBuildAddinFoundryCommandStageFoundryBuildProgressFoundryBuildFlagsFoundryCompileCommandsFoundryDeployStrategyFoundryLinkedPipelineStage
Running
Build Configuration
Commands and Subprocesses
Managing Terminals
CLI Commands
Devices
Diagnostics
Symbol Extraction
File Management
FoundryFileManagerFoundryDirectoryListingFoundryDirectoryItemFoundryDirectoryReaperFoundryFileMonitorFoundryFileMonitorEvent
Settings
Foundry supports robust hierarchical settings which puts the user in control. The settings are applied in the following order from highest-to-lowest priority. The first “layer” where a setting has been applied will take priority.
- User setting with a specific projects
.foundry/user/settings.keyfile - Project setting shared with collaborators in
.foundry/project/settings.keyfile - Application-wide user preferences
- Application defaults
You may use the foundry settings command-line tool or FoundrySettings to modify settings at any of these layers.
Documentation
FoundryDocumentationBundleFoundryDocumentationManagerFoundryDocumentationMatchesFoundryDocumentationProviderFoundryDocumentationQueryFoundryDocumentationRootFoundryDocumentation
Text Editing
FoundryTextManagerFoundryTextDocumentFoundryTextDocumentAddinFoundryTextBufferProviderFoundryTextBufferFoundryTextEditFoundrySimpleTextBufferFoundryCompletionProviderFoundryCompletionProposalFoundryCompletionRequestFoundryHoverProviderFoundryCodeActionFoundryOnTypeFormatterFoundryOnTypeDiagnosticsFoundryTextFormatterFoundryTextSettingsFoundryTextSettingsProvider
Language Server Protocol
Search
Flatpak
Version Control
FoundryVcsManagerFoundryVcsProviderFoundryVcsFoundryNoVcsFoundryGitVcsFoundryVcsBlameFoundryVcsTagFoundryVcsBranchFoundryVcsReferenceFoundryVcsRemoteFoundryVcsCommitFoundryVcsTreeFoundryVcsDiffFoundryVcsDeltaFoundryVcsSignatureFoundryVcsLineChanges
Operations & Logging
Unit Testing
Dependency Tracking
Debuggers
FoundryDebuggerManagerFoundryDebuggerProviderFoundryDebuggerFoundryDebuggerModuleFoundryDebuggerTargetFoundryDebuggerTargetCommandFoundryDebuggerTargetProcessFoundryDebuggerTargetRemoteFoundryDebuggerThreadFoundryDebuggerThreadGroupFoundryDebuggerStackFrameFoundryDebuggerTrapFoundryDebuggerBreakpointFoundryDebuggerWatchpointFoundryDebuggerCountpointFoundryDebuggerSourceFoundryDebuggerMappedRegionFoundryDebuggerInstructionFoundryDebuggerEventFoundryDebuggerStopEventFoundryDebuggerVariable