···
-
languageInfo, err := getLanguageInfo(repoInfo, rp, f, user, signedClient, ref)
log.Printf("failed to compute language percentages: %s", err)
···
-
repoInfo repoinfo.RepoInfo,
f *reporesolver.ResolvedRepo,
signedClient *knotclient.SignedClient,
) ([]types.RepoLanguageDetails, error) {
···
return []types.RepoLanguageDetails{}, err
if repoLanguages == nil {
-
repoLanguages = &types.RepoLanguageResponse{Languages: make(map[string]int)}
-
totalLanguageFileCount := 0
-
for _, fileCount := range repoLanguages.Languages {
-
totalLanguageFileCount += fileCount
var languageStats []types.RepoLanguageDetails
-
var otherLanguageStat *types.RepoLanguageDetails
var otherPercentage float32 = 0
-
for fileType, fileCount := range repoLanguages.Languages {
-
percentage := (float32(fileCount) / float32(totalLanguageFileCount)) * 100
-
otherPercentage += percentage
-
if fileType == "Text" {
otherPercentage += percentage
-
color := enry.GetColor(fileType)
-
if fileType == "Other" {
-
otherLanguageStat = &types.RepoLanguageDetails{Name: fileType, Percentage: percentage, Color: color}
-
languageStats = append(languageStats, types.RepoLanguageDetails{Name: fileType, Percentage: percentage, Color: color})
sort.Slice(languageStats, func(i, j int) bool {
-
return languageStats[i].Percentage > languageStats[j].Percentage
-
if otherLanguageStat != nil {
-
otherLanguageStat.Percentage += otherPercentage
-
languageStats = append(languageStats, *otherLanguageStat)
return languageStats, nil
···
+
languageInfo, err := getLanguageInfo(f, signedClient, ref)
log.Printf("failed to compute language percentages: %s", err)
···
f *reporesolver.ResolvedRepo,
signedClient *knotclient.SignedClient,
) ([]types.RepoLanguageDetails, error) {
···
return []types.RepoLanguageDetails{}, err
if repoLanguages == nil {
+
repoLanguages = &types.RepoLanguageResponse{Languages: make(map[string]int64)}
+
for _, fileSize := range repoLanguages.Languages {
var languageStats []types.RepoLanguageDetails
var otherPercentage float32 = 0
+
for lang, size := range repoLanguages.Languages {
+
percentage := (float32(size) / float32(totalSize)) * 100
otherPercentage += percentage
+
color := enry.GetColor(lang)
+
languageStats = append(languageStats, types.RepoLanguageDetails{Name: lang, Percentage: percentage, Color: color})
sort.Slice(languageStats, func(i, j int) bool {
+
if languageStats[i].Name == enry.OtherLanguage {
+
if languageStats[j].Name == enry.OtherLanguage {
+
if languageStats[i].Percentage != languageStats[j].Percentage {
+
return languageStats[i].Percentage > languageStats[j].Percentage
+
return languageStats[i].Name < languageStats[j].Name
return languageStats, nil