Step-by-step guide

  1. Install Visual Code using these instructions.
  2. Install extensions (see below)
  3. Configure (see example below)
  4. Open your TrafficServer code repository with the Open...File menu.

Extensions

There's a number of extensions (plugins) for Visual Code.  You can install these extensions via the extensions manager, just search for the various names. Alternatively, you can run the "ext install" command via the command prompt (cmd-P).

Must have

These are the extensions we believe you really will want to use. Remember that some of them require other software, like the CScope tools (via HomeBrew).

  • ms-vscode.cpptools: C/C++ IntelliSense, debugging, and code browsing
    • ext install ms-vscode.cpptools
  • eamodio.gitlens: GitLense - Git Super Charged
    • ext install eamodio.gitlens
  • CoenraadS.bracket-pair-colorizer: A customizable extension for colorizing matching brackets
    • ext install CoenraadS.bracket-pair-colorizer
  • EditorConfig: EditorConfig Support for Visual Studio Code
    • ext install EditorConfig
  • xaver.clang-format: Use Clang-Format in Visual Studio Code
    • ext install xaver.clang-format
  • maelvalais.autoconf: Syntax support for the Autoconf M4 and Automake files (Autotools)
    • ext install maelvalais.autoconf


Configurations

This is just my personal settings, but it gives you a reasonable starting point at least. This is what I put in my global User Configurations:

{
    "editor.renderWhitespace": "boundary",
    "editor.cursorStyle": "block",
    "editor.fontSize": 14,
    "editor.formatOnSave": true,
    "workbench.iconTheme": "vscode-icons",
    "workbench.colorTheme": "Default High Contrast",
    "gitlens.currentLine.enabled": false,
    "gitlens.blame.highlight.enabled": true,
    "gitlens.blame.highlight.locations": [
        "gutter",
        "overview"
    ],
    "gitlens.codeLens.recentChange.enabled": true,
    "gitlens.recentChanges.highlight.locations": [
        "gutter",
        "overview"
    ],
    "gitlens.historyExplorer.enabled": true,
    "gitProjectManager.baseProjectsFolders": [
        "/Users/leif/apache/trafficservers"
    ],
    "gitlens.advanced.messages": {
        "suppressShowKeyBindingsNotice": true
    },
    "terminal.integrated.fontSize": 14,
    "reflow.preferredLineLength": 100,
    "window.zoomLevel": 0,
    "clang.executable": "/usr/bin/clang",
    "C_Cpp.clang_format_path": "/usr/local/bin/clang-format",
    "C_Cpp.clang_format_fallbackStyle": "Mozilla",
    "C_Cpp.intelliSenseEngineFallback": "Enabled",
    "C_Cpp.intelliSenseEngine": "Default",
    "C_Cpp.navigation.length": 80,
    "[makefile]": {
        "editor.tabSize": 8,
        "editor.insertSpaces": false
    },
    "workbench.activityBar.visible": true,
    "editor.minimap.enabled": true,
    "shellformat.flag": "-i 4 -p",
    "shellformat.runOnSave": true,
    "files.autoSave": "afterDelay",
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/.DS_Store": true,
        "**/*.o": true,
        "**/*.a": true,
        "**/*.so": true,
        "**/.deps": true,
        "**/.libs": true,
        "**/.dirstamp": true,
    },
    "projectManager.groupList": false
}