feat(language): add Gleam coding language (@binajmen) (#6771)

### Description

Adding the Gleam language!

https://gleam.run/

### Checks

- [x] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
  - [x] Add language to `packages/contracts/src/schemas/languages.ts`
- [x] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
  - [x] Add language json file to `frontend/static/languages` 
- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
This commit is contained in:
Benjamin 2025-07-25 14:14:21 +02:00 committed by GitHub
parent 363e21b541
commit 3757744b28
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 450 additions and 0 deletions

View file

@ -340,6 +340,7 @@ export const LanguageGroups: Record<string, Language[]> = {
"code_arduino",
"code_systemverilog",
"code_elixir",
"code_gleam",
"code_zig",
"code_gdscript",
"code_gdscript_2",

View file

@ -0,0 +1,448 @@
{
"name": "code_gleam",
"ligatures": true,
"words": [
"!",
"!=",
"%",
"&&",
"*",
"+",
"-",
"->",
"..",
"/",
"<",
"<-",
"<<>>",
"<=",
"<>",
"==",
">",
">=",
"[]",
"#()",
"_",
"as",
"assert",
"auto",
"BitArray",
"Bool",
"case",
"const",
"delegate",
"derive",
"echo",
"else",
"external",
"False",
"Float",
"fn",
"if",
"implement",
"import",
"Int",
"let",
"List",
"macro",
"Nil",
"opaque",
"panic",
"pub",
"String",
"test",
"todo",
"True",
"type",
"use",
"||",
"|>",
"bit_array.append",
"bit_array.base16_decode",
"bit_array.base16_encode",
"bit_array.base64_decode",
"bit_array.base64_encode",
"bit_array.base64_url_decode",
"bit_array.base64_url_encode",
"bit_array.byte_size",
"bit_array.concat",
"bit_array.copy",
"bit_array.drop",
"bit_array.ends_with",
"bit_array.from_string",
"bit_array.inspect",
"bit_array.is_empty",
"bit_array.part",
"bit_array.slice",
"bit_array.starts_with",
"bit_array.to_string",
"bool.and",
"bool.exclusive_nor",
"bool.exclusive_or",
"bool.guard",
"bool.lazy_guard",
"bool.nand",
"bool.negate",
"bool.nor",
"bool.or",
"bytes_tree.append",
"bytes_tree.append_builder",
"bytes_tree.append_string",
"bytes_tree.byte_size",
"bytes_tree.concat",
"bytes_tree.from_bit_array",
"bytes_tree.from_string",
"bytes_tree.from_string_builder",
"bytes_tree.new",
"bytes_tree.prepend",
"bytes_tree.prepend_builder",
"bytes_tree.prepend_string",
"bytes_tree.to_bit_array",
"decode.at",
"decode.bit_array",
"decode.bool",
"decode.collapse_errors",
"decode.decode_error",
"decode.dict",
"decode.dynamic",
"decode.failure",
"decode.field",
"decode.float",
"decode.int",
"decode.list",
"decode.map",
"decode.map_errors",
"decode.new_primitive_decoder",
"decode.one_of",
"decode.optional",
"decode.optional_field",
"decode.optionally_at",
"decode.recursive",
"decode.run",
"decode.string",
"decode.subfield",
"decode.success",
"decode.Decoder",
"decode.DecodeError",
"dict.combine",
"dict.delete",
"dict.drop",
"dict.each",
"dict.filter",
"dict.fold",
"dict.from_list",
"dict.get",
"dict.has_key",
"dict.insert",
"dict.is_empty",
"dict.keys",
"dict.map_values",
"dict.merge",
"dict.new",
"dict.size",
"dict.take",
"dict.to_list",
"dict.upsert",
"dict.values",
"Dict",
"dynamic.array",
"dynamic.bit_array",
"dynamic.bool",
"dynamic.classify",
"dynamic.float",
"dynamic.from",
"dynamic.int",
"dynamic.list",
"dynamic.nil",
"dynamic.properties",
"dynamic.string",
"dynamic.Dynamic",
"float.absolute_value",
"float.add",
"float.ceiling",
"float.clamp",
"float.compare",
"float.divide",
"float.exponential",
"float.floor",
"float.logarithm",
"float.loosely_compare",
"float.loosely_equals",
"float.max",
"float.min",
"float.modulo",
"float.multiply",
"float.negate",
"float.parse",
"float.power",
"float.product",
"float.random",
"float.round",
"float.square_root",
"float.subtract",
"float.sum",
"float.to_precision",
"float.to_string",
"function.apply1",
"function.apply2",
"function.apply3",
"function.compose",
"function.constant",
"function.curry2",
"function.curry3",
"function.curry4",
"function.curry5",
"function.curry6",
"function.flip",
"function.identity",
"function.tap",
"Gt",
"int.absolute_value",
"int.add",
"int.base_parse",
"int.bitwise_and",
"int.bitwise_exclusive_or",
"int.bitwise_not",
"int.bitwise_or",
"int.bitwise_shift_left",
"int.bitwise_shift_right",
"int.clamp",
"int.compare",
"int.digits",
"int.divide",
"int.floor_divide",
"int.is_even",
"int.is_odd",
"int.max",
"int.min",
"int.modulo",
"int.multiply",
"int.negate",
"int.parse",
"int.power",
"int.product",
"int.random",
"int.remainder",
"int.square_root",
"int.subtract",
"int.to_base16",
"int.to_base2",
"int.to_base36",
"int.to_base8",
"int.to_base_string",
"int.to_float",
"int.to_string",
"int.undigits",
"io.debug",
"io.print",
"io.print_error",
"io.println",
"io.println_error",
"list.all",
"list.any",
"list.append",
"list.chunk",
"list.combination_pairs",
"list.combinations",
"list.contains",
"list.count",
"list.drop",
"list.drop_while",
"list.each",
"list.filter",
"list.filter_map",
"list.find",
"list.find_map",
"list.first",
"list.flat_map",
"list.flatten",
"list.fold",
"list.fold_right",
"list.fold_until",
"list.group",
"list.index_fold",
"list.index_map",
"list.interleave",
"list.intersperse",
"list.is_empty",
"list.key_filter",
"list.key_find",
"list.key_pop",
"list.key_set",
"list.last",
"list.length",
"list.map",
"list.map2",
"list.map_fold",
"list.max",
"list.min",
"list.partition",
"list.permutations",
"list.prepend",
"list.range",
"list.reduce",
"list.repeat",
"list.rest",
"list.reverse",
"list.sample",
"list.scan",
"list.shuffle",
"list.sized_chunk",
"list.sort",
"list.split",
"list.split_while",
"list.strict_zip",
"list.take",
"list.take_while",
"list.transpose",
"list.try_each",
"list.try_fold",
"list.try_map",
"list.unique",
"list.unzip",
"list.window",
"list.window_by_2",
"list.wrap",
"list.zip",
"Lt",
"None",
"Ok",
"option.all",
"option.flatten",
"option.from_result",
"option.is_none",
"option.is_some",
"option.lazy_or",
"option.lazy_unwrap",
"option.map",
"option.or",
"option.then",
"option.to_result",
"option.unwrap",
"option.values",
"Option",
"order.break_tie",
"order.compare",
"order.lazy_break_tie",
"order.negate",
"order.reverse",
"Order",
"pair.first",
"pair.map_first",
"pair.map_second",
"pair.new",
"pair.second",
"pair.swap",
"result.all",
"result.flatten",
"result.is_error",
"result.is_ok",
"result.lazy_or",
"result.lazy_unwrap",
"result.map",
"result.map_error",
"result.nil_error",
"result.or",
"result.partition",
"result.replace",
"result.replace_error",
"result.then",
"result.try",
"result.try_recover",
"result.unwrap",
"result.unwrap_both",
"result.unwrap_error",
"result.values",
"Result",
"set.contains",
"set.delete",
"set.difference",
"set.drop",
"set.each",
"set.filter",
"set.fold",
"set.from_list",
"set.insert",
"set.intersection",
"set.is_disjoint",
"set.is_empty",
"set.is_subset",
"set.map",
"set.new",
"set.size",
"set.symmetric_difference",
"set.take",
"set.to_list",
"set.union",
"Set",
"Some",
"string.append",
"string.byte_size",
"string.capitalise",
"string.compare",
"string.concat",
"string.contains",
"string.crop",
"string.drop_end",
"string.drop_start",
"string.ends_with",
"string.first",
"string.from_utf_codepoints",
"string.inspect",
"string.is_empty",
"string.join",
"string.last",
"string.length",
"string.lowercase",
"string.pad_end",
"string.pad_start",
"string.pop_grapheme",
"string.repeat",
"string.replace",
"string.reverse",
"string.slice",
"string.split",
"string.split_once",
"string.starts_with",
"string.to_graphemes",
"string.to_option",
"string.to_utf_codepoints",
"string.trim",
"string.trim_end",
"string.trim_start",
"string.uppercase",
"string.utf_codepoint",
"string.utf_codepoint_to_int",
"string_tree.append",
"string_tree.append_tree",
"string_tree.byte_size",
"string_tree.concat",
"string_tree.from_string",
"string_tree.from_strings",
"string_tree.is_empty",
"string_tree.is_equal",
"string_tree.join",
"string_tree.lowercase",
"string_tree.new",
"string_tree.prepend",
"string_tree.prepend_tree",
"string_tree.replace",
"string_tree.reverse",
"string_tree.split",
"string_tree.to_string",
"string_tree.uppercase",
"StringTree",
"uri.empty",
"uri.merge",
"uri.origin",
"uri.parse",
"uri.parse_query",
"uri.path_segments",
"uri.percent_decode",
"uri.percent_encode",
"uri.query_to_string",
"uri.to_string",
"Uri",
"UtfCodepoint"
]
}

View file

@ -397,6 +397,7 @@ export const LanguageSchema = z.enum(
"code_arduino",
"code_systemverilog",
"code_elixir",
"code_gleam",
"code_zig",
"code_gdscript",
"code_gdscript_2",