Perry language support: run programs with F5, see mistakes underlined, syntax highlighting, snippets and the Perry Black theme. Perry is an English-style language for exact decimal calculations.
Full workbench mockup using this variant's colors and tokenColors.
Loading...
colors
Workbench UI color keys from the theme JSON colors map.
key
HEX
RGB
RGBA
activityBar.activeBorder
activityBar.background
activityBar.border
activityBar.foreground
activityBar.inactiveForeground
activityBarBadge.background
activityBarBadge.foreground
badge.background
badge.foreground
breadcrumb.activeSelectionForeground
breadcrumb.focusForeground
breadcrumb.foreground
button.background
button.foreground
button.hoverBackground
button.secondaryBackground
button.secondaryForeground
dropdown.background
dropdown.border
dropdown.foreground
editor.background
editor.findMatchBackground
editor.findMatchHighlightBackground
editor.foreground
editor.inactiveSelectionBackground
editor.lineHighlightBackground
editor.lineHighlightBorder
editor.selectionBackground
editor.selectionHighlightBackground
editor.wordHighlightBackground
editorBracketMatch.background
editorBracketMatch.border
editorCursor.foreground
editorError.foreground
editorGroup.border
editorGroupHeader.tabsBackground
editorGroupHeader.tabsBorder
editorGutter.background
editorHoverWidget.background
editorHoverWidget.border
editorIndentGuide.activeBackground
editorIndentGuide.activeBackground1
editorIndentGuide.background
editorIndentGuide.background1
editorInfo.foreground
editorLineNumber.activeForeground
editorLineNumber.foreground
editorSuggestWidget.background
editorSuggestWidget.border
editorSuggestWidget.highlightForeground
editorSuggestWidget.selectedBackground
editorWarning.foreground
editorWhitespace.foreground
editorWidget.background
editorWidget.border
focusBorder
gitDecoration.deletedResourceForeground
gitDecoration.modifiedResourceForeground
gitDecoration.untrackedResourceForeground
input.background
input.border
input.foreground
input.placeholderForeground
inputOption.activeBorder
list.activeSelectionBackground
list.activeSelectionForeground
list.focusOutline
list.highlightForeground
list.hoverBackground
list.inactiveSelectionBackground
menu.background
menu.border
menu.foreground
menu.selectionBackground
minimap.background
notificationCenterHeader.background
notifications.background
notifications.border
panel.background
panel.border
panelTitle.activeBorder
panelTitle.activeForeground
panelTitle.inactiveForeground
pickerGroup.border
pickerGroup.foreground
progressBar.background
quickInput.background
quickInputList.focusBackground
scrollbarSlider.activeBackground
scrollbarSlider.background
scrollbarSlider.hoverBackground
selection.background
sideBar.background
sideBar.border
sideBar.foreground
sideBarSectionHeader.background
sideBarSectionHeader.border
sideBarSectionHeader.foreground
sideBarTitle.foreground
statusBar.background
statusBar.border
statusBar.debuggingBackground
statusBar.debuggingForeground
statusBar.foreground
statusBar.noFolderBackground
statusBarItem.hoverBackground
statusBarItem.remoteBackground
statusBarItem.remoteForeground
tab.activeBackground
tab.activeBorderTop
tab.activeForeground
tab.border
tab.inactiveBackground
tab.inactiveForeground
terminal.ansiBlack
terminal.ansiBlue
terminal.ansiBrightBlack
terminal.ansiBrightBlue
terminal.ansiBrightCyan
terminal.ansiBrightGreen
terminal.ansiBrightMagenta
terminal.ansiBrightRed
terminal.ansiBrightWhite
terminal.ansiBrightYellow
terminal.ansiCyan
terminal.ansiGreen
terminal.ansiMagenta
terminal.ansiRed
terminal.ansiWhite
terminal.ansiYellow
terminal.background
terminal.foreground
terminalCursor.foreground
textLink.activeForeground
textLink.foreground
textPreformat.foreground
titleBar.activeBackground
titleBar.activeForeground
titleBar.border
titleBar.inactiveBackground
titleBar.inactiveForeground
widget.shadow
tokenColors
Foregrounds this theme assigns to the token scope catalog. A rule with only a font style is skipped, and a longer matching scope wins. Italic and bold rules are not listed — the preview above shows them in the code.
scope
HEX
RGB
RGBA
comment
comment.block
comment.block.documentation
comment.line
constant
constant.character
constant.character.escape
constant.numeric
constant.numeric.integer
constant.numeric.float
constant.numeric.hex
constant.numeric.octal
constant.other
entity
entity.name
entity.name.function
entity.name.tag
entity.name.type
entity.name.type.enum
entity.name.type.interface
entity.name.type.struct
entity.other
entity.other.attribute-name
keyword
keyword.control
keyword.control.flow
keyword.operator
keyword.operator.assignment
keyword.operator.arithmetic
keyword.operator.logical
keyword.other
markup
markup.bold
markup.heading
markup.inline.raw
markup.italic
punctuation.definition.bracket
punctuation.definition.comment
punctuation.definition.string.begin
punctuation.definition.string.end
punctuation.separator
punctuation.separator.continuation
punctuation.terminator
storage
storage.modifier
storage.type
string
string.interpolated
string.other
string.quoted
string.quoted.double
string.quoted.other
string.quoted.single
string.quoted.triple
string.regexp
string.template
string.unquoted
support
support.constant
support.function
support.type
support.type.property-name
variable
variable.function
variable.language
variable.name
variable.other
variable.other.constant
variable.other.property
variable.other.readwrite
variable.parameter
fetchUser.ts
index.ts
README.md
src
components
fetchUser.ts
User
tags
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
export interfaceUser { 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()) asUser;}function greet(user: User): string { // Simple greeting function that uses the user's name return `Hello, ${user.name}!`;}