{
"image": "ghcr.io/magicolo/rust",
"containerUser": "ubuntu",
"remoteUser": "ubuntu",
"remoteEnv": {
"COMPOSE_BAKE": "1",
"DOCKER_BUILDKIT": "1",
"RUST_TEST_NOCAPTURE": "1",
"CARGO_TARGET_DIR": "/home/ubuntu/.rust/target"
},
"containerEnv": {
"COMPOSE_BAKE": "1",
"DOCKER_BUILDKIT": "1",
"RUST_TEST_NOCAPTURE": "1",
"CARGO_TARGET_DIR": "/home/ubuntu/.rust/target"
},
"mounts": [
{
"source": "${localEnv:HOME}/.ssh",
"target": "/home/ubuntu/.ssh",
"type": "bind"
},
{
"source": "${localEnv:HOME}/.gitconfig",
"target": "/home/ubuntu/.gitconfig",
"type": "bind"
},
{
"source": "${localEnv:HOME}/.docker",
"target": "/home/ubuntu/.docker",
"type": "bind"
},
{
"source": "${localEnv:HOME}/.rust",
"target": "/home/ubuntu/.rust",
"type": "bind"
}
],
"features": {
"ghcr.io/devcontainers/features/common-utils": {},
"ghcr.io/devcontainers/features/docker-outside-of-docker": {}
},
"customizations": {
"vscode": {
"extensions": [
"streetsidesoftware.code-spell-checker",
"mutantdino.resourcemonitor",
"ms-azuretools.vscode-docker",
"yzhang.markdown-all-in-one",
"humao.rest-client",
"mhutchie.git-graph",
"ryanluker.vscode-coverage-gutters",
"usernamehw.errorlens",
"Gruntfuggly.todo-tree",
"mechatroner.rainbow-csv",
"dotenv.dotenv-vscode",
"fill-labs.dependi",
"github.vscode-github-actions",
"Codeium.codeium",
"tamasfe.even-better-toml",
"vadimcn.vscode-lldb",
"rust-lang.rust-analyzer",
"Swellaby.vscode-rust-test-adapter"
],
"settings": {
"dev.containers.dockerCredentialHelper": false,
"dev.containers.copyGitConfig": false,
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
"editor.formatOnSaveMode": "file",
"testExplorer.useNativeTesting": true,
"files.watcherExclude": {
"**/target/**": true
},
"errorLens.enabledDiagnosticLevels": [
"error",
"warning"
],
"todo-tree.regex.regex": "(//|#|<!--|;|/\\*|^|^[ \\t]*(-|\\d+.))\\s*($TAGS)|todo!|unimplemented!",
"rust-analyzer.check.command": "clippy",
"rust-analyzer.showUnlinkedFileNotification": false,
"rust-analyzer.imports.preferNoStd": true,
"rust-analyzer.testExplorer": true,
"rust-analyzer.rustfmt.overrideCommand": [
"bash",
"-c",
"$(rustup which --toolchain nightly rustfmt) --edition 2024 --style-edition 2024 --unstable-features --config wrap_comments=true --config imports_granularity='Crate' --config format_code_in_doc_comments=true --config reorder_impl_items=true --config group_imports='One' ${file}"
],
"rust-analyzer.rustfmt.rangeFormatting.enable": true
}
}
},
"initializeCommand": "mkdir --parents ${localEnv:HOME}/.ssh ${localEnv:HOME}/.docker ${localEnv:HOME}/.rust && touch ${localEnv:HOME}/.gitconfig"
}