Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full of Bugs on ST 3.2.2 #476

Open
JoshMayberry opened this issue Mar 3, 2020 · 0 comments
Open

Full of Bugs on ST 3.2.2 #476

JoshMayberry opened this issue Mar 3, 2020 · 0 comments

Comments

@JoshMayberry
Copy link

JoshMayberry commented Mar 3, 2020

tl;dr

Due to bugs, this package does not work as intended with Sublime Text 3.2.2.

System

I am using the latest release of "Color Highlighter", using Sublime Text version 3.2.2, Build 3211.

The Issue

The color picker is working, but text highlighting is not:
image

Investigation

The console window gives the following output when sublime text opens:

raise IOError("resource not found")

Traceback (most recent call last):
  File "C:\Program Files\Sublime Text 3\sublime_plugin.py", 
  line 298, 
  in on_api_ready
    plc()
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\main.py", 
  line 606, 
  in plugin_loaded
    ColorHighlighterPlugin.init()
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\main.py", 
  line 319, 
  in init
    ColorHighlighterPlugin._fake_color_scheme = ColorHighlighterPlugin.components.provide_fake_color_scheme()
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\main.py", 
  line 197, 
  in provide_fake_color_scheme
    return self.provide_fake_color_scheme_data()[0]
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\main.py", 
  line 188, 
  in provide_fake_color_scheme_data
    self._fake_color_scheme_data = parse_color_scheme(self.provide_color_scheme(), 
    self._settings.debug)
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\color_scheme.py", 
  line 40, 
  in parse_color_scheme
    color_scheme_content = load_resource.load_resource(color_scheme)
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\load_resource.py", 
  line 34, 
  in load_resource
    return sublime.load_resource(file_path)
  File "C:\Program Files\Sublime Text 3\sublime.py", 
  line 192, 
  in load_resource
    raise IOError("resource not found")
OSError: resource not found

So, I added the following code to the start of the function load_resource.py.load_resource: file_path = "Packages/Color Scheme - Default/" + file_path
image

This allowed more of the porogram to load, until it reached this error:

xml.etree.ElementTree.ParseError: not well-formed (invalid token)

Traceback (most recent call last):
  File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 298, in on_api_ready
    plc()
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\main.py", line 606, in plugin_loaded
    ColorHighlighterPlugin.init()
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\main.py", line 319, in init
    ColorHighlighterPlugin._fake_color_scheme = ColorHighlighterPlugin.components.provide_fake_color_scheme()
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\main.py", line 197, in provide_fake_color_scheme
    return self.provide_fake_color_scheme_data()[0]
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\main.py", line 188, in provide_fake_color_scheme_data
    self._fake_color_scheme_data = parse_color_scheme(self.provide_color_scheme(), self._settings.debug)
  File "C:\Users\jmayberry\AppData\Roaming\Sublime Text 3\Packages\Color Highlighter\color_scheme.py", line 43, in parse_color_scheme
    color_scheme_xml = ElementTree.fromstring(color_scheme_content)
  File "./python3.3/xml/etree/ElementTree.py", line 1356, in XML
  File "<string>", line None
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 0

In my case, the variable being passed to ElementTree.fromstring was not a string of XML- but a python dictionary as a string:

print(color_scheme_content)

{
    "name": "Monokai",
    "author": "Sublime HQ Pty Ltd, Wimer Hazenberg",
    "variables":
    {
        "black": "hsl(0, 0%, 0%)",
        "black2": "hsl(60, 17%, 11%)",
        "black3": "hsl(70, 8%, 15%)",
        "blue": "hsl(190, 81%, 67%)",
        "grey": "hsl(55, 8%, 26%)",
        "orange": "hsl(32, 98%, 56%)",
        "orange2": "hsl(30, 83%, 34%)",
        "orange3": "hsl(47, 100%, 79%)",
        "purple": "hsl(261, 100%, 75%)",
        "red": "hsl(0, 93%, 59%)",
        "red2": "hsl(338, 95%, 56%)",
        "white": "hsl(0, 0%, 97%)",
        "white2": "hsl(60, 36%, 96%)",
        "white3": "hsl(60, 30%, 96%)",
        "yellow": "hsl(54, 70%, 68%)",
        "yellow2": "hsl(80, 76%, 53%)",
        "yellow3": "hsl(60, 12%, 79%)",
        "yellow4": "hsl(55, 11%, 22%)",
        "yellow5": "hsl(50, 11%, 41%)"
    },
    "globals":
    {
        "foreground": "var(white3)",
        "background": "var(black3)",
        "caret": "color(var(white2) alpha(0.9))",
        "block_caret": "color(var(white2) alpha(0.4))",
        "invisibles": "color(var(white3) alpha(0.35))",
        "line_highlight": "var(yellow4)",
        "selection": "var(grey)",
        "selection_border": "var(black2)",
        "misspelling": "var(red2)",
        "active_guide": "color(var(orange2) alpha(0.69))",
        "find_highlight_foreground": "var(black)",
        "find_highlight": "var(orange3)",
        "brackets_options": "underline",
        "brackets_foreground": "color(var(white3) alpha(0.65))",
        "bracket_contents_options": "underline",
        "bracket_contents_foreground": "color(var(white3) alpha(0.65))",
        "tags_options": "stippled_underline"
    },
    "rules":
    [
        {
            "name": "Comment",
            "scope": "comment",
            "foreground": "var(yellow5)"
        },
        {
            "name": "String",
            "scope": "string",
            "foreground": "var(yellow)"
        },
        {
            "name": "Number",
            "scope": "constant.numeric",
            "foreground": "var(purple)"
        },
        {
            "name": "Built-in constant",
            "scope": "constant.language",
            "foreground": "var(purple)"
        },
        {
            "name": "User-defined constant",
            "scope": "constant.character, constant.other",
            "foreground": "var(purple)"
        },
        {
            "name": "Variable",
            "scope": "variable"
        },
        {
            "name": "Keyword",
            "scope": "keyword - (source.c keyword.operator | source.c++ keyword.operator | source.objc keyword.operator | source.objc++ keyword.operator), keyword.operator.word",
            "foreground": "var(red2)"
        },
        {
            "name": "Annotation Punctuation",
            "scope": "punctuation.definition.annotation",
            "foreground": "var(red2)"
        },
        {
            "name": "JavaScript Dollar",
            "scope": "variable.other.dollar.only.js",
            "foreground": "var(red2)"
        },
        {
            "name": "Storage",
            "scope": "storage",
            "foreground": "var(red2)"
        },
        {
            "name": "Storage type",
            "scope": "storage.type",
            "foreground": "var(blue)",
            "font_style": "italic"
        },
        {
            "name": "Entity name",
            "scope": "entity.name - (entity.name.filename | entity.name.section | entity.name.tag | entity.name.label)",
            "foreground": "var(yellow2)"
        },
        {
            "name": "Inherited class",
            "scope": "entity.other.inherited-class",
            "foreground": "var(yellow2)",
            "font_style": "italic underline"
        },
        {
            "name": "Function argument",
            "scope": "variable.parameter - (source.c | source.c++ | source.objc | source.objc++)",
            "foreground": "var(orange)",
            "font_style": "italic"
        },
        {
            "name": "Language variable",
            "scope": "variable.language",
            "foreground": "var(orange)",
            "font_style": "italic"
        },
        {
            "name": "Tag name",
            "scope": "entity.name.tag",
            "foreground": "var(red2)"
        },
        {
            "name": "Tag attribute",
            "scope": "entity.other.attribute-name",
            "foreground": "var(yellow2)"
        },
        {
            "name": "Function call",
            "scope": "variable.function, variable.annotation",
            "foreground": "var(blue)"
        },
        {
            "name": "Library function",
            "scope": "support.function, support.macro",
            "foreground": "var(blue)"
        },
        {
            "name": "Library constant",
            "scope": "support.constant",
            "foreground": "var(blue)"
        },
        {
            "name": "Library class/type",
            "scope": "support.type, support.class",
            "foreground": "var(blue)",
            "font_style": "italic"
        },
        {
            "name": "Library variable",
            "scope": "support.other.variable"
        },
        {
            "name": "Invalid",
            "scope": "invalid",
            "foreground": "var(white2)",
            "background": "var(red2)"
        },
        {
            "name": "Invalid deprecated",
            "scope": "invalid.deprecated",
            "foreground": "var(white2)",
            "background": "var(purple)"
        },
        {
            "name": "JSON String",
            "scope": "meta.structure.dictionary.json string.quoted.double.json",
            "foreground": "var(yellow3)"
        },
        {
            "name": "YAML String",
            "scope": "string.unquoted.yaml",
            "foreground": "var(white3)"
        },
        {
            "name": "diff.header",
            "scope": "meta.diff, meta.diff.header",
            "foreground": "var(yellow5)"
        },
        {
            "name": "markup headings",
            "scope": "markup.heading",
            "font_style": "bold"
        },
        {
            "name": "markup headings",
            "scope": "markup.heading punctuation.definition.heading",
            "foreground": "var(orange)"
        },
        {
            "name": "markup h1",
            "scope": "markup.heading.1 punctuation.definition.heading",
            "foreground": "var(red2)"
        },
        {
            "name": "markup links",
            "scope": "markup.underline.link",
            "foreground": "var(blue)"
        },
        {
            "name": "markup bold",
            "scope": "markup.bold",
            "font_style": "bold"
        },
        {
            "name": "markup italic",
            "scope": "markup.italic",
            "font_style": "italic"
        },
        {
            "name": "markup bold/italic",
            "scope": "markup.italic markup.bold | markup.bold markup.italic",
            "font_style": "bold italic"
        },
        {
            "name": "markup hr",
            "scope": "punctuation.definition.thematic-break",
            "foreground": "var(yellow5)"
        },
        {
            "name": "markup blockquote",
            "scope": "markup.quote punctuation.definition.blockquote",
            "foreground": "var(yellow5)"
        },
        {
            "name": "markup bullets",
            "scope": "markup.list.numbered.bullet",
            "foreground": "var(purple)"
        },
        {
            "name": "markup bullets",
            "scope": "markup.list.unnumbered.bullet | (markup.list.numbered punctuation.definition)",
            "foreground": "color(var(white) alpha(0.67))"
        },
        {
            "name": "markup code",
            "scope": "markup.raw",
            "background": "color(var(white) alpha(0.094))"
        },
        {
            "name": "markup punctuation",
            "scope": "markup.raw punctuation.definition.raw",
            "foreground": "color(var(white) alpha(0.67))"
        },
        {
            "name": "markup punctuation",
            "scope": "text & (punctuation.definition.italic | punctuation.definition.bold | punctuation.definition.raw | punctuation.definition.link | punctuation.definition.metadata | punctuation.definition.image | punctuation.separator.table-cell | punctuation.section.table-header | punctuation.definition.constant)",
            "foreground": "color(var(white) alpha(0.67))"
        },
        {
            "name": "diff.deleted",
            "scope": "markup.deleted",
            "foreground": "var(red2)"
        },
        {
            "name": "diff.inserted",
            "scope": "markup.inserted",
            "foreground": "var(yellow2)"
        },
        {
            "name": "diff.changed",
            "scope": "markup.changed",
            "foreground": "var(yellow)"
        },
        {
            "scope": "constant.numeric.line-number.find-in-files - match",
            "foreground": "color(var(purple) alpha(0.63))"
        },
        {
            "scope": "entity.name.filename",
            "foreground": "var(yellow)"
        },
        {
            "scope": "message.error",
            "foreground": "var(red)"
        },

        {
            "scope": "diff.deleted",
            "background": "hsla(338, 50%, 56%, 0.15)",
            "foreground_adjust": "l(+ 5%)"
        },
        {
            "scope": "diff.deleted.char",
            "background": "hsla(338, 65%, 56%, 0.30)",
            "foreground_adjust": "l(+ 10%)"
        },
        {
            "scope": "diff.inserted",
            "background": "hsla(80, 50%, 53%, 0.15)",
            "foreground_adjust": "l(+ 5%)"
        },
        {
            "scope": "diff.inserted.char",
            "background": "hsla(80, 65%, 53%, 0.30)",
            "foreground_adjust": "l(+ 10%)"
        },
    ]
}

I tried to see if I could resolve this issue further, but it looks like it is going to require quite a bit of re-writing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant