Visual Studio Code is a powerful text editor which can be expanded to a full featured integrated development environment (IDE) with plugins. With the Visual Studio Code Remote - Containers extension you can use prebuilt Docker container as the runtime environment for your code development (also called Dev Container). This page serves as an alternative to the Getting Started-section. The following features make this a nice development environment:
uv, ruff, hugo, direnv.zsh-terminal with sane defaults.F1 and type reopen in [container], press ENTER.This takes now some time as the container is downloaded from the registry. Once finished you should see the following in the bottom status bar:
ogs-gcc-dev.
As an example use case we configure, build and debug the ogs executable.
CMake configuration is handled by using CMake presets which can be selected from the bottom status bar in VS Code. See the Configure and build with CMake Presets in Visual Studio Code for details.
In the editor:
ogs.cppmain()-function (around line 58) by clicking on the left gutter in the editor window (a red dot marks the enabled breakpoint).In the CMake sidebar:
Configure Select the debug preset: Hover over the current preset, then click the pen icon. A drop-down list appears where you can select the preset. Alternatively you can open the command palette and invoke the CMake: Select Configure Preset command.Build button (also available in the status bar at the bottom).Debug select the ogs target.After some seconds the status bar color changes orange to indicate an active debugging session:
ogs.cpp. Step over lines with the Debug toolbar buttons on top. See local variables on the left.
In the build directory (make sure to have OGS_USE_PIP=ON or use the release-all CMake preset) build the jupyter-target or graphically:
OGS_USE_PIP=ON, e.g. by using release-all preset.jupyter-target in the Project Outline.
ogs.cpp. Step over lines with the Debug toolbar buttons on top. See local variables on the left.
In the build directory build the preview-web-target. You can build it graphically as described for Jupyter Lab above.
All of this works also via ssh. If you do not have Docker locally running but some server with Docker where you have ssh access to you can do the following:
ENTER (Connect to host).F1 and type reopen in [container], press ENTER.git aliasesThis article was written by Lars Bilke. If you are missing something or you find an error please let us know.
Generated with Hugo 0.154.5
in CI job 743084
|
Last revision: March 10, 2026
Commit: [cmake] Introduced clang base preset. 222b33c5f
| Edit this page on