jbenden / cppcheck-extension

Runs the cppcheck static code analyzer from vscode

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cppcheck README

This extension utilizes the cppcheck static code analyzer to provide C and C++ code analysis within Visual Studio Code.

Features

  • Run cppcheck for a single file.
  • Run cppcheck for the entire workspace.
  • On the fly linting within the code editor.

cppcheck linting

Requirements

Cppcheck must be installed. Any version may be used. The extension will try to locate the cppcheck executable if possible. On Windows, it will search the 32-bit and 64-bit Program Files directories. On Linux and macOS, several bin directories will be searched.

If cppcheck is not found, cppcheck.cppcheckPath must be set to the correct location of the executable.

Windows Installation

Cppcheck is available for download at cppcheck.sourceforge.net.

Ubuntu Installation

For Ubuntu users, Cppcheck is available via apt-get.

sudo apt-get install cppcheck

macOS Installation

For macOS users, Cppcheck can most easily be installed using Homebrew.

brew install cppcheck

Linting

The linter can be enabled by setting 'cppcheck.lintingEnabled' to true. This can be done either globally in user settings, or per-workspace in workspace settings. The current recommendation is to enable linting per-workspace.

Extension Settings

  • cppcheck.enable: Enable/disable the analyzer.
  • cppcheck.cppcheckPath: The path to the cppcheck executable.
  • cppcheck.includePaths: The paths to any include directories.
  • cppcheck.platform: The compilation platform. This determines data types and sizes (e.g. sizeof(int)).
  • cppcheck.standard: The language standard to use (e.g. c++11).
  • cppcheck.define: Symbols to define for the preprocessor.
  • cppcheck.undefine: Symbols to undefine for the preprocessor.
  • cppcheck.suppressions: Any cppcheck rules to suppress (see the cppcheck manual).
  • cppcheck.verbose: Enable verbose output from cppcheck.
  • cppcheck.showStatusBarItem: Show/hide the status bar item for displaying analyzer commands.
  • cppcheck.lintingEnabled: Whether to enable automatic linting for C/C++ code. Linting runs on workspace changes and file saves.
  • cppcheck.outputCommandLine: Whether to output the command line used to invoke Cppcheck.

A quick note on paths

When using the includePaths setting, variables will be expanded once. Anything embedded will be used as is. In addition to any environment variable being expanded, ${workspaceRoot} will also be expanded.

Release Notes

0.0.8

  • Fix for issue #5 (environment variables).
  • Fixed the linter not working when 'cppcheck.verbose' is true.

0.0.7

  • Windows 64-bit executable detection (always looks in '%sytemdrive%\Program Files\Cppcheck').

0.0.6

  • Actually changed 'cppcheck.enabled' to true instead of just saying it.

0.0.5

  • macOS executable detection (thanks to Jason Dreyzehner).
  • Changed 'cppcheck.enabled' to true.
  • Better documentation about installation (thanks to Jason Dreyzehner).
  • Documentation about enabling the linter.

0.0.4

  • Added linting directly to the code editor (thanks to Andreas Pazureck).
  • Linting is listed in the Problems view for all files in the workspace.

0.0.3

  • Added a new setting to automatically show the output channel after running cppcheck (true by default).
  • Fix for issue #1 (Doesn't do anything).

0.0.2

  • Updated to use the logo from cppcheck (as generously provided by Daniel Marjamäki), instead of blue on white.
  • Added links to the cppcheck website and manual.
  • Added a command for opening the cppcheck manual on the web.

0.0.1

  • Initial release of cppcheck extension.

About

Runs the cppcheck static code analyzer from vscode

License:MIT License


Languages

Language:TypeScript 100.0%