gitea源码

code_language.go 594B

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