thrawn01/args

View on GitHub
parser.go

Summary

Maintainability
C
7 hrs
Test Coverage

ArgParser has 34 methods (exceeds 20 allowed). Consider refactoring.
Open

type ArgParser struct {
    Command              *Rule
    EnvPrefix            string
    Description          string
    Name                 string
Severity: Minor
Found in parser.go - About 4 hrs to fix

    Method ArgParser.parseUntil has a Cognitive Complexity of 28 (exceeds 20 allowed). Consider refactoring.
    Open

    func (self *ArgParser) parseUntil(terminator string) (*Options, error) {
        self.idx = 0
    
        // Sanity Check
        if len(self.rules) == 0 {
    Severity: Minor
    Found in parser.go - About 1 hr to fix

    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

    func (self *ArgParser) ValidateRules() error {
        var greedyRule *Rule
        for idx, rule := range self.rules {
            // Duplicate rule check
            next := idx + 1
    Severity: Minor
    Found in parser.go - About 1 hr to fix

    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

    func (self *ArgParser) parseUntil(terminator string) (*Options, error) {
        self.idx = 0
    
        // Sanity Check
        if len(self.rules) == 0 {
    Severity: Major
    Found in parser.go - About 40 mins to fix

      TODO found
      Open

          // TODO: This should include the isRequired check
      Severity: Minor
      Found in parser.go by fixme

      TODO found
      Open

          // TODO: Should only return [OPTIONS] if there are too many options
      Severity: Minor
      Found in parser.go by fixme

      TODO found
      Open

          // TODO: Wrap post parsing validation stuff into a method
      Severity: Minor
      Found in parser.go by fixme

      TODO found
      Open

          // TODO: Improve this once we have arguments
      Severity: Minor
      Found in parser.go by fixme

      TODO found
      Open

          // TODO: to display on a single line
      Severity: Minor
      Found in parser.go by fixme

      There are no issues that match your filters.

      Category
      Status