From 58b9c062950ddf3bb8011b69715b83ca358f4eac Mon Sep 17 00:00:00 2001 From: jspijker Date: Wed, 30 Nov 2022 06:55:38 +0100 Subject: [PATCH 1/4] Only run formatting on UM repo This should limit the changed files to only the files we allow to main. --- .github/workflows/printer-linter-format.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/printer-linter-format.yml b/.github/workflows/printer-linter-format.yml index d146d080de..8fb1ab4752 100644 --- a/.github/workflows/printer-linter-format.yml +++ b/.github/workflows/printer-linter-format.yml @@ -11,6 +11,7 @@ on: jobs: printer-linter-format: + if: ${{ github.repository_owner == 'Ultimaker' }} name: Printer linter auto format runs-on: ubuntu-latest @@ -35,9 +36,9 @@ jobs: if: env.GIT_DIFF && !env.MATCHED_FILES run: pip install -r .github/workflows/requirements-printer-linter.txt -# - name: Format file -# if: env.GIT_DIFF && !env.MATCHED_FILES -# run: python printer-linter/src/terminal.py --format ${{ env.GIT_DIFF_FILTERED }} + - name: Format file + if: env.GIT_DIFF && !env.MATCHED_FILES + run: python printer-linter/src/terminal.py --format ${{ env.GIT_DIFF_FILTERED }} - uses: stefanzweifel/git-auto-commit-action@v4 if: env.GIT_DIFF && !env.MATCHED_FILES From 3eb98873a6e4c5b13fdc17a4b53040a995eee9c8 Mon Sep 17 00:00:00 2001 From: jspijker Date: Wed, 30 Nov 2022 07:38:05 +0100 Subject: [PATCH 2/4] Fix diagnostic multiline --- printer-linter/src/printerlinter/linters/defintion.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index dc272ccd9c..b0201976be 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -43,7 +43,7 @@ class Definition(Linter): for key, value_dict in definition["overrides"].items(): is_redefined, value, parent = self._isDefinedInParent(key, value_dict, definition['inherits']) if is_redefined: - redefined = re.compile(r'.*(\"' + key + r'\"[\s\S]*?\{)[\s\S]*?(\}[,\"]?)') + redefined = re.compile(r'.*(\"' + key + r'\"[\s\:\S]*?)\{[\s\S]*?\},?') found = redefined.search(self._content) yield Diagnostic( file = self._file, @@ -54,7 +54,7 @@ class Definition(Linter): replacements = [Replacement( file = self._file, offset = found.span(1)[0], - length = found.span(2)[1] - found.span(1)[0], + length = len(found.group()), replacement_text = "")] ) From dbc0ac11802c3629834eb194ae26900136501b42 Mon Sep 17 00:00:00 2001 From: jspijker Date: Wed, 30 Nov 2022 08:04:09 +0100 Subject: [PATCH 3/4] Only suggest a fix if it is on a single line --- .../src/printerlinter/linters/defintion.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index b0201976be..8c221be467 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -45,17 +45,23 @@ class Definition(Linter): if is_redefined: redefined = re.compile(r'.*(\"' + key + r'\"[\s\:\S]*?)\{[\s\S]*?\},?') found = redefined.search(self._content) + # TODO: Figure out a way to support multiline fixes in the PR review GH Action, for now suggest no fix to ensure no ill-formed json are created + if len(found.group().splitlines()) > 1: + replacements = [] + else: + replacements = [Replacement( + file = self._file, + offset = found.span(1)[0], + length = len(found.group()), + replacement_text = "")] + yield Diagnostic( file = self._file, diagnostic_name = "diagnostic-definition-redundant-override", message = f"Overriding {key} with the same value ({value}) as defined in parent definition: {definition['inherits']}", level = "Warning", offset = found.span(0)[0], - replacements = [Replacement( - file = self._file, - offset = found.span(1)[0], - length = len(found.group()), - replacement_text = "")] + replacements = replacements ) def _loadDefinitionFiles(self, definition_file) -> None: From b011fc95616e5de0d27c06d6d6c25845bb8c6283 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 30 Nov 2022 10:51:09 +0100 Subject: [PATCH 4/4] Add comment referencing GH issue https://github.com/platisd/clang-tidy-pr-comments/issues/37 --- printer-linter/src/printerlinter/linters/defintion.py | 1 + 1 file changed, 1 insertion(+) diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index 8c221be467..d684cd98e9 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -46,6 +46,7 @@ class Definition(Linter): redefined = re.compile(r'.*(\"' + key + r'\"[\s\:\S]*?)\{[\s\S]*?\},?') found = redefined.search(self._content) # TODO: Figure out a way to support multiline fixes in the PR review GH Action, for now suggest no fix to ensure no ill-formed json are created + # see: https://github.com/platisd/clang-tidy-pr-comments/issues/37 if len(found.group().splitlines()) > 1: replacements = [] else: