Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lafolle/flen
Flen provides stats on functions/methods lengths in a Golang package.
https://github.com/lafolle/flen
golang
Last synced: 3 months ago
JSON representation
Flen provides stats on functions/methods lengths in a Golang package.
- Host: GitHub
- URL: https://github.com/lafolle/flen
- Owner: lafolle
- License: mit
- Created: 2016-03-13T10:58:46.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-03-11T06:23:47.000Z (over 6 years ago)
- Last Synced: 2024-06-20T07:40:06.179Z (5 months ago)
- Topics: golang
- Language: Go
- Homepage:
- Size: 18.6 KB
- Stars: 49
- Watchers: 3
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Get info on length of functions in a Go package.
Given package is searched in directories provided by envs in following order: GOPATH, GOROOT. AST is generated only for Go source files present in package path, ie, `flen crypto` shall only parse `crypto.go`. For parsing `crypto/sha1`, full package path needs to be provided, ie `flen crypto/sha1`. For externally implemented functions, line number will be 0, as their is no enough information available to get their line numbers.
### Install
`go get github.com/lafolle/flen/cmd/flen`### Usage
```
Usage: flen [options]
-bs int
bucket size (natural number) (default 5)
-l int
min length (inclusive)
-t include tests files
-u int
max length (exclusive) (default 1000000)
```
### Examples
Simple usage
```
$ flen strings
Full path of pkg: /usr/local/go/src/strings
Externally implemented funcs
+-------+-----------+-------------------------------------------+---------+------+
| INDEX | NAME | FILEPATH | LINE NO | SIZE |
+-------+-----------+-------------------------------------------+---------+------+
| 0 | IndexByte | /usr/local/go/src/strings/strings_decl.go | 0 | 0 |
+-------+-----------+-------------------------------------------+---------+------+[1-6) - ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
[6-11) - ∎∎∎∎∎∎∎∎∎∎
[11-16) - ∎∎∎∎∎∎∎∎∎∎∎∎
[16-21) - ∎∎∎∎∎
[21-26) - ∎∎∎
[26-31) - ∎∎∎∎
[31-36) - ∎∎∎∎
[36-41) - ∎∎∎
[41-46) - ∎∎
[46-51) - ∎
[51-56) -
[56-61) - ∎
[61-66) -
$
```### Range of lengths
To get all function/methods whose lengths fall in given range:
```
flen -l 16 -u 41 strings
Full path of pkg: /usr/local/go/src/strings
Functions with length in range [16, 41)
+-------+---------------------+--------------------------------------+---------+------+
| INDEX | NAME | FILEPATH | LINE NO | SIZE |
+-------+---------------------+--------------------------------------+---------+------+
| 0 | Replace | /usr/local/go/src/strings/replace.go | 365 | 17 |
| 1 | Seek | /usr/local/go/src/strings/reader.go | 109 | 17 |
| 2 | Join | /usr/local/go/src/strings/strings.go | 388 | 18 |
| 3 | WriteString | /usr/local/go/src/strings/replace.go | 432 | 20 |
| 4 | isSeparator | /usr/local/go/src/strings/strings.go | 502 | 20 |
| 5 | WriteString | /usr/local/go/src/strings/replace.go | 385 | 22 |
| 6 | genSplit | /usr/local/go/src/strings/strings.go | 281 | 23 |
| 7 | explode | /usr/local/go/src/strings/strings.go | 17 | 25 |
| 8 | Replace | /usr/local/go/src/strings/replace.go | 461 | 26 |
| 9 | WriteString | /usr/local/go/src/strings/replace.go | 490 | 27 |
| 10 | makeGenericReplacer | /usr/local/go/src/strings/replace.go | 240 | 29 |
| 11 | FieldsFunc | /usr/local/go/src/strings/strings.go | 353 | 30 |
| 12 | Replace | /usr/local/go/src/strings/strings.go | 681 | 31 |
| 13 | Index | /usr/local/go/src/strings/strings.go | 147 | 33 |
| 14 | LastIndex | /usr/local/go/src/strings/strings.go | 184 | 33 |
| 15 | lookup | /usr/local/go/src/strings/replace.go | 193 | 33 |
| 16 | Map | /usr/local/go/src/strings/strings.go | 422 | 37 |
| 17 | WriteString | /usr/local/go/src/strings/replace.go | 312 | 38 |
| 18 | makeStringFinder | /usr/local/go/src/strings/search.go | 48 | 40 |
+-------+---------------------+--------------------------------------+---------+------+[1-6) - ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
[6-11) - ∎∎∎∎∎∎∎∎∎∎
[11-16) - ∎∎∎∎∎∎∎∎∎∎∎∎
[16-21) - ∎∎∎∎∎
[21-26) - ∎∎∎
[26-31) - ∎∎∎∎
[31-36) - ∎∎∎∎
[36-41) - ∎∎∎
[41-46) - ∎∎
[46-51) - ∎
[51-56) -
[56-61) - ∎
[61-66) -
```### Including test files
By default, test files are ignored. Enable parsing test files by `-t` flag
```
$ flen -t strings
Full path of pkg: /usr/local/go/src/stringsExternally implemented funcs
+-------+-----------+-------------------------------------------+---------+------+
| INDEX | NAME | FILEPATH | LINE NO | SIZE |
+-------+-----------+-------------------------------------------+---------+------+
| 0 | IndexByte | /usr/local/go/src/strings/strings_decl.go | 0 | 0 |
+-------+-----------+-------------------------------------------+---------+------+[1-6) - ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
[6-11) - ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
[11-16) - ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
[16-21) - ∎∎∎∎∎∎∎∎∎∎∎∎
[21-26) - ∎∎∎∎∎
[26-31) - ∎∎∎∎∎∎
[31-36) - ∎∎∎∎
[36-41) - ∎∎∎∎
[41-46) - ∎∎∎∎∎∎∎
[46-51) - ∎
[51-56) - ∎
[56-61) - ∎
[61-66) -
[66-71) - ∎
[71-76) -
[76-81) -
[81-86) -
[86-91) -
[91-96) -
[96-101) -
[101-106) -
[106-111) -
[111-116) -
[116-121) -
[121-126) -
[126-131) -
[131-136) -
[136-141) -
[141-146) -
[146-151) -
[151-156) -
[156-161) -
[161-166) -
[166-171) -
[171-176) -
[176-181) -
[181-186) -
[186-191) -
[191-196) -
[196-201) -
[201-206) -
[206-211) -
[211-216) -
[216-221) -
[221-226) -
[226-231) -
[231-236) -
[236-241) -
[241-246) -
[246-251) -
[251-256) -
[256-261) -
[261-266) - ∎
[266-271) -
```