瀏覽代碼

Line height is too large when previewing files with syntax highlighting if the line terminators are CRLF (#30434).

Patch by Yuichi HARADA.


git-svn-id: http://svn.redmine.org/redmine/trunk@17847 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/4.1.0
Go MAEDA 5 年之前
父節點
當前提交
f4b2c1a0d3
共有 2 個檔案被更改,包括 11 行新增0 行删除
  1. 7
    0
      lib/redmine/syntax_highlighting.rb
  2. 4
    0
      test/helpers/application_helper_test.rb

+ 7
- 0
lib/redmine/syntax_highlighting.rb 查看文件

@@ -76,6 +76,13 @@ module Redmine
# Highlights +text+ as the content of +filename+
# Should not return line numbers nor outer pre tag
def highlight_by_filename(text, filename)
# TODO: Delete the following workaround for #30434 and
# test_syntax_highlight_should_normalize_line_endings in
# application_helper_test.rb when Rouge is improved to
# handle CRLF properly.
# See also: https://github.com/jneen/rouge/pull/1078
text = text.gsub(/\r\n?/, "\n")

lexer =::Rouge::Lexer.guess_by_filename(filename)
formatter = ::Rouge::Formatters::HTML.new
::Rouge.highlight(text, lexer, CustomHTMLLinewise.new(formatter))

+ 4
- 0
test/helpers/application_helper_test.rb 查看文件

@@ -1123,6 +1123,10 @@ EXPECTED
end
end

def test_syntax_highlight_should_normalize_line_endings
assert_equal "line 1\nline 2\n", syntax_highlight("test.txt", "line 1\rline 2\r\n")
end

def test_to_path_param
assert_equal 'test1/test2', to_path_param('test1/test2')
assert_equal 'test1/test2', to_path_param('/test1/test2/')

Loading…
取消
儲存