diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-02-03 12:18:57 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-02-03 12:18:57 +0000 |
commit | 584ccdaf68710dec2c717a010cbab2610c0155ed (patch) | |
tree | 188e1f5609f5990ae3c3904d3752cf9603157596 /app/presenters/blob_presenter.rb | |
parent | ffe7c069a4e16f77b80c7159690a4c8060dd74d9 (diff) | |
download | gitlab-ce-584ccdaf68710dec2c717a010cbab2610c0155ed.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/presenters/blob_presenter.rb')
-rw-r--r-- | app/presenters/blob_presenter.rb | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/app/presenters/blob_presenter.rb b/app/presenters/blob_presenter.rb index efd29b5601b..47b72df32a2 100644 --- a/app/presenters/blob_presenter.rb +++ b/app/presenters/blob_presenter.rb @@ -32,7 +32,7 @@ class BlobPresenter < Gitlab::View::Presenter::Delegated end def blob_language - @_blob_language ||= Gitlab::Diff::CustomDiff.transformed_blob_language(blob) || language + @_blob_language ||= Gitlab::Diff::CustomDiff.transformed_blob_language(blob) || gitattr_language || detect_language end def raw_plain_data @@ -166,9 +166,15 @@ class BlobPresenter < Gitlab::View::Presenter::Delegated @all_lines ||= blob.data.lines end - def language + def gitattr_language blob.language_from_gitattributes end + + def detect_language + return if blob.binary? + + Rouge::Lexer.guess(filename: blob.path, source: blob_data(nil)) { |lex| lex.min_by(&:tag) }.tag + end end BlobPresenter.prepend_mod_with('BlobPresenter') |