From f8ee8acdd01d267597e258d5f8f1e90f5f364dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20Carpenter=E2=84=A2=EF=B8=8F?= Date: Fri, 10 Nov 2023 11:16:22 -0300 Subject: [PATCH] feat: Add unit measurement to language composition notebooks (#25) --- .../language_composition_by_repo.300.png | Bin 0 -> 43618 bytes .../language_composition.ipynb | 25 +++++++++++++++--- .../language_composition_by_repo.ipynb | 23 +++++++++++++--- .../specs/language_composition.yml | 16 +++++++++++ .../specs/language_composition_by_repo.yml | 16 +++++++++++ 5 files changed, 73 insertions(+), 7 deletions(-) create mode 100644 moderne_visualizations_misc/images/language_composition_by_repo.300.png diff --git a/moderne_visualizations_misc/images/language_composition_by_repo.300.png b/moderne_visualizations_misc/images/language_composition_by_repo.300.png new file mode 100644 index 0000000000000000000000000000000000000000..ddae911dba1e80ff47c37bdf5973b7957894ade0 GIT binary patch literal 43618 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%0A`2X6^J&NMuhMXpu{jQLj`^gPLtNt8- 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 qph+>^&v|Ht00 + Which unit to use when measuring language compositions. Options include `lines` and `files`. + + `lines` will measure language composition by lines of code. `files` will count the number of files with each language. + + Because Moderne cannot parse all languages, you may want to know which files are not being parsed. Measuring by `lines` will + only show you successfully-parsed files, as unparseable files cannot have their lines of code counted. + + Defaults to `lines`. + valid: + - lines + - files + required: false diff --git a/moderne_visualizations_misc/specs/language_composition_by_repo.yml b/moderne_visualizations_misc/specs/language_composition_by_repo.yml index a262ff3..de1928d 100644 --- a/moderne_visualizations_misc/specs/language_composition_by_repo.yml +++ b/moderne_visualizations_misc/specs/language_composition_by_repo.yml @@ -5,3 +5,19 @@ displayName: Language composition by repository description: This report shows the different languages that are used in each repository. recipe: org.openrewrite.LanguageComposition dataTable: org.openrewrite.table.LanguageCompositionPerFile +options: + - unit: + displayName: Unit + description: > + Which unit to use when measuring language compositions. Options include `lines` and `files`. + + `lines` will measure language composition by lines of code. `files` will count the number of files with each language. + + Because Moderne cannot parse all languages, you may want to know which files are not being parsed. Measuring by `lines` will + only show you successfully-parsed files, as unparseable files cannot have their lines of code counted. + + Defaults to `lines`. + valid: + - lines + - files + required: false