From 2d88ff62021d890309dd6ea86915e7b6e6cd4712 Mon Sep 17 00:00:00 2001 From: Alan Hamlett Date: Tue, 29 Aug 2023 07:42:09 +0200 Subject: [PATCH] Add missing categories --- cmd/params/params_test.go | 8 ++++- cmd/root.go | 8 +++-- pkg/heartbeat/category.go | 61 ++++++++++++++++++++++++++++++---- pkg/heartbeat/category_test.go | 9 ++++- 4 files changed, 74 insertions(+), 12 deletions(-) diff --git a/cmd/params/params_test.go b/cmd/params/params_test.go index 8dbfdbcc..76efbf7a 100644 --- a/cmd/params/params_test.go +++ b/cmd/params/params_test.go @@ -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, } diff --git a/cmd/root.go b/cmd/root.go index c554c682..a5921dfe 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -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'.") diff --git a/pkg/heartbeat/category.go b/pkg/heartbeat/category.go index e0750c9c..6e9eddf5 100644 --- a/pkg/heartbeat/category.go +++ b/pkg/heartbeat/category.go @@ -9,62 +9,97 @@ import ( type Category int const ( - // CodingCategory means user is currently coding. This is the default value. - CodingCategory Category = iota // BrowsingCategory means user is currently browsing. BrowsingCategory // BuildingCategory means user is currently building. BuildingCategory // CodeReviewingCategory means user is currently reviewing code. CodeReviewingCategory + // CodingCategory means user is currently coding. This is the default value. + CodingCategory Category = iota + // CommunicatingCategory means user is currently chatting. + CommunicatingCategory Category = iota // 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: @@ -99,24 +134,36 @@ 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 PlanningCategory: + return planningCategoryString + case ResearchingCategory: + return researchingCategoryString case RunningTestsCategory: return runningTestsCategoryString + case TranslatingCategory: + return translatingCategoryString + case WritingDocsCategory: + return writingDocsCategoryString case WritingTestsCategory: return writingTestsCategoryString default: diff --git a/pkg/heartbeat/category_test.go b/pkg/heartbeat/category_test.go index 1bf2b0f5..0d2703cd 100644 --- a/pkg/heartbeat/category_test.go +++ b/pkg/heartbeat/category_test.go @@ -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, } }