diff --git a/src/gn/command_gen.cc b/src/gn/command_gen.cc
index e391d26..23f15a0 100644
--- a/src/gn/command_gen.cc
+++ b/src/gn/command_gen.cc
@@ -43,6 +43,7 @@
 const char kSwitchIdeValueVs2015[] = "vs2015";
 const char kSwitchIdeValueVs2017[] = "vs2017";
 const char kSwitchIdeValueVs2019[] = "vs2019";
+const char kSwitchIdeValueVs2022[] = "vs2022";
 const char kSwitchIdeValueWinSdk[] = "winsdk";
 const char kSwitchIdeValueXcode[] = "xcode";
 const char kSwitchIdeValueJson[] = "json";
@@ -210,7 +211,7 @@
     return res;
   } else if (ide == kSwitchIdeValueVs || ide == kSwitchIdeValueVs2013 ||
              ide == kSwitchIdeValueVs2015 || ide == kSwitchIdeValueVs2017 ||
-             ide == kSwitchIdeValueVs2019) {
+             ide == kSwitchIdeValueVs2019 || ide == kSwitchIdeValueVs2022) {
     VisualStudioWriter::Version version = VisualStudioWriter::Version::Vs2019;
     if (ide == kSwitchIdeValueVs2013)
       version = VisualStudioWriter::Version::Vs2013;
@@ -218,6 +219,8 @@
       version = VisualStudioWriter::Version::Vs2015;
     else if (ide == kSwitchIdeValueVs2017)
       version = VisualStudioWriter::Version::Vs2017;
+    else if (ide == kSwitchIdeValueVs2022)
+      version = VisualStudioWriter::Version::Vs2022;
 
     std::string sln_name;
     if (command_line->HasSwitch(kSwitchSln))
@@ -468,6 +471,7 @@
       "vs2015" - Visual Studio 2015 project/solution files.
       "vs2017" - Visual Studio 2017 project/solution files.
       "vs2019" - Visual Studio 2019 project/solution files.
+      "vs2022" - Visual Studio 2022 project/solution files.
       "xcode" - Xcode workspace/solution files.
       "qtcreator" - QtCreator project files.
       "json" - JSON file containing target information
diff --git a/src/gn/visual_studio_writer.cc b/src/gn/visual_studio_writer.cc
index e88a469..f567d36 100644
--- a/src/gn/visual_studio_writer.cc
+++ b/src/gn/visual_studio_writer.cc
@@ -73,14 +73,17 @@
 const char kToolsetVersionVs2015[] = "v140";               // Visual Studio 2015
 const char kToolsetVersionVs2017[] = "v141";               // Visual Studio 2017
 const char kToolsetVersionVs2019[] = "v142";               // Visual Studio 2019
+const char kToolsetVersionVs2022[] = "v143";               // Visual Studio 2022
 const char kProjectVersionVs2013[] = "12.0";               // Visual Studio 2013
 const char kProjectVersionVs2015[] = "14.0";               // Visual Studio 2015
 const char kProjectVersionVs2017[] = "15.0";               // Visual Studio 2017
 const char kProjectVersionVs2019[] = "16.0";               // Visual Studio 2019
+const char kProjectVersionVs2022[] = "17.0";               // Visual Studio 2022
 const char kVersionStringVs2013[] = "Visual Studio 2013";  // Visual Studio 2013
 const char kVersionStringVs2015[] = "Visual Studio 2015";  // Visual Studio 2015
 const char kVersionStringVs2017[] = "Visual Studio 2017";  // Visual Studio 2017
 const char kVersionStringVs2019[] = "Visual Studio 2019";  // Visual Studio 2019
+const char kVersionStringVs2022[] = "Visual Studio 2022";  // Visual Studio 2022
 const char kWindowsKitsVersion[] = "10";                   // Windows 10 SDK
 const char kWindowsKitsDefaultVersion[] = "10";            // Windows 10 SDK
 
@@ -311,8 +314,11 @@
       toolset_version_ = kToolsetVersionVs2019;
       version_string_ = kVersionStringVs2019;
       break;
-    default:
-      NOTREACHED() << "Not a valid Visual Studio Version: " << version;
+    case Version::Vs2022:
+      project_version_ = kProjectVersionVs2022;
+      toolset_version_ = kToolsetVersionVs2022;
+      version_string_ = kVersionStringVs2022;
+      break;
   }
 
   windows_kits_include_dirs_ = GetWindowsKitsIncludeDirs(win_kit);
diff --git a/src/gn/visual_studio_writer.h b/src/gn/visual_studio_writer.h
index 428f18b..bcb9e22 100644
--- a/src/gn/visual_studio_writer.h
+++ b/src/gn/visual_studio_writer.h
@@ -30,6 +30,7 @@
     Vs2015,      // Visual Studio 2015
     Vs2017,      // Visual Studio 2017
     Vs2019,      // Visual Studio 2019
+    Vs2022,      // Visual Studio 2022
   };
 
   // Writes Visual Studio project and solution files. |sln_name| is the optional
