45 Commits

Author SHA1 Message Date
jspijker
ab86a85c77 Ignore redundant-override in the machine_* types 2023-01-10 11:02:08 +01:00
jspijker
6b810fbd6c Allow for wildcard with printer-linter 2022-12-30 21:59:43 +01:00
Jelle Spijker
cab248c131 Use the same MAX_MESH_FILE_SIZE as the UT 2022-12-28 13:11:57 +01:00
Jelle Spijker
6109b4b9da distinguish between (default_)value and other properties 2022-12-13 14:36:14 +01:00
jelle Spijker
8117087664 Revert "Fix multiline printer-linter PR suggestions"
This reverts commit 7820cc98
2022-12-13 11:30:13 +01:00
Joey de l'Arago
3f699a35f4
Merge pull request #13969 from lggomez/feat/pinter-linter_invfiles
printer-linter: exit on invalid definition file paths
2022-12-09 11:43:35 +01:00
Luis Gabriel Gomez
358f20a94e
printer-linter: exit on invalid definition file paths
This PR prevents silent failure with empty diagnostics if an invalid file path was provided
2022-12-04 19:45:25 -03:00
Luis Gabriel Gomez
651e56ca9d
Clarify linter steps for running locally 2022-12-04 19:33:48 -03:00
jspijker
7820cc9840 Fix multiline printer-linter PR suggestions 2022-12-02 10:28:42 +01:00
jspijker
6243cc11bd Don't order the fdmprinter.def.json
The order in the settings in the front-end depends on it
2022-12-01 15:33:59 +01:00
Jelle Spijker
b011fc9561
Add comment referencing GH issue
https://github.com/platisd/clang-tidy-pr-comments/issues/37
2022-11-30 10:51:09 +01:00
jspijker
dbc0ac1180 Only suggest a fix if it is on a single line 2022-11-30 08:04:09 +01:00
jspijker
3eb98873a6 Fix diagnostic multiline 2022-11-30 07:38:05 +01:00
jspijker
c0d92e90f8 Fix extruders formatting/diagnosing 2022-11-29 17:29:44 +01:00
jspijker
8a1f94c832 Fix format-definition-paired-coordinate-array 2022-11-29 16:23:59 +01:00
Joey de l'Arago
3eb5f91fd6 align dictionary values and add comma to end of dict. 2022-11-28 09:14:42 +01:00
Joey de l'Arago
a809e5a91c don't shadow format function. 2022-11-28 09:13:19 +01:00
Joey de l'Arago
57ec36b7fe Fix typing 2022-11-25 14:37:22 +01:00
Joey de l'Arago
f8590be6da Remove elif after returns 2022-11-25 14:29:33 +01:00
Joey de l'Arago
00acc3f31a
Update printer-linter/src/printerlinter/diagnostic.py
Co-authored-by: Jelle Spijker <j.spijker@ultimaker.com>
2022-11-25 14:29:03 +01:00
Joey de l'Arago
86ac4c4ab8 Fix regex for list/dict match last item in list without comma at end.
Add some custom ordering to the json. This is so that important values like "version" don't get pushed to the end of the json.
2022-11-25 14:09:12 +01:00
Joey de l'Arago
e83ed933e2 Update readme with instruction for developing.
Change DiagnosticGenerator -> Linter since this is much easier to understand.
2022-11-23 17:52:33 +01:00
Joey de l'Arago
8e027c4af9 Add is not None because it makes it clearer that the lamdba returns a boolean. 2022-11-23 17:21:31 +01:00
Joey de l'Arago
a7800f824a Use formatters in terminal.py
Do some general refactoring for readability
2022-11-23 17:20:22 +01:00
Joey de l'Arago
b6ac85d251 Add separate package with file formatters. 2022-11-23 17:19:14 +01:00
Joey de l'Arago
ad436f37f8 Add some comments and refactoring 2022-11-23 16:48:39 +01:00
Joey de l'Arago
437b05f608 Add some doc strings 2022-11-23 15:28:57 +01:00
Joey de l'Arago
0b2e409929 Update documentation on diagnostic to be less specifically about strings. Since diagnostics can be related to other issues. 2022-11-23 15:25:13 +01:00
Joey de l'Arago
d19f1f3e42 Add typing for file and settings.
Add diagnostic generator documentation
2022-11-23 15:20:42 +01:00
Joey de l'Arago
f49f8b3cb8 Add some documentation to factory and format file. 2022-11-23 15:10:55 +01:00
Joey de l'Arago
c097838614 Add replacement documenation 2022-11-23 15:07:28 +01:00
Joey de l'Arago
44af869a2c Add documentation to diagnostic and reformat file. 2022-11-23 15:02:33 +01:00
Joey de l'Arago
4f4523c4b7 Use Diagnostic Generator super for Meshes 2022-11-23 14:38:31 +01:00
Joey de l'Arago
f74a40bed0 Flatten main logic.
Parse files from directories to remove checking if a file is a directory in many places.
2022-11-23 14:24:09 +01:00
Joey de l'Arago
ad7e719146 Format lists and dicts of a single item onto one line
example:
"dict":
{
 "value": 10
}
becomes
"dict": { "value": 10 }
2022-11-22 21:42:42 +01:00
Joey de l'Arago
a470f02373 Move linters into seperate module.
Give linters an abstract type to inherit, since they share an interface.
Add empty README
2022-11-22 19:26:50 +01:00
Joey de l'Arago
91daf89c2d add return types 2022-11-22 14:38:41 +01:00
jspijker
187dfe1210 single-value-single-line formatting
Need to figure out the regex expression.
To only select overrides consisting of a
single value
2022-11-21 14:20:53 +01:00
jspijker
67688aad95 Formatted the messages 2022-11-21 13:11:52 +01:00
jspijker
0070cb7af0 flatten list 2022-11-21 10:58:28 +01:00
jspijker
4b455d45e9 Use same yaml structure as cling-tidy 2022-11-21 10:51:08 +01:00
jspijker
0c7807e0cd Create a proper Pyhton packages for printer-linter
Such that it can be downloaded, installed and used locally and on other
repo's actions etc
2022-11-20 12:16:37 +01:00
jspijker
49305474ea Added a diagnose flag
Allowing the user to opt-in or out of diagnosing the file
2022-11-20 10:46:21 +01:00
jspijker
cec022f330 Fix the fax value 2022-11-19 20:31:47 +01:00
jspijker
104bc585f4 Added a linting tool for Cura Printers and Profiles
printer-linter works of definitions, profiles and meshes;
It has various diagnostic checks. With possible suggestions for fixes.
It should also be able to fix certain diagnostic issues and it can be used
to format the files according to code-style.

It can output the diagnostics in a yaml file, which can then be used to comment
on PR's with suggestions to the author. Future PR.

The settings for the diagnostics and checks are defined in `.printer-linter`
and are very self explanatory.

```
checks:
    diagnostic-mesh-file-extension: true
    diagnostic-mesh-file-size: true
    diagnostic-definition-redundant-override: true
fixes:
    diagnostic-definition-redundant-override: true
format:
    format-definition-bracket-newline: false
    format-definition-paired-coordinate-array: true
    format-definition-sort-keys: true
    format-definition-indent: 4
    format-profile-space-around-delimiters: true
    format-profile-sort-keys: true
diagnostic-mesh-file-size: 1200000
```
2022-11-19 19:07:32 +01:00