Skip to content

refactor: use consistent file listing method (filepath.Walk vs ListMarkdownFiles) #13

@LudoLoops

Description

@LudoLoops

Issue

Two different methods are used to list markdown files:

filepath.Walk (used in most places):

  • task/task.go:83 - GetTasks
  • task/task.go:117 - MarkTaskDone
  • task/task.go:318 - IncrementPomodoroCountForActiveTask

utils.ListMarkdownFiles (used in):

  • task/finish.go:82 - FinishTask

Problem

  • Inconsistent approach
  • ListMarkdownFiles is less efficient (allocates full array)
  • Hard to maintain two patterns

Solution

Standardize on filepath.Walk across entire codebase OR make ListMarkdownFiles a utility wrapper.

Consider:

// In utils/storage.go
func WalkMarkdownFiles(root string, fn func(path string, info os.FileInfo) error) error {
    return filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
        if err != nil || info.IsDir() || !strings.HasSuffix(info.Name(), ".md") {
            return nil
        }
        return fn(path, info)
    })
}

Benefits

  • Single pattern for file iteration
  • More efficient than array allocation
  • Easier to optimize in one place

Impact

🟢 Low - Code consistency

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions