Giter VIP home page Giter VIP logo

pre-commit-cpp's Introduction

Git pre-commit hooks for C/C++.

Using with pre-commit

Add the following code to your .pre-commit-config.yaml

-   repo: https://github.com/igankevich/pre-commit-cpp
    rev: 0.5.0
    hooks:
    -   id: normalise
        args: ['--tab-width=4']
    -   id: header-guard
        args: ['--only-missing', '--add-vim-filetype']
    -   id: normalise-opencl
    -   id: normalise-cpp
        args: ['--src=src', '--top=sys/types.h']

Available hooks

  • normalise — normalise white space in C/C++ files:
    • change encoding to UTF-8 using chardet library
    • replace tabs at the beginning of the line with spaces
    • replace white space at the end of the line with a newline character
    • remove empty lines from the beginning and the end of the file
  • header-guard — add/update header guard in C/C++ headers.
  • normalise-cpp — fix include paths in C/C++ files:
    • replace relative include paths with the paths relative to source directory
    • sort headers excluding the ones that should always be on the top (e.g. sys/types.h)
  • normalise-opencl — remove leading underscores from OpenCL keywords (e.g. kernel instead of __kernel. Currently this is pure regular expression substitution.

License

Public domain.

pre-commit-cpp's People

Contributors

darcamo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.