forked from eranif/codelite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNodeJSWorkspaceUserConfiguration.cpp
67 lines (59 loc) · 2.25 KB
/
NodeJSWorkspaceUserConfiguration.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "NodeJSWorkspaceUserConfiguration.h"
#include <globals.h>
#include <json_node.h>
NodeJSWorkspaceUser::NodeJSWorkspaceUser(const wxString& workspacePath)
: m_workspacePath(workspacePath)
, m_debuggerPort(5858)
, m_debuggerHost("127.0.0.1")
{
}
NodeJSWorkspaceUser::~NodeJSWorkspaceUser() {}
wxFileName NodeJSWorkspaceUser::GetFileName() const
{
wxFileName workspaceFile(m_workspacePath);
wxFileName fn(workspaceFile.GetPath(), workspaceFile.GetFullName() + ".nodejs." + clGetUserName());
fn.AppendDir(".codelite");
if(!fn.FileExists()) {
fn.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL);
}
return fn;
}
NodeJSWorkspaceUser& NodeJSWorkspaceUser::Load()
{
wxFileName fn = GetFileName();
JSONRoot root(fn);
JSONElement element = root.toElement();
m_debuggerPort = element.namedObject("m_debuggerPort").toInt(m_debuggerPort);
m_debuggerHost = element.namedObject("m_debuggerHost").toString(m_debuggerHost);
m_scriptToExecute = element.namedObject("m_scriptToExecute").toString(m_scriptToExecute);
m_commandLineArgs = element.namedObject("m_commandLineArgs").toArrayString();
m_workingDirectory = element.namedObject("m_workingDirectory").toString();
m_breakpoints.clear();
JSONElement bpArr = element.namedObject("m_breakpoints");
int bpcount = bpArr.arraySize();
for(int i = 0; i < bpcount; ++i) {
NodeJSBreakpoint bp;
bp.FromJSON(bpArr.arrayItem(i));
m_breakpoints.push_back(bp);
}
return *this;
}
NodeJSWorkspaceUser& NodeJSWorkspaceUser::Save()
{
// Serialize the breakpoints
JSONRoot root(cJSON_Object);
JSONElement json = root.toElement();
json.addProperty("m_debuggerPort", m_debuggerPort);
json.addProperty("m_debuggerHost", m_debuggerHost);
json.addProperty("m_scriptToExecute", m_scriptToExecute);
json.addProperty("m_commandLineArgs", m_commandLineArgs);
json.addProperty("m_workingDirectory", m_workingDirectory);
JSONElement bpArr = JSONElement::createArray("m_breakpoints");
json.append(bpArr);
NodeJSBreakpoint::List_t::const_iterator iter = m_breakpoints.begin();
for(; iter != m_breakpoints.end(); ++iter) {
bpArr.arrayAppend(iter->ToJSON());
}
root.save(GetFileName());
return *this;
}