Documentation ¶
Index ¶
- Constants
- func Detect(patterns []MapPattern, args ...DetecterArg) (Result, DetectorID)
- func Filter(h heartbeat.Heartbeat, config FilterConfig) error
- func FindFileOrDirectory(directory, filename string) (string, bool)
- func WithDetection(config Config) heartbeat.HandleOption
- func WithFiltering(config FilterConfig) heartbeat.HandleOption
- func Write(folder, project string) error
- type Config
- type Detecter
- type DetecterArg
- type DetectorID
- type File
- type FilterConfig
- type Git
- type Map
- type MapPattern
- type Mercurial
- type Result
- type Subversion
- type Tfvc
Constants ¶
const ( // WakaTimeProjectFile is the special file which if present should contain the project name and optional branch name // that will be used instead of the auto-detected project and branch names. WakaTimeProjectFile = ".wakatime-project" )
Variables ¶
This section is empty.
Functions ¶
func Detect ¶
func Detect(patterns []MapPattern, args ...DetecterArg) (Result, DetectorID)
Detect finds the current project and branch from config plugins.
func Filter ¶ added in v1.35.1
func Filter(h heartbeat.Heartbeat, config FilterConfig) error
Filter determines, following the passed in configurations, if a heartbeat should be skipped.
func FindFileOrDirectory ¶ added in v1.18.10
FindFileOrDirectory searches for a file or directory named `filename`. Search starts in `directory` and will traverse through all parent directories. `directory` may also be a file, and in that case will start from the file's directory.
func WithDetection ¶
func WithDetection(config Config) heartbeat.HandleOption
WithDetection finds the current project and branch. First looks for a .wakatime-project file or project map. Second, uses the --project arg. Third, try to auto-detect using a revision control repository. Last, uses the --alternate-project arg.
func WithFiltering ¶ added in v1.35.1
func WithFiltering(config FilterConfig) heartbeat.HandleOption
WithFiltering initializes and returns a heartbeat handle option, which can be used in a heartbeat processing pipeline to filter heartbeats following the provided configurations.
Types ¶
type Config ¶
type Config struct { // HideProjectNames determines if the project name should be obfuscated by matching its path. HideProjectNames []regex.Regex // Patterns contains the overridden project name per path. MapPatterns []MapPattern // SubmodulePatterns contains the paths to validate for submodules. SubmodulePatterns []regex.Regex }
Config contains project detection configurations.
type Detecter ¶
type Detecter interface { Detect() (Result, bool, error) ID() DetectorID }
Detecter is a common interface for project.
type DetecterArg ¶ added in v1.45.2
DetecterArg determines for a given path if it needs to run.
type DetectorID ¶ added in v1.45.2
type DetectorID int
DetectorID represents a detector ID.
const ( // UnknownDetector is the detector ID used when not detected. UnknownDetector DetectorID = iota // FileDetector is the detector ID for file detector. FileDetector // MapDetector is the detector ID for map detector. MapDetector // GitDetector is the detector ID for git detector. GitDetector // MercurialDetector is the detector ID for mercurial detector. MercurialDetector // SubversionDetector is the detector ID for subversion detector. SubversionDetector // TfvcDetector is the detector ID for tfvc detector. TfvcDetector )
func (DetectorID) String ¶ added in v1.45.2
func (d DetectorID) String() string
String implements fmt.Stringer interface.
type File ¶
type File struct {
Filepath string
}
File contains file data.
type FilterConfig ¶ added in v1.35.1
type FilterConfig struct { // ExcludeUnknownProject determines if heartbeat should be skipped when the project cannot be detected. ExcludeUnknownProject bool }
FilterConfig contains project filtering configurations.
type Git ¶
type Git struct { // Filepath contains the entity path. Filepath string // SubmodulePatterns will be matched against the submodule path and if matching, will skip it. SubmodulePatterns []regex.Regex }
Git contains git data.
type Map ¶
type Map struct { Filepath string Patterns []MapPattern }
Map contains map data.
func (Map) Detect ¶
Detect use the ~/.wakatime.cfg file to set custom project names by matching files with regex patterns. Project maps go under the [projectmap] config section.
For example:
[projectmap] /home/user/projects/foo = new project name /home/user/projects/bar(\d+)/ = project{0}
Will result in file '/home/user/projects/foo/src/main.c' to have project name 'new project name' and file '/home/user/projects/bar42/main.c' to have project name 'project42'.
type MapPattern ¶
type MapPattern struct { // Name is the project name. Name string // Regex is the regular expression for a specific path. Regex regex.Regex }
MapPattern contains [projectmap] data.
type Mercurial ¶
type Mercurial struct { // Filepath contains the entity path. Filepath string }
Mercurial contains mercurial data.
type Result ¶
Result contains the result of Detect().
func DetectWithRevControl ¶
func DetectWithRevControl(submodulePatterns []regex.Regex, args ...DetecterArg) Result
DetectWithRevControl finds the current project and branch from rev control.
type Subversion ¶
type Subversion struct { // Filepath contains the entity path. Filepath string }
Subversion contains svn data.