code.gitea.io/gitea@v1.19.3/modules/analyze/code_langauge.go (about)

     1  // Copyright 2020 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package analyze
     5  
     6  import (
     7  	"path/filepath"
     8  
     9  	"github.com/go-enry/go-enry/v2"
    10  )
    11  
    12  // GetCodeLanguage detects code language based on file name and content
    13  func GetCodeLanguage(filename string, content []byte) string {
    14  	if language, ok := enry.GetLanguageByExtension(filename); ok {
    15  		return language
    16  	}
    17  
    18  	if language, ok := enry.GetLanguageByFilename(filename); ok {
    19  		return language
    20  	}
    21  
    22  	if len(content) == 0 {
    23  		return enry.OtherLanguage
    24  	}
    25  
    26  	return enry.GetLanguage(filepath.Base(filename), content)
    27  }