# GNOME Builder

Welcome to the Builder project!

We’re excited to have you here! The Builder project started out of a class teaching people to program for the GNOME platform. In the process, we realized that we need to improve our tooling so we started creating Builder! We hope you love using Builder to create great software for GNOME!

## Contents

- Installation
- Exploring the Interface
- Projects
  - Creating and Importing Projects
  - Building your Project
  - Debugging your Project
  - Profiling your Project
  - Sharing your Project
- Extensions
  - API Reference
  - Enabling and Disabling Extensions
  - Creating Your First Extension
  - Extending the Workbench
    - Basics
    - Registering Workspace Actions
    - Extend HeaderBar and OmniBar
    - Adding a Surface
    - Adding Panels to the Workspace
  - Extending the Greeter
  - Extending the Editor
    - Extending the Editor Page
    - Managing Buffers
    - Syntax Highlighting
    - Diagnostics and Fix-Its
    - Providing Completion Proposals
    - Snippets
    - File Settings and Indentation
  - Symbols and Semantic Analysis
    - Go To Definition
    - Extending the Symbol Tree
    - Renaming Symbols
  - Extending the Build Pipeline
    - Implementing a Build System
    - Extending the Build Pipeline
  - Processes and Containers
    - Application Runtimes and Containers
    - Subprocesses and Pseudo Terminals
  - Extending the Device Manager
  - Extending the Run Manager
  - Registering Keybindings
  - Integrating Language Servers
  - Extending Project Search
  - Session Tracking
  - Extending Application Menus
  - Registering Application Preferences
  - Managing Worker Processes
  - Integrating Version Control
- How-To Guides
  - Changing Indentation
  - Search and Replace
  - Jump to Definition
  - Searching for Symbols
  - Rust integration
  - Use a Custom Sysroot
- Troubleshooting
- Contributing
  - Planning and Project Management
  - Writing Documentation
  - Contributing Code
- Credits