diff --git a/CHANGES.md b/CHANGES.md
index 27ba11d144..d30080bb3b 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -8,12 +8,17 @@ Parser:
- fix(types) Fix some type definition issues (#3274) [Josh Goebel][]
+Grammars:
+
+- enh(swift) Add `isolated`/`nonisolated` keywords (#3296) [Bradley Mackey][]
+
New Languages:
- Added 3rd party X# grammar to SUPPORTED_LANGUAGES [Patrick Kruselburger][]
[Josh Goebel]: https://github.com/joshgoebel
[Patrick Kruselburger]: https://github.com/PatrickKru
+[Bradley Mackey]: https://github.com/bradleymackey
## Version 11.1.0
diff --git a/src/languages/lib/kws_swift.js b/src/languages/lib/kws_swift.js
index ccc17fbbf0..d54e6ed3a7 100644
--- a/src/languages/lib/kws_swift.js
+++ b/src/languages/lib/kws_swift.js
@@ -73,6 +73,8 @@ export const keywords = [
'internal',
'in',
'is', // operator
+ 'isolated', // contextual
+ 'nonisolated', // contextual
'lazy', // contextual
'let',
'mutating', // contextual
diff --git a/test/markup/swift/keywords.expect.txt b/test/markup/swift/keywords.expect.txt
index fc91182148..dd1a4b7dbe 100644
--- a/test/markup/swift/keywords.expect.txt
+++ b/test/markup/swift/keywords.expect.txt
@@ -16,6 +16,7 @@ x is String
fileprivate(set) internal(set) open(set) private(set) public(set)
unowned(safe) unowned(unsafe)
async await
+isolated nonisolated
#if
#error("Error")
diff --git a/test/markup/swift/keywords.txt b/test/markup/swift/keywords.txt
index 529aa01ac9..73cb693e48 100644
--- a/test/markup/swift/keywords.txt
+++ b/test/markup/swift/keywords.txt
@@ -16,6 +16,7 @@ true false nil
fileprivate(set) internal(set) open(set) private(set) public(set)
unowned(safe) unowned(unsafe)
async await
+isolated nonisolated
#if
#error("Error")