Mexican Night
Publisher: Mercury AtlasThemes in package: 1
A vibrant dark theme celebrating Mexico City nights with optimized Python, Ruby, and JavaScript/TypeScript syntax highlighting
A vibrant dark theme celebrating Mexico City nights with optimized Python, Ruby, and JavaScript/TypeScript syntax highlighting
Full workbench mockup using this variant's colors and tokenColors.
Loading...
Workbench UI color keys from the theme JSON colors map.
TextMate scopes and font styles (syntax highlighting rules).
| scope | foreground | fontStyle |
|---|---|---|
| comment.line.number-sign.ruby, comment.block.documentation.ruby | #8b7355 | italic |
| keyword.control.def.ruby, keyword.control.class.ruby, keyword.control.module.ruby, keyword.control.start-block.ruby | #ff006e | — |
| keyword.control.ruby | #ff006e | — |
| keyword.control.conditional.ruby, keyword.control.loop.ruby | #ff006e | italic |
| keyword.control.pseudo-method.ruby | #ff006e | italic |
| keyword.other.special-method.ruby | #BB9AF7 | — |
| entity.name.function.ruby | #06ffc8 | — |
| entity.name.type.class.ruby | #ff9500 | — |
| entity.name.type.module.ruby | #ff9500 | — |
| entity.other.inherited-class.ruby | #ff9500 | italic |
| support.class.ruby | #ff9500 | — |
| support.function.kernel.ruby | #06ffc8 | — |
| support.function.builtin.ruby | #06ffc8 | — |
| variable.other.readwrite.instance.ruby | #ffd60a | — |
| variable.other.readwrite.class.ruby | #fb8500 | — |
| variable.other.readwrite.global.ruby, variable.other.readwrite.global.pre-defined.ruby | #dc2f02 | — |
| variable.language.self.ruby, variable.language.super.ruby | #d00000 | italic |
| variable.language.ruby | #ffd60a | — |
| punctuation.definition.variable.ruby | #a9b1d6 | — |
| variable.parameter.function.ruby | #ffd60a | italic |
| variable.other.block.ruby | #ffd60a | italic |
| punctuation.separator.variable.ruby | #828bb8 | — |
| variable.other.constant.ruby | #ffba08 | — |
| constant.other.symbol.ruby, constant.language.symbol.ruby | #06ffc8 | — |
| constant.other.symbol.hashkey.ruby, constant.other.symbol.hashkey.parameter.function.ruby | #FF69B4 | — |
| constant.language.nil.ruby, constant.language.boolean.ruby | #ffba08 | — |
| constant.numeric.ruby | #ffba08 | — |
| string.quoted.single.ruby, string.quoted.double.interpolated.ruby, string.quoted.other.ruby, string.quoted.other.interpolated.ruby | #00d084 | — |
| punctuation.section.embedded.begin.ruby, punctuation.section.embedded.end.ruby | #ff006e | — |
| meta.embedded.line.ruby, source.ruby.embedded.source | #c0caf5 | — |
| string.unquoted.heredoc.ruby | #00d084 | — |
| string.regexp.ruby, string.regexp.interpolated.ruby | #06ffc8 | — |
| string.interpolated.ruby | #00d084 | — |
| keyword.operator.assignment.ruby, keyword.operator.assignment.augmented.ruby | #FF69B4 | — |
| keyword.operator.comparison.ruby | #FF69B4 | — |
| keyword.operator.logical.ruby | #FF69B4 | — |
| keyword.operator.arithmetic.ruby | #FF69B4 | — |
| keyword.operator.other.ruby | #FF69B4 | — |
| punctuation.separator.namespace.ruby | #a9b1d6 | — |
| punctuation.separator.inheritance.ruby | #a9b1d6 | — |
| punctuation.separator.method.ruby | #a9b1d6 | — |
| punctuation.separator.key-value | #ff006e | — |
| support.function.activerecord.rails | #06ffc8 | — |
| support.function.validation.rails | #BB9AF7 | — |
| support.function.callback.rails | #00d084 | — |
| support.function.view.rails | #06ffc8 | — |
| support.function.routing.rails | #BB9AF7 | — |
| punctuation.section.embedded.begin.erb, punctuation.section.embedded.end.erb, punctuation.section.embedded.ruby | #ff006e | — |
| comment.block.erb, comment.line.number-sign.erb | #828bb8 | italic |
| comment.line.double-slash.js, comment.line.double-slash.ts, comment.block.js, comment.block.ts | #8b7355 | italic |
| comment.block.documentation.js, comment.block.documentation.ts | #8b7355 | italic |
| storage.type.class.jsdoc, punctuation.definition.block.tag.jsdoc | #BB9AF7 | — |
| entity.name.type.instance.jsdoc | #06ffc8 | italic |
| keyword.control.js, keyword.control.ts, storage.type.js, storage.type.ts, keyword.operator.new.js, keyword.operator.new.ts | #ff006e | — |
| keyword.control.flow.js, keyword.control.flow.ts, keyword.control.return.js, keyword.control.return.ts, keyword.control.trycatch.js, keyword.control.trycatch.ts, storage.modifier.async.js, storage.modifier.async.ts | #ff006e | italic |
| keyword.control.import.js, keyword.control.import.ts, keyword.control.export.js, keyword.control.export.ts, keyword.control.from.js, keyword.control.from.ts, keyword.control.as.js, keyword.control.as.ts | #BB9AF7 | — |
| entity.name.function.js, entity.name.function.ts, entity.name.method.js, entity.name.method.ts | #06ffc8 | — |
| support.function.js, support.function.ts, support.function.dom.js, support.function.dom.ts | #06ffc8 | — |
| support.function.console.js, support.function.console.ts, support.class.console.js, support.class.console.ts | #ffd60a | bold |
| entity.name.type.class.js, entity.name.type.class.ts, support.class.js, support.class.ts | #ff9500 | — |
| entity.name.type.interface.ts, entity.name.type.interface.tsx | #ff9500 | — |
| entity.name.type.ts, entity.name.type.tsx, entity.name.type.alias.ts, entity.name.type.alias.tsx | #ff9500 | — |
| string.quoted.single.js, string.quoted.single.ts, string.quoted.double.js, string.quoted.double.ts | #00d084 | — |
| string.template.js, string.template.ts | #00d084 | — |
| punctuation.definition.template-expression.begin.js, punctuation.definition.template-expression.begin.ts, punctuation.definition.template-expression.end.js, punctuation.definition.template-expression.end.ts | #ff006e | — |
| meta.template.expression.js, meta.template.expression.ts | #c0caf5 | — |
| variable.other.readwrite.js, variable.other.readwrite.ts, variable.other.object.js, variable.other.object.ts | #c0caf5 | — |
| variable.other.constant.js, variable.other.constant.ts, constant.numeric.js, constant.numeric.ts, constant.numeric.decimal.js, constant.numeric.decimal.ts, constant.numeric.hex.js, constant.numeric.hex.ts | #ffba08 | — |
| variable.parameter.js, variable.parameter.ts | #ffd60a | italic |
| variable.language.this.js, variable.language.this.ts, variable.language.super.js, variable.language.super.ts, variable.language.arguments.js, variable.language.arguments.ts | #d00000 | italic |
| constant.language.boolean.true.js, constant.language.boolean.true.ts, constant.language.boolean.false.js, constant.language.boolean.false.ts, constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, constant.language.nan.js, constant.language.nan.ts, constant.language.infinity.js, constant.language.infinity.ts | #ffba08 | — |
| variable.other.property.js, variable.other.property.ts, meta.object-literal.key.js, meta.object-literal.key.ts | #ff9500 | — |
| support.variable.js, support.variable.ts, support.variable.dom.js, support.variable.dom.ts, support.variable.property.js, support.variable.property.ts | #ff9500 | — |
| keyword.operator.arithmetic.js, keyword.operator.arithmetic.ts, keyword.operator.comparison.js, keyword.operator.comparison.ts, keyword.operator.logical.js, keyword.operator.logical.ts, keyword.operator.assignment.js, keyword.operator.assignment.ts, keyword.operator.assignment.compound.js, keyword.operator.assignment.compound.ts, keyword.operator.bitwise.js, keyword.operator.bitwise.ts, keyword.operator.ternary.js, keyword.operator.ternary.ts, keyword.operator.spread.js, keyword.operator.spread.ts | #06ffc8 | — |
| meta.type.annotation.ts, meta.type.annotation.tsx, support.type.primitive.ts, support.type.primitive.tsx, keyword.operator.type.annotation.ts, keyword.operator.type.annotation.tsx | #06ffc8 | — |
| keyword.operator.optional.ts, keyword.operator.optional.tsx, keyword.operator.nullish-coalescing.ts, keyword.operator.nullish-coalescing.tsx | #06ffc8 | — |
| string.regexp.js, string.regexp.ts | #BB9AF7 | — |
| entity.name.tag.js, entity.name.tag.jsx, entity.name.tag.tsx, support.class.component.js, support.class.component.tsx | #fb8500 | — |
| entity.other.attribute-name.js, entity.other.attribute-name.jsx, entity.other.attribute-name.tsx | #ffd60a | italic |
| meta.decorator.js, meta.decorator.ts, entity.name.function.decorator.js, entity.name.function.decorator.ts, punctuation.decorator.js, punctuation.decorator.ts | #ff006e | — |
| punctuation.separator.comma.js, punctuation.separator.comma.ts, punctuation.terminator.statement.js, punctuation.terminator.statement.ts, punctuation.accessor.js, punctuation.accessor.ts, punctuation.accessor.optional.js, punctuation.accessor.optional.ts | #a9b1d6 | — |
| meta.brace.round.js, meta.brace.round.ts, meta.brace.square.js, meta.brace.square.ts, punctuation.definition.block.js, punctuation.definition.block.ts, punctuation.definition.parameters.begin.js, punctuation.definition.parameters.begin.ts, punctuation.definition.parameters.end.js, punctuation.definition.parameters.end.ts | #a9b1d6 | — |
| comment.line.double-slash.java, comment.block.java | #8b7355 | italic |
| comment.block.javadoc.java, keyword.other.documentation.javadoc.java | #8b7355 | italic |
| storage.modifier.java, keyword.control.new.java | #ff006e | — |
| keyword.control.java, keyword.control.throw.java, keyword.control.try.java, keyword.control.catch.java, keyword.control.finally.java | #ff006e | italic |
| keyword.operator.instanceof.java, keyword.control.ternary.java | #ff006e | — |
| keyword.module.java | #BB9AF7 | — |
| storage.type.primitive.java | #06ffc8 | — |
| storage.type.java, entity.name.type.class.java, entity.name.type.enum.java, entity.name.type.record.java | #ff9500 | — |
| entity.other.inherited-class.java | #ff9500 | italic |
| storage.type.object.array.java | #ff9500 | — |
| entity.name.function.java | #06ffc8 | — |
| storage.type.function.arrow.java | #ff006e | bold |
| variable.other.object.java, variable.other.object.property.java | #c0caf5 | — |
| variable.parameter.java | #ffd60a | italic |
| variable.language.this.java | #d00000 | italic |
| constant.language.java | #ffba08 | — |
| constant.numeric.decimal.java, constant.numeric.hex.java, constant.numeric.binary.java, constant.numeric.octal.java | #ffba08 | — |
| constant.other.enum.java | #ffba08 | — |
| string.quoted.double.java, string.quoted.single.java, string.quoted.triple.java | #00d084 | — |
| constant.character.escape.java | #ff006e | — |
| punctuation.definition.annotation.java, storage.type.annotation.java | #BB9AF7 | — |
| keyword.operator.arithmetic.java | #FF69B4 | — |
| keyword.operator.comparison.java | #FF69B4 | — |
| keyword.operator.assignment.java | #FF69B4 | — |
| keyword.operator.logical.java | #ff006e | — |
| keyword.operator.bitwise.java | #FF69B4 | — |
| punctuation.separator.delimiter.java, punctuation.terminator.java, punctuation.bracket.round.java, punctuation.bracket.square.java, punctuation.bracket.curly.java | #a9b1d6 | — |
| storage.type.generic.java, punctuation.bracket.angle.java | #ff9500 | — |
| keyword.other.package.java, keyword.other.import.java | #BB9AF7 | — |
| comment.line.number-sign.elixir, comment.block.elixir | #8b7355 | italic |
| keyword.control.module.elixir, keyword.control.elixir | #ff006e | — |
| keyword.other.special-method.elixir | #BB9AF7 | — |
| entity.name.function.elixir | #06ffc8 | — |
| entity.name.function.call.local.elixir, entity.name.function.call.dot.elixir | #06ffc8 | — |
| entity.name.function.call.capture.elixir | #06ffc8 | italic |
| entity.name.function.typespec.elixir | #BB9AF7 | — |
| entity.name.type.module.elixir, entity.name.class.elixir | #ff9500 | — |
| variable.other.readwrite.elixir | #c0caf5 | — |
| variable.other.constant.elixir | #ffd60a | — |
| variable.language.elixir | #ffba08 | italic |
| constant.language.elixir | #ffba08 | — |
| constant.language.symbol.elixir | #06ffc8 | — |
| constant.numeric.elixir | #ffba08 | — |
| string.quoted.single.elixir, string.quoted.double.elixir | #00d084 | — |
| string.quoted.double.heredoc.elixir | #00d084 | — |
| string.regexp.interpolated.elixir | #06ffc8 | — |
| sigil.elixir, string.quoted.other.literal.elixir | #00d084 | — |
| source.elixir.embedded.source, punctuation.section.embedded.elixir | #ff006e | — |
| keyword.operator.arithmetic.elixir | #FF69B4 | — |
| keyword.operator.comparison.elixir | #FF69B4 | — |
| keyword.operator.logical.elixir | #ff006e | — |
| keyword.operator.bitwise.elixir | #FF69B4 | — |
| keyword.operator.other.elixir | #ff006e | bold |
| punctuation.section.scope.elixir, punctuation.section.array.elixir, punctuation.section.function.elixir, punctuation.separator.method.elixir | #a9b1d6 | — |
| variable.parameter.elixir | #ffd60a | italic |
| comment.line.number-sign.python, comment.block.python, punctuation.definition.comment.python | #8b7355 | italic |
| string.quoted.docstring.multi.python, string.quoted.docstring.single.python | #8b7355 | italic |
| keyword.control.function.python, keyword.control.class.python, storage.type.function.python, storage.type.class.python | #ff006e | — |
| keyword.control.flow.python, keyword.control.loop.python, keyword.control.return.python | #ff006e | italic |
| keyword.control.exception.python | #BB9AF7 | italic |
| keyword.control.import.python, keyword.control.import.from.python | #BB9AF7 | — |
| entity.name.function.python, meta.function.python | #06ffc8 | — |
| entity.name.type.class.python, entity.other.inherited-class.python | #ff9500 | — |
| support.function.builtin.python | #06ffc8 | — |
| support.function.magic.python | #BB9AF7 | italic |
| variable.parameter.python, variable.parameter.function.language.python | #ffd60a | italic |
| variable.language.special.self.python, variable.language.special.cls.python, variable.parameter.function.language.special.self.python, variable.parameter.function.language.special.cls.python | #d00000 | italic |
| constant.language.python | #ffba08 | — |
| string.quoted.single.python, string.quoted.double.python | #00d084 | — |
| string.quoted.single.format.python, string.quoted.double.format.python, meta.fstring.python | #00d084 | — |
| punctuation.definition.interpolation.begin.python, punctuation.definition.interpolation.end.python | #ff006e | — |
| meta.embedded.expression.python, meta.embedded.python | #c0caf5 | — |
| constant.character.format.python, constant.character.format.placeholder.python | #BB9AF7 | — |
| string.quoted.single.raw.python, string.quoted.double.raw.python | #00d084 | — |
| constant.character.escape.python | #ff006e | — |
| constant.numeric.integer.decimal.python, constant.numeric.integer.binary.python, constant.numeric.integer.octal.python, constant.numeric.integer.hexadecimal.python, constant.numeric.float.python, constant.numeric.complex.python | #ffba08 | — |
| keyword.operator.arithmetic.python, keyword.operator.comparison.python, keyword.operator.assignment.python, keyword.operator.bitwise.python | #06ffc8 | — |
| keyword.operator.logical.python | #ff006e | — |
| keyword.operator.assignment.python | #06ffc8 | — |
| support.type.python | #ff9500 | — |
| meta.function.parameters.annotation.python, meta.function.return-type.python, meta.type-hint.python | #06ffc8 | — |
| punctuation.separator.annotation.python, punctuation.separator.annotation.result.python | #06ffc8 | — |
| punctuation.definition.decorator.python | #BB9AF7 | — |
| entity.name.function.decorator.python, meta.function.decorator.python | #BB9AF7 | italic |
| punctuation.definition.list.begin.python, punctuation.definition.list.end.python, punctuation.definition.dict.begin.python, punctuation.definition.dict.end.python, punctuation.definition.tuple.begin.python, punctuation.definition.tuple.end.python | #a9b1d6 | — |
| punctuation.separator.dict.python | #a9b1d6 | — |
| punctuation.separator.colon.python, punctuation.separator.period.python, punctuation.separator.element.python, punctuation.separator.arguments.python | #a9b1d6 | — |
| punctuation.definition.arguments.begin.python, punctuation.definition.arguments.end.python | #a9b1d6 | — |
| storage.type.function.lambda.python | #ff006e | italic |
| storage.modifier.python | #ff006e | — |
| variable.language.python | #ffba08 | — |
| meta.function-call.python, meta.function-call.generic.python | #06ffc8 | — |
| variable.other.object.python, variable.other.object.property.python | #ff9500 | — |
| comment, punctuation.definition.comment | #828bb8 | italic |
| variable, string constant.other.placeholder | #c0caf5 | — |
| constant.other.color | #c0caf5 | — |
| invalid, invalid.illegal | #f7768e | — |
| invalid.illegal | #f7768e | — |
| carriage-return | #3B3B52 | italic underline |
| keyword, storage.type, storage.modifier | #ff006e | — |
| keyword.control, constant.other.color, punctuation, meta.tag, punctuation.definition.tag, punctuation.separator.inheritance.php, punctuation.definition.tag.html, punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html, punctuation.section.embedded, keyword.other.template, keyword.other.substitution | #FF69B4 | — |
| entity.name.tag, meta.tag.sgml, markup.deleted.git_gutter | #FF69B4 | — |
| entity.name.function, meta.function-call, variable.function, support.function, keyword.other.special-method | #06ffc8 | — |
| variable.function, variable.annotation, meta.function-call.generic, support.function.go | #06ffc8 | — |
| meta.block variable.other | #c0caf5 | — |
| support.other.variable, string.other.link | #FF69B4 | — |
| constant.numeric, constant.language, support.constant, constant.character, constant.escape, variable.parameter, keyword.other.unit, keyword.other | #ff9500 | — |
| constant.other.symbol, constant.other.key | #00d084 | — |
| string, constant.other.symbol, constant.other.key, entity.other.inherited-class, markup.heading, markup.inserted.git_gutter, meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js | #00d084 | — |
| entity.name, support.type, support.class, support.other.namespace.use.php, meta.use.php, support.other.namespace.php, markup.changed.git_gutter, support.type.sys-types | #ffd60a | — |
| support.type | #FF69B4 | — |
| source.css support.type.property-name, source.sass support.type.property-name, source.scss support.type.property-name, source.less support.type.property-name, source.stylus support.type.property-name, source.postcss support.type.property-name | #FF69B4 | — |
| support.type.vendored.property-name, support.type.property-name | #06ffc8 | — |
| source.css support.type, source.sass support.type, source.scss support.type, source.less support.type, source.stylus support.type | #828bb8 | — |
| entity.other.attribute-name.pseudo-class | #ff006e | — |
| entity.name.module.js, variable.import.parameter.js, variable.other.class.js | #FF69B4 | — |
| variable.language | #FF69B4 | italic |
| entity.name.method.js | #06ffc8 | italic |
| meta.class-method.js entity.name.function.js, variable.function.constructor | #06ffc8 | — |
| entity.other.attribute-name | #ff006e | — |
| text.html.basic entity.other.attribute-name.html, text.html.basic entity.other.attribute-name | #ffd60a | italic |
| entity.other.attribute-name.class | #ffd60a | — |
| source.sass keyword.control, entity.other.attribute-name.id | #06ffc8 | — |
| markup.inserted | #00d084 | — |
| markup.deleted | #f7768e | — |
| markup.changed | #ff006e | — |
| string.regexp | #FF69B4 | — |
| constant.character.escape | #FF69B4 | — |
| *url*, *link*, *uri* | — | underline |
| tag.decorator.js entity.name.tag.js, tag.decorator.js punctuation.definition.tag.js | #06ffc8 | italic |
| source.js constant.other.object.key.js string.unquoted.label.js | #FF69B4 | italic |
| source.json meta.structure.dictionary.json support.type.property-name.json | #ff006e | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #ffd60a | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #ff9500 | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #FF69B4 | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #06ffc8 | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #06ffc8 | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #00d084 | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #ff006e | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #00d084 | — |
| text.html.markdown, punctuation.definition.list_item.markdown | #c0caf5 | — |
| text.html.markdown markup.inline.raw.markdown | #ff006e | — |
| text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown | #828bb8 | — |
| markdown.heading, markup.heading | markup.heading entity.name, markup.heading.markdown punctuation.definition.heading.markdown | #00d084 | — |
| markup.italic | #FF69B4 | italic |
| markup.bold, markup.bold string | #FF69B4 | bold |
| markup.bold markup.italic, markup.italic markup.bold, markup.quote markup.bold, markup.bold markup.italic string, markup.italic markup.bold string, markup.quote markup.bold string | #FF69B4 | bold |
| markup.underline | #ff9500 | underline |
| markup.quote punctuation.definition.blockquote.markdown | #828bb8 | — |
| markup.quote | — | italic |
| string.other.link.title.markdown | #06ffc8 | — |
| string.other.link.description.title.markdown | #ff006e | — |
| constant.other.reference.link.markdown | #ffd60a | — |
| markup.raw.block | #ff006e | — |
| markup.raw.block.fenced.markdown | #565f89 | — |
| punctuation.definition.fenced.markdown | #565f89 | — |
| markup.raw.block.fenced.markdown, variable.language.fenced.markdown, punctuation.section.class.end | #c0caf5 | — |
| variable.language.fenced.markdown | #828bb8 | — |
| meta.separator | #828bb8 | bold |
| markup.table | #c0caf5 | — |
| constant.other.symbol.ruby, constant.other.symbol.hashkey.ruby | #00d084 | — |
| punctuation.section.embedded.ruby, source.ruby.embedded | #ff006e | — |
| keyword.control.module.ruby, keyword.control.class.ruby, keyword.control.def.ruby | #ff006e | bold |
| keyword.control.end.ruby, keyword.control.end | #ff006e | bold |
| keyword.control.conditional.ruby, keyword.control.conditional.if.ruby, keyword.control.conditional.unless.ruby, keyword.control.conditional.case.ruby, keyword.control.conditional.when.ruby, keyword.control.conditional.else.ruby, keyword.control.conditional.elsif.ruby, keyword.control.loop.ruby, keyword.control.loop.while.ruby, keyword.control.loop.until.ruby, keyword.control.loop.for.ruby, keyword.control.iteration.ruby, keyword.control.flow.ruby, keyword.control.flow.break.ruby, keyword.control.flow.next.ruby, keyword.control.flow.return.ruby, keyword.control.flow.redo.ruby, keyword.control.flow.retry.ruby | #ff006e | — |
| keyword.control.start-block.ruby, keyword.control.do.ruby, keyword.control.block.ruby | #ff006e | — |
| keyword.control.exception.ruby, keyword.control.exception.begin.ruby, keyword.control.exception.rescue.ruby, keyword.control.exception.ensure.ruby, keyword.control.exception.raise.ruby, keyword.control.exception.retry.ruby | #BB9AF7 | — |
| keyword.other.special-method.ruby, keyword.control.access.ruby, keyword.other.special-method.ruby.private, keyword.other.special-method.ruby.protected, keyword.other.special-method.ruby.public | #BB9AF7 | — |
| constant.language.boolean.ruby, constant.language.nil.ruby | #ff9500 | — |
| variable.other.constant.ruby, constant.other.symbol.ruby | #ffd60a | — |
| variable.other.readwrite.instance.ruby, punctuation.definition.variable.ruby | #FF69B4 | — |
| variable.other.readwrite.class.ruby | #ff79c6 | — |
| variable.other.readwrite.global.ruby, punctuation.definition.variable.ruby | #ff9500 | bold |
| entity.name.function.ruby, meta.function.method.ruby | #06ffc8 | — |
| string.regexp.ruby, punctuation.definition.string.begin.ruby, punctuation.definition.string.end.ruby | #06ffc8 | — |
| keyword.operator.assignment.ruby, keyword.operator.comparison.ruby, keyword.operator.logical.ruby, punctuation.separator.method.ruby, punctuation.separator.variable.ruby, punctuation.separator.key-value.ruby | #FF69B4 | — |
| meta.function-call.ruby, meta.method-call.ruby, support.function.kernel.ruby | #06ffc8 | — |
| meta.function.parameters.ruby, variable.parameter.function.ruby, meta.function.optional-parameters.ruby | #ff9500 | — |
| variable.language.self.ruby | #FF69B4 | italic |
| variable.language.super.ruby | #FF69B4 | italic |
| keyword.other.special-method.ruby.require, keyword.other.special-method.ruby.load, keyword.other.special-method.ruby.require_relative | #ff006e | — |
| keyword.other.special-method.ruby.attr_reader, keyword.other.special-method.ruby.attr_writer, keyword.other.special-method.ruby.attr_accessor | #BB9AF7 | — |
| keyword.control.yield.ruby | #ff006e | — |
| keyword.control.lambda.ruby, punctuation.definition.lambda.ruby | #ff006e | — |
| punctuation.separator.key-value.ruby | #FF69B4 | — |
| meta.function.method.with-arguments.ruby, meta.function.method.without-arguments.ruby | — | — |
| variable.other.block.ruby, punctuation.separator.variable.ruby | #ff9500 | — |
| string.quoted.symbol.ruby | #00d084 | — |
| meta.embedded.line.ruby, punctuation.section.embedded.begin.ruby, punctuation.section.embedded.end.ruby | #FF69B4 | — |
| entity.name.type.module.ruby, support.class.ruby, entity.name.type.class.ruby | #ffd60a | — |
| string.unquoted.heredoc.ruby, punctuation.definition.string.begin.ruby, punctuation.definition.string.end.ruby | #00d084 | — |
| string.template.js, string.template.ts, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end | #00d084 | — |
| meta.embedded.line.js, meta.embedded.line.ts | #FF69B4 | — |
| storage.type.function.arrow.js, storage.type.function.arrow.ts | #ff006e | — |
| keyword.control.flow.js, keyword.control.flow.ts, storage.modifier.async.js, storage.modifier.async.ts | #BB9AF7 | italic |
| keyword.control.import.js, keyword.control.export.js, keyword.control.import.ts, keyword.control.export.ts, keyword.control.from.js, keyword.control.from.ts | #ff006e | — |
| meta.object-literal.key.js, meta.object-literal.key.ts | #FF69B4 | — |
| entity.name.tag.js, entity.name.tag.tsx, support.class.component.js, support.class.component.tsx | #FF69B4 | — |
| entity.other.attribute-name.js, entity.other.attribute-name.tsx | #ffd60a | italic |
| variable.object.property.js, variable.object.property.ts | #c0caf5 | — |
| support.class.console.js, support.class.console.ts | #06ffc8 | — |
| support.class.promise.js, support.class.promise.ts | #ff79c6 | — |
| entity.name.type.ts, entity.name.type.tsx, support.type.primitive.ts, support.type.primitive.tsx | #FF69B4 | — |
| entity.name.type.interface.ts, entity.name.type.interface.tsx | #ffd60a | — |
| meta.type.annotation.ts, meta.type.annotation.tsx, keyword.operator.type.annotation.ts, keyword.operator.type.annotation.tsx | #ff006e | — |
export interface User {
id: string;
name: string;
role: "admin" | "member";
tags: string[];
}
/**
* Fetch user data by ID
* @param id
* @returns User object or null if ID is invalid
*/
export async function fetchUser(id: string): Promise<User | null> {
if (!id) {
return null;
}
const response = await fetch(`/api/users/${id}`, {
method: "GET",
headers: { Accept: "application/json" },
});
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
return (await response.json()) as User;
}
function greet(user: User): string {
// Simple greeting function that uses the user's name
return `Hello, ${user.name}!`;
}