diff --git a/lexers/embedded/gleam.xml b/lexers/embedded/gleam.xml
index 6205aa15c..396632203 100644
--- a/lexers/embedded/gleam.xml
+++ b/lexers/embedded/gleam.xml
@@ -33,7 +33,6 @@
-
@@ -63,12 +62,11 @@
-
+
-
+
-
@@ -76,26 +74,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/lexers/testdata/gleam.actual b/lexers/testdata/gleam.actual
index cdcf1d384..e97dba6fd 100644
--- a/lexers/testdata/gleam.actual
+++ b/lexers/testdata/gleam.actual
@@ -18,3 +18,17 @@ pub fn main() {
io.debug(reverse_list([1, 2, 3, 4, 5]))
io.debug(reverse_list(["a", "b", "c", "d", "e"]))
}
+
+pub fn plus_one(x: Int) -> Int {
+ x + 1
+}
+
+pub type Message {
+ RegisterFeed(String, Poller)
+}
+
+pub type Table = Subject(Message)
+
+pub fn start() -> Table {
+ todo
+}
\ No newline at end of file
diff --git a/lexers/testdata/gleam.expected b/lexers/testdata/gleam.expected
index 30776e3f8..9f001111a 100644
--- a/lexers/testdata/gleam.expected
+++ b/lexers/testdata/gleam.expected
@@ -181,5 +181,78 @@
{"type":"Punctuation","value":"]))"},
{"type":"TextWhitespace","value":"\n"},
{"type":"Punctuation","value":"}"},
- {"type":"TextWhitespace","value":"\n"}
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"Keyword","value":"pub"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Keyword","value":"fn"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"plus_one"},
+ {"type":"Punctuation","value":"("},
+ {"type":"Name","value":"x"},
+ {"type":"Operator","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameClass","value":"Int"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameClass","value":"Int"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Name","value":"x"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralNumberInteger","value":"1"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"Keyword","value":"pub"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Keyword","value":"type"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameClass","value":"Message"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameClass","value":"RegisterFeed"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameClass","value":"String"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameClass","value":"Poller"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"Keyword","value":"pub"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Keyword","value":"type"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameClass","value":"Table"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameClass","value":"Subject"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameClass","value":"Message"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"Keyword","value":"pub"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Keyword","value":"fn"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"start"},
+ {"type":"Punctuation","value":"()"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameClass","value":"Table"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Keyword","value":"todo"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"}
]