{
  // Suggested vscode default settings for simplifying initial setup. These
  // settings are hoped to be convenient and helpful for those beginning to use
  // vscode with Chrome. Please modify and change as necessary.
  // All settings are optional, but some more "optional" settings at the end
  // are disabled by default. Feel free to enable them.

  // Default tab size of 2, for consistency with internal codebase.
  "editor.tabSize": 2,
  // Do not figure out tab size from opening a file.
  "editor.detectIndentation": false,
  // Add a line at 80 characters.
  "editor.rulers": [80],

  // Except for Java where we add a line at 100 characters per that style guide
  // and the tab width should be 4 spaces.
  // The chrome java style guide:
  // https://chromium.googlesource.com/chromium/src/+/main/styleguide/java/java.md
  // does not override this and defers to the android style guide:
  // https://source.android.com/docs/setup/contribute/code-style
  "[java]": {
    "editor.rulers": [100],
    "editor.tabSize": 4
  },

  "extensions": {
    "recommendations": [
      // The GN language server from Microsoft.
      //
      // Provides support for .gn and .gni files.
      "msedge-dev.gnls",
    ],
  },

  // Forces LF instead of "auto" which uses CRLF on Windows.
  "files.eol": "\n",
  // Trim tailing whitespace on save.
  "files.trimTrailingWhitespace": true,
  // Insert trimmed final new line.
  "files.insertFinalNewline": true,
  "files.trimFinalNewlines": true,

  "files.associations": {
    // Adds xml syntax highlighting for grd files.
    "*.grd" : "xml",
  },

  "files.exclude": {
    // Ignore build output folders.
    "out*/**": true
  },

  "files.watcherExclude": {
    // Don't watch out*/ and third_party/ for changes to fix an issue
    // where vscode doesn't notice that files have changed.
    // https://github.com/Microsoft/vscode/issues/3998
    // There is currently another issue that requires a leading **/ for
    // watcherExlude. Beware that this pattern might affect other out* folders
    // like src/cc/output/.
    "**/out*/**": true,
    "**/third_party/**": true
  },

  // Wider author column for annotator extension.
  // https://marketplace.visualstudio.com/items?itemName=ryu1kn.annotator
  "annotator.annotationColumnWidth": "24em",

  // C++ clang format settings. |workspaceFolder| is assumed to be Chromium's
  // src/ directory.
  "C_Cpp.clang_format_path": "${workspaceFolder}/third_party/depot_tools/clang-format",
  "C_Cpp.clang_format_sortIncludes": true,
  "editor.formatOnSave": true,
  "editor.formatOnSaveMode": "modifications",

  // Disable automatic task detection to speed up opening the task menu.
  "task.autoDetect": "off",

  // Used by tasks.json for integration with Chrome tests and builds.
  "chrome.outputDir": "${workspaceFolder}/out/current_link",

  // Optional: Highlight current line at the left of the editor.
  // "editor.renderLineHighlight": "gutter",
  // Optional: Don't automatically add closing brackets. It gets in the way.
  // "editor.autoClosingBrackets": "never",
  // Optional: Enable a tiny 30k feet view of your doc.
  // "editor.minimap.enabled": true,
  // "editor.minimap.maxColumn": 80,
  // "editor.minimap.renderCharacters": false,
  // Optional: Don't continuously fetch remote changes.
  //"git.autofetch": false,
  // Optional: Do not open files in 'preview' mode. Opening a new file in can
  //           replace an existing one in preview mode, which can be confusing.
  //"workbench.editor.enablePreview": false,
  // Optional: Same for files opened from quick open (Ctrl+P).
  //"workbench.editor.enablePreviewFromQuickOpen": false,
}
