Sha256: 08c97ec9cdbd8571c50d6d76eab96d488f35746ceb3205ecbc52bed93a7cdbb6

Contents?: true

Size: 1.05 KB

Versions: 44

Compression:

Stored size: 1.05 KB

Contents

# -*- coding: utf-8 -*- #
# frozen_string_literal: true

module Rouge
  module Lexers
    class Properties < RegexLexer
      title ".properties"
      desc '.properties config files for Java'
      tag 'properties'

      filenames '*.properties'
      mimetypes 'text/x-java-properties'

      identifier = /[\w.-]+/

      state :basic do
        rule %r/[!#].*?\n/, Comment
        rule %r/\s+/, Text
        rule %r/\\\n/, Str::Escape
      end

      state :root do
        mixin :basic

        rule %r/(#{identifier})(\s*)([=:])/ do
          groups Name::Property, Text, Punctuation
          push :value
        end
      end

      state :value do
        rule %r/\n/, Text, :pop!
        mixin :basic
        rule %r/"/, Str, :dq
        rule %r/'.*?'/, Str
        mixin :esc_str
        rule %r/[^\\\n]+/, Str
      end

      state :dq do
        rule %r/"/, Str, :pop!
        mixin :esc_str
        rule %r/[^\\"]+/m, Str
      end

      state :esc_str do
        rule %r/\\u[0-9]{4}/, Str::Escape
        rule %r/\\./m, Str::Escape
      end
    end
  end
end

Version data entries

44 entries across 44 versions & 2 rubygems

Version Path
rouge-4.5.1 lib/rouge/lexers/properties.rb
rouge-4.5.0 lib/rouge/lexers/properties.rb
rouge-4.4.0 lib/rouge/lexers/properties.rb
rouge-4.3.0 lib/rouge/lexers/properties.rb
rouge-4.2.1 lib/rouge/lexers/properties.rb
rouge-4.2.0 lib/rouge/lexers/properties.rb
rouge-4.1.3 lib/rouge/lexers/properties.rb
rouge-4.1.2 lib/rouge/lexers/properties.rb
rouge-4.1.1 lib/rouge/lexers/properties.rb
mumukit-content-type-1.12.1 vendor/bundle/ruby/2.7.0/gems/rouge-3.30.0/lib/rouge/lexers/properties.rb
mumukit-content-type-1.12.0 vendor/bundle/ruby/2.7.0/gems/rouge-3.30.0/lib/rouge/lexers/properties.rb
rouge-4.1.0 lib/rouge/lexers/properties.rb
rouge-4.0.1 lib/rouge/lexers/properties.rb
rouge-4.0.0 lib/rouge/lexers/properties.rb
rouge-3.30.0 lib/rouge/lexers/properties.rb
rouge-3.29.0 lib/rouge/lexers/properties.rb
rouge-3.28.0 lib/rouge/lexers/properties.rb
rouge-3.27.0 lib/rouge/lexers/properties.rb
rouge-3.26.1 lib/rouge/lexers/properties.rb
mumukit-content-type-1.11.1 vendor/bundle/ruby/2.6.0/gems/rouge-3.26.0/lib/rouge/lexers/properties.rb