diff --git a/debian/changelog b/debian/changelog index f11b11f..2d2d044 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +projman (2.0.0-alpha19) stable; urgency=medium + + * Добавлен диалог настроек + + -- Sergey Kalinin Wed, 29 Oct 2025 20:48:52 +0300 + projman (2.0.0-alpha19) stable; urgency=medium * Добавил псевдо-терминал @@ -385,3 +391,4 @@ projman (2.0.0-alfa0) stable; urgency=medium + diff --git a/errors b/errors new file mode 100644 index 0000000..e69de29 diff --git a/lib/highlight.tcl b/lib/highlight.tcl index 4a1800f..28668bd 100644 --- a/lib/highlight.tcl +++ b/lib/highlight.tcl @@ -190,5 +190,19 @@ namespace eval Highlight {} { ctext::addHighlightClassForRegexp $txt namespaces #0093ff {->|\+\+|::} ctext::addHighlightClass $txt bool #3e803b {null false true} } - + proc ExecuteColorized {txt} { + ctext::addHighlightClassForRegexp $txt flags orange {\s-[a-zA-Z]+} + ctext::addHighlightClass $txt stackControl #19a2a6 [info commands] + ctext::addHighlightClass $txt widgets #9d468d [list canvas ctext button entry label text labelframe frame toplevel scrollbar checkbutton canvas listbox menu menubar menubutton radiobutton scale entry message tk_chooseDir tk_getSaveFile tk_getOpenFile tk_chooseColor tk_optionMenu ttk::button ttk::checkbutton ttk::combobox ttk::entry ttk::frame ttk::intro ttk::label ttk::labelframe ttk::menubutton ttk::treeview ttk::notebook ttk::panedwindow ttk::progressbar ttk::radiobutton ttk::scale ttk::scrollbar ttk::separator ttk::sizegrip ttk::spinbox ] + ctext::addHighlightClassWithOnlyCharStart $txt vars #4471ca "\$" + ctext::addHighlightClass $txt variable_funcs gold {set global variable unset} + ctext::addHighlightClassForSpecialChars $txt brackets green {[]{}()} + ctext::addHighlightClassForRegexp $txt paths lightblue {\.[a-zA-Z0-9\_\-]+} + ctext::addHighlightClassForRegexp $txt namespaces #4f64ff {::} + ctext::addHighlightClassForSpecialChars $txt qoute #b84a0c {"'`} + ctext::addHighlightClassForRegexp $txt colors #68ceff {(#)(\w)+?(\s|$)} + ctext::addHighlightClassForRegexp $txt comments #666666 {(^|;)\s*(#)[^\n\r]*} + ctext::addHighlightClass $txt bool #3e803b {null false true} + } + } diff --git a/lib/procedure.tcl b/lib/procedure.tcl index d947227..d20cfc3 100644 --- a/lib/procedure.tcl +++ b/lib/procedure.tcl @@ -841,65 +841,22 @@ proc Execute {filePath w} { FileOper::Save set file $filePath set action run - # if {$action == "compile"} { - - # if {$t == "proj"} { - # set prog [file join $projDirName $projFileName.java] - # } elseif {$t == "file"} { - # set node [$tree selection get] - # set fullPath [$tree itemcget $node -data] - # set dir [file dirname $fullPath] - # set file [file tail $fullPath] - # set prog $fullPath - # } - # } elseif {$action == "run"} { - # if {$t == "proj"} { - # set prog [file join $projDirName $projFileName] - # } elseif {$t == "file"} { - # set node [$tree selection get] - # set fullPath [$tree itemcget $node -data] - # set dir [file dirname $fullPath] - # set file [file tail $fullPath] - # set prog $fullPath - # } - # } - - # set node "debug" - # if {[$noteBook index $node] != -1} { - # $noteBook delete debug - # } - # set w [$noteBook insert end $node -text [::msgcat::mc "Running project"]] # create array with file names # frame $w.frame -borderwidth 2 -relief ridge -background $cfgVariables(backGround) pack $w.frame -side top -fill both -expand true - text $w.frame.text -yscrollcommand "$w.frame.yscroll set" \ + ctext $w.frame.text -yscrollcommand "$w.frame.yscroll set" \ -bg $cfgVariables(backGround) -fg $cfgVariables(foreground) \ -relief sunken -wrap word -highlightthickness 0 -font $cfgVariables(font)\ -selectborderwidth 0 -selectbackground $cfgVariables(selectbg) -width 10 -height 10 scrollbar $w.frame.yscroll -relief sunken -borderwidth {1} -width {10} -takefocus 0 \ -command "$w.frame.text yview" -background $cfgVariables(backGround) + Highlight::ExecuteColorized $w.frame.text pack $w.frame.text -side left -fill both -expand true pack $w.frame.yscroll -side left -fill y - # frame $w.frmBtn -borderwidth 2 -relief ridge -bg $cfgVariables(backGround) - # pack $w.frmBtn -side top -fill x - # button $w.frmBtn.btnOk -text [::msgcat::mc "Close"] -borderwidth {1} \ - # -bg $cfgVariables(backGround) -fg $cfgVariables(backGround) -command { - # $noteBook delete debug - # $noteBook raise [$noteBook page end] - # return 0 - # } - # pack $w.frmBtn.btnOk -pady 2 - # key bindings # - # bind $w.frmBtn.btnOk { - # $noteBook delete debug - # $noteBook raise [$noteBook page end] - # # return 0 - # } - bind $w.frame.text [list Run $w $filePath] bind $w.frame.text [list destroy $w] bind $w.frame.text [list destroy $w] @@ -909,34 +866,15 @@ proc Execute {filePath w} { $w.frame.text tag configure bold -font $cfgVariables(fontBold) $w.frame.text tag configure error -font $cfgVariables(fontBold) -foreground red $w.frame.text tag add bold 0.0 0.end - # if {$action == "compile"} { - # $w.frame.text insert end "[::msgcat::mc "Compile project"] - $activeProject\n" - # $w.frame.text insert end "[::msgcat::mc "Compile"] - $prog\n\n" - # } elseif {$action == "run"} { - # $w.frame.text insert end "[::msgcat::mc "Running project"] - $activeProject\n" - # $w.frame.text insert end "[::msgcat::mc "Run"] - $prog\n\n" - # } - $w.frame.text insert end "[::msgcat::mc "Enter command for execute file"] $filePath >\n" + + $w.frame.text insert end "[::msgcat::mc "Enter command for execute file"] $filePath >\n" set pos [$w.frame.text index insert] set lineNum [lindex [split $pos "."] 0] - $w.frame.text insert 0.0 "^^^^^^^^^^^^^^^^^^^^^ [::msgcat::mc "Programm output"] ^^^^^^^^^^^^^^^^^\n" + $w.frame.text insert 0.0 "======================================================================================\n" $w.frame.text tag add bold $lineNum.0 $lineNum.end - focus -force $w.frame.text - # open and manipulate executed program chanel # - # cd $projDirName - # if {$action == "compile"} { - # set cmdCompile "" - # CompileOption "$projCompiler $prog" - # vwait cmdCompile - # puts "string - $projCompiler $prog" ;# debug info - # set pipe [open "|$cmdCompile 2> [file join $projDirName errors]" "r"] - # set f [open [file join $projDirName errors] "r"] - # } elseif {$action == "run"} { - # set pipe [open "|$command $filePath" "r"] - # set f [open [file join $projDirName errors] "r"] - # } - - + Highlight::ExecuteColorized $w.frame.text + # focus -force $w.frame.text + focus -force $w.frame.text.t } proc Run {w filePath} { @@ -947,7 +885,13 @@ proc Run {w filePath} { set startIndex [$w.frame.text index "end-1l linestart"] set command [$w.frame.text get $startIndex $endIndex end] - set pipe [open "|$command $filePath 2> [file join [file dirname $filePath] errors]" "r"] + # Заменяем знак %f на имя текущего файла + regsub -all "%f" $command "$filePath" fullCommand + $w.frame.text replace $startIndex $endIndex $fullCommand + + # $w.frame.text insert "end-4l linestart" + cd [file dirname $filePath] + set pipe [open "|$fullCommand 2> [file join [file dirname $filePath] errors]" "r"] set f [open [file join [file dirname $filePath] errors] "r"] # set pipe [open "|$command $filePath" "r"] @@ -965,18 +909,22 @@ proc DebugInfo {widget file f} { puts $msg $widget insert "end-4l linestart" "[::msgcat::mc "Program failed"]: $msg\n"; } else { + Highlight::ExecuteColorized $widget puts $msg $widget see "end-1l lineend" $widget delete "end-1l lineend" end # $widget insert end "\n-------------------------------------------------\n" # $widget insert end "[::msgcat::mc "Program finished successfully"]\n" } + Highlight::ExecuteColorized $widget } else { + Highlight::ExecuteColorized $widget $widget insert "end-4l linestart" [read $file] } while {[gets $f line]>=0} { + Highlight::ExecuteColorized $widget $widget insert "end-4l linestart" "$line\n" - puts $line + # puts $line } # close $f $widget see end diff --git a/projman.tcl b/projman.tcl index 9dfc858..ed6634e 100755 --- a/projman.tcl +++ b/projman.tcl @@ -10,7 +10,7 @@ exec wish8.6 "$0" -- "$@" ###################################################### # Version: 2.0.0 # Release: alpha19 -# Build: 29102025200405 +# Build: 29102025204917 ###################################################### # определим текущую версию, релиз и т.д. diff --git a/theme/2> b/theme/2> new file mode 100644 index 0000000..e69de29