1
0
mirror of https://github.com/go-task/task.git synced 2025-12-03 23:00:00 +02:00

refactor: lazy load fuzzy model & ability to disable it

This commit is contained in:
Valentin Maerten
2025-11-23 21:12:25 +01:00
parent f29d718b03
commit 876bb33de2
11 changed files with 81 additions and 26 deletions

View File

@@ -5,10 +5,12 @@ import (
"fmt"
"os"
"path/filepath"
"slices"
"strings"
"sync"
"github.com/Masterminds/semver/v3"
"github.com/sajari/fuzzy"
"github.com/go-task/task/v3/errors"
"github.com/go-task/task/v3/internal/env"
@@ -34,7 +36,6 @@ func (e *Executor) Setup() error {
if err := e.readTaskfile(node); err != nil {
return err
}
e.setupFuzzyModel()
e.setupStdFiles()
if err := e.setupOutput(); err != nil {
return err
@@ -105,21 +106,21 @@ func (e *Executor) setupFuzzyModel() {
if e.Taskfile == nil {
return
}
//
//model := fuzzy.NewModel()
//model.SetThreshold(1) // because we want to build grammar based on every task name
//
//var words []string
//for name, task := range e.Taskfile.Tasks.All(nil) {
// if task.Internal {
// continue
// }
// words = append(words, name)
// words = slices.Concat(words, task.Aliases)
//}
//
//model.Train(words)
//e.fuzzyModel = model
model := fuzzy.NewModel()
model.SetThreshold(1) // because we want to build grammar based on every task name
var words []string
for name, task := range e.Taskfile.Tasks.All(nil) {
if task.Internal {
continue
}
words = append(words, name)
words = slices.Concat(words, task.Aliases)
}
model.Train(words)
e.fuzzyModel = model
}
func (e *Executor) setupTempDir() error {