summaryrefslogtreecommitdiff
path: root/lib/gitlab/diff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-06 12:10:38 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-06 12:10:38 +0000
commit25db9c1230f7b54a7337b3d2dfe714478a7d54f0 (patch)
treeb9b8d6494ad4098c52eb029ae6a47d795abf9f5b /lib/gitlab/diff
parentc06178d51ad9b8d4ce665047873615facfc9c1c5 (diff)
downloadgitlab-ce-25db9c1230f7b54a7337b3d2dfe714478a7d54f0.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/diff')
-rw-r--r--lib/gitlab/diff/highlight.rb11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/gitlab/diff/highlight.rb b/lib/gitlab/diff/highlight.rb
index d86eb83083b..6a41ed0f29e 100644
--- a/lib/gitlab/diff/highlight.rb
+++ b/lib/gitlab/diff/highlight.rb
@@ -87,6 +87,7 @@ module Gitlab
def highlight_line(diff_line)
return unless diff_file && diff_file.diff_refs
+ return diff_line_highlighting(diff_line, plain: true) if blobs_too_large?
if Feature.enabled?(:diff_line_syntax_highlighting, project, default_enabled: :yaml)
diff_line_highlighting(diff_line)
@@ -95,9 +96,10 @@ module Gitlab
end
end
- def diff_line_highlighting(diff_line)
+ def diff_line_highlighting(diff_line, plain: false)
rich_line = syntax_highlighter(diff_line).highlight(
diff_line.text(prefix: false),
+ plain: plain,
context: { line_number: diff_line.line }
)
@@ -158,6 +160,13 @@ module Gitlab
blob.load_all_data!
blob.present.highlight.lines
end
+
+ def blobs_too_large?
+ return false unless Feature.enabled?(:limited_diff_highlighting, project, default_enabled: :yaml)
+ return true if Gitlab::Highlight.too_large?(diff_file.old_blob&.size)
+
+ Gitlab::Highlight.too_large?(diff_file.new_blob&.size)
+ end
end
end
end