8000 GitHub - QiuminGe/cpp-check-lint
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

QiuminGe/cpp-check-lint

Repository files navigation

cpp-check-lint

GitHub release GitHub license GitHub stars GitHub fork GitHub issues

[toc]

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

  • Install from source
# http://cppcheck.net/
yum install -y gcc gcc-c++ cmake
sudo tar -zxvf cppcheck-x.y.tar.gz
cd cppcheck-x.y/
mkdir build && cd build
cmake ..
make -j$(nproc)
  • Install for yum/apt_get/brew :
sudo apt-get install cppcheck
sudo yum install cppcheck
brew install cppcheck
  • help

http://cppcheck.sourceforge.net/manual.html

cpplint

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

builtin binaries

  • cppcheck 2.15 Windows 64-bit (No XP support) Linux x86 GLIBC 2.5

  • cpplint 1.6.1 (linux cpplint need python)

from to
http://cppcheck.net/ cpp-check-lint\bin\linux64 cppcheck
addons
cfg
platforms
http://cppcheck.net/ cpp-check-lint\bin\win64 cppcheck.exe
cppcheck-core.dll
addons
cfg
platforms
https://github.com/cpplint/cpplint/tree/1.6.1 cpp-check-lint\bin\win64 cpplint.py -> cpplint.exe
https://github.com/cpplint/cpplint/tree/1.6.1 cpp-check-lint\bin\linux64 cpplint.py

Extension Settings

  • If ${workspaceFolder} is included, it will be replaced.

Cppcheck

  • 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)
"args": ["--rule-texts=${workspaceFolder}/rule/misra.txt"] -> "args":["--rule-texts=D:/code/demo/rule/misra.txt"]}

Cpplint

  • 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

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

0