Sha256: 1bc3dfe107674eabc7acfc77723a451cdda38746330f59b9c8cfface5d77f367

Contents?: true

Size: 1.05 KB

Versions: 15

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Rouge
  module Lexers
    class Diff < RegexLexer
      title 'diff'
      desc 'Lexes unified diffs or patches'

      tag 'diff'
      aliases 'patch', 'udiff'
      filenames '*.diff', '*.patch'
      mimetypes 'text/x-diff', 'text/x-patch'

      def self.detect?(text)
        return true if text.start_with?('Index: ')
        return true if text =~ %r(\Adiff[^\n]*?\ba/[^\n]*\bb/)
        return true if text =~ /---.*?\n[+][+][+]/ || text =~ /[+][+][+].*?\n---/
      end

      state :root do
        rule(/^ .*$\n?/, Text)
        rule(/^---$\n?/, Punctuation)
        rule(/^[+>]+.*$\n?/, Generic::Inserted)
        rule(/^\+.*$\n?/, Generic::Inserted)
        rule(/^[-<]+.*$\n?/, Generic::Deleted)
        rule(/^!.*$\n?/, Generic::Strong)
        rule(/^([Ii]ndex|diff).*$\n?/, Generic::Heading)
        rule(/^(@@[^@]*@@)([^\n]*\n)/) do
          groups Punctuation, Text
        end
        rule(/^\w.*$\n?/, Punctuation)
        rule(/^=.*$\n?/, Generic::Heading)
        rule(/\s.*$\n?/, Text)
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
mumukit-content-type-1.12.1 vendor/bundle/ruby/2.7.0/gems/rouge-3.30.0/lib/rouge/lexers/diff.rb
mumukit-content-type-1.12.0 vendor/bundle/ruby/2.7.0/gems/rouge-3.30.0/lib/rouge/lexers/diff.rb
rouge-3.30.0 lib/rouge/lexers/diff.rb
rouge-3.29.0 lib/rouge/lexers/diff.rb
rouge-3.28.0 lib/rouge/lexers/diff.rb
rouge-3.27.0 lib/rouge/lexers/diff.rb
rouge-3.26.1 lib/rouge/lexers/diff.rb
mumukit-content-type-1.11.1 vendor/bundle/ruby/2.6.0/gems/rouge-3.26.0/lib/rouge/lexers/diff.rb
rouge-3.26.0 lib/rouge/lexers/diff.rb
rouge-3.25.0 lib/rouge/lexers/diff.rb
rouge-3.24.0 lib/rouge/lexers/diff.rb
rouge-3.23.0 lib/rouge/lexers/diff.rb
rouge-3.22.0 lib/rouge/lexers/diff.rb
rouge-3.21.0 lib/rouge/lexers/diff.rb
rouge-3.20.0 lib/rouge/lexers/diff.rb