diff --git a/.gitignore b/.gitignore index 7893291..959d75d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ /wide.exe /wide +/main /data/workspace/bin/ /data/workspace/pkg/ diff --git a/output/outputs.go b/output/outputs.go index f595645..1436d76 100644 --- a/output/outputs.go +++ b/output/outputs.go @@ -115,7 +115,7 @@ func RunHandler(w http.ResponseWriter, r *http.Request) { glog.V(3).Infof("Session [%s] is running [id=%d, file=%s]", sid, runningId, filePath) - // 在读取程序输出前先返回一次,使前端获取到 run 状态以及对应的 pid + // 在读取程序输出前先返回一次,使前端获取到 run 状态与 pid if nil != session.OutputWS[sid] { wsChannel := session.OutputWS[sid] @@ -289,7 +289,7 @@ func BuildHandler(w http.ResponseWriter, r *http.Request) { if 0 == count { // 说明构建成功,没有错误信息输出 // 设置下一次执行命令(前端会根据这个发送请求) - channelRet["nextCmd"] = "run" + channelRet["nextCmd"] = args["nextCmd"] go func() { // 运行 go install,生成的库用于 gocode lib-path cmd := exec.Command("go", "install") diff --git a/static/js/wide.js b/static/js/wide.js index b837481..9164301 100644 --- a/static/js/wide.js +++ b/static/js/wide.js @@ -442,6 +442,8 @@ var wide = { if ($(".menu li.save-all").hasClass("disabled")) { return false; } + + // TODO: 只保存未保存过的文件 for (var i = 0, ii = editors.data.length; i < ii; i++) { this.fmt(tree.fileTree.getNodeByTId(editors.data[i].id).path, editors.data[i].editor); @@ -506,10 +508,34 @@ var wide = { }, // 构建. build: function () { - // TODO: 构建 + wide.saveAllFiles(); + + var currentPath = editors.getCurrentPath(); + if (!currentPath) { + return false; + } + + var request = newWideRequest(); + request.file = currentPath; + request.code = wide.curEditor.getValue(); + request.nextCmd = ""; // 只构建,无下一步操作 + + $.ajax({ + type: 'POST', + url: '/build', + data: JSON.stringify(request), + dataType: "json", + beforeSend: function (data) { + $('.bottom-window-group .output').text(''); + }, + success: function (data) { + } + }); }, // 构建并运行. run: function () { + wide.saveAllFiles(); + var currentPath = editors.getCurrentPath(); if (!currentPath) { return false; @@ -527,6 +553,7 @@ var wide = { var request = newWideRequest(); request.file = currentPath; request.code = wide.curEditor.getValue(); + request.nextCmd = "run"; $.ajax({ type: 'POST', @@ -568,6 +595,8 @@ var wide = { }); }, goinstall: function () { + wide.saveAllFiles(); + var currentPath = editors.getCurrentPath(); if (!currentPath) { return false;