diff --git a/src/modules/cmdpal/src/WindowsCommandPalette/Builtins/Bookmark/Bookmarks.cs b/src/modules/cmdpal/src/WindowsCommandPalette/Builtins/Bookmark/Bookmarks.cs index 691dbc7cfb..e68f9dcb28 100644 --- a/src/modules/cmdpal/src/WindowsCommandPalette/Builtins/Bookmark/Bookmarks.cs +++ b/src/modules/cmdpal/src/WindowsCommandPalette/Builtins/Bookmark/Bookmarks.cs @@ -17,7 +17,7 @@ public sealed class Bookmarks public static Bookmarks ReadFromFile(string path) { - Bookmarks data = null; + var data = new Bookmarks(); // if the file exists, load it and append the new item if (File.Exists(path)) @@ -26,18 +26,17 @@ public sealed class Bookmarks if (!string.IsNullOrEmpty(jsonStringReading)) { - data = JsonSerializer.Deserialize(jsonStringReading, _jsonOptions); + data = JsonSerializer.Deserialize(jsonStringReading, _jsonOptions) ?? new Bookmarks(); } } - data ??= new Bookmarks(); - return data; } public static void WriteToFile(string path, Bookmarks data) { - var jsonString = JsonSerializer.Serialize(data, _jsonOptions); + var jsonString = JsonSerializer.Serialize(data, _jsonOptions); + File.WriteAllText(BookmarksActionProvider.StateJsonPath(), jsonString); } } diff --git a/src/modules/cmdpal/src/WindowsCommandPalette/Builtins/Bookmark/BookmarksActionProvider.cs b/src/modules/cmdpal/src/WindowsCommandPalette/Builtins/Bookmark/BookmarksActionProvider.cs index 073d97d4d0..de9c283621 100644 --- a/src/modules/cmdpal/src/WindowsCommandPalette/Builtins/Bookmark/BookmarksActionProvider.cs +++ b/src/modules/cmdpal/src/WindowsCommandPalette/Builtins/Bookmark/BookmarksActionProvider.cs @@ -35,32 +35,37 @@ public class BookmarksActionProvider : ICommandProvider { List collected = []; collected.Add(_addNewCommand); + try { var jsonFile = StateJsonPath(); if (File.Exists(jsonFile)) { - var data = Bookmarks.ReadFromFile(jsonFile); if (data != null) { var items = data?.Data; - foreach (var item in items) + + if (items != null) { - var nameToken = item.Name; - var urlToken = item.Bookmark; - var typeToken = item.Type; - - if (nameToken == null || urlToken == null || typeToken == null) + foreach (var item in items) { - continue; - } + var nameToken = item.Name; + var urlToken = item.Bookmark; + var typeToken = item.Type; - var name = nameToken.ToString(); - var url = urlToken.ToString(); - var type = typeToken.ToString(); - collected.Add((url.Contains('{') && url.Contains('}')) ? new BookmarkPlaceholderPage(name, url, type) : new UrlAction(name, url, type)); + if (nameToken == null || urlToken == null || typeToken == null) + { + continue; + } + + var name = nameToken.ToString(); + var url = urlToken.ToString(); + var type = typeToken.ToString(); + + collected.Add((url.Contains('{') && url.Contains('}')) ? new BookmarkPlaceholderPage(name, url, type) : new UrlAction(name, url, type)); + } } } }