Example #1
0
        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;
    }
Example #3
0
        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);
    }
Example #5
0
    public SValue GetExpandedTemp()
    {
        SValue value = SValue.NewList();

        foreach (Node nodeI in nodes)
        {
            if (nodeI.expanded)
            {
                value.Add(SValue.NewInt(nodeI.hash));
            }
        }
        return(value);
    }
Example #6
0
    public SValue Serialize()
    {
        SValue value = SValue.NewList();

        foreach (string text in list)
        {
            if (!string.IsNullOrEmpty(text))
            {
                value.Add(SValue.NewString(text));
            }
        }
        return(value);
    }
Example #7
0
        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));
    }