Commit daad3289 authored by Maxime Perrotin's avatar Maxime Perrotin

Add C++ editor to TASTE GUI

parent 0a35e428
package provide cpp_kate 0.1
# C code editor (using Kate)
lappend auto_path .
namespace eval cpp_kate {
# Graphical name of the operation
proc getLabel {} {
return "Edit C++ 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" "CPP"} } ]
}
# 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 cpp_kate { args } {
set params [lindex $args 0]
set aadlFilePath [Parameter::getParameter $params aadlFilePath]
set aadlId [Parameter::getParameter $params id]
return [cpp_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 cpp_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}.h ${fileBaseName}/${aadlId}.cc: unknown file kate" ]
} else {
ToolsOthers::execAsynchronouslyWithResponse [list "[auto_execok kate] ${fileBaseName}/${aadlId}.h ${fileBaseName}/${aadlId}.cc" ] \
"::cpp_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}.h \n-${fileBaseName}/${aadlId}.cc" ]
}
cd $initialPath
return [list $errNumb $msg]
}
# asynchronous call
#proc template_internal { aadlFilePath aadlId } {
# exec {*}[auto_execok $::installationPath/config/externalTools/test.bat] $aadlFilePath $aadlId &
# return ""
#}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment