From becf99f94b770cee334bcbeab8b6a6b179a6c74a Mon Sep 17 00:00:00 2001 From: "David J. Malan" Date: Tue, 19 Sep 2023 16:17:46 -0400 Subject: [PATCH] Transitioning to devcontainer.json --- devcontainer.json | 229 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 devcontainer.json diff --git a/devcontainer.json b/devcontainer.json new file mode 100644 index 000000000..85483654c --- /dev/null +++ b/devcontainer.json @@ -0,0 +1,229 @@ +{ + "build": { + "args": { + "VCS_REF": "${localEnv:VCS_REF}" + }, + "context": ".", + "dockerfile": "Dockerfile" + }, + "customizations": { + "vscode": { + "extensions": [ + "/opt/cs50/extensions/explain50-1.0.0.vsix", + "/opt/cs50/extensions/cs50-0.0.1.vsix", + "/opt/cs50/extensions/ddb50-2.0.0.vsix", + "/opt/cs50/extensions/phpliteadmin-0.0.1.vsix", + "/opt/cs50/extensions/style50-0.0.1.vsix", + "cs50.extension-uninstaller", + "inferrinizzard.prettier-sql-vscode", + "mathematic.vscode-pdf", + "ms-ceintl.vscode-language-pack-bg", + "ms-ceintl.vscode-language-pack-cs", + "ms-ceintl.vscode-language-pack-de", + "ms-ceintl.vscode-language-pack-es", + "ms-ceintl.vscode-language-pack-fr", + "ms-ceintl.vscode-language-pack-hu", + "ms-ceintl.vscode-language-pack-it", + "ms-ceintl.vscode-language-pack-ja", + "ms-ceintl.vscode-language-pack-ko", + "ms-ceintl.vscode-language-pack-pl", + "ms-ceintl.vscode-language-pack-pt-br", + "ms-ceintl.vscode-language-pack-ru", + "ms-ceintl.vscode-language-pack-zh-hans", + "ms-ceintl.vscode-language-pack-zh-hant", + "ms-python.python", + "ms-vscode.cpptools", + "ms-vscode.hexeditor", + "ms-vsliveshare.vsliveshare", + "redhat.java", + "vscjava.vscode-java-debug", + "vsls-contrib.gitdoc" + ], + "settings": { + "breadcrumbs.enabled": false, + "C_Cpp.autocomplete": "disabled", + "C_Cpp.clang_format_fallbackStyle": "{ AllowShortFunctionsOnASingleLine: Empty, BraceWrapping: { AfterCaseLabel: true, AfterControlStatement: true, AfterFunction: true, AfterStruct: true, BeforeElse: true, BeforeWhile: true }, BreakBeforeBraces: Custom, ColumnLimit: 132, IndentCaseLabels: true, IndentWidth: 4, SpaceAfterCStyleCast: true, TabWidth: 4 }", /* https://clang.llvm.org/docs/ClangFormatStyleOptions.html */ + "C_Cpp.codeFolding": "disabled", + "C_Cpp.debugShortcut": false, + "C_Cpp.dimInactiveRegions": false, + "C_Cpp.doxygen.generateOnType": false, + "C_Cpp.enhancedColorization": "enabled", + "C_Cpp.errorSquiggles": "disabled", + "C_Cpp.formatting": "clangFormat", + "diffEditor.diffAlgorithm": "advanced", + "diffEditor.ignoreTrimWhitespace": false, + "editor.autoClosingQuotes": "never", + "editor.colorDecorators": false, + "editor.emptySelectionClipboard": false, + "editor.folding": false, + "editor.foldingHighlight": false, + "editor.formatOnSave": false, + "editor.guides.indentation": false, + "editor.hover.enabled": false, + "editor.lightbulb.enabled": false, + "editor.matchBrackets": "never", + "editor.minimap.enabled": false, + "editor.occurrencesHighlight": false, + "editor.parameterHints.enabled": false, + "editor.quickSuggestions": { + "other": "off", + "comments": "off", + "strings": "off" + }, + "editor.renderWhitespace": "selection", + "editor.selectionHighlight": false, + "editor.semanticTokenColorCustomizations": { + "[GitHub Dark Default]": { + "rules": { + "type": "#FF7E76" + } + }, + "[GitHub Light Default]": { + "rules": { + "type": "#D2343F" + } + } + }, + "editor.suggestOnTriggerCharacters": false, + "extensions.ignoreRecommendations": true, + "explorer.compactFolders": false, + "extension-uninstaller.uninstall": [ + "Codeium.codeium", + "Codeium.codeium-enterprise-updater", + "github.copilot", + "github.copilot-nightly", + "ms-toolsai.vscode-jupyter-cell-tags", + "tabnine.tabnine-vscode" + ], + "files.autoSave": "afterDelay", + "files.exclude": { + "**/.*": true + }, + "files.trimTrailingWhitespace": true, + "files.watcherExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/node_modules/*/**": true + }, + "git.autofetch": true, /* Disable "Would you like Code to periodically run 'git fetch'?" toast */ + "github.codespaces.devcontainerChangedNotificationStyle": "none", + "git.decorations.enabled": false, + "git.terminalAuthentication": true, + "github.gitAuthentication": true, + "gitdoc.autoPull": "off", + "gitdoc.enabled": true, + "gitdoc.commitMessageFormat": "ccc, LLL d, kkkk, h:mm a ZZ", + "gitdoc.commitValidationLevel": "none", + "gitdoc.pullOnOpen": false, + "html.format.indentInnerHtml": true, + "html.suggest.html5": false, + "java.server.launchMode": "Standard", + "java.configuration.runtimes": [ + { + "name": "JavaSE-20", + "path": "/opt/jdk-20.0.2", /* env | grep JAVA_HOME (set in cs50/cli) */ + "default": true + } + ], + "java.inlayHints.parameterNames.enabled": "none", + "java.debug.settings.enableRunDebugCodeLens": false, + "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, + "javascript.suggest.enabled": false, + "javascript.validate.enable": false, /* Disable red squiggles */ + "Prettier-SQL.keywordCase": "upper", + "problems.decorations.enabled": false, + "python.formatting.provider": "black", + "python.terminal.executeInFileDir": true, + "remote.otherPortsAttributes": { + "onAutoForward": "silent" + }, + "scm.countBadge": "off", + "terminal.integrated.commandsToSkipShell": [ + "workbench.action.toggleSidebarVisibility" + ], + "terminal.integrated.enableBell": true, + "terminal.integrated.defaultProfile.linux": "bash", + "terminal.integrated.gpuAcceleration": "off", + "terminal.integrated.profiles.linux": { + "bash": { + "args": [ + "--login" + ], + "icon": "terminal", + "path": "bash" + }, + "JavaScript Debug Terminal": null + }, + "terminal.integrated.persistentSessionReviveProcess": "never", + "terminal.integrated.sendKeybindingsToShell": true, + "terminal.integrated.shellIntegration.enabled": true, + "terminal.integrated.shellIntegration.decorationsEnabled": "never", /* Remove decoration for each command */ + "terminal.integrated.tabs.description": "${task}${separator}${local}", /* Remove cwdFolder from description */ + "terminal.integrated.tabs.showActiveTerminal": "never", + "window.autoDetectColorScheme": true, + "workbench.colorCustomizations": { + "editor.lineHighlightBorder": "#0000", /* Disable gray border-{bottom,top} on active line */ + "editorError.foreground": "#0000", /* Disable red squiggles */ + "editorWarning.foreground": "#0000", /* Disable yellow squiggles */ + "editorGutter.addedBackground": "#0000", + "editorGutter.deletedBackground": "#0000", + "editorGutter.modifiedBackground": "#0000", /* Disable yellow bars to left of lines modified since last commit */ + "[GitHub Dark Default]": { + "activityBar.background": "#000", + "editor.background": "#000", + "editor.lineHighlightBackground": "#0000", + "editor.lineHighlightBorder": "#0000", + "editorWhitespace.foreground": "#59A5FC", + "panel.background": "#000", + "sideBar.background": "#000", + "terminal.foreground": "#fff", + "terminal.background": "#000" + }, + "[GitHub Light Default]": { + "activityBar.background": "#fff", + "editor.background": "#fff", + "editor.lineHighlightBackground": "#fff0", + "editor.lineHighlightBorder": "#fff0", + "editorWhitespace.foreground": "#1167D7", + "panel.background": "#fff", + "sideBar.background": "#fff", + "terminal.foreground": "#000", + "terminal.background": "#fff" + } + }, + "window.commandCenter": false, + "workbench.editorAssociations": { + "*.wav": "vscode.audioPreview" + }, + "workbench.editor.closeOnFileDelete": true, + "workbench.editor.enablePreview": false, + "workbench.editor.untitled.hint": "hidden", + "workbench.iconTheme": "vs-minimal", /* Simplify icons */ + "workbench.preferredDarkColorTheme": "GitHub Dark Default", + "workbench.preferredLightColorTheme": "GitHub Light Default", + "workbench.startupEditor": "none", + "workbench.statusBar.visible": false, + "workbench.tips.enabled": false, + "workbench.welcomePage.walkthroughs.openOnInstall": false + } + } + }, + "features": { + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {} + }, + "forwardPorts": [ + 5000, /* Flask */ + 5900, /* VNC server */ + 6081, /* VNC client */ + 8080, /* http-server */ + 8082 /* phpLiteAdmin */ + ], + "postCreateCommand": "/opt/cs50/bin/postCreateCommand", + "remoteEnv": { + "CS50_GH_USER": "${localEnv:GITHUB_USER}", + "GH_TOKEN": "${localEnv:CS50_TOKEN}", + "LANG": "${localEnv:CS50_LANG}", + "LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}", + "TZ": "${localEnv:CS50_TZ}" + } +}