Skip to content
Spiral edited this page Aug 23, 2026 · 3 revisions
  • Themes can be changed in settings under Select Theme
  • They are loaded from [GMM Folder]/Resources/Themes

Colors

App Colors
Key Location
editor.background Main code editor
Folding margin
Selected folding marker
editor.foreground Code editor text
Selected folding marker
editorLineNumber.foreground Code editor line numbers
editor.lineHighlightBackground Background and border of the current line
editor.selectionBackground Selected text
Folding markers
env.foreground General application text
Focused and hovered text fields
Menu shortcuts and arrows
Title bar buttons
Checkbox text and checkmarks
link Links
link.hover Links when hovered
tab.bg.inactive Inactive tabs
tab.bg.inactive.hover Menu backgrounds and borders
ComboBox dropdowns
Inactive tabs when hovered
tab.bg.inactive.unfocused.hover Inactive tabs when the window is unfocused and hovered
Hovered ComboBoxes
Hovered text fields
Hovered buttons and menu items
tab.bg.unfocused Inactive tabs when the window is unfocused
Pressed ComboBoxes and buttons
tab.close.unfocused Tab close button when the window is unfocused
tab.close.hover Tab close button when hovered
tab.separator Tab separators
Inactive tab close button when hovered
decoration.bg.hover Minimize and maximize buttons when hovered
Hovered checked checkboxes
decoration.bg.pressed Minimize and maximize buttons when pressed
Pressed checkboxes
decoration.exit.bg.hover Close button when hovered
decoration.exit.bg.pressed Close button when pressed
Token Colors
  • These are the colors that are used for code syntax
  • This is the best list that I could compile. If you know of any more, please contribute
  • How it works: All children within a scope are affected by the settings. However, applied settings are based on child-major. Meaning that if you declare something with a scope of entity.name with a foreground of yellow, then you declare something else of entity.name.function with a foreground of green. Everything that falls under the scope of entity.name will be yellow, except for function names, which would be green.
  • In the following list of scopes, some examples may contain "...", {...}, or (...). These are used to show what actually gets affected by that scope. Quotations are used first, then curly brackets, then parentheses. For example, in this <"summary">, "summary" is what actually gets affected. Another example is $"Number: ({num})", here "{num}" is what actually gets affected

Parent Scopes

Scope Description
comment Comments and documentation comments
constant Boolean, null, numeric, and character constants
entity Named code entities such as classes, methods, variables, and attributes
keyword C# keywords and operators
meta Additional semantic information such as ac
Themes.zip
cessors and interpolation
punctuation Syntax punctuation such as braces, brackets, commas, and semicolons
storage Type declarations and modifiers
string String and character literals
variable References to variables and special language variables

Comment

Scope Example Description
comment.block /* ... */ Block comments
comment.block.documentation /// comment XML documentation comments
comment.line // comment Single-line comments
comment.line.double-slash // comment The // portion of a line comment, depending on punctuation context

Constant

Language

Scope Example Description
constant.language.boolean Boolean constants
constant.language.boolean.true true true boolean value
constant.language.boolean.false false false boolean value
constant.language.null null Null literal

Numeric

Scope Example Description
constant.numeric.decimal 1, 12, 123.45 Decimal numbers and general numeric values
constant.numeric.hex FF Hexadecimal digits
constant.numeric.binary 1010 Binary digits
constant.numeric.other . Decimal point
constant.numeric.other.suffix f, L, m Numeric suffixes
constant.numeric.other.prefix 0x, 0b Numeric prefixes
constant.numeric.other.prefix.hex 0x Hexadecimal prefix
constant.numeric.other.prefix.binary 0b Binary prefix

Character

Scope Example Description
constant.character.escape \n, \" Character escape sequences

Entity

Name

Scope Example Description
entity.name.function void "MethodName"() Function or method name
entity.name.tag XML documentation tag
entity.name.tag.localname <"summary">, <"param"> Local name of an XML tag
entity.name.type.alias using "Console" = System.Console Type alias
entity.name.type.class class "ClassName" Class name
entity.name.type.enum enum "EnumName" Enum name
entity.name.type.interface interface "ITest" Interface name
entity.name.type.namespace namespace "MyNamespace", using "System" Namespace name
entity.name.type.struct struct "MyStruct" Struct name
entity.name.type.type-parameter IEnumerable<T> Test<"T"> Generic type parameter

Variable

Scope Example Description
entity.name.variable.enum-member MyEnum."Value" Enum member
entity.name.variable.event event Action "OnEvent" Event declaration
entity.name.variable.field int "num" Field declaration
entity.name.variable.local int "num" Local variable declaration
entity.name.variable.parameter void Method(int "num") Method parameter
entity.name.variable.property int "Num" { get; set; } Property declaration
entity.name.variable.tuple-element ("str", "num") Tuple element

Keyword

Control

Context
Scope Example Description
keyword.control.context.checked "checked" { } Checked context
keyword.control.context.lock "lock" (obj) { } Lock statement
Conditional
Scope Example Description
keyword.control.conditional.switch "switch" (value) Switch statement
keyword.control.conditional.case "case" null: Case label
keyword.control.conditional.default "default": Default case
keyword.control.conditional.if if If statement
keyword.control.conditional.else else Else statement
keyword.control.conditional.when when Pattern matching condition
Exception
Scope Example Description
keyword.control.exception.catch catch Catch block
keyword.control.exception.finally finally Finally block
keyword.control.exception.try try Try block
Flow
Scope Example Description
keyword.control.flow.break break Break statement
keyword.control.flow.continue continue Continue statement
keyword.control.flow.return return Return statement
keyword.control.flow.throw throw Throw statement
keyword.control.flow.yield yield Yield statement
Loop
Scope Example Description
keyword.control.loop.do do Do-while loop
keyword.control.loop.for for For loop
keyword.control.loop.foreach foreach Foreach loop
keyword.control.loop.in in Foreach/in expression
keyword.control.loop.while while While loop

Operator

Scope Example Description
keyword.operator.arithmetic +, -, *, /, % Arithmetic operators
keyword.operator.arrow => Lambda or expression-bodied member
keyword.operator.comparison ==, !=` Equality comparison
keyword.operator.decrement -- Decrement
keyword.operator.increment ++ Increment
keyword.operator.assignment =, ??= Assignment
keyword.operator.assignment.compound +=, -=, /=, *=, %= Compound assignment
keyword.operator.assignment.compound.bitwise >>= Compound bitwise assignment
keyword.operator.bitwise &, |, ^ Bitwise operators
keyword.operator.bitwise.shift << Bit shifting
keyword.operator.expression.as as Type casting
keyword.operator.expression.nameof nameof Name expression
keyword.operator.expression.typeof typeof Type expression
keyword.operator.expression.await await Await expression
keyword.operator.expression.new new Object creation
keyword.operator.expression.pattern.is is Pattern matching
keyword.operator.logical &&, || Logical operators
keyword.operator.null-coalescing ?? Null-coalescing operator
keyword.operator.relational <, <=, >, >= Relational operators
keyword.operator.range .. Range operator

Other

Directive
Scope Example Description
keyword.other.directive.static using "static" System Static using directive
keyword.other.directive.using "using" System Using directive

Type

Scope Example Description
keyword.type Built-in type keyword
keyword.type.bool bool Boolean type
keyword.type.interface interface Interface type
keyword.type.object object Object type
keyword.type.string string String type
keyword.type.void void Void type
keyword.type.long long Long type
keyword.type.int int Integer type
keyword.type.float float Float type
keyword.type.dynamic dynamic Dynamic type
keyword.type.double double Double type
keyword.type.decimal decimal Decimal type

Meta

Scope Example Description
meta.accessor.setter "arr[i]" = 1 Setter/accessor body
meta.accessor.getter "arr[i]" Getter/accessor body
meta.interpolation $"Number: ({num})" String interpolation
meta.tag /// <summary> XML documentation tag

Punctuation

Accessor

Scope Example Description
punctuation.accessor Console"."WriteLine() Member access punctuation

Curly Braces

Scope Example Description
punctuation.curlybrace.open { Opening curly brace
punctuation.curlybrace.close } Closing curly brace

Definition

Scope Example Description
punctuation.definition.comment //, /*, */, /// Comment delimiters
punctuation.definition.tag /// "<"summary">" XML tag delimiters
punctuation.definition.typeparameters.begin List"<"T> _list Opening generic type parameters
punctuation.definition.typeparameters.end List<T">" _list Closing generic type parameters
punctuation.definition.string.begin {"}Hello" Opening string delimiter
punctuation.definition.string.end "Hello{"} Closing string delimiter
punctuation.definition.char.begin {'}c' Opening character delimiter
punctuation.definition.char.end 'c{'} Closing character delimiter

Parentheses

Scope Example Description
punctuation.parenthesis.open ( Opening parenthesis
punctuation.parenthesis.close ) Closing parenthesis

Separators

Scope Example Description
punctuation.separator.colon case null":" Colon
punctuation.separator.comma int a"," int b Comma
punctuation.separator.question-mark int"?" num Nullable type marker

Square Brackets

Scope Example Description
punctuation.squarebracket.open int"["] Opening square bracket
punctuation.squarebracket.close int["]" Closing square bracket

Terminator

Scope Example Description
punctuation.terminator.statement ; Statement terminator

Storage

Modifier

Scope Example Description
storage.modifier.abstract abstract Abstract modifier
storage.modifier.async async Async modifier
storage.modifier.const const Constant modifier
storage.modifier.private private Private access modifier
storage.modifier.protected protected Protected access modifier
storage.modifier.public public Public access modifier
storage.modifier.readonly readonly Read-only modifier
storage.modifier.sealed sealed Sealed modifier
storage.modifier.static static Static modifier
storage.modifier.virtual virtual Virtual modifier
storage.modifier.where where Generic constraint
storage.modifier.this this Extension method modifier

Type

Scope Example Description
storage.type.accessor Property accessor
storage.type.accessor.get get Getter
storage.type.accessor.set set Setter
storage.type.accessor.init init Init accessor
storage.type.class class Class declaration
storage.type.enum enum Enum declaration
storage.type.event event Event declaration
storage.type.interface interface Interface declaration
storage.type.namespace namespace Namespace declaration
storage.type.record record Record declaration
storage.type.struct struct Struct declaration
storage.type.var var Implicitly typed variable

String

Quoted

Scope Example Description
string.quoted.single char c = {'c'} Character literal
string.quoted.double string str = {"Hello"} String literal

Variable

Language

Scope Example Description
variable.language.this this Current object reference
variable.language.base base Base class reference

Other

Scope Example Description
variable.other.value set => _num = "value" Special value variable in a setter
variable.other.object "Console".WriteLine() Object/member reference
variable.other.object.property str."Length" Object property reference
variable.other.readwrite "num" -= 1 Variable references after declaration

Download Default Themes

Clone this wiki locally