DarkCF Theme
Publisher: geraneThemes in package: 1
DarkCF Theme ported from the DarkCF TextMate Theme
DarkCF Theme ported from the DarkCF TextMate Theme
Full workbench mockup using this variant's colors and tokenColors.
Loading...
TextMate scopes and font styles (syntax highlighting rules).
| scope | foreground | fontStyle |
|---|---|---|
| — | #9BA3A7 | — |
| comment.block.cfml, comment.line.cfml, punctuation.definition.comment.cfml | #000000 | |
| meta.tag.block.cf.script.cfml comment | #000000 | |
| comment.block.xml, comment.line.html, comment.block.html, comment.line.xml | #575F6D | |
| constant.character.entity.html | bold | |
| entity.name.tag.cf, punctuation.definition.tag, meta.tag.sgml | #ABB2BF | |
| entity.other.attribute-name.cfml, meta.tag.operator | #EB4949 | |
| entity.name.tag | #E06C6E | |
| entity.other.attribute-name | #CB9361 | |
| constant.numeric, constant.language | #ff8000 | |
| keyword.operator | #FFFFFF | |
| keyword.other.DML, support.function.aggregate.sql, keyword.other.alias.sql, keyword.other.order.sql | #C775DF | bold |
| meta.scope.between-output-tags.cfml variable, meta.scope.between-output-tags.cfml constant.other, meta.scope.between-output-tags.cfml punctuation.definition.bracket-begin, meta.scope.between-output-tags.cfml punctuation.definition.bracket-end, meta.scope.between-output-tags.cfml source.cfscript.embedded constant, meta.scope.between-output-tags.cfml source.cfscript.embedded variable, meta.scope.between-output-tags.cfml source.cfscript.embedded punctuation.definition.bracket-begin, meta.scope.between-output-tags.cfml source.cfscript.embedded punctuation.definition.bracket-end, meta.scope.between-mail-tags.cfml variable, meta.scope.between-mail-tags.cfml constant.other, meta.scope.between-mail-tags.cfml punctuation.definition.bracket-begin, meta.scope.between-mail-tags.cfml punctuation.definition.bracket-end, meta.scope.between-mail-tags.cfml source.cfscript.embedded constant, meta.scope.between-mail-tags.cfml source.cfscript.embedded variable, meta.scope.between-mail-tags.cfml source.cfscript.embedded punctuation.definition.bracket-begin, meta.scope.between-mail-tags.cfml source.cfscript.embedded punctuation.definition.bracket-end | #97C475 | normal |
| meta.tag.block.cf.script variable | #D29B62 | |
| source.sql.embedded constant.other, source.sql.embedded variable.other, meta.tag.block.cf variable, meta.tag.inline.cf variable, meta.tag.block.cf constant, meta.tag.inline.cf constant | #D29B62 | normal |
| string.quoted.double.cfml support.function, string.quoted.single.cfml support.function, string.quoted.double.cfml variable, string.quoted.single.cfml variable, string.quoted.double.cfml constant, string.quoted.single.cfml constant, string.quoted.double.cfml punctuation.definition.hash, string.quoted.single.cfml punctuation.definition.hash, string.quoted.double.cfml meta.function-call.cfscript variable, string.quoted.single.cfml meta.function-call.cfscript variable | #51B6C3 | |
| string.quoted.double.cfscript support.function, string.quoted.single.cfscript support.function, string.quoted.double.cfscript variable, string.quoted.single.cfscript variable, string.quoted.double.cfscript punctuation.definition.hash, string.quoted.single.cfscript punctuation.definition.hash, string.quoted.double.cfscript meta.function-call.cfscript variable, string.quoted.single.cfscript meta.function-call.cfscript variable | #008080 | |
| meta.tag.inline.cf support.function, meta.tag.block.cf support.function, keyword.control, entity.name.tag.operator, meta.tag.block.cf entity.name.function-call.cfscript, meta.tag.block.cf meta.function-call.cfscript variable, meta.tag.block.cf meta.function-call.cfscript constant | #51B6C3 | normal |
| meta.scope.between-output-tags.cfml support.function, meta.scope.between-output-tags.cfml entity.name.function-call.cfscript, meta.scope.between-mail-tags.cfml support.function, meta.scope.between-mail-tags.cfml entity.name.function-call.cfscript, meta.scope.between-output-tags.cfml source.cfscript.embedded.html entity.name.function-call.cfscript, meta.scope.between-output-tags.cfml source.cfscript.embedded.html support.function, meta.scope.between-mail-tags.cfml source.cfscript.embedded.html entity.name.function-call.cfscript, meta.scope.between-mail-tags.cfml source.cfscript.embedded.html support.function | #51B6C3 | normal |
| meta.scope.between-output-tags.cfml punctuation.definition.hash.begin, meta.scope.between-output-tags.cfml punctuation.definition.hash.end, meta.scope.between-mail-tags.cfml punctuation.definition.hash.begin, meta.scope.between-mail-tags.cfml punctuation.definition.hash.end | #6FA846 | — |
| punctuation.definition.hash.begin.cfml, punctuation.definition.hash.end.cfml, meta.inline.hash.cfscript | — | |
| meta.scope.between-output-tags.cfml invalid.illegal.unescaped.hash, meta.scope.between-mail-tags.cfml invalid.illegal.unescaped.hash | #ffffff | italic underline |
| string.quoted.double.html, string.quoted.single.html, string.quoted.double.xml, string.quoted.single.xml | #97C475 | |
| string.quoted.double.cfml, string.quoted.single.cfml | #97C475 | |
| meta.scope.between-output-tags.cfml string.quoted.double.cfscript, meta.scope.between-output-tags.cfml string.quoted.single.cfscript, meta.scope.between-output-tags.cfml source.cfscript.embedded.html string.quoted.double.cfscript, meta.scope.between-output-tags.cfml source.cfscript.embedded.html string.quoted.single.cfscript, meta.scope.between-mail-tags.cfml string.quoted.double.cfscript, meta.scope.between-mail-tags.cfml string.quoted.single.cfscript, meta.scope.between-mail-tags.cfml source.cfscript.embedded.html string.quoted.double.cfscript, meta.scope.between-mail-tags.cfml source.cfscript.embedded.html string.quoted.single.cfscript, source.cfscript.embedded.cfml string.quoted.single.cfscript, source.cfscript.embedded.cfml string.quoted.double.cfscript | #008080 | |
| source.cfscript.cfc comment | #000000 | |
| storage.type.function | #339966 | bold |
| storage.modifier.var | #6699cd | bold |
| meta.class.component string.quoted.double.cfscript, meta.class.component string.quoted.single.cfscript | #008080 | |
| source.cfscript.cfc string.quoted.double.cfscript, source.cfscript.cfc string.quoted.single.cfscript | #008080 | |
| source.cfscript.cfc entity.name.function-call, source.cfscript.cfc support.function | #51B6C3 | bold |
| source.cfscript.cfc entity.name.function.cfscript, source.cfscript.cfc variable.parameter | #51B6C3 | |
| source.cfscript.cfc variable | #51B6C3 | bold |
| invalid.deprecated | #ff0000 | bold italic underline |
| punctuation.definition.comment.css, comment.block.css | #536371 | — |
| constant.numeric.css, constant.other.color.rgb-percentage.css, constant.other.color.rgb-value.css, entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.class.css | #0077FF | — |
| entity.name.tag.css, entity.name.tag.wildcard.css, meta.selector.css | #CC9B62 | — |
| meta.attribute-selector.css, entity.other.attribute-name.pseudo-class.ui-state.css, entity.other.attribute-name.pseudo-element.css, entity.other.attribute-name.id.css | #C775D4 | — |
| entity.other.attribute-name.attribute.css | #97C46E | — |
| keyword.control.at-rule.charset.css, keyword.control.at-rule.font-face.css, keyword.control.at-rule.import.css, keyword.control.at-rule.media.css | #97C46E | — |
| keyword.operator.arithmetic.css, keyword.operator.logic.media.css | #FFFFFF | — |
| keyword.other.important.css, keyword.other.unit.css | #BCD7EB | — |
| string.quoted.double.attribute-value.css, string.quoted.double.css, string.quoted.single.css, string.unquoted.attribute-value.css | #97C46E | italic |
| support.constant.color.w3c-standard-color-name.css, support.constant.font-name.css, support.constant.media.css, support.constant.property-value.css, meta.property-value.css, meta.property-list.css | #828998 | — |
| support.function.misc.css, support.function.url.css, variable.parameter.misc.css | #51B6C3 | — |
| support.type.property-name.css, support.type.property-name.media.css, meta.property-name.css | #ABAD9B | — |
| meta.at-rule.charset.css, meta.at-rule.font-face.css, meta.at-rule.import.css, meta.at-rule.media.css, punctuation.terminator.rule.css, punctuation.section.property-list.css, source.css | #C862AE | — |
| comment.block.documentation.js, comment.block.html.js, comment.block.js, comment.line.js, comment.line.double-slash.js, comment.block.js | #5C6362 | — |
| constant.character.escape.js, constant.language.boolean.false.js, constant.language.boolean.true.js, constant.language.null.js, constant.language.js | #D29B62 | |
| constant.numeric.js | #004080 | — |
| entity.name.function.js, entity.name.type.instance.js, entity.name.type.object.js.firebug | #51B6C3 | — |
| storage.type.js, variable.language.js, keyword.control.js, keyword.other.js, storage.modifier.js, storage.type.function.js | #C775DF | bold |
| string.quoted.double.js, string.quoted.single.js, string.regexp.js | #97C46E | — |
| punctuation.terminator.statement.js | #90A8DB | — |
| invalid.illegal.whitespace.markdown | #ffffff | italic underline |
| constant.character.escape.markdown, constant.other.reference.link.markdown, constant.character.escape.creole | #8200ff | — |
| markup.bold.markdown, markup.bold.creole | #268bd2 | bold |
| markup.bold.markdown markup.italic.markdown, markup.bold.creole markup.italic.creole | #268bd2 | bold italic |
| markup.heading.markdown, markup.heading.creole | #FFFFFF | bold |
| markup.italic.markdown, markup.italic.creole | #657b83 | italic |
| markup.italic.markdown markup.bold.markdown, markup.italic.creole markup.bold.creole | #657b83 | bold italic |
| markup.list.numbered.markdown, markup.list.numbered.creole | #b58900 | — |
| markup.list.unnumbered.markdown, markup.list.unnumbered.creole | #b58900 | — |
| markup.quote.markdown | #6c71c4 | — |
| markup.raw.block.markdown, markup.raw.inline.markdown, markup.raw.block.creole, markup.raw.inline.creole | #2aa198 | — |
| markup.underline.link.markdown, punctuation.definition.link.markdown, markup.underline.link.creole | #00AAFF | italic |
| meta.image.inline.markdown, meta.image.reference.markdown, meta.image.inline.creole | #d33682 | italic |
| meta.link.inline.markdown, meta.link.reference.markdown, meta.link.inline.creole | #859900 | italic |
| meta.link.reference.def.markdown, meta.link.reference.literal.markdown | #8000ff | italic |
| punctuation.definition.bold.markdown, punctuation.definition.italic.markdown, punctuation.definition.raw.markdown, punctuation.definition.heading.markdown, punctuation.definition.bold.creole, punctuation.definition.italic.creole, punctuation.definition.raw.creole, punctuation.definition.heading.creole, punctuation.definition.line-break.creole, punctuation.definition.link.creole, punctuation.definition.horizonlal-rule.creole | #dc322f | — |
| meta.diff.header.from-file, markup.deleted.diff | italic | |
| meta.diff.header.to-file, markup.inserted.diff | italic | |
| meta.diff.range | #0080ff | italic |
| punctuation.definition.comment.json, comment.block.documentation.json, comment.block.json | #808080 | |
| punctuation.definition.array.begin.json, punctuation.definition.array.end.json, punctuation.separator.array.json | #ff00ff | bold |
| invalid.illegal.unrecognized-string-escape.json, invalid.illegal.expected-dictionary-separator.json, invalid.illegal.expected-array-separator.json | #eee8d5 | italic underline |
| punctuation.definition.dictionary.begin.json, punctuation.definition.dictionary.end.json, punctuation.separator.dictionary.key-value.json, punctuation.separator.dictionary.pair.json | #ABB2C0 | bold |
| meta.structure.dictionary.value.json, constant.language.json, constant.numeric.json, meta.structure.dictionary.json | #97C46E | |
| meta.structure.array.json string.quoted.double.json | #E26B6F |
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}!`;
}