mirror of
https://github.com/pmret/papermario.git
synced 2024-09-18 23:42:35 +02:00
Introduce clang-format (#1004)
* add basic .clang-format * configure vscode clang-format modified lines on save * update clang-format to only run on C files * add ci action to print clang-format diff * use GITHUB_BASE_REF * --binary * clang-format-14 * move workflow to pr.yaml * oops * checkout fetch-depth 0 * use cpp-linter-action * test * fail if step fails * log depth * fetch main * set fetch-depth * limit diff and run clang-format * use versioned clang-format * untiy actual code * fix argument order * colorize output * Clean up #989 * move cpp lint job to lint.yaml * disable vscode autoformat * add git hook to make sure assets/$version has been gitignored (#1006) * add git hook to make sure assets/ hasn't been gitignored * echo to stderr * quiet git check-ignore * add .v64 and .n64 to gitignore * Changed some variable names in state_title_screen (#1003) * Changed some variable names in state_title_screen.c * resolving pull request items * changed TitleData to TitleScreenGfxData across sys * replace gbi names with understandable ones * accidentally switched logo and pressStart * changed GfxData to ImgList * Renaming and b32 * Doing this but more * pause menu cleanup (#1008) * minor pause cleanup * macro * comments * second macro * delete macros * hm * pause message names * unused tutorial messages * oops --------- Co-authored-by: HailSanta <Hail2Santa@gmail.com> * fold doc 1 (#1009) * minor fold cleanup * fold doc I * enough * rename * last --------- Co-authored-by: HailSanta <Hail2Santa@gmail.com> * appendGfx_shading_palette (#1010) * cleanup & warnings for modern gcc * clean * stuff * diff.py update * Fix offset problem in struct * Fix texture issue in chapter_change * appendGfx_shading_palette * Convert tabs to spaces (#1012) * Add .git-blame-ignore-revs (#1014) # 1213a4adf0aa515d0c7c7e37db396363914fda2egit-blame * func_E02000AC (#1013) * draw_image_with_clipping (#1016) * draw_image_with_clipping Co-authored-by: Unnunu <serge_zorkin@mail.ru> * tiny fix --------- Co-authored-by: Unnunu <serge_zorkin@mail.ru> * npc_do_player_collision (#1017) * appendGfx_animator_node (#1018) * appendGfx_animator_node Co-authored-by: Mr-Wiseguy <68165316+Mr-Wiseguy@users.noreply.github.com> * find_similar_areas improvements * oopz --------- Co-authored-by: Mr-Wiseguy <68165316+Mr-Wiseguy@users.noreply.github.com> * lol 100% (#1019) Co-authored-by: Rainchus <rainmachus@gmail.com> Co-authored-by: Unnunu <serge_zorkin@mail.ru> * image fx (#1015) * more fold * fold render modes * fold rename 1 * fold rename 2 * fold rename 3 * imgfx struct reorg * post merge * the rest * extras * forgot these * done * ImgFx * ImgFX * check * misc cam stuff * ws --------- Co-authored-by: HailSanta <Hail2Santa@gmail.com> * Pal pause (#1011) * PAL pause segment * PAL pause_gfx_en segment * Apply name changes * Merge gPauseBadgesElements * Rename ITEM_TYPE_FLAG_ENTITY_COLLECTIBLE * Split PAL and monolingual arrays * Nix support (#1020) Very hacky Will be maintained by @NotNite * use ARRAY_COUNT(ExtraDoubleRecipes) (#1023) * Replace python-githooks with manual command (#1027) * ui_images (#1021) * ui_images * Move French assets to their own folder * imgfx data (#1029) * various cleanup (#1030) * more fold * fold render modes * fold rename 1 * fold rename 2 * fold rename 3 * imgfx struct reorg * post merge * the rest * extras * forgot these * done * ImgFx * ImgFX * check * misc cam stuff * ws * misc * btl msg * 3 combine modes * 3 more * many more * screen overlays * stencil types * all screen transitions * jp build fix * another jp fix * iq fix * mystery battle enum added oOoOoOoOooo * DMG_SRC * starting battle cam presets --------- Co-authored-by: HailSanta <Hail2Santa@gmail.com> * btl cam modes (#1035) * some btl cam * couple things --------- Co-authored-by: HailSanta <Hail2Santa@gmail.com> * Add version option to diff.py (#1037) * Clean trailing whitespace (#1038) * Add missing newlines * Remove trailing whitepace * split em (#1040) Co-authored-by: HailSanta <Hail2Santa@gmail.com> * Update .git-blame-ignore-revs (#1039) * standardized battle script names (#1043) * damage intensity * standardized battle script names * few more --------- Co-authored-by: HailSanta <Hail2Santa@gmail.com> * Dump PAL filemenu section (#1036) * Dump PAL filemenu section Co-authored-by: Unnunu <serge_zorkin@mail.ru> * Clean up numbers * Use more constants * Find more constants * Clean up a bit * eth cleanup * Clean up * Fix brace style * rename new file & funcs --------- Co-authored-by: Unnunu <serge_zorkin@mail.ru> Co-authored-by: Ethan Roseman <ethteck@gmail.com> * revert test change * update clang-format config * indent case labels --------- Co-authored-by: Marijn van der Werf <marijn.vanderwerf@gmail.com> Co-authored-by: CreateSource <72283721+abnormalhare@users.noreply.github.com> Co-authored-by: HailSanta <53960937+HailSanta@users.noreply.github.com> Co-authored-by: HailSanta <Hail2Santa@gmail.com> Co-authored-by: Ethan Roseman <ethteck@gmail.com> Co-authored-by: Unnunu <serge_zorkin@mail.ru> Co-authored-by: Mr-Wiseguy <68165316+Mr-Wiseguy@users.noreply.github.com> Co-authored-by: Rainchus <rainmachus@gmail.com> Co-authored-by: Julian <hi@notnite.com> Co-authored-by: Devon R <Gorialis@users.noreply.github.com>
This commit is contained in:
parent
31c98cc94c
commit
4680a74e0b
63
.clang-format
Normal file
63
.clang-format
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
DisableFormat: true # clang-format supports many filetypes
|
||||||
|
---
|
||||||
|
Language: Cpp
|
||||||
|
DisableFormat: false
|
||||||
|
BasedOnStyle: WebKit
|
||||||
|
IndentWidth: 4
|
||||||
|
UseTab: Never
|
||||||
|
ColumnLimit: 120
|
||||||
|
|
||||||
|
AllowShortIfStatementsOnASingleLine: false
|
||||||
|
AllowShortBlocksOnASingleLine: false
|
||||||
|
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
|
BraceWrapping:
|
||||||
|
# Place opening brace on next line if the statement is multi-line
|
||||||
|
# e.g.
|
||||||
|
# if (very
|
||||||
|
# long
|
||||||
|
# condition)
|
||||||
|
# {
|
||||||
|
AfterControlStatement: MultiLine
|
||||||
|
|
||||||
|
IndentCaseLabels: true
|
||||||
|
|
||||||
|
BreakBeforeBinaryOperators: NonAssignment
|
||||||
|
|
||||||
|
ExperimentalAutoDetectBinPacking: true
|
||||||
|
BinPackParameters: false
|
||||||
|
AlignAfterOpenBracket: BlockIndent
|
||||||
|
|
||||||
|
AlignConsecutiveAssignments:
|
||||||
|
Enabled: true
|
||||||
|
AcrossEmptyLines: false
|
||||||
|
AcrossComments: false
|
||||||
|
AlignCompound: true
|
||||||
|
PadOperators: true
|
||||||
|
AlignConsecutiveDeclarations: # structs etc
|
||||||
|
Enabled: true
|
||||||
|
AcrossEmptyLines: false
|
||||||
|
AcrossComments: false
|
||||||
|
AlignConsecutiveMacros:
|
||||||
|
Enabled: true
|
||||||
|
AcrossEmptyLines: false
|
||||||
|
AcrossComments: false
|
||||||
|
AlignTrailingComments: true
|
||||||
|
|
||||||
|
WhitespaceSensitiveMacros: ['STRINGIFY']
|
||||||
|
|
||||||
|
# Our include order is WIP so disable it
|
||||||
|
SortIncludes: false
|
||||||
|
IncludeCategories:
|
||||||
|
# common.h always comes first
|
||||||
|
- Regex: '^"common\.h"$'
|
||||||
|
Priority: 10
|
||||||
|
# everything else
|
||||||
|
- Regex: '.*'
|
||||||
|
Priority: 1
|
||||||
|
SortPriority: 0
|
||||||
|
|
||||||
|
AllowShortFunctionsOnASingleLine: None
|
||||||
|
---
|
||||||
|
|
||||||
|
...
|
46
.github/workflows/lint.yaml
vendored
46
.github/workflows/lint.yaml
vendored
@ -1,29 +1,35 @@
|
|||||||
name: Lint
|
name: Lint
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
|
||||||
- 'src/*'
|
|
||||||
- 'include/*'
|
|
||||||
- 'format.sh'
|
|
||||||
- '.clang-tidy'
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
cpp_lint:
|
||||||
name: Lint
|
name: Format and lint
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
- run: sudo apt-get install -y astyle clang-tidy
|
|
||||||
|
|
||||||
- run: ./format.sh
|
|
||||||
|
|
||||||
# Detect any files changed by ./format.sh
|
|
||||||
- id: files_formatted
|
|
||||||
uses: jackton1/find-changed-files@v1.1
|
|
||||||
with:
|
with:
|
||||||
files: src, include
|
fetch-depth: 0
|
||||||
|
- name: Git
|
||||||
- name: Fail if any files reformatted
|
run: |
|
||||||
if: steps.files_formatted.outputs.files_changed == 'true'
|
git log --oneline --graph --max-count=100
|
||||||
|
git log --oneline --graph --max-count=100 HEAD origin/main
|
||||||
|
- name: clang-format
|
||||||
|
run: |
|
||||||
|
git config --global color.ui always
|
||||||
|
git clang-format-14 --diff origin/main HEAD
|
||||||
|
git config --global color.ui auto
|
||||||
|
- name: Lint
|
||||||
|
uses: cpp-linter/cpp-linter-action@v2
|
||||||
|
id: linter
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
style: file
|
||||||
|
lines-changed-only: diff
|
||||||
|
tidy-checks: ''
|
||||||
|
version: '15'
|
||||||
|
- name: Fail if lint failed
|
||||||
|
if: steps.linter.outputs.checks-failed > 0
|
||||||
run: exit 1
|
run: exit 1
|
||||||
|
1
.vscode/extensions.json
vendored
1
.vscode/extensions.json
vendored
@ -4,6 +4,7 @@
|
|||||||
"nanaian.vscode-star-rod",
|
"nanaian.vscode-star-rod",
|
||||||
"notskm.clang-tidy",
|
"notskm.clang-tidy",
|
||||||
"EditorConfig.EditorConfig",
|
"EditorConfig.EditorConfig",
|
||||||
|
"xaver.clang-format"
|
||||||
],
|
],
|
||||||
"unwantedRecommendations": [
|
"unwantedRecommendations": [
|
||||||
"llvm-vs-code-extensions.vscode-clangd",
|
"llvm-vs-code-extensions.vscode-clangd",
|
||||||
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -35,6 +35,9 @@
|
|||||||
],
|
],
|
||||||
"[c]": {
|
"[c]": {
|
||||||
"editor.wordSeparators": "`~!@#%^&*()-=+[{]}\\|;:'\",.<>/?", // no $, for scripts
|
"editor.wordSeparators": "`~!@#%^&*()-=+[{]}\\|;:'\",.<>/?", // no $, for scripts
|
||||||
|
"editor.formatOnSave": false, // TODO: enable this once we solve EVTs, see #1004
|
||||||
|
"editor.formatOnSaveMode": "modifications",
|
||||||
|
"editor.defaultFormatter": "xaver.clang-format",
|
||||||
},
|
},
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
"*.h": "c",
|
"*.h": "c",
|
||||||
|
40
format.sh
40
format.sh
@ -1,40 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
COMPILER_OPTS="-std=gnu89 -Iinclude -Isrc -D_LANGUAGE_C"
|
|
||||||
|
|
||||||
shopt -s globstar
|
|
||||||
|
|
||||||
FILES="src/**/*.c include/*.h"
|
|
||||||
if (( $# > 0 )); then
|
|
||||||
# only process .c and .h files
|
|
||||||
FILES=$(echo "$@" | sed 's/ /\n/g' | grep '\.[ch]$')
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z $FILES ]]; then
|
|
||||||
echo "no .c or .h files specified"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# format
|
|
||||||
astyle ${FILES} \
|
|
||||||
--formatted --suffix=none \
|
|
||||||
--lineend=linux \
|
|
||||||
--convert-tabs \
|
|
||||||
--max-code-length=120 \
|
|
||||||
--min-conditional-indent=0 \
|
|
||||||
--style=attach \
|
|
||||||
--align-pointer=type --align-reference=name \
|
|
||||||
--indent-switches \
|
|
||||||
--pad-oper --pad-comma --pad-header --unpad-paren \
|
|
||||||
--attach-return-type \
|
|
||||||
--keep-one-line-blocks \
|
|
||||||
--keep-one-line-statements
|
|
||||||
|
|
||||||
# add newline at eof
|
|
||||||
find ${FILES} -exec sed -i -e '$a\' {} \;
|
|
||||||
|
|
||||||
# lint
|
|
||||||
C_FILES=$(echo "$FILES" | grep '\.c$')
|
|
||||||
if [[ ! -z $C_FILES ]]; then
|
|
||||||
clang-tidy -p . ${C_FILES} -- ${COMPILER_OPTS}
|
|
||||||
fi
|
|
Loading…
Reference in New Issue
Block a user