From b2a531629b30a53361434fe3ce92e267afbdefa6 Mon Sep 17 00:00:00 2001 From: Van Date: Wed, 24 Sep 2014 12:07:20 +0800 Subject: [PATCH] build run stop --- conf/wide.json | 9 +- static/css/base.css | 6 +- static/css/fonts/icomoon.eot | Bin 4784 -> 4808 bytes static/css/fonts/icomoon.svg | 1 + static/css/fonts/icomoon.ttf | Bin 4620 -> 4644 bytes static/css/fonts/icomoon.woff | Bin 4040 -> 4720 bytes static/js/editor.js | 4 +- static/js/wide.js | 243 +++++++++++++++++++--------------- view/index.html | 6 +- 9 files changed, 151 insertions(+), 118 deletions(-) diff --git a/conf/wide.json b/conf/wide.json index 51afa6f..4b19b1e 100644 --- a/conf/wide.json +++ b/conf/wide.json @@ -21,17 +21,16 @@ "E:\\Work\\go\\src\\github.com\\b3log\\wide\\data\\user_workspaces\\admin\\src\\mytest\\hello", "E:\\Work\\go\\src\\github.com\\b3log\\wide\\data\\user_workspaces\\admin\\src\\mytest\\time", "E:\\Work\\go\\src\\github.com\\b3log\\wide\\data\\user_workspaces\\admin\\src\\mytest\\time\\pkg", + "D:\\go\\src\\pkg", "D:\\go\\src\\pkg\\archive", "D:\\go\\src\\pkg\\archive\\tar", "D:\\go\\src\\pkg\\archive\\tar\\testdata" ], "files": [ - "E:\\Work\\go\\src\\github.com\\b3log\\wide\\data\\user_workspaces\\admin\\src\\mytest\\1123", - "E:\\Work\\go\\src\\github.com\\b3log\\wide\\data\\user_workspaces\\admin\\src\\mytest\\123\\q.exe", - "E:\\Work\\go\\src\\github.com\\b3log\\wide\\data\\user_workspaces\\admin\\src\\mytest\\hello\\2.json", - "D:\\go\\src\\pkg\\archive\\tar\\testdata\\small.txt" + "E:\\Work\\go\\src\\github.com\\b3log\\wide\\data\\user_workspaces\\admin\\src\\mytest\\time\\pkg\\time.go", + "E:\\Work\\go\\src\\github.com\\b3log\\wide\\data\\user_workspaces\\admin\\src\\mytest\\time\\main.go" ], - "currentFile": "D:\\go\\src\\pkg\\archive\\tar\\testdata\\small.txt" + "currentFile": "E:\\Work\\go\\src\\github.com\\b3log\\wide\\data\\user_workspaces\\admin\\src\\mytest\\time\\main.go" } } ] diff --git a/static/css/base.css b/static/css/base.css index bdfd0ee..c1c9a3f 100644 --- a/static/css/base.css +++ b/static/css/base.css @@ -71,10 +71,14 @@ ul { content: "\e60b"; } -.icon-buildrun:before { +.ico-buildrun:before { content: "\e607"; } +.ico-stop:before { + content: "\e608"; +} + .ico-close { color: #666; } diff --git a/static/css/fonts/icomoon.eot b/static/css/fonts/icomoon.eot index 5f57e8cfae0e40eb31a24b371ca584e7a9d0612a..8d8a97e8e6755014f9ecd556809e9d58f7b74ab4 100644 GIT binary patch delta 357 zcmdm>dP0@;gb)LR%0yOkmRI77j!$%Gsefp7U5bH$QHFtmAtgPrxBy5C0Qn6-nj<}@ zGR?Mu={1nw!N9=hl98I2!njV!lYxQ%3{c)I11P}!i17rh5tSOHhyoQ z4#v$gOuFn+j0_G83XBIB7k~^ARuoipU~Kr;z_{RF!)ABR=}b)AY?~i&x3I_@UnKr2 zp5Nvx12+@c=nL*2fDUC~0MU~h1k4$QC+`q2W^|bRLcmCbc?QcaRteSyHYT=Z>`FkV M0gc|QC)mUY0Fj7bTmS$7 delta 352 zcmX@1x2R{P?qYMKBLr!{PaRHDP0P;J4 zG)H<)Wg5qVHOGMb2@DK;8X2jHDU3ZW!3+%iJAm?L89)K%M~t6={0~6BN=9x;h0Gns zOF$z;fP9af{NzN*U*Z}-ehiSWmYY~nz#zo{G*6%f$XCcq%#}MnD&Ey!yYWoNvQwZoFW(Fn(Mh1mv?9aGAD1M0kaQy$@|NlYifMN{KIFZB{ z|38*ukz(e5$G?@|Yq9{7=w@XmIrh!5oKu;YxY##;;cj7((fHswE1uuxD+4zZ*o+J2 zil;#g5IuQ{fH|Yk + diff --git a/static/css/fonts/icomoon.ttf b/static/css/fonts/icomoon.ttf index 487a84c6c7f1ad4eeddea9f28fcea77b399527ed..aceb5d058c53357ea0164910ebd7774901f5fb3f 100644 GIT binary patch delta 341 zcmeBCS)wvQq5h%Obtwi0Mi~YMhLrTg;sPKo0OU6SX^!-q$~4;srq@7z2Ll72OGav9 z3gbE@PX-45GeCK>44?q>BgQX4Ei6F3N=9x;h1?w`As}A^$oI*~PfnCLA>#(*mjL-1 zxrr484AKn8fc!Z?zCvDNu4HPsY6L(bG1^`(CKnN0I zWKej<{Xy|V^oQgB|Nj3EQUnxXKoVj6|5%EJ|2_XUes7=-#?2Lsy6jSn3=Rwmj0YGO zfD92<6jXFzZ1~r}xZq#I=EWS-nV7iQHrsHwu*e)=B>pO%-{va=HxtNoclQQ$jp7s+>@j-GnqScPcwPlwoYQOF%$c+)|6(Nrg@NL zf{i4lRHrCX{bMPT_UBNfKSWCrX~F&(P+J9sf(3>2$Ea9}qNZRiBHr;^=iFp&Yg!T9 z_wK#dUVE*z*Z%fvolA%J?-wMH1}+FcuE)8&Svq{z)Qk}1pzj!Gr(vEres1Xkc&E^Q znDcMve?5G1=~3qW0&SM%oI82;u}8prQ;5tbIqzAq{&ecZ5_EEd=x=kT7wZR4feGFs z+U&=;{X6>GsdE=EgLe__J2{WNWeuENKF)G$Xm8~___Hnh&n;cXxVd-GuEu#pymo%+ z+zBD_@PQUMe{Sf7zg$>;6t)I|b$F`q>BZU0*B+83_9zVWY(4RGM!+oF#{ z8^0fx*}rCA&VIUQBNn<*kRa$~W9tbMV@5k;S2q3mc%CIjHr}VJv?e|;jtfzk3Ce+K zMeP;{Q_fmwYNH$VDQcK96Jaxq>S2#+@1rId@h@scwRRN$_7Pa1TI~w8TQL=|VYU=r zHChqfGi|h^G?CsxElDJ~Idd10k*;Qenc8mU#G-1aW!cKu+ETPZ-3_vpG}72=55%N4 zj=H@vMWnQTVPeY=(a@F&qBW&WX9q07#*TMq6r{A?(SbqkDC|mlZiQvnbKOiPGm*(= ze9v*EoYjtjXKFsr;@=ndmZn{}Z@8tXZNMJ$CTj6xHb(9E?8QK=Dy zQI>+nTo74e;Y|C?!cVza`{%+MT4zBmoS}85&n(2nTKDm|i-i`>+-!`f6%SHN#+YN% zftg5#s;(`ZXrG`qiiNe9-Vm^JqMbBib|>byV>a)Vcn)h~n-CM>B$=kp5>FvCrNFT1 z43&!I3XM@z#`^B1x!Gn&|9IARm2{PH+m=_rRIa_#meRicS(}&A zPCamiKIKr&dF05c2R!8{=~>TV^+;LsmM6gwMs#p?)_`SBltc?B;~sIpco2xz>KZPL zQjN!*q(&Gtu(cX7w`7XtV2pOrOgn;OVIr|3NOXe27;W}Og?6lOH^Nq_)tE~PLr-_t zy*zdstvK4`y}QlV&1Jcwu<**WY}-+*%CT+BQ&PI>zU~{wmr~L&X(dzUnn_9QjbQ@M zH@}(Ab&hp9i_@JPt;W`Jx!87fW~K^oTy=+XPy;3hq>Fl0N#&dFy7588G*x4|yPhQM zGZM!{l~!q0;OrLCbc{OPHCkO;L!TwiLg3r9jwTNmp{|!1szyreutJ zw`GyG`2=SjH>~~+KcmTg>48}AAsT5Ou-fdxU<@{Xi7KiXEd<(0wH%7DE zgBaL{O{T-`)JVWZsc}&@8E9P$rg;Gv(snZnCMiq0SfTO^13g6(3A8N9TXilr1<6FW zl!17VEJtvC#0c0YHgGmWv*_j>H}5gZ<1x@_InWpy-tPIkbb2_QE<42m(&YJBV`nVe zs#zA+B!fk8o&ow3mi4Ce<&Y%%S2RLcfjqF%Cg=MODUt&gE@rb!+hqKD{T4fA09e7FAwBP>& z@s+vhZ%keLe|UHEskA@jZtOU&VeGG`#1dVmv*K2MNBIhfpPP_(4sQ_bBm8;qBsE_H z{GKLtPo9N zw|=Cs`7yzQnWA`-CYc=vBok8vZe-R^jvf5Q*id(^gK#QHQzsp`j!$&kgY1I#oPCam zns9!Q_SN>$ZFJYA(VdTtUg3M>E6n8-6Wu2>WskMV^_;;JJxNsQsbj7(rEAb;LlvrF zK6oXCqF3luF(r;-HHszCV{EFmFe4GW$(P^hX=ZQ1e_CzP^HGf+o`k!p2UqwVe4!p;Lz^fum zhj!Hqg0YWaM=U#8t9#oLr?z?Z+GJ1mChYia=q7|L7cZO8A&{nN%acY-4)+K^6{Q$($1oz^|tfpN#KdL7qPQ0CB2ur&s?X- zJqkWjuX4NZ_bjj_giec2CY{3e!F?8|*Pjpm_+WPTd&1{KCBz#CuD!Nd_r8Ak8$aoe z_4qqDIfQY!`Q^!qczly8DY=v05+khMmph=3A)iIYm$~4!Kz<6j+M~IhBoE(SW8#P6 zZ7S3K^bY;q`kwtw`#Jd|HKR36MScIx}lmFh|7$4u{UcH8E_K6Ezk#g zv<-T^M@!K6^k^l@XeII*Bh2(@Pt4*Q8ejX;1&3`WbYe516PpR0*i7ieW66@u)Z*x2j@?m=x1!^~sz*zI<+Z`TPf&;7Inh@2BR*6n+RYh#si}a}2xzC0L zY1(~0$LF4V?z!ild)_(sb?&ID+EG)pgOJkq$zp=7w1?yW)t;=XDntIi2wCzK2iIS( ze6eHKn)QS%y@vePII!<6?B3V1r zM>*KS!Cj5WL>}rV6&#BHZu@6ri@S>u`#soyio-*n*#6S8rwjGjU%>tX3zqF9&OI&l z$a{?t+cpl*uQ>5_tEZ-FG95Bvt{Hy)Kz-#efK|D_WhM>Hf;Lw zlTSVK-19FNv={!`*S4=~U%$3}+oNkOw2o8jIr;%d8#sD|qenT~$k8T_ws7>5_Nuk( z*CBd@Q%`Orq{ya_d&n|wcnMjEC-*H|l`UbrRKQm!(FkEvrLKLEkE=MFyf)Io1PvOD^8i_S>ND(<40(?|SlGyGS!4%)x zO_7P>$P7s`@)a(D8Y1k)3mXBdDTEYc%W?=uP*9U~33Wk~!DZ?ISKK|wcJ8F}XG*%l zSBz@7HhcG7s)kifK|sr5Qe2K%Prs6olWGDI%t!#7GZR1|5l-q!EukkOaeQKW6d|JP zEE3uAHpNv7T6JBIMERz|Xo$@I_$(b87>}I-Zc%RoA#tV{T*-+ z4)t|-u(kIdLTRI#+Ia{FVAfPkmzURGoSm(jrsnP{VYa-swtTj#3XB?~2B;Caxk8wp zMme(vrl-qiFJ7c3sTIo0r>l^IQqxtlv(!Fe)CeeV>8q@)y*M*NjSoPWsjRK7oVlY7 zE(^CO&CFb^t*oSG;^I8@l{2W`KBxUjFjpBXX>ZaCfdK32S@XHE%2;J?fUR4D@g{(# zc(9`4>SH%fqhXw-RP4+TlrMZeGdsC1|uuGR{A_1x1B(u*|%xw_NDWI*;(E+Ut z4$mzII6~n>N2V3n#t9+5+k61xZy8I0MkWMvIZz+?dlVlFJVg~>GBAYx+yHb4l1XKV z1^!HxA^(66-3atE6Lnt#>H%N3=3(RJ6xBSb?ljH_0!>3|SWB~U1G#D6um_mgY)%O; z!C}LF8GYrZUxHALPAv4U0*+a|!#HOD5)C&#M$aQqyYbE37NI56Fz_lgfveBmy}zxi zPT9pi#qc>AO(jyv)RF!%$ifjZ;Y;`vt zcpD)G7*HAvgriz4GMG#bB-pVdG;{RmP<&wMXnzLAVXFJIGsDah^NQdMw{@xxwK?07 zQ%|ee(eUZ;M0=(=%H7y+0bbK@Qz>wJg^83b?se|Ee zs15h22c*3%9bVSz3G^sRpBO*f?f3e6lf8YC?C+JasUckgIMaZyog9~=k!WNfscB5p z2k5AhO_&A^-G#eW|E`Qn}M+- z!{dWlu_e>xeSfUF(sz3SmOl5CTUEI zX;Gc!I*DC z_yH;_k|N8@HR^Vcx~Ob**@3vvnd_n`hQh1~H+5E|V5wowt|8}{I7Rgmo>iwS>pnS3 zF;>t37CeyijpV3h7_e9qZul&XKqMRqvk_-*D0qhIT13N)c(OB_?L0~Gys*p81c!3Y z5sG3c%+AKBxwTfP2gd}w0dGu9Ac6@8)I+_)Q4g34ij9@RwyPg~LI($7)IaDS>;k`^ zZGU|G6`H60e&`(ZvyV1!dyMAkLH`I04zdrgeE2xc)A_l~Zn*y@R2Yj-o%;A$<6*;o zs)ZgmRtaD=1~-?}0%?AXuV{fgcZXXImPljHIf>Z297i zu#d-zN6El})2eyhxQtAPl|3dd12`~iZZ)a|Pytlc|H7fYb&fj6E8ge91qY)ClLrUd zQk^4g|9(6uUe2sS$9->=GXssnvY}(uiiD$R4W>XWGAh+z;%=7sd{unXk{wy`-zSSq878 z6T(r;3z!kvX`te0PuiRE9`PhQ;^=y719IW2!1mvsFXIcu=TFd%peNux?Dh6|#7;gx zfA`R34L8c5fzJ=!nUCwoItM%{Z|ZP5kO}hn)*+uGjlb|36+MwNT>CgT;w@_F9mFy4j=2R}ud;|GV`+4eE- ziQp+dKkpLU(jAvz&be*U6wvso)QPdNY<7J3G`eK!?zqXDtfEH?7qPwcba1>o>mF-Q zwZ>Z*&gU+{u*$o{ZWK)kh6_txk%`zWq8Qo2>)20F&{Z@-#cQ3SvCUVhs-aFTq)8Z3 z49q1I`eZQ_5=Bwz!)W>;&^`!ip;!o$CiLSKXGsITU`1RR%JTFajmF|yKSp-|Xg^@W z6r-4!q0iE078z*)KBs^|#Y2lnF00|8CabD~^#vo2!5RuUzz21Vy+WXevD9f{jCW>K z_hO)@3#Ns{AUEwM272%=(|8WJV^ACo8bQB8LQO~sDISW3*wx2qEEMUB^hSEMJ~R;T zYRl&m0xVrjit&mZB@}P{KeO$}JNx#+|14QSg4mzmZ2S}BuJ!~WGw<21-NMIq&H93{ z%^NSX=pw}URY8^`=A+B;M$W%Wmf;1xnD85V+4Y6jm&}yUyfpLPt#5AK!ZCt8a(&S} zp6%9W50pGmT>5qCo25?|G+Bc4kd4@IcB!=rvOj$P_p4tm{n0F0!c8D#dSm(J|Nh^) zhD%?=K0_Pw4XxvQ!LJ9ak9huWIB%IXP(Xap_6d2AOV5KRkbVuJ83Da(jmh|5R-i3e zLU!KPW+#({b!^1WRU+_7cCx)d7b9I!pi7XhEzp$QkG;J70{qHZU!WJ04P+npQOP3Y zaGiNNuQN~Qb>`{3&ODvhnWq=v+)ahKd7VwD*F{pHxk(vH)Z-$2i9N)P|8>aQOFW2wYAx|h!Hm`1 KUp&J8Px}vU7B4jb diff --git a/static/js/editor.js b/static/js/editor.js index cc43e1b..ea410a5 100644 --- a/static/js/editor.js +++ b/static/js/editor.js @@ -35,7 +35,7 @@ var editors = { wide.curNode = undefined; wide.curEditor = undefined; - $(".ico-fullscreen").hide(); + $(".toolbars").hide(); return false; } @@ -207,7 +207,7 @@ var editors = { }, // 新建一个编辑器 Tab,如果已经存在 Tab 则切换到该 Tab. newEditor: function (data) { - $(".ico-fullscreen").show(); + $(".toolbars").show(); var id = wide.curNode.tId; // 光标位置 diff --git a/static/js/wide.js b/static/js/wide.js index 3dc71f7..fd6791e 100644 --- a/static/js/wide.js +++ b/static/js/wide.js @@ -1,93 +1,29 @@ -var outputWS = new WebSocket(config.channel.output + '/output/ws?sid=' + config.wideSessionId); -outputWS.onopen = function() { - console.log('[output onopen] connected'); -}; - -outputWS.onmessage = function(e) { - console.log('[output onmessage]' + e.data); - var data = JSON.parse(e.data); - - if (goLintFound) { - goLintFound = []; - } - - if ('run' === data.nextCmd) { - var request = newWideRequest(); - request.executable = data.executable; - - $.ajax({ - type: 'POST', - url: '/run', - data: JSON.stringify(request), - dataType: "json", - beforeSend: function(data) { - $('.bottom-window-group .output').text(''); - }, - success: function(data) { - - } - }); - } - - if ('run' === data.cmd) { // 正在运行 - $('.bottom-window-group .output').text($('.bottom-window-group .output').text() + data.output); - } else if ('run-done' === data.cmd) { // 运行结束 - // TODO: 运行结束后修改 [构建&运行] 图标状态为可用状态 - } else if ('build' === data.cmd || 'go install' === data.cmd) { - $('.bottom-window-group .output').text(data.output); - - if (0 !== data.output.length) { // 说明编译有错误输出 - for (var i = 0; i < data.lints.length; i++) { - var lint = data.lints[i]; - - goLintFound.push({from: CodeMirror.Pos(lint.lineNo, 0), - to: CodeMirror.Pos(lint.lineNo, 0), - message: lint.msg, severity: lint.severity}); - } - - // TODO: 修改 [构建&运行] 图标状态为可用状态 - } - - // 触发一次 gutter lint - CodeMirror.signal(wide.curEditor, "change", wide.curEditor); - } else if ('go get' === data.cmd || 'go install' === data.cmd) { - $('.bottom-window-group .output').text($('.bottom-window-group .output').text() + data.output); - } -}; -outputWS.onclose = function(e) { - console.log('[output onclose] disconnected (' + e.code + ')'); - delete outputWS; -}; -outputWS.onerror = function(e) { - console.log('[output onerror] ' + e); -}; - var wide = { curNode: undefined, curEditor: undefined, bottomWindowTab: undefined, - _initDialog: function() { + _initDialog: function () { $("#dialogAlert").dialog({ "height": 26, "width": 260, "title": config.label.tip, "hiddenOk": true, "cancelText": config.label.confirm, - "afterOpen": function(msg) { + "afterOpen": function (msg) { $("#dialogAlert").html(msg); } }); - + $("#dialogRemoveConfirm").dialog({ "height": 26, "width": 260, "title": config.label.delete, "okText": config.label.delete, "cancelText": config.label.cancel, - "afterOpen": function() { + "afterOpen": function () { $("#dialogRemoveConfirm > b").html('"' + wide.curNode.name + '"'); }, - "ok": function() { + "ok": function () { var request = newWideRequest(); request.path = wide.curNode.path; @@ -96,7 +32,7 @@ var wide = { url: '/file/remove', data: JSON.stringify(request), dataType: "json", - success: function(data) { + success: function (data) { if (!data.succ) { return false; } @@ -126,9 +62,9 @@ var wide = { } }); - $(".dialog-prompt > input").keydown(function(event) { + $(".dialog-prompt > input").keydown(function (event) { $(".dialog-prompt > .tip").text(''); - + if (event.which === 13) { $(this).closest(".dialog-main").find(".dialog-footer > button:eq(0)").click(); } @@ -140,10 +76,10 @@ var wide = { "title": config.label.create_file, "okText": config.label.create, "cancelText": config.label.cancel, - "afterOpen": function() { + "afterOpen": function () { $("#dialogNewFilePrompt > input").val('').focus(); }, - "ok": function() { + "ok": function () { var request = newWideRequest(), name = $("#dialogNewFilePrompt > input").val(); if ($.trim(name) === "") { @@ -159,7 +95,7 @@ var wide = { url: '/file/new', data: JSON.stringify(request), dataType: "json", - success: function(data) { + success: function (data) { if (!data.succ) { return false; } @@ -216,10 +152,10 @@ var wide = { "title": config.label.create_dir, "okText": config.label.create, "cancelText": config.label.cancel, - "afterOpen": function() { + "afterOpen": function () { $("#dialogNewDirPrompt > input").val('').focus(); }, - "ok": function() { + "ok": function () { var name = $("#dialogNewDirPrompt > input").val(), request = newWideRequest(); if ($.trim(name) === "") { @@ -234,7 +170,7 @@ var wide = { url: '/file/new', data: JSON.stringify(request), dataType: "json", - success: function(data) { + success: function (data) { if (!data.succ) { return false; } @@ -257,10 +193,10 @@ var wide = { "title": config.label.goto_line, "okText": config.label.goto, "cancelText": config.label.cancel, - "afterOpen": function() { + "afterOpen": function () { $("#dialogGoLinePrompt > input").val('').focus(); }, - "ok": function() { + "ok": function () { var line = parseInt($("#dialogGoLinePrompt > input").val()); if ($.trim(line) === "") { $("#dialogGoLinePrompt > .tip").text(config.label.input_no_empty); @@ -272,26 +208,93 @@ var wide = { } }); }, - _initLayout: function() { + _initLayout: function () { var mainH = $(window).height() - $(".menu").height() - $(".footer").height() - 2; $(".content, .ztree").height(mainH); $(".edit-panel").height(mainH - $(".bottom-window-group").height()); }, - _initBottomWindowGroup: function() { + _initBottomWindowGroup: function () { this.bottomWindowTab = new Tabs({ id: ".bottom-window-group", - clickAfter: function(id) { + clickAfter: function (id) { this._$tabsPanel.find("." + id).focus(); } }); }, - init: function() { + _initWS: function () { + var outputWS = new WebSocket(config.channel.output + '/output/ws?sid=' + config.wideSessionId); + outputWS.onopen = function () { + console.log('[output onopen] connected'); + }; + + outputWS.onmessage = function (e) { + console.log('[output onmessage]' + e.data); + var data = JSON.parse(e.data); + + if (goLintFound) { + goLintFound = []; + } + + if ('run' === data.nextCmd) { + var request = newWideRequest(); + request.executable = data.executable; + + $.ajax({ + type: 'POST', + url: '/run', + data: JSON.stringify(request), + dataType: "json", + beforeSend: function (data) { + $('.bottom-window-group .output').text(''); + }, + success: function (data) { + + } + }); + } + + if ('run' === data.cmd) { // 正在运行 + $('.bottom-window-group .output').text($('.bottom-window-group .output').text() + data.output); + } else if ('run-done' === data.cmd) { // 运行结束 + // TODO: 运行结束后修改 [构建&运行] 图标状态为可用状态 + } else if ('build' === data.cmd || 'go install' === data.cmd) { + $('.bottom-window-group .output').text(data.output); + + if (0 !== data.output.length) { // 说明编译有错误输出 + for (var i = 0; i < data.lints.length; i++) { + var lint = data.lints[i]; + + goLintFound.push({from: CodeMirror.Pos(lint.lineNo, 0), + to: CodeMirror.Pos(lint.lineNo, 0), + message: lint.msg, severity: lint.severity}); + } + + // TODO: 修改 [构建&运行] 图标状态为可用状态 + } + + // 触发一次 gutter lint + CodeMirror.signal(wide.curEditor, "change", wide.curEditor); + } else if ('go get' === data.cmd || 'go install' === data.cmd) { + $('.bottom-window-group .output').text($('.bottom-window-group .output').text() + data.output); + } + }; + outputWS.onclose = function (e) { + console.log('[output onclose] disconnected (' + e.code + ')'); + delete outputWS; + }; + outputWS.onerror = function (e) { + console.log('[output onerror] ' + e); + }; + }, + init: function () { + this._initWS(); + this._initLayout(); this._initBottomWindowGroup(); - $("body").bind("mousedown", function(event) { + $("body").bind("mousedown", function (event) { if (!(event.target.id === "dirRMenu" || $(event.target).closest("#dirRMenu").length > 0)) { $("#dirRMenu").hide(); } @@ -309,7 +312,7 @@ var wide = { this._initDialog(); }, - _save: function() { + _save: function () { var request = newWideRequest(); request.file = $(".edit-header .current span:eq(0)").attr("title"); request.code = wide.curEditor.getValue(); @@ -319,51 +322,77 @@ var wide = { url: '/file/save', data: JSON.stringify(request), dataType: "json", - success: function(data) { + success: function (data) { } }); }, - saveFile: function() { + saveFile: function () { // 格式化后会对文件进行保存 this.fmt(); }, - saveAllFiles: function() { + saveAllFiles: function () { // TODO: save all open files for (var i = 0, ii = editors.data.length; i < ii; i++) { } console.log("TODO: save all files"); }, - closeFile: function() { + closeFile: function () { // TODO: close file }, - closeAllFiles: function() { + closeAllFiles: function () { // TODO: close all files }, - exit: function() { + exit: function () { // TODO: exit }, + stop: function () { + if ($(".toolbars .ico-buildrun").length === 1) { + wide.run(); + return false; + } + + var request = newWideRequest(); + request.pid = 0; + + $.ajax({ + type: 'POST', + url: '/stop', + data: JSON.stringify(request), + dataType: "json", + beforeSend: function (data) { + $('.bottom-window-group .output').text(''); + }, + success: function (data) { + $(".toolbars .ico-stop").removeClass("ico-stop").addClass("ico-buildrun"); + } + }); + }, // 构建 & 运行. - run: function() { + run: function () { + if ($(".toolbars .ico-stop").length === 1) { + wide.stop(); + return false; + } + var request = newWideRequest(); request.file = $(".edit-header .current span:eq(0)").attr("title"); request.code = wide.curEditor.getValue(); - // TODO: 修改 [构建&运行] 图标状态为不可用状态 - $.ajax({ type: 'POST', url: '/build', data: JSON.stringify(request), dataType: "json", - beforeSend: function(data) { + beforeSend: function (data) { $('.bottom-window-group .output').text(''); }, - success: function(data) { + success: function (data) { + $(".toolbars .ico-buildrun").addClass("ico-stop").removeClass("ico-buildrun"); } }); }, - goget: function() { + goget: function () { var request = newWideRequest(); request.file = $(".edit-header .current span:eq(0)").attr("title"); @@ -372,14 +401,14 @@ var wide = { url: '/go/get', data: JSON.stringify(request), dataType: "json", - beforeSend: function(data) { + beforeSend: function (data) { $('.bottom-window-group .output').text(''); }, - success: function(data) { + success: function (data) { } }); }, - goinstall: function() { + goinstall: function () { var request = newWideRequest(); request.file = $(".edit-header .current span:eq(0)").attr("title"); request.code = wide.curEditor.getValue(); @@ -389,14 +418,14 @@ var wide = { url: '/go/install', data: JSON.stringify(request), dataType: "json", - beforeSend: function(data) { + beforeSend: function (data) { $('.bottom-window-group .output').text(''); }, - success: function(data) { + success: function (data) { } }); }, - fmt: function() { + fmt: function () { var path = $(".edit-header .current span:eq(0)").attr("title"); var mode = wide.curEditor.getOption("mode"); @@ -413,7 +442,7 @@ var wide = { url: '/go/fmt', data: JSON.stringify(request), dataType: "json", - success: function(data) { + success: function (data) { if (data.succ) { wide.curEditor.setValue(data.code); } @@ -427,7 +456,7 @@ var wide = { url: '/html/fmt', data: JSON.stringify(request), dataType: "json", - success: function(data) { + success: function (data) { if (data.succ) { wide.curEditor.setValue(data.code); } @@ -456,7 +485,7 @@ var wide = { } }; -$(document).ready(function() { +$(document).ready(function () { wide.init(); tree.init(); menu.init(); diff --git a/view/index.html b/view/index.html index dd6e973..ce82a8b 100644 --- a/view/index.html +++ b/view/index.html @@ -95,11 +95,11 @@ -
- +
+ - +