Sha256: 18c89434518d20bfe556ed58c7759537fec458bf7076dfc157a16b34901637cf
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
require 'plist' module Ruco class TMTheme attr_accessor :background, :foreground, :styles # TODO maybe later... #attr_accessor :name, :uuid, :comment, :line_highlight # not supported in Curses ... #attr_accessor :invisibles, :caret, :selection def initialize(file) raw = Plist.parse_xml(file) rules = raw['settings'] @styles = {} # set global styles global = rules.shift['settings'] self.background = global['background'] self.foreground = global['foreground'] # set scope styles rules.each do |rules| style = [ rules['settings']['foreground'], rules['settings']['background'], ] next if style == [nil, nil] # some weird themes have rules without colors... next unless scope = rules['scope'] # some weird themes have rules without scopes... scope.split(/, ?/).map(&:strip).each do |scope| @styles[scope] = style unless nested_scope?(scope) end end end private def nested_scope?(scope) scope.include?(' ') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruco-0.2.0.beta | lib/ruco/tm_theme.rb |