public void SerializeAndDeserialize_List() { SValue hash = SValue.NewHash(); hash["field0"] = SValue.NewString("value"); hash["field1"] = SValue.NewInt(10); SValue list = SValue.NewList(); list.Add(SValue.NewInt(1)); list.Add(SValue.NewString("value2")); list.Add(hash); Assert.AreEqual("[1, 'value2', {'field0': 'value', 'field1': 10}]", SValue.Unserialize(SValue.Serialize(list)).ToString()); }
private void ValuesSerialize(SValue state) { List <TempSettingsInt> list = new List <TempSettingsInt>(); foreach (KeyValuePair <string, TempSettingsInt> pair in settingsInts) { list.Add(pair.Value); } list.Sort(CompareSettingsInts); if (list.Count > MaxSettingsInts) { list.RemoveRange(MaxSettingsInts, list.Count - MaxSettingsInts); } SValue sList = SValue.NewList(); foreach (TempSettingsInt settingsInt in list) { SValue hash = SValue.NewHash(); hash["id"] = SValue.NewString(settingsInt.id); hash["priority"] = SValue.NewInt(settingsInt.priority); hash["value"] = SValue.NewInt(settingsInt.value); sList.Add(hash); } state["values"] = sList; }
public void SerializeAndDeserialize_EqualTextsCovering() { SValue list = SValue.NewList(); SValue hash; hash = SValue.NewHash(); hash["field0"] = SValue.NewString("value1"); hash["field1"] = SValue.NewInt(10); list.Add(hash); hash = SValue.NewHash(); hash["field3"] = SValue.NewString("value2"); hash["field1"] = SValue.NewInt(100); list.Add(hash); Assert.AreEqual("[{'field0': 'value1', 'field1': 10}, {'field3': 'value2', 'field1': 100}]", SValue.Unserialize(SValue.Serialize(list)).ToString()); }
private SValue EncodeGlobalBookmakrs() { SValue data = SValue.NewList(); if (MulticaretTextBox.initMacrosExecutor != null) { for (char c = 'A'; c <= 'Z'; ++c) { string path; int position; MulticaretTextBox.initMacrosExecutor.GetBookmark(c, out path, out position); data.Add(SValue.NewString(path)); data.Add(SValue.NewInt(position)); } } return(data); }
public SValue GetExpandedTemp() { SValue value = SValue.NewList(); foreach (Node nodeI in nodes) { if (nodeI.expanded) { value.Add(SValue.NewInt(nodeI.hash)); } } return(value); }
public SValue Serialize() { SValue value = SValue.NewList(); foreach (string text in list) { if (!string.IsNullOrEmpty(text)) { value.Add(SValue.NewString(text)); } } return(value); }
public void SerializeAndDeserialize_CircleLinks() { SValue hash = SValue.NewHash(); hash["field0"] = SValue.NewString("value"); hash["field1"] = SValue.NewInt(10); hash["field2"] = hash; SValue list = SValue.NewList(); list.Add(SValue.NewInt(1)); list.Add(SValue.NewString("value2")); list.Add(hash); hash["field3"] = list; SValue unserialized = SValue.Unserialize(SValue.Serialize(list)); Assert.AreEqual("[1, 'value2', {'field0': 'value', 'field1': 10, 'field2': …, 'field3': …}]", unserialized.ToString()); Assert.AreEqual(unserialized[2], unserialized[2]["field2"]); Assert.AreEqual(unserialized, unserialized[2]["field3"]); Assert.AreNotEqual(unserialized, unserialized[2]["field2"]); }
public void Save(string postfix, bool rememberOpenedFiles) { SValue state = SValue.NewHash(); if (mainForm.WindowState == FormWindowState.Maximized) { state["width"] = SValue.NewInt(mainForm.RestoreBounds.Width); state["height"] = SValue.NewInt(mainForm.RestoreBounds.Height); state["x"] = SValue.NewInt(mainForm.RestoreBounds.X); state["y"] = SValue.NewInt(mainForm.RestoreBounds.Y); } else { state["width"] = SValue.NewInt(mainForm.Width); state["height"] = SValue.NewInt(mainForm.Height); state["x"] = SValue.NewInt(mainForm.Location.X); state["y"] = SValue.NewInt(mainForm.Location.Y); } state["maximized"] = SValue.NewBool(mainForm.WindowState == FormWindowState.Maximized); if (rememberOpenedFiles) { { SValue openedTabs = state.SetNewList("openedTabs"); foreach (Buffer buffer in mainForm.MainNest.buffers.list) { SValue valueI = SValue.NewHash().With("fullPath", SValue.NewString(buffer.FullPath)); openedTabs.Add(valueI); if (buffer == mainForm.MainNest.buffers.list.Selected) { state["selectedTab"] = valueI; } } } if (mainForm.MainNest2 != null) { SValue openedTabs = state.SetNewList("openedTabs2"); foreach (Buffer buffer in mainForm.MainNest2.buffers.list) { SValue valueI = SValue.NewHash().With("fullPath", SValue.NewString(buffer.FullPath)); openedTabs.Add(valueI); if (buffer == mainForm.MainNest2.buffers.list.Selected) { state["selectedTab2"] = valueI; } } } } state["storage"] = storage.Serialize(); state["recently"] = recently.Serialize(); state["recentlyDirs"] = recentlyDirs.Serialize(); state["bm"] = EncodeGlobalBookmakrs(); ValuesSerialize(state); state["commandHistory"] = commandHistory.Serialize(); state["findHistory"] = findHistory.Serialize(); state["findInFilesHistory"] = findInFilesHistory.Serialize(); state["findInFilesTempFilter"] = findInFilesTempFilter.Serialize(); state["findInFilesTempCurrentFilter"] = SValue.NewString(findInFilesTempCurrentFilter.value); state["moveHistory"] = moveHistory.Serialize(); state["replacePatternHistory"] = replacePatternHistory.Serialize(); state["replaceHistory"] = replaceHistory.Serialize(); state["goToLineHistory"] = goToLineHistory.Serialize(); state["findParams"] = findParams.Serialize(); if (!string.IsNullOrEmpty(NullableCurrentDir)) { state["currentDir"] = SValue.NewString(NullableCurrentDir); } state["showFileTree"] = SValue.NewBool(mainForm.FileTreeOpened); state["fileTreeExpanded"] = mainForm.FileTree.GetExpandedTemp(); state["helpPosition"] = SValue.NewInt(helpPosition); state["viHelpPosition"] = SValue.NewInt(viHelpPosition); SerializeSettings(ref state); File.WriteAllBytes(GetTempSettingsPath(postfix, AppPath.StartupDir), SValue.Serialize(state)); }