bazelbuild / bazel-gazelle
File Size

The distribution of size of files (measured in lines of code).

Intro
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
File Size Overall
  • There are 90 files with 19,603 lines of code.
    • 2 very long files (5,810 lines of code)
    • 5 long files (3,179 lines of code)
    • 16 medium size files (5,341 lines of codeclsfd_ftr_w_mp_ins)
    • 23 small files (3,322 lines of code)
    • 44 very small files (1,951 lines of code)
29% | 16% | 27% | 16% | 9%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: zoomable circles | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
go32% | 18% | 25% | 14% | 8%
bzl0% | 0% | 43% | 40% | 16%
in0% | 0% | 0% | 0% | 100%
bash0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
language51% | 21% | 16% | 5% | 5%
rule0% | 37% | 34% | 21% | 6%
cmd0% | 0% | 62% | 23% | 14%
internal0% | 0% | 28% | 39% | 31%
repo0% | 0% | 67% | 32% | 0%
ROOT0% | 0% | 73% | 26% | 0%
walk0% | 0% | 75% | 0% | 24%
merger0% | 0% | 0% | 100% | 0%
resolve0% | 0% | 0% | 68% | 31%
config0% | 0% | 0% | 96% | 3%
label0% | 0% | 0% | 100% | 0%
testtools0% | 0% | 0% | 0% | 100%
pathtools0% | 0% | 0% | 0% | 100%
flag0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
known_imports.go
in language/proto
2905 -
known_proto_imports.go
in language/proto
2905 -
rule.go
in rule
739 72
std_package_list.go
in language/go
666 -
fileinfo.go
in language/go
620 20
generate.go
in language/go
609 17
config.go
in language/go
545 23
package.go
in language/go
489 27
fix-update.go
in cmd/gazelle
477 19
go_repository.bzl
in internal
453 -
update-repos.go
in cmd/gazelle
430 14
remote.go
in repo
410 16
merge.go
in rule
387 13
deps.bzl
in root
368 -
known_go_imports.go
in language/proto
329 -
resolve.go
in language/go
286 13
fix.go
in language/go
284 13
expr.go
in rule
280 7
module.go
in cmd/fetch_repo
279 9
generate.go
in language/proto
249 8
walk.go
in walk
217 9
config.go
in language/proto
202 14
move_labels.go
in cmd/move_labels
201 10
repo.go
in repo
194 13
server_unix.go
in cmd/autogazelle
187 7
platform_strings.go
in rule
185 9
modules.go
in language/go
184 3
index.go
in resolve
174 10
kinds.go
in language/go
174 2
overlay_repository.bzl
in internal
160 -
embed.go
in language/go
156 7
config.go
in config
152 8
merger.go
in merger
147 4
resolve.go
in language/proto
144 6
label.go
in label
139 8
def.bzl
in root
136 -
value.go
in rule
136 6
fix.go
in merger
135 4
go_repository_tools.bzl
in internal
128 -
go_repository_cache.bzl
in internal
123 -
autogazelle.go
in cmd/autogazelle
120 6
gazelle.go
in cmd/gazelle
119 6
gazelle_binary.bzl
in internal
112 -
go_repository_tools_srcs.bzl
in internal
108 -
generate_repo_config.go
in cmd/generate_repo_config
107 5
platform.go
in rule
102 2
update.go
in language/go
98 5
fileinfo.go
in language/proto
97 1
files.go
in testtools
87 2
config.go
in resolve
81 7
Files With Most Units (Top 20)
File# lines# units
rule.go
in rule
739 72
package.go
in language/go
489 27
config.go
in language/go
545 23
fileinfo.go
in language/go
620 20
fix-update.go
in cmd/gazelle
477 19
generate.go
in language/go
609 17
remote.go
in repo
410 16
update-repos.go
in cmd/gazelle
430 14
config.go
in language/proto
202 14
merge.go
in rule
387 13
xlang.go
in internal/gazellebinarytest
51 13
repo.go
in repo
194 13
fix.go
in language/go
284 13
resolve.go
in language/go
286 13
move_labels.go
in cmd/move_labels
201 10
index.go
in resolve
174 10
module.go
in cmd/fetch_repo
279 9
metaresolver.go
in cmd/gazelle
64 9
platform_strings.go
in rule
185 9
walk.go
in walk
217 9
Files With Long Lines (Top 20)

There are 38 files with lines longer than 120 characters. In total, there are 6223 long lines.

File# lines# units# long lines
known_imports.go
in language/proto
2905 - 2901
known_proto_imports.go
in language/proto
2905 - 2901
known_go_imports.go
in language/proto
329 - 325
resolve.go
in language/proto
144 6 8
resolve.go
in language/go
286 13 7
fix-update.go
in cmd/gazelle
477 19 6
update-repos.go
in cmd/gazelle
430 14 6
config.go
in language/go
545 23 6
expr.go
in rule
280 7 5
repo.go
in repo
194 13 5
fix.go
in language/go
284 13 5
config.go
in config
152 8 5
merger.go
in merger
147 4 3
autogazelle.go
in cmd/autogazelle
120 6 3
merge.go
in rule
387 13 3
go_repository.bzl
in internal
453 - 3
config.go
in language/proto
202 14 3
move_labels.go
in cmd/move_labels
201 10 2
go_repository_cache.bzl
in internal
123 - 2
repository_docs.bzl
in internal
52 - 2