Skip to content

eBikeLabs/cpp-checker

 
 

Repository files navigation

cpp-checker

GitHub release GitHub license GitHub stars GitHub fork GitHub issues

A fork of cpp-check-lint by QiuminGe

Features

  • cppcheck/cpplint:
    • editor/context
      • check current file
      • check the directory of the current file
      • cmd :
        • clear all
        • clear current file
        • stop check
    • explorer/context
      • check directory || check current file
      • cmd
    • OnSave/QuickFix

Requirements

cppcheck

cpplint

  • Install from source
    https://github.com/cpplint/cpplint
    
  • Install from pip
    pip install cpplint
    

builtin binaries

  • cppcheck 2.4.1

  • cpplint 1.5.5

    support (linux cpplint need python)

    Os Bit Version
    Ubuntu 64 16.04+
    Debian 64 9+
    CentOS 64 7+
    RHEL 64 7+
    Windows 64 7+

Extension Settings

  • Cppcheck:--executable

    if (cppcheck configure is null) {
        use builtin binaries
    } else {
        if( ("path to executable" --version).trim().toLowerCase().startsWith("cppcheck") ){
            use "path to executable"
        } else {
        use builtin binaries 
        }
    }
    
  • Cppcheck:--addon=

    [
        "cert", 
        {
            "script": "misra.py", 
            "args": [
                "--rule-texts=/home/user/misra.txt"
            ]
        }, 
        "y2038.py", 
        "C:\\UsersAdministrator\\hreadsafety.json"
    ]

    "addon" and "addon.py" will use addons folder under the same level folder as cppcheck .

    [rorot@cpppcheck]$ tree | grep -E " cppcheck.exe| addons| misra.py| y2038.py| cert.py| threadsafety.py"
    ├── addons
    │   ├── cert.py
    │   ├── misra.py
    │   ├── threadsafety.py
    │   └── y2038.py
    ├── cppcheck.exe
    

    Some addons need extra arguments. You can configure json or json file.

    {
        "script": "misra.py",
        "args": [
            "--rule-texts=/home/user/misra.txt"
        ]
    }
    "--rule-texts=/home/user/misra.txt" (need absolute path, and use "/" or "\\" to split paths)
    If ${workspace folder} is included, it will be replaced.
    "args": ["--rule-texts=${workspaceFolder}/rule/misra.txt"] -> "args":["--rule-texts=D:/code/demo/rule/misra.txt"]}
    
  • Cpplint:--executable

    if (cpplint configure is null) {
        use builtin binaries
    } else {
        if("path to executable"){
            use "path to executable"
        } else {
            use builtin binaries 
        }
    } 
    
  • Cpplint:--recursive

  • Cpplint:--lintdir

    if ( cpplint version support "--recursive") {
            set --recursive true
        } else {
            set "--recursive" false
            set "--lintdir"
    }
    
  • customargs

    If the configuration parameters cannot be satisfied, use custom configuration "--customargs="

  • OnSave

    cpplint suggest use with clang-format

  • QuickFix

    It's just suppresses alarms

  • Configure

    skip unsupported flag

    type value
    bool false
    string ""
    number null
    object null

Known Issues

Source code


About

A VSCode extension to run cppcheck in real-time and highlight the errors

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 92.1%
  • JavaScript 7.9%