Commit 98f12863 authored by Douwe Maan's avatar Douwe Maan

Merge branch 'lexer_error_workaround' into 'master'

workaround for buggy lexers

It seems that some lexers can be buggy when used together with git blame.
This results in a 500 error when a user tries to open the blame page in some cases.
The workaround is pretty simple. Not only fall back to plaintext when the file content can't be guessed, but also when the lexer fails.

This closes #1521 and #1646

/cc @DouweM @JobV It would be awesome to have this in a patch release for 7.11 or even in the release. But that's probably to late.

See merge request !683
parent 65c89b42
Please view this file on the master branch, on stable branches it's out of date. Please view this file on the master branch, on stable branches it's out of date.
v 7.11.0 (unreleased) v 7.11.0 (unreleased)
- Fall back to Plaintext when Syntaxhighlighting doesn't work. Fixes some buggy lexers (Hannes Rosenögger)
- Fix broken view when viewing history of a file that includes a path that used to be another file (Stan Hu) - Fix broken view when viewing history of a file that includes a path that used to be another file (Stan Hu)
- Don't show duplicate deploy keys - Don't show duplicate deploy keys
- Fix commit time being displayed in the wrong timezone in some cases (Hannes Rosenögger) - Fix commit time being displayed in the wrong timezone in some cases (Hannes Rosenögger)
......
...@@ -9,11 +9,13 @@ module BlobHelper ...@@ -9,11 +9,13 @@ module BlobHelper
begin begin
lexer = Rugments::Lexer.guess(filename: blob_name, source: blob_content) lexer = Rugments::Lexer.guess(filename: blob_name, source: blob_content)
rescue Rugments::Lexer::AmbiguousGuess result = formatter.format(lexer.lex(blob_content)).html_safe
rescue
lexer = Rugments::Lexers::PlainText lexer = Rugments::Lexers::PlainText
result = formatter.format(lexer.lex(blob_content)).html_safe
end end
formatter.format(lexer.lex(blob_content)).html_safe result
end end
def no_highlight_files def no_highlight_files
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment