Skip to content

Commit

Permalink
Show selector name and scopes
Browse files Browse the repository at this point in the history
  • Loading branch information
facelessuser committed Feb 20, 2015
1 parent 3bd1fb0 commit 6b32719
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 20 deletions.
26 changes: 18 additions & 8 deletions lib/color_scheme_matcher.py
Expand Up @@ -24,6 +24,14 @@ class SchemeColors(namedtuple('SchemeColors', ['fg', 'fg_simulated', 'bg', "bg_s
pass


class SchemeSelectors(namedtuple('SchemeSelectors', ['name', 'scope'], verbose=False)):
"""
SchemeSelectors
"""

pass


def sublime_format_path(pth):
m = re.match(r"^([A-Za-z]{1}):(?:/|\\)(.*)", pth)
if sublime.platform() == "windows" and m is not None:
Expand Down Expand Up @@ -90,6 +98,7 @@ def parse_scheme(self):
bg, bg_sim = self.strip_color(bgcolor, bg=True)
self.colors[scope] = {
"name": name,
"scope": scope,
"color": fg,
"color_simulated": fg_sim,
"bgcolor": bg,
Expand Down Expand Up @@ -133,9 +142,9 @@ def guess_color(self, view, pt, scope_key):
bgcolor = self.bground
bgcolor_sim = self.bground_sim
style = set([])
color_selector = "foreground"
style_selectors = {"bold": "", "italic": ""}
bg_selector = "background"
color_selector = SchemeSelectors("foreground", "foreground")
bg_selector = SchemeSelectors("background", "background")
style_selectors = {"bold": SchemeSelectors("", ""), "italic": SchemeSelectors("", "")}
if scope_key in self.matched:
color = self.matched[scope_key]["color"]
color_sim = self.matched[scope_key]["color_simulated"]
Expand All @@ -154,26 +163,27 @@ def guess_color(self, view, pt, scope_key):
best_match_fg = match
color = self.colors[key]["color"]
color_sim = self.colors[key]["color_simulated"]
color_selector = self.colors[key]["name"]
color_selector = SchemeSelectors(self.colors[key]["name"], self.colors[key]["scope"])
if self.colors[key]["style"] is not None and match > best_match_style:
best_match_style = match
for s in self.colors[key]["style"]:
style.add(s)
if s == "bold":
style_selectors["bold"] = self.colors[key]["name"]
style_selectors["bold"] = SchemeSelectors(self.colors[key]["name"], self.colors[key]["scope"])
elif s == "italic":
style_selectors["italic"] = self.colors[key]["name"]
style_selectors["italic"] = SchemeSelectors(self.colors[key]["name"], self.colors[key]["scope"])
if self.colors[key]["bgcolor"] is not None and match > best_match_bg:
best_match_bg = match
bgcolor = self.colors[key]["bgcolor"]
bgcolor_sim = self.colors[key]["bgcolor_simulated"]
bg_selector = self.colors[key]["name"]
bg_selector = SchemeSelectors(self.colors[key]["name"], self.colors[key]["scope"])
self.matched[scope_key] = {
"color": color,
"bgcolor": bgcolor,
"color_simulated": color_sim,
"bgcolor_simulated": bgcolor_sim,
"style": style, "selectors": {
"style": style,
"selectors": {
"color": color_selector,
"background": bg_selector,
"style": style_selectors
Expand Down
49 changes: 37 additions & 12 deletions scope_hunter.py
Expand Up @@ -212,37 +212,62 @@ def get_style(self, style):
def get_selectors(self, color_selector, bg_selector, style_selectors):
""" Get the selectors used to determine color and/or style """
self.scope_bfr.append(
"%-30s %s" % ("foreground selector:", color_selector)
"%-30s %s" % ("foreground selector name:", color_selector.name)
)
self.scope_bfr.append(
"%-30s %s" % ("background selector:", bg_selector)
"%-30s %s" % ("foreground selector scope:", color_selector.scope)
)
if style_selectors["bold"] != "":
self.scope_bfr.append(
"%-30s %s" % ("background selector name:", bg_selector.name)
)
self.scope_bfr.append(
"%-30s %s" % ("background selector scope:", bg_selector.scope)
)
if style_selectors["bold"].name != "" or style_selectors["bold"].scope != "":
self.scope_bfr.append(
"%-30s %s" % ("bold selector name:", style_selectors["bold"].name)
)
self.scope_bfr.append(
"%-30s %s" % ("bold selector scope:", style_selectors["bold"].scope)
)

if style_selectors["italic"].name != "" or style_selectors["italic"].scope != "":
self.scope_bfr.append(
"%-30s %s" % ("bold selector:", style_selectors["bold"])
"%-30s %s" % ("italic selector name:", style_selectors["italic"].name)
)
if style_selectors["italic"] != "":
self.scope_bfr.append(
"%-30s %s" % ("italic selector:", style_selectors["italic"])
"%-30s %s" % ("italic selector scope:", style_selectors["italic"].scope)
)

if self.show_popup:
self.scope_bfr_tool.append(
'<h1 class="header">%s</h1><p>' % "Selectors"
)
self.scope_bfr_tool.append(
'<span class="key">foreground selector:</span> %s<br>' % color_selector
'<span class="key">foreground selector name:</span> %s' % color_selector.name
)
self.scope_bfr_tool.append(
'<span class="key">background selector:</span> %s<br>' % bg_selector
'<br><span class="key">foreground selector scope:</span> %s' % color_selector.scope
)
if style_selectors["bold"] != "":
self.scope_bfr_tool.append(
'<br><br><span class="key">background selector name:</span> %s' % bg_selector.name
)
self.scope_bfr_tool.append(
'<br><span class="key">background selector scope:</span> %s' % bg_selector.scope
)
if style_selectors["bold"].name != "" or style_selectors["bold"].scope != "":
self.scope_bfr_tool.append(
'<br><br><span class="key">bold selector name:</span> %s' % style_selectors["bold"].name
)
self.scope_bfr_tool.append(
'<br><span class="key">bold selector scope:</span> %s' % style_selectors["bold"].scope
)
if style_selectors["italic"].name != "" or style_selectors["italic"].scope != "":
self.scope_bfr_tool.append(
'<br><span class="key">bold selector:</span> %s' % style_selectors["bold"]
'<br><br><span class="key">italic selector name:</span> %s' % style_selectors["italic"].name
)
if style_selectors["italic"] != "":
self.scope_bfr_tool.append(
'<br><span class="key">italic selector:</span> %s' % style_selectors["italic"]
'<br><span class="key">italic selector scope:</span> %s' % style_selectors["italic"].scope
)

def get_info(self, pt):
Expand Down

0 comments on commit 6b32719

Please sign in to comment.