devcontainer.json 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. {
  2. "name": "Ladybird",
  3. "image": "mcr.microsoft.com/devcontainers/base:noble",
  4. // Features to add to the dev container. More info: https://containers.dev/implementors/features.
  5. "features": {
  6. "ghcr.io/devcontainers/features/github-cli:1": {},
  7. "ghcr.io/devcontainers-contrib/features/pre-commit:2": {},
  8. "./features/ladybird": {
  9. "llvm_version": 18
  10. },
  11. "./features/vcpkg-cache": {
  12. "release_triplet": true,
  13. // FIXME: Figure out how to have the CI prebuilt version set both of these true
  14. "debug_triplet": false,
  15. "sanitizer_triplet": false
  16. },
  17. "ghcr.io/devcontainers/features/desktop-lite": {
  18. "password": "vscode",
  19. "webPort": "6080",
  20. "vncPort": "5901"
  21. }
  22. },
  23. // Use 'forwardPorts' to make a list of ports inside the container available locally.
  24. "forwardPorts": [
  25. 6080,
  26. 5901
  27. ],
  28. "portsAttributes": {
  29. "5901": {
  30. "label": "VNC"
  31. },
  32. "6080": {
  33. "label": "Web VNC"
  34. }
  35. },
  36. // Use 'postCreateCommand' to run commands after the container is created.
  37. "postCreateCommand": "pre-commit install; pre-commit install --hook-type commit-msg",
  38. // Configure tool-specific properties.
  39. "customizations": {
  40. "vscode": {
  41. "extensions": [
  42. "ms-vscode.cmake-tools",
  43. "llvm-vs-code-extensions.vscode-clangd",
  44. "eamodio.gitlens"
  45. ],
  46. "settings": {
  47. // Excluding the generated directories keeps your file view clean and speeds up search.
  48. "files.exclude": {
  49. "**/.git": true,
  50. "Toolchain/Local/**": true,
  51. "Toolchain/Tarballs/**": true,
  52. "Toolchain/Build/**": true,
  53. "Build/**": true
  54. },
  55. "search.exclude": {
  56. "**/.git": true,
  57. "Toolchain/Local/**": true,
  58. "Toolchain/Tarballs/**": true,
  59. "Toolchain/Build/**": true,
  60. "Build/**": true
  61. },
  62. // Tab settings
  63. "editor.tabSize": 4,
  64. "editor.useTabStops": false,
  65. // format trailing new lines
  66. "files.trimFinalNewlines": true,
  67. "files.insertFinalNewline": true,
  68. // git commit message length
  69. "git.inputValidationLength": 72,
  70. "git.inputValidationSubjectLength": 72,
  71. // If clangd was obtained from a package manager, its path can be set here.
  72. // Note: This has to be adjusted manually, to the "llvm_version" from above
  73. "clangd.path": "clangd-18",
  74. "clangd.arguments": [
  75. "--header-insertion=never" // See https://github.com/clangd/clangd/issues/1247
  76. ]
  77. }
  78. }
  79. }
  80. // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
  81. // "remoteUser": "root",
  82. }