parser.go
ArgParser
has 34 methods (exceeds 20 allowed). Consider refactoring. Open
Open
type ArgParser struct {
Command *Rule
EnvPrefix string
Description string
Name string
Method ArgParser.parseUntil
has a Cognitive Complexity of 28 (exceeds 20 allowed). Consider refactoring. Open
Open
func (self *ArgParser) parseUntil(terminator string) (*Options, error) {
self.idx = 0
// Sanity Check
if len(self.rules) == 0 {
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method ArgParser.ValidateRules
has a Cognitive Complexity of 26 (exceeds 20 allowed). Consider refactoring. Open
Open
func (self *ArgParser) ValidateRules() error {
var greedyRule *Rule
for idx, rule := range self.rules {
// Duplicate rule check
next := idx + 1
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method ArgParser.parseUntil
has 6 return statements (exceeds 4 allowed). Open
Open
func (self *ArgParser) parseUntil(terminator string) (*Options, error) {
self.idx = 0
// Sanity Check
if len(self.rules) == 0 {
TODO found Open
Open
// TODO: This should include the isRequired check
- Exclude checks
TODO found Open
Open
// TODO: Should only return [OPTIONS] if there are too many options
- Exclude checks
TODO found Open
Open
// TODO: Wrap post parsing validation stuff into a method
- Exclude checks
TODO found Open
Open
// TODO: Improve this once we have arguments
- Exclude checks
TODO found Open
Open
// TODO: to display on a single line
- Exclude checks