Synesthetic
Publisher: DrQubitThemes in package: 1
Dark color theme with syntax and semantic highlighting for C#, C++, and Python
Dark color theme with syntax and semantic highlighting for C#, C++, and Python
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 |
|---|---|---|
| punctuation, keyword.operator | #C0C0C0 | — |
| comment, comment punctuation | #404040 | italic |
| keyword.control | #C0C000 | — |
| keyword.other | #808000 | — |
| constant.numeric.colors | #800040 | — |
| variable.other.readwrite.cs | #00D0D0 | — |
| string.template | #FFA0A0 | — |
| string.quoted.single | #fbd98b | — |
| punctuation.definition.char.begin, punctuation.definition.char.end | #ffe8b2 | — |
| string.quoted.double | #fb8b8b | — |
| punctuation.definition.string.begin, punctuation.definition.string.end | #ffb2b2 | — |
| constant.character.escape.cs, constant.character.escape.cpp | #804040 | — |
| punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end | #9C1717 | — |
| constant.language.json | #D0D000 | — |
| support.type.property-name | #00C0FF | — |
| punctuation.support.type.property-name.begin.json, punctuation.support.type.property-name.end.json | #60E0FF | — |
| string.quoted.double.json, string.quoted.double.xml | #00FF80 | — |
| punctuation.definition.string.begin.json, punctuation.definition.string.end.json, punctuation.definition.string.begin.xml, punctuation.definition.string.end.xml | #70FFD0 | — |
| punctuation.separator.dictionary.key-value.json | #FFE070 | — |
| entity.name.tag.localname.xml | #808000 | — |
| punctuation.definition.tag.xml | #D0D000 | — |
| entity.other.attribute-name.localname.xml | #2e88fe | — |
| text.xml | #3bc2e4 | — |
| entity.name.function.title.source.wsd | #FFFFFF | — |
| support.variable.source.wsd | #6da4be | — |
| string.quoted.double.activity.while.source.wsd | #dec275 | — |
| string.quoted.double.activity.if.source.wsd | #c2de75 | — |
| support.variable.definitions.source.wsd | #37c5e1 | — |
| string.quoted.double.skinparam.value.source.wsd | #ea9917 | — |
| source.t4 | #ead99a | — |
| constant.t4 | #00D000 | — |
| entity.other.document.begin.yaml | #E0E0E0 | — |
| entity.name.tag.yaml | #00A080 | — |
| storage.type.tag-handle.yaml, string.unquoted.plain.in.yaml, variable.other.alias.yaml | #C040A0 | — |
| string.unquoted.plain.out.yaml | #0080A0 | — |
| constant.numeric.integer.yaml, constant.numeric.float.yaml | #40D040 | — |
| constant.language.boolean.yaml | #D080D0 | — |
| entity.name.type.anchor.yaml | #B0B000 | — |
| meta.preprocessor.cpp, entity.name.function.preprocessor.cpp | #008040 | — |
| keyword.control.directive.include.cpp, keyword.control.import.include.cpp, keyword.other.include.cpp | #404070 | — |
| string.quoted.double.include.cpp, string.quoted.other.lt-gt.include.cpp, meta.preprocessor.include.cpp string.quoted.double.cpp, meta.preprocessor.include.cpp string.quoted.other.lt-gt.cpp, meta.preprocessor.include.cpp punctuation.definition.string.begin.cpp, meta.preprocessor.include.cpp punctuation.definition.string.end.cpp | #004080 | — |
| punctuation.definition.directive.cpp, punctuation.separator.hash.cpp | #008000 | — |
| keyword.control.cpp, keyword.control.conditional.cpp, keyword.control.conditional.if.cpp, keyword.control.conditional.else.cpp, keyword.control.flow.cpp, keyword.control.flow.return.cpp, keyword.control.flow.break.cpp, keyword.control.flow.continue.cpp, keyword.control.flow.goto.cpp, keyword.control.loop.cpp, keyword.control.loop.for.cpp, keyword.control.loop.while.cpp, keyword.control.switch.cpp, keyword.control.case.cpp, keyword.control.default.cpp, keyword.control.exception.cpp, keyword.control.exception.try.cpp, keyword.control.exception.catch.cpp, keyword.control.exception.throw.cpp | #D0D000 | — |
| keyword.operator.new.cpp, keyword.operator.delete.cpp, keyword.operator.sizeof.cpp, keyword.operator.alignof.cpp, keyword.operator.decltype.cpp, keyword.operator.typeid.cpp, keyword.operator.cast.static_cast.cpp, keyword.operator.cast.dynamic_cast.cpp, keyword.operator.cast.const_cast.cpp, keyword.operator.cast.reinterpret_cast.cpp | #B0B000 | — |
| keyword.other.namespace.cpp, keyword.other.class.cpp, keyword.other.struct.cpp, keyword.other.union.cpp, keyword.other.enum.cpp, keyword.other.template.cpp, keyword.other.typedef.cpp, storage.type.class.cpp, storage.type.struct.cpp, storage.type.union.cpp, storage.type.enum.cpp, storage.type.typedef.cpp, storage.type.enum.enum-key.class.cpp, storage.type.template.cpp | #808000 | — |
| storage.modifier.cpp, storage.modifier.static.cpp, storage.modifier.virtual.cpp, storage.modifier.explicit.cpp, storage.modifier.inline.cpp, storage.modifier.friend.cpp, storage.modifier.volatile.cpp, storage.modifier.mutable.cpp, storage.modifier.specifier.cpp, storage.modifier.specifier.static.cpp, storage.modifier.specifier.virtual.cpp, storage.modifier.specifier.explicit.cpp, storage.modifier.specifier.inline.cpp, storage.modifier.specifier.friend.cpp, storage.modifier.specifier.volatile.cpp, storage.modifier.specifier.mutable.cpp | #707000 | — |
| storage.modifier.specifier.functional.pre-parameters.constexpr.cpp, storage.modifier.specifier.functional.post-parameters.const.cpp, storage.modifier.specifier.functional.post-parameters.noexcept.cpp, storage.modifier.specifier.functional.post-parameters.noreturn.cpp, storage.modifier.specifier.functional.post-parameters.override.cpp, storage.modifier.specifier.functional.post-parameters.final.cpp, storage.modifier.specifier.functional.post-parameters.pure.cpp, storage.modifier.specifier.functional.post-parameters.default.cpp, storage.modifier.specifier.functional.post-parameters.delete.cpp, storage.modifier.specifier.functional.post-parameters.consteval.cpp, storage.modifier.specifier.functional.post-parameters.constinit.cpp, storage.type.modifier.access.public.cpp, storage.type.modifier.access.private.cpp, storage.type.modifier.access.protected.cpp, storage.type.modifier.access.control.public.cpp, storage.type.modifier.access.control.private.cpp, storage.type.modifier.access.control.protected.cpp, storage.modifier.specifier.const.cpp, storage.type.template.argument.typename.cpp | #606000 | — |
| constant.language.null.cpp, constant.language.nullptr.cpp | #800080 | bold |
| variable.language.this.cpp | #40E0FF | italic |
| constant.language.boolean.cpp, constant.language.boolean.true.cpp, constant.language.boolean.false.cpp, constant.language.false.cpp, constant.language.true.cpp | #D080D0 | — |
| storage.type.cpp, storage.type.primitive.cpp, storage.type.built-in.cpp, storage.type.built-in.primitive.cpp, support.type.cpp | #608000 | — |
| keyword.other.using.cpp | #404070 | — |
| entity.name.namespace.cpp | #004080 | — |
| entity.name.type.class.cpp, entity.name.type.struct.cpp, entity.name.type.enum.cpp, entity.name.type.typedef.cpp, entity.name.type.cpp | #008080 | underline |
| entity.name.function.cpp, entity.name.function.method.cpp, entity.name.function.method.static.cpp, support.function.cpp, entity.name.function.constructor.cpp, entity.name.function.definition.cpp, entity.name.function.member.cpp | #8070D0 | — |
| constant.numeric.cpp, constant.numeric.integer.cpp, constant.numeric.decimal.cpp, constant.numeric.float.cpp, constant.numeric.hexadecimal.cpp, constant.numeric.octal.cpp, constant.numeric.binary.cpp | #00D000 | — |
| variable.other.field.cpp, variable.other.field.static.cpp | #00C0FF | — |
| variable.parameter.cpp, variable.other.local.cpp, variable.other.cpp, variable.camel-case.cpp, variable.other.object.cpp, variable.other.object.property.cpp | #80E0E0 | — |
| variable.other.enummember.cpp | #800080 | — |
| variable.language.self.python, variable.language.cls.python | #40E0FF | italic |
| keyword.control.python, keyword.control.flow.python, keyword.control.conditional.python, keyword.control.loop.python, keyword.control.trycatch.python, keyword.control.assert.python, keyword.control.pass.python, keyword.control.break.python, keyword.control.continue.python, keyword.control.return.python, keyword.control.yield.python, keyword.control.with.python, keyword.control.raise.python, keyword.control.except.python, keyword.control.finally.python, keyword.operator.logical.python | #D0D000 | — |
| keyword.control.import.python, keyword.control.import.from.python, keyword.other.import.python, keyword.other.from.python, keyword.control.flow.raise.python | #404070 | — |
| keyword.control.async.python, keyword.control.await.python, keyword.control.global.python, keyword.control.nonlocal.python, keyword.control.decorator.python | #B0B000 | — |
| keyword.control.lambda.python | #808000 | — |
| storage.type.class.python, storage.type.function.python, storage.type.python | #606000 | — |
| keyword.other.type.python | #608000 | — |
| entity.name.type.class.python, entity.name.type.class.annotation.python, support.type.python, support.type.builtin.python, support.type.exception.python | #008080 | underline |
| entity.name.function.python, support.function.builtin.python, meta.function-call.python, support.function.magic.python | #8070D0 | — |
| entity.name.function.decorator.python, meta.decorator.python | #FF8000 | — |
| variable.parameter.function.python, variable.parameter.python | #80E0E0 | italic |
| variable.language.special.self.python | #40E0FF | italic |
| variable.other.readwrite.python, variable.other.python, variable.other.assignment.python, variable.other.readwrite.alias.python | #00D0D0 | — |
| variable.other.field.python, variable.other.object.property.python, support.variable.python, meta.member.access.python | #00B8E8 | — |
| constant.numeric.python, constant.numeric.decimal.python, constant.numeric.dec.python, constant.numeric.float.python, constant.numeric.hex.python, constant.numeric.binary.python, constant.numeric.octal.python | #00D000 | — |
| constant.other.caps.python, constant.other.placeholder.python | #800040 | — |
| constant.language.boolean.python, constant.language.true.python, constant.language.false.python, constant.language.python | #D080D0 | — |
| constant.language.none.python | #800080 | bold |
| entity.name.namespace.module.python, support.module.python | #004080 | — |
| keyword.operator.comparison.python, keyword.operator.arithmetic.python, keyword.operator.assignment.python, keyword.operator.logical.python, keyword.operator.memorization.python, keyword.operator.regex.python, keyword.operator.cast.python, keyword.operator.or.python, keyword.operator.and.python, keyword.operator.not.python | #C0C0C0 | — |
| constant.character.escape.python | #804040 | — |
| string.interpolated.python, meta.interpolation.python, string.quoted.docstring.multi.python | #FFA0A0 | — |
| punctuation.definition.interpolation.begin.python, punctuation.definition.interpolation.end.python | #9C1717 | — |
| meta.preprocessor.cs | #006000 | — |
| punctuation.separator.hash.cs | #008000 | — |
| entity.name.variable.preprocessor.symbol.cs | #008040 | — |
| keyword.other.namespace.cs, keyword.other.class.cs, keyword.other.interface.cs, keyword.other.struct.cs, keyword.other.enum.cs, keyword.other.where.cs, keyword.other.event.cs, keyword.other.delegate.cs | #808000 | — |
| keyword.other.new.cs, keyword.other.nameof.cs, keyword.other.typeof.cs | #B0B000 | — |
| keyword.other.lock.cs | #c23917 | — |
| constant.language.null.cs | #800080 | bold |
| keyword.other.this.cs, keyword.other.base.cs | #40E0FF | italic |
| keyword.other.true.cs, constant.language.boolean.true.cs, keyword.other.false.cs, constant.language.boolean.false.cs | #D080D0 | — |
| keyword.other.get.cs, keyword.other.set.cs, keyword.other.init.cs | #0080C0 | — |
| punctuation.definition.typeparameters.begin.cs, punctuation.definition.typeparameters.end.cs | #9edfd2 | — |
| constant.numeric.decimal.cs, constant.numeric.other.suffix.cs | #00D000 | — |
| keyword.type.cs, keyword.other.var.cs | #608000 | — |
| keyword.other.using.cs | #404070 | — |
| entity.name.type.namespace.cs | #004080 | — |
| regions.namespace.declaration.cs.extensions | #606000 | — |
| entity.name.type.cs, storage.type.cs, variable.other.object.cs | #008080 | — |
| entity.name.type.delegate.cs | #008080 | italic |
| keyword.control.conditional.if.cs, keyword.control.conditional.else.cs, keyword.control.flow.return.cs, keyword.control.flow.throw.cs, keyword.control.switch.cs, keyword.control.case.cs, keyword.control.while.cs, keyword.control.flow.break.cs, keyword.control.default.cs, keyword.control.loop.foreach.cs, keyword.control.loop.in.cs | #D0D000 | — |
| entity.name.type.struct.cs, entity.name.type.class.cs, entity.name.type.interface.cs, entity.name.type.enum.cs, entity.name.type.alias.cs | #008080 | underline |
| entity.name.variable.enum-member.cs | #800080 | — |
| entity.name.variable.field.cs | #00C0FF | — |
| entity.name.variable.event.cs | #e59928 | — |
| entity.name.variable.parameter.cs | #80E0E0 | italic |
| entity.name.variable.local.cs, entity.name.variable.range-variable.cs | #80E0E0 | — |
| entity.name.variable.property.cs, variable.other.object.property.cs | #00C0FF | — |
| entity.name.function.cs | #8070D0 | — |
| storage.modifier.cs, storage.modifier.specifier.functional.pre-parameters.constexpr.cpp | #606000 | — |
| keyword.query, entity.name.type.type-parameter.cs | #408080 | — |
| entity.name.function.cs.unity | #FF4000 | — |
| meta.type.cs.unity | #FF8000 | — |
| meta.type.cs.unity.editor | #FFC040 | — |
| punctuation.definition.list.begin.markdown | #FFC040 | — |
| punctuation.definition.bold.markdown | #FF6060 | — |
| punctuation.definition.heading.markdown | #30A060 | — |
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}!`;
}