Skip to content

Commit

Permalink
Merge pull request #921 from wakatime/bugfix/add-missing-categories
Browse files Browse the repository at this point in the history
Add missing categories
  • Loading branch information
gandarez committed Aug 29, 2023
2 parents 8b2fb25 + 3ef1f86 commit 7eb7ad5
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 10 deletions.
8 changes: 7 additions & 1 deletion cmd/params/params_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,21 @@ func TestLoadParams_AlternateProject_Unset(t *testing.T) {

func TestLoadParams_Category(t *testing.T) {
tests := map[string]heartbeat.Category{
"coding": heartbeat.CodingCategory,
"browsing": heartbeat.BrowsingCategory,
"building": heartbeat.BuildingCategory,
"coding": heartbeat.CodingCategory,
"code reviewing": heartbeat.CodeReviewingCategory,
"communicating": heartbeat.CommunicatingCategory,
"debugging": heartbeat.DebuggingCategory,
"designing": heartbeat.DesigningCategory,
"indexing": heartbeat.IndexingCategory,
"learning": heartbeat.LearningCategory,
"manual testing": heartbeat.ManualTestingCategory,
"planning": heartbeat.PlanningCategory,
"researching": heartbeat.ResearchingCategory,
"running tests": heartbeat.RunningTestsCategory,
"translating": heartbeat.TranslatingCategory,
"writing docs": heartbeat.WritingDocsCategory,
"writing tests": heartbeat.WritingTestsCategory,
}

Expand Down
8 changes: 5 additions & 3 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,11 @@ func setFlags(cmd *cobra.Command, v *viper.Viper) {
"category",
"",
"Category of this heartbeat activity. Can be \"coding\","+
" \"building\", \"indexing\", \"debugging\", \"running tests\","+
" \"writing tests\", \"manual testing\", \"code reviewing\","+
" \"browsing\", \"translating\", or \"designing\". Defaults to \"coding\".",
" \"building\", \"indexing\", \"debugging\", \"learning\","+
" \"meeting\", \"planning\", \"researching\", \"communicating\","+
" \"running tests\", \"writing tests\", \"manual testing\","+
" \"writing docs\", \"code reviewing\", \"browsing\","+
" \"translating\", or \"designing\". Defaults to \"coding\".",
)
flags.String("config", "", "Optional config file. Defaults to '~/.wakatime.cfg'.")
flags.String("internal-config", "", "Optional internal config file. Defaults to '~/.wakatime/wakatime-internal.cfg'.")
Expand Down
59 changes: 54 additions & 5 deletions pkg/heartbeat/category.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,54 +17,89 @@ const (
BuildingCategory
// CodeReviewingCategory means user is currently reviewing code.
CodeReviewingCategory
// CommunicatingCategory means user is currently chatting.
CommunicatingCategory
// DebuggingCategory means user is currently debugging.
DebuggingCategory
// DesigningCategory means user is currently designing.
DesigningCategory
// IndexingCategory means user is currently indexing.
IndexingCategory
// LearningCategory means user is currently learning.
LearningCategory
// ManualTestingCategory means user is currently manual testing.
ManualTestingCategory
// MeetingCategory means user is currently meeting.
MeetingCategory
// PlanningCategory means user is currently planning.
PlanningCategory
// ResearchingCategory means user is currently researching.
ResearchingCategory
// RunningTestsCategory means user is currently running tests.
RunningTestsCategory
// TranslatingCategory means user is currently translating.
TranslatingCategory
// WritingDocsCategory means user is currently writing docs.
WritingDocsCategory
// WritingTestsCategory means user is currently writing tests.
WritingTestsCategory
)

const (
codingCategoryString = "coding"
browsingCategoryString = "browsing"
buildingCategoryString = "building"
codeReviewingCategoryString = "code reviewing"
codingCategoryString = "coding"
communicatingCategoryString = "communicating"
debuggingCategoryString = "debugging"
designingCategoryString = "designing"
indexingCategoryString = "indexing"
learningCategoryString = "learning"
manualTestingCategoryString = "manual testing"
meetingCategoryString = "meeting"
planningCategoryString = "planning"
researchingCategoryString = "researching"
runningTestsCategoryString = "running tests"
translatingCategoryString = "translating"
writingDocsCategoryString = "writing docs"
writingTestsCategoryString = "writing tests"
)

// ParseCategory parses a category from a string.
func ParseCategory(s string) (Category, error) {
switch s {
case codingCategoryString:
return CodingCategory, nil
case browsingCategoryString:
return BrowsingCategory, nil
case buildingCategoryString:
return BuildingCategory, nil
case codeReviewingCategoryString:
return CodeReviewingCategory, nil
case codingCategoryString:
return CodingCategory, nil
case communicatingCategoryString:
return CommunicatingCategory, nil
case debuggingCategoryString:
return DebuggingCategory, nil
case designingCategoryString:
return DesigningCategory, nil
case indexingCategoryString:
return IndexingCategory, nil
case learningCategoryString:
return LearningCategory, nil
case manualTestingCategoryString:
return ManualTestingCategory, nil
case meetingCategoryString:
return MeetingCategory, nil
case planningCategoryString:
return PlanningCategory, nil
case researchingCategoryString:
return ResearchingCategory, nil
case runningTestsCategoryString:
return RunningTestsCategory, nil
case translatingCategoryString:
return TranslatingCategory, nil
case writingDocsCategoryString:
return WritingDocsCategory, nil
case writingTestsCategoryString:
return WritingTestsCategory, nil
default:
Expand Down Expand Up @@ -99,24 +134,38 @@ func (c Category) MarshalJSON() ([]byte, error) {
// String implements fmt.Stringer interface.
func (c Category) String() string {
switch c {
case CodingCategory:
return codingCategoryString
case BrowsingCategory:
return browsingCategoryString
case BuildingCategory:
return buildingCategoryString
case CodeReviewingCategory:
return codeReviewingCategoryString
case CodingCategory:
return codingCategoryString
case CommunicatingCategory:
return communicatingCategoryString
case DebuggingCategory:
return debuggingCategoryString
case DesigningCategory:
return designingCategoryString
case IndexingCategory:
return indexingCategoryString
case LearningCategory:
return learningCategoryString
case ManualTestingCategory:
return manualTestingCategoryString
case MeetingCategory:
return meetingCategoryString
case PlanningCategory:
return planningCategoryString
case ResearchingCategory:
return researchingCategoryString
case RunningTestsCategory:
return runningTestsCategoryString
case TranslatingCategory:
return translatingCategoryString
case WritingDocsCategory:
return writingDocsCategoryString
case WritingTestsCategory:
return writingTestsCategoryString
default:
Expand Down
9 changes: 8 additions & 1 deletion pkg/heartbeat/category_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,22 @@ import (

func categoryTests() map[string]heartbeat.Category {
return map[string]heartbeat.Category{
"coding": heartbeat.CodingCategory,
"browsing": heartbeat.BrowsingCategory,
"building": heartbeat.BuildingCategory,
"code reviewing": heartbeat.CodeReviewingCategory,
"coding": heartbeat.CodingCategory,
"communicating": heartbeat.CommunicatingCategory,
"debugging": heartbeat.DebuggingCategory,
"designing": heartbeat.DesigningCategory,
"indexing": heartbeat.IndexingCategory,
"learning": heartbeat.LearningCategory,
"manual testing": heartbeat.ManualTestingCategory,
"meeting": heartbeat.MeetingCategory,
"planning": heartbeat.PlanningCategory,
"researching": heartbeat.ResearchingCategory,
"running tests": heartbeat.RunningTestsCategory,
"translating": heartbeat.TranslatingCategory,
"writing docs": heartbeat.WritingDocsCategory,
"writing tests": heartbeat.WritingTestsCategory,
}
}
Expand Down

0 comments on commit 7eb7ad5

Please sign in to comment.