/pygments-git

Pygments lexers for Git output and files

Primary LanguagePythonMIT LicenseMIT

pygments-git

https://img.shields.io/github/actions/workflow/status/adamchainz/pygments-git/main.yml.svg?branch=main&style=for-the-badge https://img.shields.io/badge/Coverage-100%25-success?style=for-the-badge https://img.shields.io/pypi/v/pygments-git.svg?style=for-the-badge https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge pre-commit

Pygments lexers for Git output and files.


Get better at command line Git with my book Boost Your Git DX.


Installation

Use pip:

python -m pip install pygments-git

Python 3.8 to 3.12 supported.

Usage

With the package installed, Pygments will autodiscover the below lexers.

When using Pygments directly, you can refer to them by name. Within Sphinx/docutils, you can refer to them in code-block directives:

.. code-block:: git-console

    $ git log --oneline
    82fbbd3 D'oh! Fix math proof
    91e9879 Aye carumba! Grammar mistake
    61c4c08 Cowabunga! Update bibliography

To preview the lexers, open the tests/index.html file within the repository.

git-attributes

A lexer for .gitattributes files.

git-blame-ignore-revs

A lexer for the file format used by blame.ignoreRevsFile. The de facto name for a repository-wide ignore file is .git-blame-ignore-revs, as recognized by GitHub and potentially other Git hosting services.

git-commit-edit-msg

A lexer for the COMMIT_EDITMSG file that Git opens when you run git commit. It calls out to DiffLexer for highlighting any diff, as added by git commit --verbose.

git-conflict-markers

A lexer for the conflict markers that Git adds to indicate conflicts during a merge. All other text in the file is lexed as plain text.

git-console

A lexer for interactive shell sessions with Git. It calls out to BashLexer for highlighting commands on lines starting with a $ and DiffLexer for highlighting inline diffs.

git-ignore

A lexer for .gitignore files.

git-rebase-todo

A lexer for the git-rebase-todo file that Git opens when you run git rebase --interactive. It calls out to BashLexer for highlighting commands on lines starting with x or exerc a $ and DiffLexer for highlighting inline diffs.