diff --git a/CHANGELOG.md b/CHANGELOG.md index e93373d4..13004657 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,16 @@ All notable version changes will be recorded in this file. *** +### [v3.10.4] revision + +**Fix**: + - `Task type: 'eide.msys'`: The `env` property does not work. + +**Change**: + - `Task type: 'eide.msys'`: Use `label` property for task title, not `name` + +*** + ### [v3.10.3] revision **New**: diff --git a/package.json b/package.json index 42c6d48b..ae41cdef 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "homepage": "https://em-ide.com", "license": "MIT", "description": "A mcu development environment for 8051/AVR/STM8/Cortex-M/RISC-V", - "version": "3.10.3", + "version": "3.10.4", "preview": false, "engines": { "vscode": "^1.63.0" @@ -1569,14 +1569,18 @@ { "type": "eide.msys", "required": [ - "name", + "label", "command" ], "properties": { - "name": { + "label": { "type": "string", "description": "Task Name. A human-readable name for this task" }, + "name": { + "type": "string", + "description": "**Deprecated !!!** Task Name. A human-readable name for this task" + }, "command": { "type": "string", "description": "Command. A shell command will be executed." diff --git a/res/data/.clang-format b/res/data/.clang-format index f934dcf3..ecc57c4a 100644 --- a/res/data/.clang-format +++ b/res/data/.clang-format @@ -35,4 +35,4 @@ SortIncludes: false AlignConsecutiveMacros: AcrossEmptyLines -#AlignConsecutiveAssignments: AcrossEmptyLines +AlignConsecutiveAssignments: Consecutive diff --git a/res/html/builder_options/js/app.js b/res/html/builder_options/js/app.js index 22e6a5cf..1f2c09e3 100644 --- a/res/html/builder_options/js/app.js +++ b/res/html/builder_options/js/app.js @@ -1,2 +1,2 @@ -(function(t){function e(e){for(var s,o,n=e[0],r=e[1],c=e[2],u=0,p=[];u-1&&e.splice(a,1)}},mounted:function(){var t=this;this.$nextTick((function(){t.value?t.findAndActivateTab(t.value):t.tabs.length>0&&t.activateTab(t.tabs[0])}))},watch:{value:function(t){this.findAndActivateTab(t)}}},x=k,w=Object(p["a"])(x,r,c,!1,null,null,null),S=w.exports,O=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{directives:[{name:"show",rawName:"v-show",value:t.active,expression:"active"}],staticClass:"tab-pane fade",class:{"active show":t.active},attrs:{id:t.id||t.label,"aria-expanded":t.active}},[t._t("default")],2)},A=[],T={name:"tab-pane",props:["label","id","title"],inject:["addTab","removeTab"],data:function(){return{active:!1}},mounted:function(){this.addTab(this)},destroyed:function(){this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el),this.removeTab(this)}},j=T,B=Object(p["a"])(j,O,A,!1,null,null,null),P=B.exports,z=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a(t.tag,{tag:"component",staticClass:"btn",class:t.classes,attrs:{type:"button"===t.tag?t.nativeType:""},on:{click:t.handleClick}},[t.$slots.icon||t.icon&&t.$slots.default?a("span",{staticClass:"btn-inner--icon"},[t._t("icon",[a("i",{class:t.icon})])],2):t._e(),t.$slots.default?t._e():a("i",{class:t.icon}),t.$slots.icon||t.icon&&t.$slots.default?a("span",{staticClass:"btn-inner--text"},[t._t("default",[t._v(" "+t._s(t.text)+" ")])],2):t._e(),t.$slots.icon||t.icon?t._e():t._t("default")],2)},I=[],D=a("ade3"),W={name:"base-button",props:{tag:{type:String,default:"button",description:"Button tag (default -> button)"},type:{type:String,default:"default",description:"Button type (e,g primary, danger etc)"},size:{type:String,default:"",description:"Button size lg|sm"},textColor:{type:String,default:"",description:"Button text color (e.g primary, danger etc)"},nativeType:{type:String,default:"button",description:"Button native type (e.g submit,button etc)"},icon:{type:String,default:"",description:"Button icon"},text:{type:String,default:"",description:"Button text in case not provided via default slot"},outline:{type:Boolean,default:!1,description:"Whether button style is outline"},rounded:{type:Boolean,default:!1,description:"Whether button style is rounded"},iconOnly:{type:Boolean,default:!1,description:"Whether button contains only an icon"},block:{type:Boolean,default:!1,description:"Whether button is of block type"}},computed:{classes:function(){var t=[{"btn-block":this.block},{"rounded-circle":this.rounded},{"btn-icon-only":this.iconOnly},Object(D["a"])({},"text-".concat(this.textColor),this.textColor),{"btn-icon":this.icon||this.$slots.icon},this.type&&!this.outline?"btn-".concat(this.type):"",this.outline?"btn-outline-".concat(this.type):""];return this.size&&t.push("btn-".concat(this.size)),t}},methods:{handleClick:function(t){this.$emit("click",t)}}},E=W,N=Object(p["a"])(E,z,I,!1,null,null,null),M=N.exports,H=function(){var t,e,a,s=this,i=s.$createElement,l=s._self._c||i;return l("div",{staticClass:"card",class:[{"card-lift--hover":s.hover},{shadow:s.shadow},(t={},t["shadow-"+s.shadowSize]=s.shadowSize,t),(e={},e["bg-gradient-"+s.gradient]=s.gradient,e),(a={},a["bg-"+s.type]=s.type,a)]},[s.$slots.header?l("div",{staticClass:"card-header",class:s.headerClasses},[s._t("header")],2):s._e(),s.noBody?s._e():l("div",{staticClass:"card-body",class:s.bodyClasses},[s._t("default")],2),s.noBody?s._t("default"):s._e(),s.$slots.footer?l("div",{staticClass:"card-footer",class:s.footerClasses},[s._t("footer")],2):s._e()],2)},L=[],F={name:"card",props:{type:{type:String,description:"Card type"},gradient:{type:String,description:"Card background gradient type (warning,danger etc)"},hover:{type:Boolean,description:"Whether card should move on hover"},shadow:{type:Boolean,description:"Whether card has shadow"},shadowSize:{type:String,description:"Card shadow size"},noBody:{type:Boolean,default:!1,description:"Whether card should have wrapper body class"},bodyClasses:{type:[String,Object,Array],description:"Card body css classes"},headerClasses:{type:[String,Object,Array],description:"Card header css classes"},footerClasses:{type:[String,Object,Array],description:"Card footer css classes"}}},R=F,q=Object(p["a"])(R,H,L,!1,null,null,null),U=q.exports,V=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("SlideYUpTransition",{attrs:{duration:t.animationDuration}},[a("div",{directives:[{name:"show",rawName:"v-show",value:t.show,expression:"show"}],staticClass:"modal fade",class:[{"show d-block":t.show},{"d-none":!t.show},{"modal-mini":"mini"===t.type}],attrs:{tabindex:"-1",role:"dialog","aria-hidden":!t.show},on:{click:function(e){return e.target!==e.currentTarget?null:t.closeModal(e)}}},[a("div",{staticClass:"modal-dialog modal-dialog-centered",class:[{"modal-notice":"notice"===t.type},t.modalClasses]},[a("div",{staticClass:"modal-content",class:[t.gradient?"bg-gradient-"+t.gradient:"",t.modalContentClasses]},[t.$slots.header?a("div",{staticClass:"modal-header",class:[t.headerClasses]},[t._t("header"),t._t("close-button",[t.showClose?a("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"modal","aria-label":"Close"},on:{click:t.closeModal}},[a("span",{attrs:{"aria-hidden":!t.show}},[t._v("×")])]):t._e()])],2):t._e(),a("div",{staticClass:"modal-body",class:t.bodyClasses},[t._t("default")],2),t.$slots.footer?a("div",{staticClass:"modal-footer",class:t.footerClasses},[t._t("footer")],2):t._e()])])])])},J=[],Y=(a("a9e3"),a("7c76")),G={name:"modal",components:{SlideYUpTransition:Y["b"]},props:{show:Boolean,showClose:{type:Boolean,default:!0},type:{type:String,default:"",validator:function(t){var e=["","notice","mini"];return-1!==e.indexOf(t)},description:'Modal type (notice|mini|"") '},modalClasses:{type:[Object,String],description:"Modal dialog css classes"},modalContentClasses:{type:[Object,String],description:"Modal dialog content css classes"},gradient:{type:String,description:"Modal gradient type (danger, primary etc)"},headerClasses:{type:[Object,String],description:"Modal Header css classes"},bodyClasses:{type:[Object,String],description:"Modal Body css classes"},footerClasses:{type:[Object,String],description:"Modal Footer css classes"},animationDuration:{type:Number,default:500,description:"Modal transition duration"}},methods:{closeModal:function(){this.$emit("update:show",!1),this.$emit("close")}},watch:{show:function(t){var e=document.body.classList;t?e.add("modal-open"):e.remove("modal-open")}}},K=G,Z=(a("22d7"),Object(p["a"])(K,V,J,!1,null,null,null)),Q=Z.exports,X=(a("cd74"),{lang:"default",strs:{default:{title:"Builder Options","title.task":"User Task","title.global":"Global Options","title.c/c++":"C/C++ Compiler","title.asmber":"Assembler","title.linker":"Linker","title.task.prebuild":"Prebuild Task","title.task.posbuild":"Post Build Task","title.task.name":"Task Name","title.task.command":"Command","title.task.options":"Options","title.task.env.name":"Variable Name","title.task.env.desc":"Description/Value","prompt.task.prebuild":"Run some shell task before build","prompt.task.posbuild":"Run some shell task after build done","prompt.task.name":"A Human-Readable Name","prompt.task.command":"Shell Command","prompt.task.disable":"Disable this command","prompt.task.aif":"Whether to skip subsequent commands if this command is failed","prompt.task.sbif":"Whether to stop building directly when this command is failed","placeholder.task.command":"Input shell commands","title.btn.add":"Add","title.btn.del":"Delete","title.btn.save":"Save All","title.btn.open.config":"Open Config","title.btn.variables":"Variables"},"zh-cn":{title:"构建器选项","title.task":"用户任务","title.global":"全局选项","title.c/c++":"C/C++ 编译器","title.asmber":"汇编器","title.linker":"链接器","title.task.prebuild":"构建前任务","title.task.posbuild":"构建后任务","title.task.name":"任务名称","title.task.command":"命令","title.task.options":"选项","title.task.env.name":"变量名","title.task.env.desc":"描述/值","prompt.task.prebuild":"指定一些任务,将在构建开始前运行","prompt.task.posbuild":"指定一些任务,将在构建完成后运行","prompt.task.name":"用于显示的只读名称","prompt.task.command":"Shell 命令行","prompt.task.disable":"禁用该任务","prompt.task.aif":"如果失败,则跳过后续命令","prompt.task.sbif":"如果失败,则停止构建","placeholder.task.command":"输入 Shell 命令行","title.btn.add":"添加","title.btn.del":"删除","title.btn.save":"全部保存","title.btn.open.config":"打开配置","title.btn.variables":"变量"}},style:{textarea:"font-family: Consolas",input:"min-height: 43px; height: 43px;"},textarea:{autosize:{minRows:2}},dialog:{title:"",msg:"",visible:!1,theme:"success"},location:{tooltip:{title:"top",options:"right"}},prjEnvList:[],contextData:{},task:{before:[],after:[]},global:[],cpp:[],asm:[],linker:[]}),tt={name:"App",components:{Tabs:S,TabPane:P,BaseButton:M,Card:U,Modal:Q},data:function(){return X},mounted:function(){var t=this;s=this,this.$on("save-status",(function(e){t.dialog.title=e.title||t.title,t.dialog.msg=e.msg,t.dialog.theme=e.success?"success":"danger",t.dialog.visible=!0}))},methods:{getInstance:function(){return s},forceUpdate:function(){this.$forceUpdate()},onSave:function(){s.$emit("save-all")},onOpenConfig:function(){s.$emit("open-config")},notify:function(t){s.$notify(t)},message:function(t){s.$message(t)},get_str:function(t){return this.strs[this.lang]&&void 0!==this.strs[this.lang][t]?this.strs[this.lang][t]:this.strs["default"][t]||t},query_input_auto_complete_list:function(t,e,a){if(this.contextData[a]){var s=this.contextData[a].filter((function(e){return e.includes(t)})).map((function(t){return{value:t}}));e(s)}},add_prebuild_task:function(){this.task.before.push({name:"new prebuild task",disable:!1,abortAfterFailed:!1,stopBuildAfterFailed:!0,command:'echo "project name: ${ProjectName}"'})},delete_prebuild_task:function(t){var e=this.task.before.findIndex((function(e){return e.name==t.name&&e.command==t.command}));-1!=e&&this.task.before.splice(e,1)},add_postbuild_task:function(){this.task.after.push({name:"new postbuild task",disable:!1,abortAfterFailed:!1,command:'echo "firmware: ${OutDir}/${ProjectName}.hex"'})},delete_postbuild_task:function(t){var e=this.task.after.findIndex((function(e){return e.name==t.name&&e.command==t.command}));-1!=e&&this.task.after.splice(e,1)},add_to_list:function(t,e){t.push({value:e})},delete_from_list:function(t,e){var a=t.findIndex((function(t){return t.value==e}));-1!=a&&t.splice(a,1)},get_readable_name:function(t){return t.disable_readable_name?this.to_readable_name(t.name):t.readable_name||t.description||this.to_readable_name(t.name)},to_readable_name:function(t){var e,a=t.replace(/-/g," ").replace(/#/g,"/").replace(/\$/g,""),s="",l="",o=function(t){return t>="a"&&t<="z"},n=function(t){return t>="A"&&t<="Z"},r=Object(i["a"])(a);try{for(r.s();!(e=r.n()).done;){var c=e.value;n(c)&&o(l)&&(s+=" "),s+=c,l=c}}catch(d){r.e(d)}finally{r.f()}return s},get_rows_by_value:function(t){var e=t.length/60+(t.length%60>0);return e||1}}};$((function(){$('[data-toggle="popover"]').popover()})),$((function(){$('[data-toggle="tooltip"]').tooltip()}));var et=tt,at=(a("034f"),Object(p["a"])(et,o,n,!1,null,null,null)),st=at.exports,it=(a("4d1c"),a("d5a0"),a("a4d4"),function(){var t=this,e=t.$createElement,a=t._self._c||e;return a(t.tag,{tag:"component",staticClass:"badge",class:["badge-"+t.type,t.rounded?"badge-pill":"",t.circle&&"badge-circle"]},[t._t("default",[t.icon?a("i",{class:t.icon}):t._e()])],2)}),lt=[],ot={name:"badge",props:{tag:{type:String,default:"span",description:"Html tag to use for the badge."},rounded:{type:Boolean,default:!1,description:"Whether badge is of pill type"},circle:{type:Boolean,default:!1,description:"Whether badge is circle"},icon:{type:String,default:"",description:"Icon name. Will be overwritten by slot if slot is used"},type:{type:String,default:"default",description:"Badge type (primary|info|danger|default|warning|success)"}}},nt=ot,rt=Object(p["a"])(nt,it,lt,!1,null,null,null),ct=rt.exports,dt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("fade-transition",[t.visible?a("div",{staticClass:"alert",class:["alert-"+t.type,{"alert-dismissible":t.dismissible}],attrs:{role:"alert"}},[t.dismissible?[t._t("default",[t.icon?a("span",{staticClass:"alert-inner--icon"},[a("i",{class:t.icon})]):t._e(),t.$slots.text?a("span",{staticClass:"alert-inner--text"},[t._t("text")],2):t._e()]),t._t("dismiss-icon",[a("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"alert","aria-label":"Close"},on:{click:t.dismissAlert}},[a("span",{attrs:{"aria-hidden":"true"}},[t._v("×")])])])]:t._t("default",[t.icon?a("span",{staticClass:"alert-inner--icon"},[a("i",{class:t.icon})]):t._e(),t.$slots.text?a("span",{staticClass:"alert-inner--text"},[t._t("text")],2):t._e()])],2):t._e()])},ut=[],pt={name:"base-alert",components:{FadeTransition:Y["a"]},props:{type:{type:String,default:"default",description:"Alert type"},icon:{type:String,default:"",description:"Alert icon. Will be overwritten by default slot"},dismissible:{type:Boolean,default:!1,description:"Whether alert is closes when clicking"}},data:function(){return{visible:!0}},methods:{dismissAlert:function(){this.visible=!1}}},mt=pt,vt=Object(p["a"])(mt,dt,ut,!1,null,null,null),bt=vt.exports,ft=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"custom-control custom-checkbox",class:[{disabled:t.disabled},t.inlineClass]},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],staticClass:"custom-control-input",attrs:{id:t.cbId,type:"checkbox",disabled:t.disabled},domProps:{checked:Array.isArray(t.model)?t._i(t.model,null)>-1:t.model},on:{change:function(e){var a=t.model,s=e.target,i=!!s.checked;if(Array.isArray(a)){var l=null,o=t._i(a,l);s.checked?o<0&&(t.model=a.concat([l])):o>-1&&(t.model=a.slice(0,o).concat(a.slice(o+1)))}else t.model=i}}}),a("label",{staticClass:"custom-control-label",attrs:{for:t.cbId}},[t._t("default",[t.inline?a("span"):t._e()])],2)])},gt=[];function ht(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:7,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",a="",s=0;s0?this.pageCount:this.total>0?Math.ceil(this.total/this.perPage):1},pagesToDisplay:function(){return this.totalPages>0&&this.totalPages=this.pagesToDisplay){var t=Math.floor(this.pagesToDisplay/2),e=t+this.value;return e>this.totalPages?this.totalPages-this.pagesToDisplay+1:this.value-t}return 1},maxPage:function(){if(this.value>=this.pagesToDisplay){var t=Math.floor(this.pagesToDisplay/2),e=t+this.value;return e1&&this.$emit("input",this.value-1)}},watch:{perPage:function(){this.$emit("input",1)},total:function(){this.$emit("input",1)}}},zt=Pt,It=Object(p["a"])(zt,jt,Bt,!1,null,null,null),Dt=It.exports,Wt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"progress-wrapper"},[a("div",{class:"progress-"+t.type},[a("div",{staticClass:"progress-label"},[t._t("label",[a("span",[t._v(t._s(t.label))])])],2),a("div",{staticClass:"progress-percentage"},[t._t("default",[a("span",[t._v(t._s(t.value)+"%")])])],2)]),a("div",{staticClass:"progress",style:"height: "+t.height+"px"},[a("div",{staticClass:"progress-bar",class:t.computedClasses,style:"width: "+t.value+"%;",attrs:{role:"progressbar","aria-valuenow":t.value,"aria-valuemin":"0","aria-valuemax":"100"}})])])},Et=[],Nt={name:"base-progress",props:{striped:{type:Boolean,description:"Whether progress is striped"},animated:{type:Boolean,description:"Whether progress is animated (works only with `striped` prop together)"},label:{type:String,description:"Progress label (shown on the left above progress)"},height:{type:Number,default:8,description:"Progress line height"},type:{type:String,default:"default",description:"Progress type (e.g danger, primary etc)"},value:{type:Number,default:0,validator:function(t){return t>=0&&t<=100},description:"Progress value"}},computed:{computedClasses:function(){return[{"progress-bar-striped":this.striped},{"progress-bar-animated":this.animated},Object(D["a"])({},"bg-".concat(this.type),this.type)]}}},Mt=Nt,Ht=Object(p["a"])(Mt,Wt,Et,!1,null,null,null),Lt=Ht.exports,Ft=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"custom-control custom-radio",class:[t.inlineClass,{disabled:t.disabled}]},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],staticClass:"custom-control-input",attrs:{id:t.cbId,type:"radio",disabled:t.disabled},domProps:{value:t.name,checked:t._q(t.model,t.name)},on:{change:function(e){t.model=t.name}}}),a("label",{staticClass:"custom-control-label",attrs:{for:t.cbId}},[t._t("default")],2)])},Rt=[],qt={name:"base-radio",props:{name:{type:[String,Number],description:"Radio label"},disabled:{type:Boolean,description:"Whether radio is disabled"},value:{type:[String,Boolean],description:"Radio value"},inline:{type:Boolean,description:"Whether radio is inline"}},data:function(){return{cbId:""}},computed:{model:{get:function(){return this.value},set:function(t){this.$emit("input",t)}},inlineClass:function(){return this.inline?"form-check-inline":""}},mounted:function(){this.cbId=ht()}},Ut=qt,Vt=Object(p["a"])(Ut,Ft,Rt,!1,null,null,null),Jt=Vt.exports,Yt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"input-slider-container"},[a("div",{ref:"slider",staticClass:"input-slider",class:["slider-"+t.type],attrs:{disabled:t.disabled}})])},Gt=[],Kt=a("e9fa"),Zt=a.n(Kt),Qt={name:"base-slider",props:{value:{type:[String,Array,Number],description:"Slider value"},disabled:{type:Boolean,description:"Whether slider is disabled"},range:{type:Object,default:function(){return{min:0,max:100}},description:"Slider range (defaults to 0-100)"},type:{type:String,default:"",description:"Slider type (e.g primary, danger etc)"},options:{type:Object,default:function(){return{}},description:"noUiSlider options"}},computed:{connect:function(){return Array.isArray(this.value)||[!0,!1]}},data:function(){return{slider:null}},methods:{createSlider:function(){var t=this;Zt.a.create(this.$refs.slider,Object($t["a"])({start:this.value,connect:this.connect,range:this.range},this.options));var e=this.$refs.slider.noUiSlider;e.on("slide",(function(){var a=e.get();a!==t.value&&t.$emit("input",a)}))}},mounted:function(){this.createSlider()},watch:{value:function(t,e){var a=this.$refs.slider.noUiSlider,s=a.get();t!==e&&s!==t&&(Array.isArray(s)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,a){return e===t[a]}))&&a.set(t):a.set(t))}}},Xt=Qt,te=Object(p["a"])(Xt,Yt,Gt,!1,null,null,null),ee=te.exports,ae=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("label",{staticClass:"custom-toggle"},[a("input",t._g(t._b({directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(t.model)?t._i(t.model,null)>-1:t.model},on:{change:function(e){var a=t.model,s=e.target,i=!!s.checked;if(Array.isArray(a)){var l=null,o=t._i(a,l);s.checked?o<0&&(t.model=a.concat([l])):o>-1&&(t.model=a.slice(0,o).concat(a.slice(o+1)))}else t.model=i}}},"input",t.$attrs,!1),t.$listeners)),a("span",{staticClass:"custom-toggle-slider rounded-circle"})])},se=[],ie={name:"base-switch",inheritAttrs:!1,props:{value:{type:Boolean,default:!1,description:"Switch value"}},computed:{model:{get:function(){return this.value},set:function(t){this.$emit("input",t)}}}},le=ie,oe=Object(p["a"])(le,ae,se,!1,null,null,null),ne=oe.exports,re=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"icon icon-shape",class:[t.size&&"icon-"+t.size,t.type&&"icon-shape-"+t.type,t.gradient&&"bg-gradient-"+t.gradient,t.shadow&&"shadow",t.rounded&&"rounded-circle",t.color&&"text-"+t.color]},[t._t("default",[a("i",{class:t.name})])],2)},ce=[],de={name:"icon",props:{name:{type:String,default:"",description:"Icon name"},size:{type:String,default:"",description:"Icon size"},type:{type:String,default:"",description:"Icon type (primary, warning etc)"},gradient:{type:String,default:"",description:"Icon gradient type (primary, warning etc)"},color:{type:String,default:"",description:"Icon color (primary, warning etc)"},shadow:{type:Boolean,default:!1,description:"Whether icon has shadow"},rounded:{type:Boolean,default:!1,description:"Whether icon is rounded"}}},ue=de,pe=Object(p["a"])(ue,re,ce,!1,null,null,null),me=pe.exports,ve={install:function(t){t.component(ct.name,ct),t.component(bt.name,bt),t.component(M.name,M),t.component(Tt.name,Tt),t.component(kt.name,kt),t.component(Dt.name,Dt),t.component(Lt.name,Lt),t.component(Jt.name,Jt),t.component(ee.name,ee),t.component(ne.name,ne),t.component(U.name,U),t.component(me.name,me)}},be={bind:function(t,e,a){t.clickOutsideEvent=function(s){t==s.target||t.contains(s.target)||a.context[e.expression](s)},document.body.addEventListener("click",t.clickOutsideEvent)},unbind:function(t){document.body.removeEventListener("click",t.clickOutsideEvent)}},fe={install:function(t){t.directive("click-outside",be)}},ge=fe,he=a("caf9"),_e={install:function(t){t.use(ve),t.use(ge),t.use(he["a"])}},ye=a("5c96"),Ce=a.n(ye);a("0fae");l["default"].config.productionTip=!1,l["default"].use(_e),l["default"].use(Ce.a);var ke=void 0,xe=void 0,we=!1,$e=st.data(),Se=acquireVsCodeApi();function Oe(){we||(we=!0,console.log("[builder options view] start init and create page ..."),new l["default"]({render:function(t){return t(st)}}).$mount("#app"),ke=st.methods.getInstance(),ke.$on("save-all",(function(){return Te()})),ke.$on("open-config",(function(){return Se.postMessage("open-config")})),console.log("[builder options view] app inited done !"))}function Ae(t){st.methods.notify({type:t.success?"success":"error",title:t.success?"Success":"Failed",message:t.msg,position:"bottom-right"})}function Te(){if(ke){console.log("[builder options view] start post data ...");var t={before:"beforeBuildTasks",after:"afterBuildTasks"};for(var e in t){var a=ke.task[e];xe[t[e]]=a}var s={global:"global",cpp:"c/cpp-compiler",asm:"asm-compiler",linker:"linker"};for(var l in s){var o,n=ke[l],r=xe[s[l]],c=Object(i["a"])(n);try{for(c.s();!(o=c.n()).done;){var d=o.value;switch(d.type){case"array":d.value.length>0?r[d.name]=d.value.map((function(t){return t.value})):delete r[d.name];break;case"bool":d.value?r[d.name]=d.value:delete r[d.name];break;default:"string"==typeof d.value&&""==d.value.trim()?delete r[d.name]:r[d.name]=d.value;break}"string"==typeof r[d.name]&&(r[d.name]=r[d.name].replace(/\r\n|\n/g," ").replace(/\s{2,}/g," ").trim())}}catch(u){c.e(u)}finally{c.f()}}Se.postMessage(xe),console.log("[builder options view] post data done !")}else Ae({success:!1,msg:"App have not inited !"})}function je(t,e){var a,s=e.split("/"),l=t,o=Object(i["a"])(s);try{for(o.s();!(a=o.n()).done;){var n=a.value;if(""!=n){if(void 0==l)break;l=l[n]}}}catch(r){o.e(r)}finally{o.f()}return l}function Be(t,e){if(e["$ref"]){var a=je(t,e["$ref"].replace("#/",""));for(var s in a)void 0===e[s]&&(e[s]=a[s])}return e}function Pe(t){return"huge"==t["size"]?"textarea":"small"==t["size"]?"short_input":Array.isArray(t.type)?"string":t.type}function ze(t,e,a){var s=Pe(t);switch(e.description=t.markdownDescription||t.description,Ie&&t["description.".concat(Ie)]&&(e.description=t["description.".concat(Ie)]),e.disable_readable_name=t.disable_readable_name,e.readable_name=t.readable_name,Ie&&t["readable_name.".concat(Ie)]&&(e.readable_name=t["readable_name.".concat(Ie)]),e.auto_complete_ctx=t["auto_complete_ctx"],s){case"array":e.type=s;break;case"boolean":e.type="bool";break;case"string":t["enum"]?(e.type="enum",e.enums=t["enum"],e.enumDesc=t["enumDescriptions"]||[]):(e.type="input",e.placeHolder=e.description);break;case"short_input":case"textarea":e.type=s,e.placeHolder=e.description;break;default:return console.warn("[builder options view] [warn] not support this type: '".concat(s,"' for field !")),!1}if(a)switch(s){case"array":e.value=(Array.isArray(a)?a:[a]).map((function(t){return{value:t}}));break;case"boolean":e.value=a;break;default:e.value=Array.isArray(a)?a.join(" "):a;break}else"bool"==e.type?e.value=!1:"enum"==e.type?e.value=t.default||"":"array"==e.type?e.value=[]:e.value="";return!0}window.addEventListener("message",(function(t){if(t.data.status){var e={success:t.data.status.success,msg:t.data.status.msg};Ae(e)}else xe=t.data.data,De(t.data.model,xe,t.data.info),Oe()})),document.addEventListener("keydown",(function(t){"s"==t.key.toLowerCase()&&t.ctrlKey&&(t.preventDefault(),Te())})),Se.postMessage("eide.options_view.launched");var Ie=void 0;function De(t,e,a){console.log("[builder options view] start init data ...");var s=t.properties,l={global:"global",cpp:"c/cpp-compiler",asm:"asm-compiler",linker:"linker"};for(var o in a&&(Ie=a.lang,$e.lang=Ie,$e.prjEnvList=a.envList,$e.contextData=a.contextData||{}),l){var n=s[l[o]].properties,r=e[l[o]],c=$e[o];for(var d in n){var u=Be(t,n[d]),p={name:d};ze(u,p,r[d])&&c.push(p)}}var m={before:"beforeBuildTasks",after:"afterBuildTasks"};for(var v in m){var b=$e.task[v],f=e[m[v]];if(f&&Array.isArray(f)){var g,h=Object(i["a"])(f);try{for(h.s();!(g=h.n()).done;){var _=g.value;b.push(_)}}catch(y){h.e(y)}finally{h.f()}}}console.log("[builder options view] Init data done !")}},"85ec":function(t,e,a){},a4d4:function(t,e,a){},be87:function(t,e,a){},d5a0:function(t,e,a){}}); +(function(t){function e(e){for(var s,o,n=e[0],r=e[1],c=e[2],u=0,p=[];u-1&&e.splice(a,1)}},mounted:function(){var t=this;this.$nextTick((function(){t.value?t.findAndActivateTab(t.value):t.tabs.length>0&&t.activateTab(t.tabs[0])}))},watch:{value:function(t){this.findAndActivateTab(t)}}},x=k,w=Object(p["a"])(x,r,c,!1,null,null,null),S=w.exports,O=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{directives:[{name:"show",rawName:"v-show",value:t.active,expression:"active"}],staticClass:"tab-pane fade",class:{"active show":t.active},attrs:{id:t.id||t.label,"aria-expanded":t.active}},[t._t("default")],2)},A=[],T={name:"tab-pane",props:["label","id","title"],inject:["addTab","removeTab"],data:function(){return{active:!1}},mounted:function(){this.addTab(this)},destroyed:function(){this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el),this.removeTab(this)}},j=T,B=Object(p["a"])(j,O,A,!1,null,null,null),P=B.exports,z=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a(t.tag,{tag:"component",staticClass:"btn",class:t.classes,attrs:{type:"button"===t.tag?t.nativeType:""},on:{click:t.handleClick}},[t.$slots.icon||t.icon&&t.$slots.default?a("span",{staticClass:"btn-inner--icon"},[t._t("icon",[a("i",{class:t.icon})])],2):t._e(),t.$slots.default?t._e():a("i",{class:t.icon}),t.$slots.icon||t.icon&&t.$slots.default?a("span",{staticClass:"btn-inner--text"},[t._t("default",[t._v(" "+t._s(t.text)+" ")])],2):t._e(),t.$slots.icon||t.icon?t._e():t._t("default")],2)},I=[],D=a("ade3"),W={name:"base-button",props:{tag:{type:String,default:"button",description:"Button tag (default -> button)"},type:{type:String,default:"default",description:"Button type (e,g primary, danger etc)"},size:{type:String,default:"",description:"Button size lg|sm"},textColor:{type:String,default:"",description:"Button text color (e.g primary, danger etc)"},nativeType:{type:String,default:"button",description:"Button native type (e.g submit,button etc)"},icon:{type:String,default:"",description:"Button icon"},text:{type:String,default:"",description:"Button text in case not provided via default slot"},outline:{type:Boolean,default:!1,description:"Whether button style is outline"},rounded:{type:Boolean,default:!1,description:"Whether button style is rounded"},iconOnly:{type:Boolean,default:!1,description:"Whether button contains only an icon"},block:{type:Boolean,default:!1,description:"Whether button is of block type"}},computed:{classes:function(){var t=[{"btn-block":this.block},{"rounded-circle":this.rounded},{"btn-icon-only":this.iconOnly},Object(D["a"])({},"text-".concat(this.textColor),this.textColor),{"btn-icon":this.icon||this.$slots.icon},this.type&&!this.outline?"btn-".concat(this.type):"",this.outline?"btn-outline-".concat(this.type):""];return this.size&&t.push("btn-".concat(this.size)),t}},methods:{handleClick:function(t){this.$emit("click",t)}}},E=W,N=Object(p["a"])(E,z,I,!1,null,null,null),F=N.exports,M=function(){var t,e,a,s=this,i=s.$createElement,l=s._self._c||i;return l("div",{staticClass:"card",class:[{"card-lift--hover":s.hover},{shadow:s.shadow},(t={},t["shadow-"+s.shadowSize]=s.shadowSize,t),(e={},e["bg-gradient-"+s.gradient]=s.gradient,e),(a={},a["bg-"+s.type]=s.type,a)]},[s.$slots.header?l("div",{staticClass:"card-header",class:s.headerClasses},[s._t("header")],2):s._e(),s.noBody?s._e():l("div",{staticClass:"card-body",class:s.bodyClasses},[s._t("default")],2),s.noBody?s._t("default"):s._e(),s.$slots.footer?l("div",{staticClass:"card-footer",class:s.footerClasses},[s._t("footer")],2):s._e()],2)},H=[],L={name:"card",props:{type:{type:String,description:"Card type"},gradient:{type:String,description:"Card background gradient type (warning,danger etc)"},hover:{type:Boolean,description:"Whether card should move on hover"},shadow:{type:Boolean,description:"Whether card has shadow"},shadowSize:{type:String,description:"Card shadow size"},noBody:{type:Boolean,default:!1,description:"Whether card should have wrapper body class"},bodyClasses:{type:[String,Object,Array],description:"Card body css classes"},headerClasses:{type:[String,Object,Array],description:"Card header css classes"},footerClasses:{type:[String,Object,Array],description:"Card footer css classes"}}},R=L,q=Object(p["a"])(R,M,H,!1,null,null,null),U=q.exports,V=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("SlideYUpTransition",{attrs:{duration:t.animationDuration}},[a("div",{directives:[{name:"show",rawName:"v-show",value:t.show,expression:"show"}],staticClass:"modal fade",class:[{"show d-block":t.show},{"d-none":!t.show},{"modal-mini":"mini"===t.type}],attrs:{tabindex:"-1",role:"dialog","aria-hidden":!t.show},on:{click:function(e){return e.target!==e.currentTarget?null:t.closeModal(e)}}},[a("div",{staticClass:"modal-dialog modal-dialog-centered",class:[{"modal-notice":"notice"===t.type},t.modalClasses]},[a("div",{staticClass:"modal-content",class:[t.gradient?"bg-gradient-"+t.gradient:"",t.modalContentClasses]},[t.$slots.header?a("div",{staticClass:"modal-header",class:[t.headerClasses]},[t._t("header"),t._t("close-button",[t.showClose?a("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"modal","aria-label":"Close"},on:{click:t.closeModal}},[a("span",{attrs:{"aria-hidden":!t.show}},[t._v("×")])]):t._e()])],2):t._e(),a("div",{staticClass:"modal-body",class:t.bodyClasses},[t._t("default")],2),t.$slots.footer?a("div",{staticClass:"modal-footer",class:t.footerClasses},[t._t("footer")],2):t._e()])])])])},J=[],Y=(a("a9e3"),a("7c76")),G={name:"modal",components:{SlideYUpTransition:Y["b"]},props:{show:Boolean,showClose:{type:Boolean,default:!0},type:{type:String,default:"",validator:function(t){var e=["","notice","mini"];return-1!==e.indexOf(t)},description:'Modal type (notice|mini|"") '},modalClasses:{type:[Object,String],description:"Modal dialog css classes"},modalContentClasses:{type:[Object,String],description:"Modal dialog content css classes"},gradient:{type:String,description:"Modal gradient type (danger, primary etc)"},headerClasses:{type:[Object,String],description:"Modal Header css classes"},bodyClasses:{type:[Object,String],description:"Modal Body css classes"},footerClasses:{type:[Object,String],description:"Modal Footer css classes"},animationDuration:{type:Number,default:500,description:"Modal transition duration"}},methods:{closeModal:function(){this.$emit("update:show",!1),this.$emit("close")}},watch:{show:function(t){var e=document.body.classList;t?e.add("modal-open"):e.remove("modal-open")}}},K=G,Z=(a("22d7"),Object(p["a"])(K,V,J,!1,null,null,null)),Q=Z.exports,X=(a("cd74"),{lang:"default",strs:{default:{title:"Builder Options","title.task":"User Task","title.global":"Global Options","title.c/c++":"C/C++ Compiler","title.asmber":"Assembler","title.linker":"Linker","title.task.prebuild":"Prebuild Task","title.task.posbuild":"PostBuild Task","title.task.name":"Task Name","title.task.command":"Command","title.task.options":"Options","title.task.env.name":"Variable Name","title.task.env.desc":"Description/Value","prompt.task.prebuild":"Run some shell task before build","prompt.task.posbuild":"Run some shell task after build done","prompt.task.name":"A Human-Readable Name","prompt.task.command":"Shell Command","prompt.task.disable":"Disable this command","prompt.task.aif":"Whether to skip subsequent commands if this command is failed","prompt.task.sbif":"Whether to stop building directly when this command is failed","placeholder.task.command":"Input shell commands","title.btn.add":"Add","title.btn.del":"Delete","title.btn.save":"Save All","title.btn.open.config":"Open Config","title.btn.variables":"Variables"},"zh-cn":{title:"构建器选项","title.task":"用户任务","title.global":"全局选项","title.c/c++":"C/C++ 编译器","title.asmber":"汇编器","title.linker":"链接器","title.task.prebuild":"构建前任务","title.task.posbuild":"构建后任务","title.task.name":"任务名称","title.task.command":"命令","title.task.options":"选项","title.task.env.name":"变量名","title.task.env.desc":"描述/值","prompt.task.prebuild":"指定一些任务,将在构建开始前运行","prompt.task.posbuild":"指定一些任务,将在构建完成后运行","prompt.task.name":"用于显示的只读名称","prompt.task.command":"Shell 命令行","prompt.task.disable":"禁用该任务","prompt.task.aif":"如果失败,则跳过后续命令","prompt.task.sbif":"如果失败,则停止构建","placeholder.task.command":"输入 Shell 命令行","title.btn.add":"添加","title.btn.del":"删除","title.btn.save":"全部保存","title.btn.open.config":"打开配置","title.btn.variables":"变量"}},style:{textarea:"font-family: Consolas",input:"min-height: 43px; height: 43px;"},textarea:{autosize:{minRows:2}},dialog:{title:"",msg:"",visible:!1,theme:"success"},location:{tooltip:{title:"top",options:"right"}},prjEnvList:[],contextData:{},task:{before:[],after:[]},global:[],cpp:[],asm:[],linker:[]}),tt={name:"App",components:{Tabs:S,TabPane:P,BaseButton:F,Card:U,Modal:Q},data:function(){return X},mounted:function(){var t=this;s=this,this.$on("save-status",(function(e){t.dialog.title=e.title||t.title,t.dialog.msg=e.msg,t.dialog.theme=e.success?"success":"danger",t.dialog.visible=!0}))},methods:{getInstance:function(){return s},forceUpdate:function(){this.$forceUpdate()},onSave:function(){s.$emit("save-all")},onOpenConfig:function(){s.$emit("open-config")},notify:function(t){s.$notify(t)},message:function(t){s.$message(t)},get_str:function(t){return this.strs[this.lang]&&void 0!==this.strs[this.lang][t]?this.strs[this.lang][t]:this.strs["default"][t]||t},query_input_auto_complete_list:function(t,e,a){if(this.contextData[a]){var s=this.contextData[a].filter((function(e){return e.includes(t)})).map((function(t){return{value:t}}));e(s)}},add_prebuild_task:function(){this.task.before.push({name:"new prebuild task",disable:!1,abortAfterFailed:!1,stopBuildAfterFailed:!0,command:'echo "project name: ${ProjectName}"'})},delete_prebuild_task:function(t){var e=this.task.before.findIndex((function(e){return e.name==t.name&&e.command==t.command}));-1!=e&&this.task.before.splice(e,1)},add_postbuild_task:function(){this.task.after.push({name:"new postbuild task",disable:!1,abortAfterFailed:!1,command:'echo "firmware: ${OutDir}/${ProjectName}.hex"'})},delete_postbuild_task:function(t){var e=this.task.after.findIndex((function(e){return e.name==t.name&&e.command==t.command}));-1!=e&&this.task.after.splice(e,1)},add_to_list:function(t,e){t.push({value:e})},delete_from_list:function(t,e){var a=t.findIndex((function(t){return t.value==e}));-1!=a&&t.splice(a,1)},get_readable_name:function(t){return t.disable_readable_name?this.to_readable_name(t.name):t.readable_name||t.description||this.to_readable_name(t.name)},to_readable_name:function(t){var e,a=t.replace(/-/g," ").replace(/#/g,"/").replace(/\$/g,""),s="",l="",o=function(t){return t>="a"&&t<="z"},n=function(t){return t>="A"&&t<="Z"},r=Object(i["a"])(a);try{for(r.s();!(e=r.n()).done;){var c=e.value;n(c)&&o(l)&&(s+=" "),s+=c,l=c}}catch(d){r.e(d)}finally{r.f()}return s},get_rows_by_value:function(t){var e=t.length/60+(t.length%60>0);return e||1}}};$((function(){$('[data-toggle="popover"]').popover()})),$((function(){$('[data-toggle="tooltip"]').tooltip()}));var et=tt,at=(a("034f"),Object(p["a"])(et,o,n,!1,null,null,null)),st=at.exports,it=(a("4d1c"),a("d5a0"),a("a4d4"),function(){var t=this,e=t.$createElement,a=t._self._c||e;return a(t.tag,{tag:"component",staticClass:"badge",class:["badge-"+t.type,t.rounded?"badge-pill":"",t.circle&&"badge-circle"]},[t._t("default",[t.icon?a("i",{class:t.icon}):t._e()])],2)}),lt=[],ot={name:"badge",props:{tag:{type:String,default:"span",description:"Html tag to use for the badge."},rounded:{type:Boolean,default:!1,description:"Whether badge is of pill type"},circle:{type:Boolean,default:!1,description:"Whether badge is circle"},icon:{type:String,default:"",description:"Icon name. Will be overwritten by slot if slot is used"},type:{type:String,default:"default",description:"Badge type (primary|info|danger|default|warning|success)"}}},nt=ot,rt=Object(p["a"])(nt,it,lt,!1,null,null,null),ct=rt.exports,dt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("fade-transition",[t.visible?a("div",{staticClass:"alert",class:["alert-"+t.type,{"alert-dismissible":t.dismissible}],attrs:{role:"alert"}},[t.dismissible?[t._t("default",[t.icon?a("span",{staticClass:"alert-inner--icon"},[a("i",{class:t.icon})]):t._e(),t.$slots.text?a("span",{staticClass:"alert-inner--text"},[t._t("text")],2):t._e()]),t._t("dismiss-icon",[a("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"alert","aria-label":"Close"},on:{click:t.dismissAlert}},[a("span",{attrs:{"aria-hidden":"true"}},[t._v("×")])])])]:t._t("default",[t.icon?a("span",{staticClass:"alert-inner--icon"},[a("i",{class:t.icon})]):t._e(),t.$slots.text?a("span",{staticClass:"alert-inner--text"},[t._t("text")],2):t._e()])],2):t._e()])},ut=[],pt={name:"base-alert",components:{FadeTransition:Y["a"]},props:{type:{type:String,default:"default",description:"Alert type"},icon:{type:String,default:"",description:"Alert icon. Will be overwritten by default slot"},dismissible:{type:Boolean,default:!1,description:"Whether alert is closes when clicking"}},data:function(){return{visible:!0}},methods:{dismissAlert:function(){this.visible=!1}}},mt=pt,vt=Object(p["a"])(mt,dt,ut,!1,null,null,null),bt=vt.exports,ft=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"custom-control custom-checkbox",class:[{disabled:t.disabled},t.inlineClass]},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],staticClass:"custom-control-input",attrs:{id:t.cbId,type:"checkbox",disabled:t.disabled},domProps:{checked:Array.isArray(t.model)?t._i(t.model,null)>-1:t.model},on:{change:function(e){var a=t.model,s=e.target,i=!!s.checked;if(Array.isArray(a)){var l=null,o=t._i(a,l);s.checked?o<0&&(t.model=a.concat([l])):o>-1&&(t.model=a.slice(0,o).concat(a.slice(o+1)))}else t.model=i}}}),a("label",{staticClass:"custom-control-label",attrs:{for:t.cbId}},[t._t("default",[t.inline?a("span"):t._e()])],2)])},gt=[];function ht(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:7,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",a="",s=0;s0?this.pageCount:this.total>0?Math.ceil(this.total/this.perPage):1},pagesToDisplay:function(){return this.totalPages>0&&this.totalPages=this.pagesToDisplay){var t=Math.floor(this.pagesToDisplay/2),e=t+this.value;return e>this.totalPages?this.totalPages-this.pagesToDisplay+1:this.value-t}return 1},maxPage:function(){if(this.value>=this.pagesToDisplay){var t=Math.floor(this.pagesToDisplay/2),e=t+this.value;return e1&&this.$emit("input",this.value-1)}},watch:{perPage:function(){this.$emit("input",1)},total:function(){this.$emit("input",1)}}},zt=Pt,It=Object(p["a"])(zt,jt,Bt,!1,null,null,null),Dt=It.exports,Wt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"progress-wrapper"},[a("div",{class:"progress-"+t.type},[a("div",{staticClass:"progress-label"},[t._t("label",[a("span",[t._v(t._s(t.label))])])],2),a("div",{staticClass:"progress-percentage"},[t._t("default",[a("span",[t._v(t._s(t.value)+"%")])])],2)]),a("div",{staticClass:"progress",style:"height: "+t.height+"px"},[a("div",{staticClass:"progress-bar",class:t.computedClasses,style:"width: "+t.value+"%;",attrs:{role:"progressbar","aria-valuenow":t.value,"aria-valuemin":"0","aria-valuemax":"100"}})])])},Et=[],Nt={name:"base-progress",props:{striped:{type:Boolean,description:"Whether progress is striped"},animated:{type:Boolean,description:"Whether progress is animated (works only with `striped` prop together)"},label:{type:String,description:"Progress label (shown on the left above progress)"},height:{type:Number,default:8,description:"Progress line height"},type:{type:String,default:"default",description:"Progress type (e.g danger, primary etc)"},value:{type:Number,default:0,validator:function(t){return t>=0&&t<=100},description:"Progress value"}},computed:{computedClasses:function(){return[{"progress-bar-striped":this.striped},{"progress-bar-animated":this.animated},Object(D["a"])({},"bg-".concat(this.type),this.type)]}}},Ft=Nt,Mt=Object(p["a"])(Ft,Wt,Et,!1,null,null,null),Ht=Mt.exports,Lt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"custom-control custom-radio",class:[t.inlineClass,{disabled:t.disabled}]},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],staticClass:"custom-control-input",attrs:{id:t.cbId,type:"radio",disabled:t.disabled},domProps:{value:t.name,checked:t._q(t.model,t.name)},on:{change:function(e){t.model=t.name}}}),a("label",{staticClass:"custom-control-label",attrs:{for:t.cbId}},[t._t("default")],2)])},Rt=[],qt={name:"base-radio",props:{name:{type:[String,Number],description:"Radio label"},disabled:{type:Boolean,description:"Whether radio is disabled"},value:{type:[String,Boolean],description:"Radio value"},inline:{type:Boolean,description:"Whether radio is inline"}},data:function(){return{cbId:""}},computed:{model:{get:function(){return this.value},set:function(t){this.$emit("input",t)}},inlineClass:function(){return this.inline?"form-check-inline":""}},mounted:function(){this.cbId=ht()}},Ut=qt,Vt=Object(p["a"])(Ut,Lt,Rt,!1,null,null,null),Jt=Vt.exports,Yt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"input-slider-container"},[a("div",{ref:"slider",staticClass:"input-slider",class:["slider-"+t.type],attrs:{disabled:t.disabled}})])},Gt=[],Kt=a("e9fa"),Zt=a.n(Kt),Qt={name:"base-slider",props:{value:{type:[String,Array,Number],description:"Slider value"},disabled:{type:Boolean,description:"Whether slider is disabled"},range:{type:Object,default:function(){return{min:0,max:100}},description:"Slider range (defaults to 0-100)"},type:{type:String,default:"",description:"Slider type (e.g primary, danger etc)"},options:{type:Object,default:function(){return{}},description:"noUiSlider options"}},computed:{connect:function(){return Array.isArray(this.value)||[!0,!1]}},data:function(){return{slider:null}},methods:{createSlider:function(){var t=this;Zt.a.create(this.$refs.slider,Object($t["a"])({start:this.value,connect:this.connect,range:this.range},this.options));var e=this.$refs.slider.noUiSlider;e.on("slide",(function(){var a=e.get();a!==t.value&&t.$emit("input",a)}))}},mounted:function(){this.createSlider()},watch:{value:function(t,e){var a=this.$refs.slider.noUiSlider,s=a.get();t!==e&&s!==t&&(Array.isArray(s)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,a){return e===t[a]}))&&a.set(t):a.set(t))}}},Xt=Qt,te=Object(p["a"])(Xt,Yt,Gt,!1,null,null,null),ee=te.exports,ae=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("label",{staticClass:"custom-toggle"},[a("input",t._g(t._b({directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(t.model)?t._i(t.model,null)>-1:t.model},on:{change:function(e){var a=t.model,s=e.target,i=!!s.checked;if(Array.isArray(a)){var l=null,o=t._i(a,l);s.checked?o<0&&(t.model=a.concat([l])):o>-1&&(t.model=a.slice(0,o).concat(a.slice(o+1)))}else t.model=i}}},"input",t.$attrs,!1),t.$listeners)),a("span",{staticClass:"custom-toggle-slider rounded-circle"})])},se=[],ie={name:"base-switch",inheritAttrs:!1,props:{value:{type:Boolean,default:!1,description:"Switch value"}},computed:{model:{get:function(){return this.value},set:function(t){this.$emit("input",t)}}}},le=ie,oe=Object(p["a"])(le,ae,se,!1,null,null,null),ne=oe.exports,re=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"icon icon-shape",class:[t.size&&"icon-"+t.size,t.type&&"icon-shape-"+t.type,t.gradient&&"bg-gradient-"+t.gradient,t.shadow&&"shadow",t.rounded&&"rounded-circle",t.color&&"text-"+t.color]},[t._t("default",[a("i",{class:t.name})])],2)},ce=[],de={name:"icon",props:{name:{type:String,default:"",description:"Icon name"},size:{type:String,default:"",description:"Icon size"},type:{type:String,default:"",description:"Icon type (primary, warning etc)"},gradient:{type:String,default:"",description:"Icon gradient type (primary, warning etc)"},color:{type:String,default:"",description:"Icon color (primary, warning etc)"},shadow:{type:Boolean,default:!1,description:"Whether icon has shadow"},rounded:{type:Boolean,default:!1,description:"Whether icon is rounded"}}},ue=de,pe=Object(p["a"])(ue,re,ce,!1,null,null,null),me=pe.exports,ve={install:function(t){t.component(ct.name,ct),t.component(bt.name,bt),t.component(F.name,F),t.component(Tt.name,Tt),t.component(kt.name,kt),t.component(Dt.name,Dt),t.component(Ht.name,Ht),t.component(Jt.name,Jt),t.component(ee.name,ee),t.component(ne.name,ne),t.component(U.name,U),t.component(me.name,me)}},be={bind:function(t,e,a){t.clickOutsideEvent=function(s){t==s.target||t.contains(s.target)||a.context[e.expression](s)},document.body.addEventListener("click",t.clickOutsideEvent)},unbind:function(t){document.body.removeEventListener("click",t.clickOutsideEvent)}},fe={install:function(t){t.directive("click-outside",be)}},ge=fe,he=a("caf9"),_e={install:function(t){t.use(ve),t.use(ge),t.use(he["a"])}},ye=a("5c96"),Ce=a.n(ye);a("0fae");l["default"].config.productionTip=!1,l["default"].use(_e),l["default"].use(Ce.a);var ke=void 0,xe=void 0,we=!1,$e=st.data(),Se=acquireVsCodeApi();function Oe(){we||(we=!0,console.log("[builder options view] start init and create page ..."),new l["default"]({render:function(t){return t(st)}}).$mount("#app"),ke=st.methods.getInstance(),ke.$on("save-all",(function(){return Te()})),ke.$on("open-config",(function(){return Se.postMessage("open-config")})),console.log("[builder options view] app inited done !"))}function Ae(t){st.methods.notify({type:t.success?"success":"error",title:t.success?"Success":"Failed",message:t.msg,position:"bottom-right"})}function Te(){if(ke){console.log("[builder options view] start post data ...");var t={before:"beforeBuildTasks",after:"afterBuildTasks"};for(var e in t){var a=ke.task[e];xe[t[e]]=a}var s={global:"global",cpp:"c/cpp-compiler",asm:"asm-compiler",linker:"linker"};for(var l in s){var o,n=ke[l],r=xe[s[l]],c=Object(i["a"])(n);try{for(c.s();!(o=c.n()).done;){var d=o.value;switch(d.type){case"array":d.value.length>0?r[d.name]=d.value.map((function(t){return t.value})):delete r[d.name];break;case"bool":d.value?r[d.name]=d.value:delete r[d.name];break;default:"string"==typeof d.value&&""==d.value.trim()?delete r[d.name]:r[d.name]=d.value;break}"string"==typeof r[d.name]&&(r[d.name]=r[d.name].replace(/\r\n|\n/g," ").replace(/\s{2,}/g," ").trim())}}catch(u){c.e(u)}finally{c.f()}}Se.postMessage(xe),console.log("[builder options view] post data done !")}else Ae({success:!1,msg:"App have not inited !"})}function je(t,e){var a,s=e.split("/"),l=t,o=Object(i["a"])(s);try{for(o.s();!(a=o.n()).done;){var n=a.value;if(""!=n){if(void 0==l)break;l=l[n]}}}catch(r){o.e(r)}finally{o.f()}return l}function Be(t,e){if(e["$ref"]){var a=je(t,e["$ref"].replace("#/",""));for(var s in a)void 0===e[s]&&(e[s]=a[s])}return e}function Pe(t){return"huge"==t["size"]?"textarea":"small"==t["size"]?"short_input":Array.isArray(t.type)?"string":t.type}function ze(t,e,a){var s=Pe(t);switch(e.description=t.markdownDescription||t.description,Ie&&t["description.".concat(Ie)]&&(e.description=t["description.".concat(Ie)]),e.disable_readable_name=t.disable_readable_name,e.readable_name=t.readable_name,Ie&&t["readable_name.".concat(Ie)]&&(e.readable_name=t["readable_name.".concat(Ie)]),e.auto_complete_ctx=t["auto_complete_ctx"],s){case"array":e.type=s;break;case"boolean":e.type="bool";break;case"string":t["enum"]?(e.type="enum",e.enums=t["enum"],e.enumDesc=t["enumDescriptions"]||[]):(e.type="input",e.placeHolder=e.description);break;case"short_input":case"textarea":e.type=s,e.placeHolder=e.description;break;default:return console.warn("[builder options view] [warn] not support this type: '".concat(s,"' for field !")),!1}if(a)switch(s){case"array":e.value=(Array.isArray(a)?a:[a]).map((function(t){return{value:t}}));break;case"boolean":e.value=a;break;default:e.value=Array.isArray(a)?a.join(" "):a;break}else"bool"==e.type?e.value=!1:"enum"==e.type?e.value=t.default||"":"array"==e.type?e.value=[]:e.value="";return!0}window.addEventListener("message",(function(t){if(t.data.status){var e={success:t.data.status.success,msg:t.data.status.msg};Ae(e)}else xe=t.data.data,De(t.data.model,xe,t.data.info),Oe()})),document.addEventListener("keydown",(function(t){"s"==t.key.toLowerCase()&&t.ctrlKey&&(t.preventDefault(),Te())})),Se.postMessage("eide.options_view.launched");var Ie=void 0;function De(t,e,a){console.log("[builder options view] start init data ...");var s=t.properties,l={global:"global",cpp:"c/cpp-compiler",asm:"asm-compiler",linker:"linker"};for(var o in a&&(Ie=a.lang,$e.lang=Ie,$e.prjEnvList=a.envList,$e.contextData=a.contextData||{}),l){var n=s[l[o]].properties,r=e[l[o]],c=$e[o];for(var d in n){var u=Be(t,n[d]),p={name:d};ze(u,p,r[d])&&c.push(p)}}var m={before:"beforeBuildTasks",after:"afterBuildTasks"};for(var v in m){var b=$e.task[v],f=e[m[v]];if(f&&Array.isArray(f)){var g,h=Object(i["a"])(f);try{for(h.s();!(g=h.n()).done;){var _=g.value;b.push(_)}}catch(y){h.e(y)}finally{h.f()}}}console.log("[builder options view] Init data done !")}},"85ec":function(t,e,a){},a4d4:function(t,e,a){},be87:function(t,e,a){},d5a0:function(t,e,a){}}); //# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/src/EIDEProjectExplorer.ts b/src/EIDEProjectExplorer.ts index a9e39693..dc108cce 100644 --- a/src/EIDEProjectExplorer.ts +++ b/src/EIDEProjectExplorer.ts @@ -4176,6 +4176,10 @@ export class ProjectExplorer implements CustomConfigurationProvider { throw new Error(`Not found any reference for this source file !, [path]: '${srcPath}'`); } + if (!File.IsFile(objPath)) { + throw new Error(`Object file is not existed !, [path]: '${objPath}'`); + } + // prepare command let exeFile: File; let cmds: string[]; diff --git a/src/extension.ts b/src/extension.ts index 95fe3337..37b66cee 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1164,7 +1164,9 @@ function RegisterGlobalEvent() { interface EideShellTaskDef extends vscode.TaskDefinition { - name: string; + label: string; + + name?: string; command: string; @@ -1192,14 +1194,14 @@ class EideTaskProvider implements vscode.TaskProvider { const definition: EideShellTaskDef = task_.definition; const task = new vscode.Task(definition, vscode.TaskScope.Workspace, - definition.name, EideTaskProvider.TASK_TYPE_MSYS, definition.problemMatchers); + definition.name || definition.label, EideTaskProvider.TASK_TYPE_MSYS, definition.problemMatchers); const shellcommand = definition.command; task.execution = new vscode.ShellExecution(shellcommand, { executable: platform.osType() == 'win32' ? `${process.env['EIDE_MSYS']}/bash.exe` : '/bin/bash', shellArgs: ['-c'], cwd: definition?.options?.cwd || workspaceManager.getCurrentFolder()?.path, - env: utility.mergeEnv(process.env, {}) + env: utility.mergeEnv(process.env, definition.env || {}) }); task.group = definition.group;