mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-05-13 16:37:27 +00:00
32 lines
904 B
Go
32 lines
904 B
Go
package ignorefiles
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"io/fs"
|
|
"sync"
|
|
)
|
|
|
|
var _ = fmt.Print
|
|
|
|
type IgnoreFile interface {
|
|
Len() int // number of rules
|
|
LoadString(string) error
|
|
LoadBytes([]byte) error
|
|
LoadLines(...string) error
|
|
LoadFile(io.Reader) error
|
|
LoadPath(string) error
|
|
|
|
// relpath is the path relative to the directory containing the ignorefile.
|
|
// When the result is due to a rule matching, linenum_of_matching_rule is
|
|
// >=0 and pattern is the textual representation of the rule. Otherwise
|
|
// linenum_of_matching_rule is -1 and pattern is the empty string.
|
|
IsIgnored(relpath string, ftype fs.FileMode) (is_ignored bool, linenum_of_matching_rule int, pattern string)
|
|
}
|
|
|
|
func NewGitignore() IgnoreFile { return &Gitignore{index_of_last_negated_rule: -1} }
|
|
|
|
// The global gitignore from ~/.config/git/ignore
|
|
var GlobalGitignore = sync.OnceValue(func() IgnoreFile {
|
|
return get_global_gitignore()
|
|
})
|