Skip to content

Support selective highlighting of lines

Patrick Bajao requested to merge 65152-selective-highlight into master

What does this MR do?

Instead of highlighting all lines when not all of them are needed, only highlight specific lines.

The BlobPresenter#highlight method has been updated to support since and to params. These params will be used to limit the content to be highlighted.

Modify Gitlab::Highlight to support since param which will then be used to determine the starting line number.

Some simple benchmark results:

[1] pry(main)> lines = "line\n" * 1000
[2] pry(main)> Benchmark.ms { Gitlab::Highlight.highlight('lines', lines, language: 'ruby') }
=> 33.02299999631941
[3] pry(main)> Benchmark.ms { Gitlab::Highlight.highlight('lines', lines.lines[399..419].join, since: 400, language: 'ruby') }
=> 1.357999979518354

Does this MR meet the acceptance criteria?

Conformity

Performance and testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team

#65152 (moved)

Edited by 🤖 GitLab Bot 🤖

Merge request reports