diff --git a/src/languages/scala.js b/src/languages/scala.js
index 058321ca92..0468648869 100644
--- a/src/languages/scala.js
+++ b/src/languages/scala.js
@@ -122,6 +122,11 @@ export default function(hljs) {
begin: /(?<=^\s*)extension(?=\s+[\[\(])/
};
+ const END = {
+ className: 'keyword',
+ begin: /(?<=^\s*)end(\s+extension|\b)/
+ };
+
return {
name: 'Scala',
keywords: {
@@ -138,6 +143,7 @@ export default function(hljs) {
CLASS,
hljs.C_NUMBER_MODE,
EXTENSION,
+ END,
ANNOTATION
]
};
diff --git a/test/markup/scala/end.expect.txt b/test/markup/scala/end.expect.txt
new file mode 100644
index 0000000000..a608a1a806
--- /dev/null
+++ b/test/markup/scala/end.expect.txt
@@ -0,0 +1,41 @@
+def foo =
+ if (true)
+ ()
+ else
+ ()
+ end if
+
+ while true do
+ ()
+ end while
+
+ for x <- xs do
+ ()
+ end for
+
+ x match
+ case _ =>
+ end match
+end foo
+
+def bar =
+ new Foo:
+ def f = ()
+ end new
+end
+
+val baz =
+ ()
+end val
+
+var baz2 =
+ ()
+end var
+
+extension (x: Int)
+ def f = 1
+ def f = 2
+end extension
+
+class Foo:
+end Foo
diff --git a/test/markup/scala/end.txt b/test/markup/scala/end.txt
new file mode 100644
index 0000000000..fbf16d363b
--- /dev/null
+++ b/test/markup/scala/end.txt
@@ -0,0 +1,41 @@
+def foo =
+ if (true)
+ ()
+ else
+ ()
+ end if
+
+ while true do
+ ()
+ end while
+
+ for x <- xs do
+ ()
+ end for
+
+ x match
+ case _ =>
+ end match
+end foo
+
+def bar =
+ new Foo:
+ def f = ()
+ end new
+end
+
+val baz =
+ ()
+end val
+
+var baz2 =
+ ()
+end var
+
+extension (x: Int)
+ def f = 1
+ def f = 2
+end extension
+
+class Foo:
+end Foo