Skip to content

Commit

Permalink
Merge pull request #1099 from wakatime/feature/chroma#v2-12-0
Browse files Browse the repository at this point in the history
Bump Chroma to v2.12.0
  • Loading branch information
gandarez authored Sep 17, 2024
2 parents 6aa54e7 + 31ed5b9 commit 414e118
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 17 deletions.
5 changes: 1 addition & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ go 1.22.5
require (
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358
github.com/alecthomas/assert v1.0.0
github.com/alecthomas/chroma/v2 v2.10.0
github.com/alecthomas/chroma/v2 v2.12.0
github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964
github.com/dlclark/regexp2 v1.10.0
github.com/gandarez/go-olson-timezone v0.1.0
Expand Down Expand Up @@ -55,7 +55,4 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
)

// replace github.com/alecthomas/chroma/v2 => github.com/gandarez/chroma/v2 v2.9.1-wakatime.1
// replace github.com/alecthomas/chroma/v2 => /Users/gandarez/development/git/gandarez/chroma

replace github.com/matishsiao/goInfo => github.com/wakatime/goInfo v0.1.0-wakatime.9
6 changes: 2 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ github.com/alecthomas/assert v1.0.0 h1:3XmGh/PSuLzDbK3W2gUbRXwgW5lqPkuqvRgeQ30FI
github.com/alecthomas/assert v1.0.0/go.mod h1:va/d2JC+M7F6s+80kl/R3G7FUiW6JzUO+hPhLyJ36ZY=
github.com/alecthomas/assert/v2 v2.2.1 h1:XivOgYcduV98QCahG8T5XTezV5bylXe+lBxLG2K2ink=
github.com/alecthomas/assert/v2 v2.2.1/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ=
github.com/alecthomas/chroma/v2 v2.10.0 h1:T2iQOCCt4pRmRMfL55gTodMtc7cU0y7lc1Jb8/mK/64=
github.com/alecthomas/chroma/v2 v2.10.0/go.mod h1:4TQu7gdfuPjSh76j78ietmqh9LiurGF0EpseFXdKMBw=
github.com/alecthomas/chroma/v2 v2.12.0 h1:Wh8qLEgMMsN7mgyG8/qIpegky2Hvzr4By6gEF7cmWgw=
github.com/alecthomas/chroma/v2 v2.12.0/go.mod h1:4TQu7gdfuPjSh76j78ietmqh9LiurGF0EpseFXdKMBw=
github.com/alecthomas/colour v0.1.0 h1:nOE9rJm6dsZ66RGWYSFrXw461ZIt9A6+nHgL7FRrDUk=
github.com/alecthomas/colour v0.1.0/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0=
github.com/alecthomas/repr v0.3.0 h1:NeYzUPfjjlqHY4KtzgKJiWd6sVq2eNUPTi34PiFGjY8=
Expand Down Expand Up @@ -268,8 +268,6 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
github.com/wakatime/goInfo v0.1.0-wakatime.8 h1:MgyeRnCkynEmUxLKXnYUAP5Dd+vhKxhqg6Nx1PdAZy4=
github.com/wakatime/goInfo v0.1.0-wakatime.8/go.mod h1:aEt7p9Rvh67BYApmZwNDPpgircTO2kgdmDUoF/1QmwA=
github.com/wakatime/goInfo v0.1.0-wakatime.9 h1:QkFBcdCcUwFb2CxacFdt4I4aVPcJRY7nXh0sq1gqu3o=
github.com/wakatime/goInfo v0.1.0-wakatime.9/go.mod h1:aEt7p9Rvh67BYApmZwNDPpgircTO2kgdmDUoF/1QmwA=
github.com/yookoala/realpath v1.0.0 h1:7OA9pj4FZd+oZDsyvXWQvjn5oBdcHRTV44PpdMSuImQ=
Expand Down
21 changes: 21 additions & 0 deletions pkg/heartbeat/language.go
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,8 @@ const (
LanguageDataWeave
// LanguageDASM16 represents the DASM16 programming language.
LanguageDASM16
// LanguageDax represents the Dax programming language.
LanguageDax
// LanguageDCL represents the DCL programming language.
LanguageDCL
// LanguageDCPU16Asm represents the DCPU16Asm programming language.
Expand Down Expand Up @@ -617,6 +619,8 @@ const (
LanguageHAProxy
// LanguageHarbour represents the Harbour programming language.
LanguageHarbour
// LanguageHare represents the Hare programming language.
LanguageHare
// LanguageHaskell represents the Haskell programming language.
LanguageHaskell
// LanguageHaxe represents the Haxe programming language.
Expand Down Expand Up @@ -979,6 +983,8 @@ const (
LanguageNuSMV
// LanguageObjdump represents the Objdump programming language.
LanguageObjdump
// LanguageObjectPascal represents the ObjectPascal programming language.
LanguageObjectPascal
// LanguageObjectiveC represents the ObjectiveC programming language.
LanguageObjectiveC
// LanguageObjectiveCPP represents the ObjectiveC++ programming language.
Expand Down Expand Up @@ -1745,6 +1751,7 @@ const (
languageDartStr = "Dart"
languageDataWeaveStr = "DataWeave"
languageDASM16Str = "DASM16"
languageDaxStr = "Dax"
languageDCLStr = "DCL"
languageDCPU16AsmStr = "DCPU-16 ASM"
languageDebianControlFileStr = "Debian Control file"
Expand Down Expand Up @@ -1880,6 +1887,7 @@ const (
languageHandlebarsStr = "Handlebars"
languageHAProxyStr = "HAProxy"
languageHarbourStr = "Harbour"
languageHareStr = "Hare"
languageHaskellStr = "Haskell"
languageHaxeStr = "Haxe"
languageHCLStr = "HCL"
Expand Down Expand Up @@ -2061,6 +2069,7 @@ const (
languageNushellStr = "Nushell"
languageNuSMVStr = "NuSMV"
languageObjdumpStr = "objdump"
languageObjectPascalStr = "ObjectPascal"
languageObjectiveCStr = "Objective-C"
languageObjectiveCPPStr = "Objective-C++"
languageObjectiveJStr = "Objective-J"
Expand Down Expand Up @@ -2755,6 +2764,8 @@ func ParseLanguage(s string) (Language, bool) {
return LanguageDataWeave, true
case normalizeString(languageDASM16Str):
return LanguageDASM16, true
case normalizeString(languageDaxStr):
return LanguageDax, true
case normalizeString(languageDCLStr):
return LanguageDCL, true
case normalizeString(languageDCPU16AsmStr):
Expand Down Expand Up @@ -3025,6 +3036,8 @@ func ParseLanguage(s string) (Language, bool) {
return LanguageHAProxy, true
case normalizeString(languageHarbourStr):
return LanguageHarbour, true
case normalizeString(languageHareStr):
return LanguageHare, true
case normalizeString(languageHaskellStr):
return LanguageHaskell, true
case normalizeString(languageHaxeStr):
Expand Down Expand Up @@ -3387,6 +3400,8 @@ func ParseLanguage(s string) (Language, bool) {
return LanguageNASMObjdump, true
case normalizeString(languageObjdumpStr):
return LanguageObjdump, true
case normalizeString(languageObjectPascalStr):
return LanguageObjectPascal, true
case normalizeString(languageObjectiveCStr):
return LanguageObjectiveC, true
case normalizeString(languageObjectiveCPPStr):
Expand Down Expand Up @@ -4447,6 +4462,8 @@ func (l Language) String() string {
return languageDataWeaveStr
case LanguageDASM16:
return languageDASM16Str
case LanguageDax:
return languageDaxStr
case LanguageDCL:
return languageDCLStr
case LanguageDCPU16Asm:
Expand Down Expand Up @@ -4713,6 +4730,8 @@ func (l Language) String() string {
return languageHAProxyStr
case LanguageHarbour:
return languageHarbourStr
case LanguageHare:
return languageHareStr
case LanguageHaskell:
return languageHaskellStr
case LanguageHaxe:
Expand Down Expand Up @@ -5075,6 +5094,8 @@ func (l Language) String() string {
return languageNASMObjdumpStr
case LanguageObjdump:
return languageObjdumpStr
case LanguageObjectPascal:
return languageObjectPascalStr
case LanguageObjectiveC:
return languageObjectiveCStr
case LanguageObjectiveCPP:
Expand Down
3 changes: 3 additions & 0 deletions pkg/heartbeat/language_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ func languageTests() map[string]heartbeat.Language {
"Dart": heartbeat.LanguageDart,
"DataWeave": heartbeat.LanguageDataWeave,
"DASM16": heartbeat.LanguageDASM16,
"Dax": heartbeat.LanguageDax,
"DCL": heartbeat.LanguageDCL,
"DCPU-16 ASM": heartbeat.LanguageDCPU16Asm,
"Debian Control file": heartbeat.LanguageDebianControlFile,
Expand Down Expand Up @@ -314,6 +315,7 @@ func languageTests() map[string]heartbeat.Language {
"Handlebars": heartbeat.LanguageHandlebars,
"HAProxy": heartbeat.LanguageHAProxy,
"Harbour": heartbeat.LanguageHarbour,
"Hare": heartbeat.LanguageHare,
"Haskell": heartbeat.LanguageHaskell,
"Haxe": heartbeat.LanguageHaxe,
"HCL": heartbeat.LanguageHCL,
Expand Down Expand Up @@ -495,6 +497,7 @@ func languageTests() map[string]heartbeat.Language {
"NuSMV": heartbeat.LanguageNuSMV,
"objdump": heartbeat.LanguageObjdump,
"objdump-nasm": heartbeat.LanguageNASMObjdump,
"ObjectPascal": heartbeat.LanguageObjectPascal,
"Objective-C": heartbeat.LanguageObjectiveC,
"Objective-C++": heartbeat.LanguageObjectiveCPP,
"Objective-J": heartbeat.LanguageObjectiveJ,
Expand Down
1 change: 1 addition & 0 deletions pkg/language/chroma.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const maxFileSize = 512000

// detectChromaCustomized returns the best by filename matching lexer. Best lexer is determined
// by customized priority.
// If guessLanguage is true, the file content will be used to detect the language.
// This is a modified implementation of chroma.lexers.internal.api:Match().
func detectChromaCustomized(filepath string, guessLanguage bool) (heartbeat.Language, float32, bool) {
_, file := fp.Split(filepath)
Expand Down
14 changes: 7 additions & 7 deletions pkg/language/language_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -380,13 +380,6 @@ func TestDetect_ChromaTopLanguagesRetrofit(t *testing.T) {
Filepaths: []string{"path/to/file.dart"},
Expected: heartbeat.LanguageDart,
},
"delphi": {
Filepaths: []string{
"path/to/file.pas",
"path/to/file.dpr",
},
Expected: heartbeat.LanguageDelphi,
},
"docker": {
Filepaths: []string{
"path/to/Dockerfile",
Expand Down Expand Up @@ -579,6 +572,13 @@ func TestDetect_ChromaTopLanguagesRetrofit(t *testing.T) {
Filepaths: []string{"path/to/file.nix"},
Expected: heartbeat.LanguageNix,
},
"object pascal": {
Filepaths: []string{
"path/to/file.pas",
"path/to/file.dpr",
},
Expected: heartbeat.LanguageObjectPascal,
},
"objective j": {
Filepaths: []string{"path/to/file.j"},
Expected: heartbeat.LanguageObjectiveJ,
Expand Down
4 changes: 2 additions & 2 deletions pkg/lexer/delphi.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ func (l Delphi) Lexer() chroma.Lexer {
return chroma.MustNewLexer(
&chroma.Config{
Name: l.Name(),
Aliases: []string{"delphi", "pas", "pascal", "objectpascal"},
Filenames: []string{"*.pas", "*.dpr", "*.fmx", "*.dfm"},
Aliases: []string{"delphi"},
Filenames: []string{"*.fmx", "*.dfm"},
MimeTypes: []string{"text/x-pascal"},
},
func() chroma.Rules {
Expand Down

0 comments on commit 414e118

Please sign in to comment.