Sha256: 7903aff23a291c1b34b40539de222e94cced40772fcde5cd45932554a5c41f0c

Contents?: true

Size: 1.1 KB

Versions: 18

Compression:

Stored size: 1.1 KB

Contents

# -*- coding: utf-8 -*- #

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

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

      def self.analyze_text(text)
        return 0.1 if text =~ /\A\[[\w.]+\]\s*\w+=\w+/
      end

      identifier = /[\w.]+/

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

      state :root do
        mixin :basic

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

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

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

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

Version data entries

18 entries across 17 versions & 3 rubygems

Version Path
tdiary-5.0.5 vendor/bundle/gems/tdiary-5.0.4/vendor/bundle/gems/rouge-2.0.7/lib/rouge/lexers/properties.rb
tdiary-5.0.5 vendor/bundle/gems/rouge-2.0.7/lib/rouge/lexers/properties.rb
tdiary-5.0.4 vendor/bundle/gems/rouge-2.0.7/lib/rouge/lexers/properties.rb
rouge-2.0.7 lib/rouge/lexers/properties.rb
rouge-2.0.6 lib/rouge/lexers/properties.rb
rouge-2.0.5 lib/rouge/lexers/properties.rb
rouge-2.0.3 lib/rouge/lexers/properties.rb
rouge-2.0.2 lib/rouge/lexers/properties.rb
rouge-2.0.1 lib/rouge/lexers/properties.rb
rouge-2.0.0 lib/rouge/lexers/properties.rb
rouge-1.11.1 lib/rouge/lexers/properties.rb
rouge-1.11.0 lib/rouge/lexers/properties.rb
rouge-1.10.1 lib/rouge/lexers/properties.rb
rouge-1.10.0 lib/rouge/lexers/properties.rb
gitlab-rouge-1.9.2 lib/rouge/lexers/properties.rb
rouge-1.9.1 lib/rouge/lexers/properties.rb
rouge-1.9.0 lib/rouge/lexers/properties.rb
rouge-1.8.0 lib/rouge/lexers/properties.rb