diff --git a/TASTE-linux64/config/externalTools/micropython_kate.tcl b/TASTE-linux64/config/externalTools/micropython_kate.tcl new file mode 100644 index 0000000000000000000000000000000000000000..d6f2e3f65903d5809c43ddea078f9d539c48dedd --- /dev/null +++ b/TASTE-linux64/config/externalTools/micropython_kate.tcl @@ -0,0 +1,84 @@ +package provide micropython_kate 0.1 +# C code editor (using Kate) +lappend auto_path . +namespace eval micropython_kate { + + # Graphical name of the operation + proc getLabel {} { + return "Edit Micropython source code" + } + + # Name of the application this script can be used with + # shall be either InterfaceView or DeploymentView + proc getApplication {} { + return "InterfaceView" + } + + # Names of the object this script can be used on + proc getApplyTo {} { + return [list { "Function" {"Source_Language" "Micropython"} } ] + } + + # List of way to manage output in the Framework + # Could be an empty list or one or both of 'dialogBox' and 'statusBar' + proc getOutputManagement {} { + ## Ticket mantis 0000625 + return [list statusBar dialogBoxOnError] + } + + proc micropython_kate { args } { + set params [lindex $args 0] + set aadlFilePath [Parameter::getParameter $params aadlFilePath] + set aadlId [Parameter::getParameter $params id] + return [c_internal $aadlFilePath $aadlId] + } + + # the line "exec {*}[auto_execok $::installationPath/config/externalTools/test.bat]" + # ask the current OS which software is to be used to open the file test.bat + # to launch using the absolute path, read the template2.tcl_ + + # synchronous call + proc c_internal { aadlFilePath aadlId } { + ## Ticket mantis 0000625 + + set initialPath [pwd] + cd [file dirname $aadlFilePath] + set msg "" + set scriptPath [auto_execok "taste-generate-skeletons"] + if { $scriptPath != "" } { + set errNumb [catch { exec -ignorestderr {*}$scriptPath 2>@1 } errMsg ] + } else { + set errNumb -1 + set errMsg "Unknown command taste-generate-skeletons." + } + + ## Ticket mantis 0000632 + set aadlId [string tolower $aadlId 0 end] + set fileBaseName [file normalize "[pwd]/$aadlId" ] + if { $errNumb == 0 && [file exists $fileBaseName ] } { + if { [auto_execok kate] == "" } { + set errNumb -1 + set msg [list "Error in execution of \"kate ${fileBaseName}/${aadlId}.py: unknown file kate" ] + } else { + ToolsOthers::execAsynchronouslyWithResponse [list "[auto_execok kate] ${fileBaseName}/${aadlId}.py" ] \ + "::micropython_kateres" "Kate error report" "The execution of kate stopped with error" + } + } elseif { $errNumb != 0 } { + set errNumb -1 + set msg [list "Error in execution of \"taste-generate-skeletons $aadlFilePath\":\n$errMsg" ] + } else { + set errNumb -1 + set msg [list "Cannot find files:\n-${fileBaseName}/${aadlId}.py" ] + } + + cd $initialPath + return [list $errNumb $msg] + } + + # asynchronous call + #proc template_internal { aadlFilePath aadlId } { + # exec {*}[auto_execok $::installationPath/config/externalTools/test.bat] $aadlFilePath $aadlId & + # return "" + #} + +}