diff --git a/PICO-8-Grey.sublime-color-scheme b/PICO-8-Grey.sublime-color-scheme
new file mode 100644
index 0000000..0065723
--- /dev/null
+++ b/PICO-8-Grey.sublime-color-scheme
@@ -0,0 +1,430 @@
+{
+ "name": "PICO-8",
+ "author": "zep and the PICO-8 community",
+ "variables":
+ {
+ "p0x0_black": "#000000",
+ "p0x1_dkblue": "#1d2b53",
+ "p0x2_plum": "#7e2553",
+ "p0x3_dkgreen": "#008751",
+ "p0x4_brown": "#ab5236",
+ "p0x5_dkgrey": "#5f574f",
+ "p0x6_grey": "#c2c3c7",
+ "p0x7_white": "#fff1e8",
+ "p0x8_red": "#ff004d",
+ "p0x9_orange": "#ffa300",
+ "p0xa_yellow": "#ffec27",
+ "p0xb_green": "#00e436",
+ "p0xc_blue": "#29adff",
+ "p0xd_lavender": "#83769c",
+ "p0xe_pink": "#ff77a8",
+ "p0xf_ltpeach": "#ffccaa",
+
+ "p0x80_coffee": "#291814",
+ "p0x81_navy": "#111D35",
+ "p0x82_burgundy": "#422136",
+ "p0x83_teal": "#125359",
+ "p0x84_camel": "#742f29",
+ "p0x85_dkmauve": "#49333b",
+ "p0x86_beige": "#a28879",
+ "p0x87_canary": "#f3ef7d",
+ "p0x88_fuchsia": "#be1250",
+ "p0x89_tangerine": "#ff6c24",
+ "p0x8a_lime": "#a8e72e",
+ "p0x8b_grass": "#00b543",
+ "p0x8c_cobalt": "#065ab5",
+ "p0x8d_mauve": "#754665",
+ "p0x8e_salmon": "#ff6e59",
+ "p0x8f_peach": "#ff9d81",
+ },
+ "globals":
+ {
+ "foreground": "var(p0x6_grey)",
+ "background": "var(p0x5_dkgrey)",
+ "caret": "var(p0x8_red)",
+ "invisibles": "var(p0x0_black)",
+ "line_highlight": "var(p0x85_dkmauve)",
+ "selection": "var(p0xa_yellow)"
+ },
+ "rules":
+ [
+ {
+ "name": "Pico-8 tab marker",
+ "scope": "comment.line.pico8.tab",
+ "foreground": "var(p0x7_white)",
+ "background": "var(p0x8_red)",
+ },
+ {
+ "name": "Pico-8 region marker",
+ "scope": "keyword.other.sector",
+ "foreground": "var(p0x7_white)",
+ "background": "var(p0xe_pink)",
+ },
+ {
+ "name": "Pico-8 pixel 0",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.0",
+ "foreground": "var(p0x5_dkgrey)",
+ "background": "var(p0x0_black)",
+ },
+ {
+ "name": "Pico-8 pixel 1",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.1",
+ "foreground": "var(p0x8c_cobalt)",
+ "background": "var(p0x1_dkblue)",
+ },
+ {
+ "name": "Pico-8 pixel 2",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.2",
+ "foreground": "var(p0xe_pink)",
+ "background": "var(p0x2_plum)",
+ },
+ {
+ "name": "Pico-8 pixel 3",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.3",
+ "foreground": "var(p0xb_green)",
+ "background": "var(p0x3_dkgreen)",
+ },
+ {
+ "name": "Pico-8 pixel 4",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.4",
+ "foreground": "var(p0x9_orange)",
+ "background": "var(p0x4_brown)",
+ },
+ {
+ "name": "Pico-8 pixel 5",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.5",
+ "foreground": "var(p0x6_grey!)",
+ "background": "var(p0x5_dkgrey)",
+ },
+ {
+ "name": "Pico-8 pixel 6",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.6",
+ "foreground": "var(p0x5_dkgrey)",
+ "background": "var(p0x6_grey)",
+ },
+ {
+ "name": "Pico-8 pixel 7",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.7",
+ "foreground": "var(p0x5_dkgrey)",
+ "background": "var(p0x7_white)",
+ },
+ {
+ "name": "Pico-8 pixel 8",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.8",
+ "foreground": "var(p0xe_pink)",
+ "background": "var(p0x8_red)",
+ },
+ {
+ "name": "Pico-8 pixel 9",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.9",
+ "foreground": "var(p0x0_black)",
+ "background": "var(p0x9_orange)",
+ },
+ {
+ "name": "Pico-8 pixel a",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.a",
+ "foreground": "var(p0x4_brown)",
+ "background": "var(p0xa_yellow)",
+ },
+ {
+ "name": "Pico-8 pixel b",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.b",
+ "foreground": "var(p0x0_black)",
+ "background": "var(p0xb_green)",
+ },
+ {
+ "name": "Pico-8 pixel c",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.c",
+ "foreground": "var(p0x1_dkblue)",
+ "background": "var(p0xc_blue)",
+ },
+ {
+ "name": "Pico-8 pixel d",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.d",
+ "foreground": "var(p0x2_plum)",
+ "background": "var(p0xd_lavender)",
+ },
+ {
+ "name": "Pico-8 pixel e",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.e",
+ "foreground": "var(p0x2_plum)",
+ "background": "var(p0xe_pink)",
+ },
+ {
+ "name": "Pico-8 pixel f",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.f",
+ "foreground": "var(p0x4_brown)",
+ "background": "var(p0xf_ltpeach)",
+ },
+ {
+ "name": "Syntax error",
+ "scope": "invalid",
+ "background": "var(p0x88_fuchsia)",
+ "foreground": "var(p0xf_ltpeach)",
+ },
+ {
+ "name": "Deprecated",
+ "scope": "invalid.deprecated",
+ "foreground": "var(p0x9_orange)",
+ },
+ {
+ "name": "Source",
+ "scope": "source",
+ "background": "var(p0x5_dkgrey)"
+ },
+ {
+ "name": "Comment",
+ "scope": "comment",
+ "foreground": "var(p0xd_lavender)"
+ },
+ {
+ "name": "Keyword",
+ "scope": "keyword, storage",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "Keyword operator",
+ "scope": "keyword.operator.assignment",
+ "foreground": "var(p0x7_white)"
+ },
+ {
+ "name": "Keyword operator",
+ "scope": "keyword.operator.punctuation",
+ "foreground": "var(p0x7_white)"
+ },
+ {
+ "name": "keyword like new",
+ "scope": "keyword.other.special-method",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "Function (definition)",
+ "scope": "entity.name.function, keyword.other.name-of-parameter.objc",
+ "foreground": "var(p0x6_grey)",
+ "font_style": "bold"
+ },
+ {
+ "name": "Section (definition)",
+ "scope": "entity.name.section",
+ "foreground": "var(p0x4_brown)",
+ },
+ {
+ "name": "Class (definition)",
+ "scope": "entity.name",
+ "foreground": "var(p0x6_grey)"
+ },
+ {
+ "name": "Number",
+ "scope": "constant.numeric",
+ "foreground": "var(p0xc_blue)"
+ },
+ {
+ "name": "Assorted constants",
+ "scope": "constant",
+ "foreground": "var(p0xc_blue)",
+ },
+ {
+ "name": "Variable",
+ "scope": "variable.language, variable.other",
+ "foreground": "var(p0x6_grey)",
+ "font_style": "bold"
+ },
+ {
+ "name": "Built-in constant",
+ "scope": "constant.language",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "String",
+ "scope": "string",
+ "foreground": "var(p0xc_blue)"
+ },
+ {
+ "name": "Inherited class",
+ "scope": "entity.other.inherited-class",
+ "foreground": "var(p0x8c_cobalt)"
+ },
+ {
+ "name": "Inherited class seperator",
+ "scope": "punctuation.separator.inheritance",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "punctuation block",
+ "scope": "punctuation.separator.variable",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "array brackets",
+ "scope": "punctuation.section.array",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "hash separator",
+ "scope": "punctuation.separator.key-value",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "() brackets",
+ "scope": "punctuation.section.function, punctuation.definition.parameters",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "hash brackets",
+ "scope": "punctuation.section.scope",
+ "foreground": "var(p0x7_white)"
+ },
+ {
+ "name": "symbol",
+ "scope": "constant.other.symbol",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "Support",
+ "scope": "support",
+ "foreground": "var(p0xb_green)",
+ },
+ {
+ "name": "String.regexp",
+ "scope": "string.regexp",
+ "foreground": "var(p0xc_blue)"
+ },
+ {
+ "name": "String embedded source",
+ "scope": "string.quoted source",
+ "foreground": "var(p0xc_blue)"
+ },
+ {
+ "name": "doctype punctation",
+ "scope": "meta.tag.sgml.html",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "doctype declaration",
+ "scope": "entity.name.tag.doctype",
+ "foreground": "var(p0x6_grey)",
+ "font_style": "bold"
+ },
+ {
+ "name": "doctype string",
+ "scope": "string.quoted.double.doctype",
+ "foreground": "var(p0xc_blue)",
+ "font_style": "bold"
+ },
+ {
+ "name": "html tag punctuation",
+ "scope": "punctuation.definition.tag",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "html tag punctuation",
+ "scope": "entity.name.tag",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "html attribute",
+ "scope": "entity.other.attribute-name",
+ "foreground": "var(p0xc_blue)"
+ },
+ {
+ "name": "erb tags",
+ "scope": "punctuation.section.embedded.ruby",
+ "foreground": "var(p0x6_grey)",
+ "font_style": "bold"
+ },
+ {
+ "name": "ruby string interpolation",
+ "scope": "source.ruby.embedded.source punctuation.section.embedded.ruby",
+ "foreground": "var(p0x8_red)"
+ },
+ {
+ "name": "css brackets",
+ "scope": "punctuation.section.property-list.css",
+ "foreground": "var(p0x7_white)",
+ },
+ {
+ "name": "css property",
+ "scope": "support.type.property-name.css",
+ "foreground": "var(p0xe_pink)",
+ "font_style": "bold"
+ },
+ {
+ "name": "css property punctuation",
+ "scope": "punctuation.separator.key-value.css",
+ "foreground": "var(p0x7_white)"
+ },
+ {
+ "name": "css property value",
+ "scope": "meta.property-value, constant.other.color",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "css ending",
+ "scope": "punctuation.terminator.rule.css",
+ "foreground": "var(p0x7_white)"
+ },
+ {
+ "name": "css font",
+ "scope": "support.constant.font-name",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "css keyword",
+ "scope": "keyword.other.unit",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "pseudo class",
+ "scope": "entity.other.attribute-name.pseudo-class",
+ "foreground": "var(p0xd_lavender)"
+ },
+ {
+ "name": "css constant property value",
+ "scope": "support.constant.property-value",
+ "foreground": "var(p0xd_lavender)",
+ "font_style": "bold"
+ },
+ {
+ "name": "css attribute class",
+ "scope": "entity.other.attribute-name.class",
+ "foreground": "var(p0xc_blue)",
+ "font_style": "bold"
+ },
+ {
+ "name": "css attribute id",
+ "scope": "entity.other.attribute-name.id",
+ "foreground": "var(p0x8_red)",
+ "font_style": "bold"
+ },
+ {
+ "name": "diff header from",
+ "scope": "meta.diff.header.from-file",
+ "foreground": "var(p0xf_ltpeach)",
+ "background": "var(p0x0_black)"
+ },
+ {
+ "name": "diff header to",
+ "scope": "meta.diff.header.to-file",
+ "foreground": "var(p0xf_ltpeach)",
+ "background": "var(p0x0_black)"
+ },
+ {
+ "name": "diff inserted",
+ "scope": "markup.inserted.diff",
+ "background": "var(p0x80_coffee)",
+ },
+ {
+ "name": "diff deleted",
+ "scope": "markup.deleted.diff",
+ "foreground": "var(p0x88_fuchsia)",
+ "background": "var(p0x85_dkmauve)",
+ }
+ ]
+}
\ No newline at end of file
diff --git a/PICO-8.sublime-color-scheme b/PICO-8.sublime-color-scheme
new file mode 100644
index 0000000..1e7f17f
--- /dev/null
+++ b/PICO-8.sublime-color-scheme
@@ -0,0 +1,430 @@
+{
+ "name": "PICO-8",
+ "author": "zep and the PICO-8 community",
+ "variables":
+ {
+ "p0x0_black": "#000000",
+ "p0x1_dkblue": "#1d2b53",
+ "p0x2_plum": "#7e2553",
+ "p0x3_dkgreen": "#008751",
+ "p0x4_brown": "#ab5236",
+ "p0x5_dkgrey": "#5f574f",
+ "p0x6_grey": "#c2c3c7",
+ "p0x7_white": "#fff1e8",
+ "p0x8_red": "#ff004d",
+ "p0x9_orange": "#ffa300",
+ "p0xa_yellow": "#ffec27",
+ "p0xb_green": "#00e436",
+ "p0xc_blue": "#29adff",
+ "p0xd_lavender": "#83769c",
+ "p0xe_pink": "#ff77a8",
+ "p0xf_ltpeach": "#ffccaa",
+
+ "p0x80_coffee": "#291814",
+ "p0x81_navy": "#111D35",
+ "p0x82_burgundy": "#422136",
+ "p0x83_teal": "#125359",
+ "p0x84_camel": "#742f29",
+ "p0x85_dkmauve": "#49333b",
+ "p0x86_beige": "#a28879",
+ "p0x87_canary": "#f3ef7d",
+ "p0x88_fuchsia": "#be1250",
+ "p0x89_tangerine": "#ff6c24",
+ "p0x8a_lime": "#a8e72e",
+ "p0x8b_grass": "#00b543",
+ "p0x8c_cobalt": "#065ab5",
+ "p0x8d_mauve": "#754665",
+ "p0x8e_salmon": "#ff6e59",
+ "p0x8f_peach": "#ff9d81",
+ },
+ "globals":
+ {
+ "foreground": "var(p0x6_grey)",
+ "background": "var(p0x1_dkblue)",
+ "caret": "var(p0x8_red)",
+ "invisibles": "var(p0x0_black)",
+ "line_highlight": "var(p0x81_navy)",
+ "selection": "var(p0xa_yellow)"
+ },
+ "rules":
+ [
+ {
+ "name": "Pico-8 tab marker",
+ "scope": "comment.line.pico8.tab",
+ "foreground": "var(p0x7_white)",
+ "background": "var(p0x8_red)",
+ },
+ {
+ "name": "Pico-8 region marker",
+ "scope": "keyword.other.sector",
+ "foreground": "var(p0x7_white)",
+ "background": "var(p0xe_pink)",
+ },
+ {
+ "name": "Pico-8 pixel 0",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.0",
+ "foreground": "var(p0x5_dkgrey)",
+ "background": "var(p0x0_black)",
+ },
+ {
+ "name": "Pico-8 pixel 1",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.1",
+ "foreground": "var(p0x8c_cobalt)",
+ "background": "var(p0x1_dkblue)",
+ },
+ {
+ "name": "Pico-8 pixel 2",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.2",
+ "foreground": "var(p0xe_pink)",
+ "background": "var(p0x2_plum)",
+ },
+ {
+ "name": "Pico-8 pixel 3",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.3",
+ "foreground": "var(p0xb_green)",
+ "background": "var(p0x3_dkgreen)",
+ },
+ {
+ "name": "Pico-8 pixel 4",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.4",
+ "foreground": "var(p0x9_orange)",
+ "background": "var(p0x4_brown)",
+ },
+ {
+ "name": "Pico-8 pixel 5",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.5",
+ "foreground": "var(p0x6_grey!)",
+ "background": "var(p0x5_dkgrey)",
+ },
+ {
+ "name": "Pico-8 pixel 6",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.6",
+ "foreground": "var(p0x5_dkgrey)",
+ "background": "var(p0x6_grey)",
+ },
+ {
+ "name": "Pico-8 pixel 7",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.7",
+ "foreground": "var(p0x5_dkgrey)",
+ "background": "var(p0x7_white)",
+ },
+ {
+ "name": "Pico-8 pixel 8",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.8",
+ "foreground": "var(p0xe_pink)",
+ "background": "var(p0x8_red)",
+ },
+ {
+ "name": "Pico-8 pixel 9",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.9",
+ "foreground": "var(p0x0_black)",
+ "background": "var(p0x9_orange)",
+ },
+ {
+ "name": "Pico-8 pixel a",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.a",
+ "foreground": "var(p0x4_brown)",
+ "background": "var(p0xa_yellow)",
+ },
+ {
+ "name": "Pico-8 pixel b",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.b",
+ "foreground": "var(p0x0_black)",
+ "background": "var(p0xb_green)",
+ },
+ {
+ "name": "Pico-8 pixel c",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.c",
+ "foreground": "var(p0x1_dkblue)",
+ "background": "var(p0xc_blue)",
+ },
+ {
+ "name": "Pico-8 pixel d",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.d",
+ "foreground": "var(p0x2_plum)",
+ "background": "var(p0xd_lavender)",
+ },
+ {
+ "name": "Pico-8 pixel e",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.e",
+ "foreground": "var(p0x2_plum)",
+ "background": "var(p0xe_pink)",
+ },
+ {
+ "name": "Pico-8 pixel f",
+ "scope": "constant.numeric.integer.hexadecimal.lua.pico8.color.f",
+ "foreground": "var(p0x4_brown)",
+ "background": "var(p0xf_ltpeach)",
+ },
+ {
+ "name": "Syntax error",
+ "scope": "invalid",
+ "background": "var(p0x88_fuchsia)",
+ "foreground": "var(p0xf_ltpeach)",
+ },
+ {
+ "name": "Deprecated",
+ "scope": "invalid.deprecated",
+ "foreground": "var(p0x9_orange)",
+ },
+ {
+ "name": "Source",
+ "scope": "source",
+ "background": "var(p0x1_dkblue)"
+ },
+ {
+ "name": "Comment",
+ "scope": "comment",
+ "foreground": "var(p0xd_lavender)"
+ },
+ {
+ "name": "Keyword",
+ "scope": "keyword, storage",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "Keyword operator",
+ "scope": "keyword.operator.assignment",
+ "foreground": "var(p0x7_white)"
+ },
+ {
+ "name": "Keyword operator",
+ "scope": "keyword.operator.punctuation",
+ "foreground": "var(p0x7_white)"
+ },
+ {
+ "name": "keyword like new",
+ "scope": "keyword.other.special-method",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "Function (definition)",
+ "scope": "entity.name.function, keyword.other.name-of-parameter.objc",
+ "foreground": "var(p0x6_grey)",
+ "font_style": "bold"
+ },
+ {
+ "name": "Section (definition)",
+ "scope": "entity.name.section",
+ "foreground": "var(p0x4_brown)",
+ },
+ {
+ "name": "Class (definition)",
+ "scope": "entity.name",
+ "foreground": "var(p0x6_grey)"
+ },
+ {
+ "name": "Number",
+ "scope": "constant.numeric",
+ "foreground": "var(p0xc_blue)"
+ },
+ {
+ "name": "Assorted constants",
+ "scope": "constant",
+ "foreground": "var(p0xc_blue)",
+ },
+ {
+ "name": "Variable",
+ "scope": "variable.language, variable.other",
+ "foreground": "var(p0x6_grey)",
+ "font_style": "bold"
+ },
+ {
+ "name": "Built-in constant",
+ "scope": "constant.language",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "String",
+ "scope": "string",
+ "foreground": "var(p0xc_blue)"
+ },
+ {
+ "name": "Inherited class",
+ "scope": "entity.other.inherited-class",
+ "foreground": "var(p0x8c_cobalt)"
+ },
+ {
+ "name": "Inherited class seperator",
+ "scope": "punctuation.separator.inheritance",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "punctuation block",
+ "scope": "punctuation.separator.variable",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "array brackets",
+ "scope": "punctuation.section.array",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "hash separator",
+ "scope": "punctuation.separator.key-value",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "() brackets",
+ "scope": "punctuation.section.function, punctuation.definition.parameters",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "hash brackets",
+ "scope": "punctuation.section.scope",
+ "foreground": "var(p0x7_white)"
+ },
+ {
+ "name": "symbol",
+ "scope": "constant.other.symbol",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "Support",
+ "scope": "support",
+ "foreground": "var(p0xb_green)",
+ },
+ {
+ "name": "String.regexp",
+ "scope": "string.regexp",
+ "foreground": "var(p0xc_blue)"
+ },
+ {
+ "name": "String embedded source",
+ "scope": "string.quoted source",
+ "foreground": "var(p0xc_blue)"
+ },
+ {
+ "name": "doctype punctation",
+ "scope": "meta.tag.sgml.html",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "doctype declaration",
+ "scope": "entity.name.tag.doctype",
+ "foreground": "var(p0x6_grey)",
+ "font_style": "bold"
+ },
+ {
+ "name": "doctype string",
+ "scope": "string.quoted.double.doctype",
+ "foreground": "var(p0xc_blue)",
+ "font_style": "bold"
+ },
+ {
+ "name": "html tag punctuation",
+ "scope": "punctuation.definition.tag",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "html tag punctuation",
+ "scope": "entity.name.tag",
+ "foreground": "var(p0x7_white)",
+ "font_style": "bold"
+ },
+ {
+ "name": "html attribute",
+ "scope": "entity.other.attribute-name",
+ "foreground": "var(p0xc_blue)"
+ },
+ {
+ "name": "erb tags",
+ "scope": "punctuation.section.embedded.ruby",
+ "foreground": "var(p0x6_grey)",
+ "font_style": "bold"
+ },
+ {
+ "name": "ruby string interpolation",
+ "scope": "source.ruby.embedded.source punctuation.section.embedded.ruby",
+ "foreground": "var(p0x8_red)"
+ },
+ {
+ "name": "css brackets",
+ "scope": "punctuation.section.property-list.css",
+ "foreground": "var(p0x7_white)",
+ },
+ {
+ "name": "css property",
+ "scope": "support.type.property-name.css",
+ "foreground": "var(p0xe_pink)",
+ "font_style": "bold"
+ },
+ {
+ "name": "css property punctuation",
+ "scope": "punctuation.separator.key-value.css",
+ "foreground": "var(p0x7_white)"
+ },
+ {
+ "name": "css property value",
+ "scope": "meta.property-value, constant.other.color",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "css ending",
+ "scope": "punctuation.terminator.rule.css",
+ "foreground": "var(p0x7_white)"
+ },
+ {
+ "name": "css font",
+ "scope": "support.constant.font-name",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "css keyword",
+ "scope": "keyword.other.unit",
+ "foreground": "var(p0xe_pink)"
+ },
+ {
+ "name": "pseudo class",
+ "scope": "entity.other.attribute-name.pseudo-class",
+ "foreground": "var(p0xd_lavender)"
+ },
+ {
+ "name": "css constant property value",
+ "scope": "support.constant.property-value",
+ "foreground": "var(p0xd_lavender)",
+ "font_style": "bold"
+ },
+ {
+ "name": "css attribute class",
+ "scope": "entity.other.attribute-name.class",
+ "foreground": "var(p0xc_blue)",
+ "font_style": "bold"
+ },
+ {
+ "name": "css attribute id",
+ "scope": "entity.other.attribute-name.id",
+ "foreground": "var(p0x8_red)",
+ "font_style": "bold"
+ },
+ {
+ "name": "diff header from",
+ "scope": "meta.diff.header.from-file",
+ "foreground": "var(p0xf_ltpeach)",
+ "background": "var(p0x0_black)"
+ },
+ {
+ "name": "diff header to",
+ "scope": "meta.diff.header.to-file",
+ "foreground": "var(p0xf_ltpeach)",
+ "background": "var(p0x0_black)"
+ },
+ {
+ "name": "diff inserted",
+ "scope": "markup.inserted.diff",
+ "background": "var(p0x80_coffee)",
+ },
+ {
+ "name": "diff deleted",
+ "scope": "markup.deleted.diff",
+ "foreground": "var(p0x88_fuchsia)",
+ "background": "var(p0x85_dkmauve)",
+ }
+ ]
+}
\ No newline at end of file
diff --git a/PICO-8.sublime-settings b/PICO-8.sublime-settings
index 5446cdf..cb6f1b8 100644
--- a/PICO-8.sublime-settings
+++ b/PICO-8.sublime-settings
@@ -1,5 +1,5 @@
{
- "color_scheme": "Packages/PICO-8/PICO-8.tmTheme",
+ "color_scheme": "Packages/PICO-8/PICO-8.sublime-color-scheme",
"tab_size": 1,
"translate_tabs_to_spaces": true,
"detect_indentation": false,
diff --git a/PICO-8.sublime-syntax b/PICO-8.sublime-syntax
new file mode 100644
index 0000000..40f5cb3
--- /dev/null
+++ b/PICO-8.sublime-syntax
@@ -0,0 +1,131 @@
+%YAML 1.2
+---
+# http://www.sublimetext.com/docs/syntax.html
+name: PICO-8
+comment: PICO-8 (0.2.5e)
+file_extensions:
+ - p8
+scope: source.p8
+contexts:
+ main:
+ - match: '^__gfx__\s*$'
+ scope: keyword.other.sector
+ set: sprite
+ - match: '^__lua__\s*$'
+ scope: keyword.other.sector
+ - match: '^-->8\s*$'
+ scope: comment.line.pico8.tab
+ - match: '\b(function)\s+([a-zA-Z_.:]+[.:])?([a-zA-Z_]\w*)\s*(\()([^)]*)(\))'
+ scope: meta.function.lua
+ captures:
+ 1: keyword.control.lua
+ 2: entity.name.function.scope.lua
+ 3: entity.name.function.lua
+ 4: punctuation.definition.parameters.begin.lua
+ 5: variable.parameter.function.lua
+ 6: punctuation.definition.parameters.end.lua
+ - match: '(?=?|,|\.\.?\.?|<<>?|>>>?|>><|(?
-
-
-
- comment
- PICO-8 (lua syntax 0.8)
- fileTypes
-
- p8
-
- foldingStartMarker
- ^\s*\b(function|local\s+function|if|for)\b|{[ \t]*$|\[\[
- foldingStopMarker
- \bend\b|^\s*}|\]\]
- keyEquivalent
- ^~L
- name
- PICO-8
- patterns
-
-
- captures
-
- 1
-
- name
- keyword.control.lua
-
- 2
-
- name
- entity.name.function.scope.lua
-
- 3
-
- name
- entity.name.function.lua
-
- 4
-
- name
- punctuation.definition.parameters.begin.lua
-
- 5
-
- name
- variable.parameter.function.lua
-
- 6
-
- name
- punctuation.definition.parameters.end.lua
-
-
- match
- \b(function)\s+([a-zA-Z_.:]+[.:])?([a-zA-Z_]\w*)\s*(\()([^)]*)(\))
- name
- meta.function.lua
-
-
- match
- (?<![\d.])\b0x[a-fA-F\d]+|\b\d+(\.\d+)?([eE]-?\d+)?|\.\d+([eE]-?\d+)?
- name
- constant.numeric.lua
-
-
- begin
- '
- beginCaptures
-
- 0
-
- name
- punctuation.definition.string.begin.lua
-
-
- end
- '
- endCaptures
-
- 0
-
- name
- punctuation.definition.string.end.lua
-
-
- name
- string.quoted.single.lua
- patterns
-
-
- match
- \\.
- name
- constant.character.escape.lua
-
-
-
-
- begin
- "
- beginCaptures
-
- 0
-
- name
- punctuation.definition.string.begin.lua
-
-
- end
- "
- endCaptures
-
- 0
-
- name
- punctuation.definition.string.end.lua
-
-
- name
- string.quoted.double.lua
- patterns
-
-
- match
- \\.
- name
- constant.character.escape.lua
-
-
-
-
- begin
- (?<!--)\[(=*)\[
- beginCaptures
-
- 0
-
- name
- punctuation.definition.string.begin.lua
-
-
- end
- \]\1\]
- endCaptures
-
- 0
-
- name
- punctuation.definition.string.end.lua
-
-
- name
- string.quoted.other.multiline.lua
-
-
- begin
- --\[(=*)\[
- captures
-
- 0
-
- name
- punctuation.definition.comment.lua
-
-
- end
- \]\1\]
- name
- comment.block.lua
-
-
- captures
-
- 1
-
- name
- punctuation.definition.comment.lua
-
-
- match
- (--)(?!\[\[).*$\n?
- name
- comment.line.double-dash.lua
-
-
- match
- \b(break|do|else|for|if|elseif|return|then|repeat|while|until|end|function|local|in|goto)\b
- name
- keyword.control.lua
-
-
- match
- (?<![^.]\.|:)\b(false|nil|true)\b
- name
- constant.language.lua
-
-
- match
- (?<![^.]\.|:)\b(self)\b
- name
- variable.language.self.lua
-
-
- match
- (?<![^.]\.|:)\b(_draw|_init|_update|_update60|abs|add|all|assert|atan2|band|bnot|bor|btn|btnp|bxor|camera|cartdata|cd|circ|circfill|clip|cls|cocreate|color|coresume|cos|costatus|count|cstore|cursor|del|dget|dir|dset|exit|export|extcmd|fget|flip|flr|folder|foreach|fset|help|holdframe|import|info|install_demos|install_games|keyconfig|line|load|ls|map|mapdraw|max|memcpy|memset|menuitem|mget|mid|min|mkdir|mset|music|pairs|pal|palt|peek|pget|poke|print|printh|pset|reboot|rect|rectfill|reload|resume|rnd|run|save|setmetatable|sfx|sget|sgn|shl|shr|shutdown|sin|splore|spr|sqrt|srand|sset|sspr|stat|sub|time|type|yield)\b
- name
- support.function.lua
-
-
- match
- \b(and|or|not)\b
- name
- keyword.operator.lua
-
-
- match
- \(|\)|\;|\+=?|-=?|%=?|#|\*=?|\/=?|\^=?|\[|\]|==?|~=|<=?|>=?|,|\.\.?\.?|(?<!\.)\.{2}(?!\.)
- name
- keyword.operator.punctuation.lua
-
-
- scopeName
- source.p8
- uuid
- 93E017CC-6F27-11D9-90EB-000D93589AF7
-
-
diff --git a/PICO-8.tmTheme b/PICO-8.tmTheme
deleted file mode 100644
index 207c0e7..0000000
--- a/PICO-8.tmTheme
+++ /dev/null
@@ -1,696 +0,0 @@
-
-
-
-
- name
- PICO-8
- settings
-
-
- settings
-
- background
- #1D2B53
- caret
- #FF004D
- foreground
- #C2C3C7
- invisibles
- #BFBFBF
- lineHighlight
- #6F675F
- selection
- #FFEC27
-
-
-
- name
- Source
- scope
- source
- settings
-
- background
- #1D2B53
-
-
-
- name
- Comment
- scope
- comment
- settings
-
- fontStyle
-
- foreground
- #83769C
-
-
-
- name
- Keyword
- scope
- keyword, storage
- settings
-
- fontStyle
-
- foreground
- #FF77A8
-
-
-
- name
- Keyword operator
- scope
- keyword.operator.assignment
- settings
-
- fontStyle
-
- foreground
- #FFF1E8
-
-
-
- name
- Keyword operator
- scope
- keyword.operator.punctuation
- settings
-
- fontStyle
-
- foreground
- #FFF1E8
-
-
-
- name
- keyword like new
- scope
- keyword.other.special-method
- settings
-
- fontStyle
-
- foreground
- #FF77A8
-
-
-
- name
- Function (definition)
- scope
- entity.name.function, keyword.other.name-of-parameter.objc
- settings
-
- fontStyle
- bold
- foreground
- #C2C3C7
-
-
-
- name
- Class (definition)
- scope
- entity.name
- settings
-
- fontStyle
-
- foreground
- #C2C3C7
-
-
-
- name
- Number
- scope
- constant.numeric
- settings
-
- fontStyle
-
- foreground
- #29ADFF
-
-
-
- name
- Variable
- scope
- variable.language, variable.other
- settings
-
- fontStyle
- bold
- foreground
- #C2C3C7
-
-
-
- name
- Built-in constant
- scope
- constant.language
- settings
-
- fontStyle
-
- foreground
- #FF77A8
-
-
-
- name
- Variable
- scope
- variable.other.constant.ruby
- settings
-
- foreground
- #0F8787
-
-
-
- name
- Built-in constant
- scope
- constant.language
- settings
-
- fontStyle
-
- foreground
- #29ADFF
-
-
-
- name
- String
- scope
- string
- settings
-
- foreground
- #29ADFF
-
-
-
- name
- Inherited class
- scope
- entity.other.inherited-class
- settings
-
- fontStyle
-
- foreground
- #0F87FF
-
-
-
- name
- Inherited class seperator
- scope
- punctuation.separator.inheritance
- settings
-
- fontStyle
- bold
- foreground
- #FFF1E8
-
-
-
- name
- punctuation block
- scope
- punctuation.separator.variable
- settings
-
- fontStyle
- bold
- foreground
- #FFf1E8
-
-
-
- name
- array brackets
- scope
- punctuation.section.array
- settings
-
- fontStyle
- bold
- foreground
- #FFF1E8
-
-
-
- name
- hash separator
- scope
- punctuation.separator.key-value
- settings
-
- fontStyle
- bold
- foreground
- #FFF1E8
-
-
-
- name
- () brackets
- scope
- punctuation.section.function, punctuation.definition.parameters
- settings
-
- fontStyle
- bold
- foreground
- #FFF1E8
-
-
-
- name
- hash brackets
- scope
- punctuation.section.scope
- settings
-
- fontStyle
-
- foreground
- #FFF1E8
-
-
-
- name
- Special ruby method
- scope
- keyword.other.special-method.ruby
- settings
-
- fontStyle
-
-
-
-
- name
- symbol
- scope
- constant.other.symbol
- settings
-
- fontStyle
-
- foreground
- #FF77A8
-
-
-
- name
- Support class
- scope
- support.class
- settings
-
- fontStyle
-
- foreground
- #00E756
-
-
-
- name
- Support type
- scope
- support.type
- settings
-
- fontStyle
-
- foreground
- #00E756
-
-
-
- name
- Support function
- scope
- support.function
- settings
-
- fontStyle
-
- foreground
- #00E756
-
-
-
- name
- String.regexp
- scope
- string.regexp
- settings
-
- foreground
- #29ADFF
-
-
-
- name
- String embedded source
- scope
- string.quoted source
- settings
-
- foreground
- #29ADFF
-
-
-
- name
- doctype punctation
- scope
- meta.tag.sgml.html
- settings
-
- fontStyle
- bold
- foreground
- #FFF1E8
-
-
-
- name
- doctype declaration
- scope
- entity.name.tag.doctype
- settings
-
- fontStyle
- bold
- foreground
- #999999
-
-
-
- name
- doctype string
- scope
- string.quoted.double.doctype
- settings
-
- fontStyle
- bold
- foreground
- #29ADFF
-
-
-
- name
- html tag punctuation
- scope
- punctuation.definition.tag
- settings
-
- fontStyle
-
- foreground
- #FF77A8
-
-
-
- name
- html tag punctuation
- scope
- entity.name.tag
- settings
-
- fontStyle
- bold
- foreground
- #FFF1E8
-
-
-
- name
- html attribute
- scope
- entity.other.attribute-name
- settings
-
- fontStyle
-
- foreground
- #5577BB
-
-
-
- name
- html attribute punctation
- scope
- entity.other.attribute-name
- settings
-
- fontStyle
-
- foreground
- #7799CC
-
-
-
- name
- erb tags
- scope
- punctuation.section.embedded.ruby
- settings
-
- fontStyle
- bold
- foreground
- #999999
-
-
-
- name
- ruby string interpolation
- scope
- source.ruby.embedded.source punctuation.section.embedded.ruby
- settings
-
- foreground
- #CF1040
-
-
-
- name
- css brackets
- scope
- punctuation.section.property-list.css
- settings
-
- fontStyle
-
-
-
-
- name
- css property
- scope
- support.type.property-name.css
- settings
-
- fontStyle
- bold
- foreground
- #994488
-
-
-
- name
- css property punctuation
- scope
- punctuation.separator.key-value.css
- settings
-
- fontStyle
-
- foreground
- #555555
-
-
-
- name
- css property value
- scope
- meta.property-value, constant.other.color
- settings
-
- fontStyle
-
- foreground
- #FF77A8
-
-
-
- name
- css ending
- scope
- punctuation.terminator.rule.css
- settings
-
- fontStyle
-
- foreground
- #555555
-
-
-
- name
- css font
- scope
- support.constant.font-name
- settings
-
- fontStyle
-
- foreground
- #FF77A8
-
-
-
- name
- css keyword
- scope
- keyword.other.unit
- settings
-
- fontStyle
-
- foreground
- #FF77A8
-
-
-
- name
- pseudo class
- scope
- entity.other.attribute-name.pseudo-class
- settings
-
- fontStyle
-
- foreground
- #8855CC
-
-
-
- name
- css constant property value
- scope
- support.constant.property-value
- settings
-
- fontStyle
- bold
- foreground
- #8855CC
-
-
-
- name
- css attribute class
- scope
- entity.other.attribute-name.class
- settings
-
- fontStyle
- bold
- foreground
- #3366CC
-
-
-
- name
- css attribute id
- scope
- entity.other.attribute-name.id
- settings
-
- fontStyle
- bold
- foreground
- #990000
-
-
-
- name
- diff header from
- scope
- meta.diff.header.from-file
- settings
-
- background
- #FFDDDD
- fontStyle
-
- foreground
- #555555
-
-
-
- name
- diff header to
- scope
- meta.diff.header.to-file
- settings
-
- background
- #DDFFDD
- fontStyle
-
- foreground
- #555555
-
-
-
- name
- diff inserted
- scope
- markup.inserted.diff
- settings
-
- background
- #DDFFDD
- fontStyle
-
-
-
-
- name
- diff deleted
- scope
- markup.deleted.diff
- settings
-
- background
- #FFDDDD
- fontStyle
-
- foreground
- #555555
-
-
-
- uuid
- 26786979-843B-4FE2-BCB6-4FCEC6F8FB58
-
-
diff --git a/README.md b/README.md
index 6a85587..fa1cd60 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,7 @@ This package includes:
- `.p8` language definition (by [Overkill](http://www.lexaloffle.com/bbs/?uid=11331)).
- Syntax highlighting (by [Overkill](http://www.lexaloffle.com/bbs/?uid=11331)).
+- Sprite sheet syntax highlighting (by [Adam Norberg](https://github.com/AdamNorberg)).
- PICO-8 `.ttf` font (by [RhythmLynx](http://www.lexaloffle.com/bbs/?uid=11704)).
- Cartridge runner to launch your cart right from Sublime Text.
- Code completion based on the official [PICO-8 API](http://neko250.github.io/pico8-api/).
@@ -93,6 +94,13 @@ __IMPORTANT__: Remember using the escape character for the backslash (`\\`) inst
## Version History
+- __v2022.12.31__:
+ - `changed`: syntax highlighting updated for Pico-8 0.2.25e
+ - `removed`: TextMate theme and syntax files
+ - `added`: Sublime Text 3 theme and syntax files
+ - `added`: section headers and code tab comments are highlighted
+ - `added`: individual pixels of the sprite sheet and label are colored to match the P8 palette, making the sprites visible
+
- __v2017.3.14__:
- `added`: automatically lowercase the file upon saving.
- `added`: `extcmd` function (syntax and autocomplete).
diff --git a/messages.json b/messages.json
index 5dc045a..e44e5e6 100644
--- a/messages.json
+++ b/messages.json
@@ -2,5 +2,6 @@
"install": "messages/install.txt",
"2016.6.30": "messages/2016.6.30.txt",
"2016.7.1": "messages/2016.7.1.txt",
- "2017.3.14": "messages/2017.3.14.txt"
+ "2017.3.14": "messages/2017.3.14.txt",
+ "2022.12.31": "messages/2022.12.31.txt",
}
diff --git a/messages/2022.12.31.txt b/messages/2022.12.31.txt
new file mode 100644
index 0000000..3bb4aff
--- /dev/null
+++ b/messages/2022.12.31.txt
@@ -0,0 +1,19 @@
+Sublime PICO-8 v2022.12.31
+
+Pico-8 syntax highlighting and the Pico-8 color scheme now use Sublime Text 3 format.
+
+Syntax highlighting is now updated to match Pico-8 0.2.25e, including using the blue background. Additionally, comments to break code into tabs in the Pico-8 editor are highlighted (using the colors of the P8 editor tab bar), as are markers between segments in the .p8 file. Finally, the __gfx__ segment (the sprite sheet) and the __label__ segment (the cartridge label) are colored character-by-character to match the Pico-8 palette, so the sprite sheet can be (sort of) viewed in Sublime Text!
+
+A gray variant of the color scheme is available; you can specify this in your Pico-8 user settings:
+"color_scheme": "Packages/PICO-8/PICO-8.sublime-color-scheme"
+
+The color schemes can also be used for Sublime Text in general if you want a Pico-8 feel to all your work!
+
+Changelog
+=========
+
+- changed: syntax highlighting updated for Pico-8 0.2.25e
+- removed: TextMate theme and syntax files
+- added: Sublime Text 3 theme and syntax files
+- added: section headers and code tab comments are highlighted
+- added: individual pixels of the sprite sheet and label are colored to match the P8 palette, making the sprites visible