sbt-stats icon indicating copy to clipboard operation
sbt-stats copied to clipboard

Separate source and test. New analyzer counts lines in all file types.

Open mbeckerle opened this issue 6 years ago • 0 comments

We needed a tool like this for Apache Daffodil (incubating as of 2019-05-23)

There is one "daffodil-oriented" thing in here, which is that it looks at files for the double extension ".tdml.xml" and groups them with files having extension ".tdml".

Only the FileAnalyzer special cases java and scala files now. All other analysis runs against every file type.

Just uses iso-8859-1 encoding to break files into lines. This eliminates decode errors when your files are not all in a uniform encoding. Encoding iso-8859-1 is the universal encoding. Every byte maps to a unicode character. Even if you open UTF-16 files with this encoding it will still count lines close to accurately. Of course binary data files will have meaningless line counts.

The output now looks like this: [info] Code Statistics for project: [info] Files Source [info] - Total size: 4,510,174 Bytes [info] - Avg size: 156,997 Bytes [info] - Avg length: 3,750 lines [info] - Total: 470 files [info] - Scala: 428 files (91.1%) [info] - Java: 6 files (1.3%) [info] Lines Source [info] - Total: 113,694 lines [info] - Code: 69,702 lines (61.3%) [info] - Comment: 30,205 lines (26.6%) [info] - Blank: 13,787 lines (12.1%) [info] - Bracket: 9,380 lines (8.3%) [info] Chars Source [info] - Total: 4,014,013 chars [info] - Code: 2,673,718 chars (66.6%) [info] - Comment: 1,340,295 chars (33.4%) [info] Source lines [info] - Source lines scala 99,242 lines [info] - Source lines xsd 10,625 lines [info] - Source lines tdml 2,395 lines [info] - Source lines dtd 627 lines [info] - Source lines java 360 lines [info] - Source lines xsl 224 lines [info] - Source lines css 85 lines [info] - Source lines xml 79 lines [info] - Source lines txt 57 lines [info] - Source lines keep 0 lines [info] Files Test [info] - Total size: 8,034,664 Bytes [info] - Avg size: 94,518 Bytes [info] - Avg length: 2,289 lines [info] - Total: 747 files [info] - Scala: 245 files (32.8%) [info] - Java: 4 files (0.5%) [info] Lines Test [info] - Total: 195,143 lines [info] - Code: 164,078 lines (84.1%) [info] - Blank: 21,662 lines (11.1%) [info] - Comment: 9,403 lines (4.8%) [info] - Bracket: 2,377 lines (1.2%) [info] Chars Test [info] - Total: 6,912,712 chars [info] - Code: 6,474,835 chars (93.7%) [info] - Comment: 437,877 chars (6.3%) [info] Test lines [info] - Test lines tdml 134,637 lines [info] - Test lines scala 40,983 lines [info] - Test lines xsd 16,761 lines [info] - Test lines java 1,209 lines [info] - Test lines xml 989 lines [info] - Test lines dat 260 lines [info] - Test lines txt 209 lines [info] - Test lines (no ext) 93 lines [info] - Test lines bin 2 lines [info] - Test lines keep 0 lines

mbeckerle avatar May 23 '19 18:05 mbeckerle