[llvm] code-format: Improve the code-format-helper to be able to run as a git hook (PR #73957)
Aiden Grossman via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 6 13:09:52 PST 2023
================
@@ -1,21 +1,56 @@
#!/usr/bin/env python3
#
-# ====- code-format-helper, runs code formatters from the ci --*- python -*--==#
+# ====- code-format-helper, runs code formatters from the ci or in a hook --*- python -*--==#
#
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#
-# ==-------------------------------------------------------------------------==#
+# ==--------------------------------------------------------------------------------------==#
import argparse
import os
import subprocess
import sys
-from functools import cached_property
+from typing import List, Optional
-import github
-from github import IssueComment, PullRequest
+"""
+This script is run by GitHub actions to ensure that the code in PR's conform to
+the coding style of LLVM. It can also be installed as a pre-commit git hook to
+check the coding style before submitting it. The canonical source of this script
+is in the LLVM source tree under llvm/utils/git.
+
+For C/C++ code it uses clang-format and for Python code it uses darker (which
+in turn invokes black).
+
+You can learn more about the LLVM coding style on llvm.org:
+https://llvm.org/docs/CodingStandards.html
+
+You can install this script as a git hook by symlinking it to the .git/hooks
+directory:
+
+ln -s $(pwd)/llvm/utils/git/code-format-helper.py .git/hooks/pre-commit
+
+You can control the exact path to clang-format or darker with the following
+environment variables: $CLANG_FORMAT_PATH and $DARKER_FORMAT_PATH.
+"""
+
+
+class FormatArgs:
----------------
boomanaiden154 wrote:
Given that LLVM's minimum required python version is 3.6, we should have dataclass support (assuming someone isn't running a really old 3.6 release as it was backported). Might make sense to turn this into a dataclass since it's essentially a struct?
https://github.com/llvm/llvm-project/pull/73957
More information about the llvm-commits
mailing list