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 diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index dc272ccd9c..d684cd98e9 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -43,19 +43,26 @@ 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) + # 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: + 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 = found.span(2)[1] - found.span(1)[0], - replacement_text = "")] + replacements = replacements ) def _loadDefinitionFiles(self, definition_file) -> None: