| /* | |
| * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. | |
| * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. | |
| */ | |
| import { color } from "../html/styles.mjs"; | |
| import { Formatter } from "./formatter.mjs"; | |
| import { getFqnNameFrom } from "../type-checkers/index.mjs"; | |
| import { element, list, object, span } from "../html/tags.mjs"; | |
| import { CLASS_IDENTIFIER_COLOR, FIELD_IDENTIFIER_COLOR} from "../theme/colors.mjs"; | |
| const IGNORED_FIELDS = new Set([ | |
| "$_hashCode", | |
| "$itable", | |
| "$typeInfo", | |
| "$vtable" | |
| ]) | |
| function classHeader(kotlinClass) { | |
| return span([color(CLASS_IDENTIFIER_COLOR)], [getFqnNameFrom(kotlinClass.type)]) | |
| } | |
| function classBody(kotlinClass) { | |
| const fields = [] | |
| for (const key in kotlinClass.value) { | |
| if (IGNORED_FIELDS.has(key)) continue; | |
| fields.push( | |
| element( | |
| [], | |
| [ | |
| span([color(FIELD_IDENTIFIER_COLOR)], [key.slice(1), ": "]), | |
| object(kotlinClass.value[key]) | |
| ]) | |
| ) | |
| } | |
| return list([], fields); | |
| } | |
| export default Formatter.create(classHeader, classBody) |