Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add missing categories #921

Merged
merged 1 commit into from
Aug 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading