Compare commits

...

9 Commits

10 changed files with 168 additions and 14 deletions

View File

@ -127,3 +127,10 @@
- Add Refresh button into Git Dialog - Add Refresh button into Git Dialog
- Fixed FindFunction - Fixed FindFunction
07/12/2022
- Added Perl language support
- Added INI-files support
- Added MD-files structure navigation
- Fixed saving user session and opening files and folders at the next start
- Added buttons "Git clone" and "Git init" in the dialog box displayed when the Git button is pressed

View File

@ -23,8 +23,6 @@ if [info exists env(LANG)] {
set ::configDefault "\[General\] set ::configDefault "\[General\]
cfgModifyDate='' cfgModifyDate=''
opened=
editedFiles=
searchCommand=/usr/bin/grep searchCommand=/usr/bin/grep
searchCommandOptions=-r -n -H searchCommandOptions=-r -n -H
gitCommand=/usr/bin/git gitCommand=/usr/bin/git
@ -36,7 +34,7 @@ locale=$locale
theme=dark theme=dark
toolBarShow=true toolBarShow=true
menuShow=true menuShow=true
statusbarShow=true statusBarShow=true
filesPanelShow=true filesPanelShow=true
filesPanelPlace=left filesPanelPlace=left
geometry=1024x768 geometry=1024x768
@ -62,6 +60,9 @@ lineNumberShow=true
tabSize=4 tabSize=4
procedureHelper=false procedureHelper=false
variableHelper=true variableHelper=true
\[UserSession\]
opened=
editedFiles=
" "
proc Config::create {dir} { proc Config::create {dir} {
set cfgFile [open [file join $dir projman.ini] "w+"] set cfgFile [open [file join $dir projman.ini] "w+"]
@ -81,7 +82,7 @@ proc Config::read {dir} {
} }
proc Config::write {dir} { proc Config::write {dir} {
global activeProject global activeProject editors
set cfgFile [ini::open [file join $dir projman.ini] "w"] set cfgFile [ini::open [file join $dir projman.ini] "w"]
foreach section [array names ::cfgINIsections] { foreach section [array names ::cfgINIsections] {
foreach key $::cfgINIsections($section) { foreach key $::cfgINIsections($section) {
@ -91,14 +92,27 @@ proc Config::write {dir} {
set systemTime [clock seconds] set systemTime [clock seconds]
# Set a config modify time (i don't know why =))' # Set a config modify time (i don't know why =))'
ini::set $cfgFile "General" cfgModifyDate [clock format $systemTime -format "%D %H:%M:%S"] ini::set $cfgFile "General" cfgModifyDate [clock format $systemTime -format "%D %H:%M:%S"]
ini::set $cfgFile "UserSession" editedFiles ""
# Save an top level window geometry into config # Save an top level window geometry into config
ini::set $cfgFile "GUI" geometry [wm geometry .] ini::set $cfgFile "GUI" geometry [wm geometry .]
if {[info exists activeProject] !=0 && $activeProject ne ""} { if {[info exists activeProject] !=0 && $activeProject ne ""} {
ini::set $cfgFile "General" opened $activeProject ini::set $cfgFile "UserSession" opened $activeProject
} else { # Добавим пути к открытым в редакторе файлам в переменную
ini::set $cfgFile "General" opened "" if [info exists editors] {
foreach i [dict keys $editors] {
lappend edited [dict get $editors $i fileFullPath]
} }
if [info exists edited] {
ini::set $cfgFile "UserSession" editedFiles $edited
}
}
} else {
ini::set $cfgFile "UserSession" opened ""
ini::set $cfgFile "UserSession" editedFiles ""
}
# puts $editors
ini::commit $cfgFile ini::commit $cfgFile
ini::close $cfgFile ini::close $cfgFile
} }

View File

@ -590,7 +590,7 @@ namespace eval Editor {
$txt tag remove lightSelected 1.0 end $txt tag remove lightSelected 1.0 end
if { [winfo exists .varhelper] } { destroy .varhelper } if { [winfo exists .varhelper] } { destroy .varhelper }
puts $k # puts $k
switch $k { switch $k {
Return { Return {
regexp {^(\s*)} [$txt get [expr $lineNum - 1].0 [expr $lineNum - 1].end] -> spaceStart regexp {^(\s*)} [$txt get [expr $lineNum - 1].0 [expr $lineNum - 1].end] -> spaceStart
@ -1477,6 +1477,7 @@ namespace eval Editor {
ImageViewer $fileFullPath $itemName $fr ImageViewer $fileFullPath $itemName $fr
} else { } else {
set frmText [Editor::EditorWidget $fr $fileType $nb] set frmText [Editor::EditorWidget $fr $fileType $nb]
dict set editors $frmText.t fileFullPath $fileFullPath
} }
$fr.panelTxt add $frmText -weight 0 $fr.panelTxt add $frmText -weight 0

View File

@ -211,7 +211,7 @@ namespace eval FileOper {
} }
proc Close {} { proc Close {} {
global nbEditor modified tree global nbEditor modified tree editors
set nbItem [$nbEditor select] set nbItem [$nbEditor select]
# puts "close tab $nbItem" # puts "close tab $nbItem"
@ -246,6 +246,8 @@ namespace eval FileOper {
if [info exists modified($nbItem)] { if [info exists modified($nbItem)] {
unset modified($nbItem) unset modified($nbItem)
} }
# puts $nbItem
set editors [dict remove $editors $nbItem.frmText.t]
.frmStatus.lblPosition configure -text "" .frmStatus.lblPosition configure -text ""
.frmStatus.lblEncoding configure -text "" .frmStatus.lblEncoding configure -text ""
.frmStatus.lblSize configure -text "" .frmStatus.lblSize configure -text ""

View File

@ -118,4 +118,27 @@ namespace eval Highlight {} {
ctext::addHighlightClassForRegexp $txt quotedtext #a9b36c {^(\s*?)(>+).+?$} ctext::addHighlightClassForRegexp $txt quotedtext #a9b36c {^(\s*?)(>+).+?$}
ctext::addHighlightClassForRegexp $txt italictext #dff74e {((_|\*)+?)(\w+?)((_|\*)+?)} ctext::addHighlightClassForRegexp $txt italictext #dff74e {((_|\*)+?)(\w+?)((_|\*)+?)}
} }
proc PL {txt} {
ctext::addHighlightClassForRegexp $txt qoute #b84a0c {("|'|`).*?("|'|`)}
ctext::addHighlightClassForRegexp $txt flags orange {\s-[a-zA-Z]+}
ctext::addHighlightClass $txt stackControl #19a2a6 {sub my end class new if else elsif for foreach while case when use ne eq print exit chdir rand die lt gt le ge say unless return chomp package push exec grep eval warn scalar next continue close}
ctext::addHighlightClassForRegexp $txt vars #4471ca {(\$|\*|\&)[\.a-zA-Z0-9\_\-\[\]]+}
ctext::addHighlightClassForSpecialChars $txt brackets green {[]{}()}
# ctext::addHighlightClassForSpecialChars $txt dog #0082ff {@}
ctext::addHighlightClassForRegexp $txt dog #0082ff {(@)[\.a-zA-Z0-9\_\-\[\]]+}
ctext::addHighlightClassForRegexp $txt paths lightblue {\.[a-zA-Z0-9\_\-]+}
ctext::addHighlightClassForRegexp $txt comments #666666 {(#|//)[^\n\r]*}
ctext::addHighlightClassForRegexp $txt namespaces #0093ff {->|\+\+|::}
}
proc INI {txt} {
ctext::addHighlightClassForRegexp $txt qoute #b84a0c {("|'|`).*?("|'|`)}
ctext::addHighlightClassForRegexp $txt flags orange {\s-[a-zA-Z]+}
ctext::addHighlightClassForRegexp $txt stackControl #4471ca {^(\s*?)\[[\.a-zA-Z0-9\_\-\[\]]+\]}
ctext::addHighlightClassForSpecialChars $txt brackets green {[]{}()}
ctext::addHighlightClassForRegexp $txt dog #0082ff {(@)[\.a-zA-Z0-9\_\-\[\]]+}
ctext::addHighlightClassForRegexp $txt colors #68ceff {(#|//)[^\n\r]*}
ctext::addHighlightClassForRegexp $txt keyword #19a2a6 {^(\s*?)[a-zA-Z0-9\_\-]+(\s*?=)}
ctext::addHighlightClassForSpecialChars $txt equal #0082ff {=}
}
} }

View File

@ -1295,3 +1295,89 @@ image create photo new_20x20 -data {
1rbtZYyxbJrmBlgCccDeAQ9APzY2C+A5baqqOuu67gB4BVpgNWD7ZDZmGIazJiIR0HVlq3eGW6Ws 1rbtZYyxbJrmBlgCccDeAQ9APzY2C+A5baqqOuu67gB4BVpgNWD7ZDZmGIazJiIR0HVlq3eGW6Ws
6/UzP0VErp1zJ1uNzYgOgckwgO9qktvR39YbIoJqCGWh7C4AAAAASUVORK5CYII= 6/UzP0VErp1zJ1uNzYgOgckwgO9qktvR39YbIoJqCGWh7C4AAAAASUVORK5CYII=
} }
image create photo key_16x12 -data {
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
kT1Iw0AcxV9TS0UqDnYQcchQxcGCX4ijVqEIFUKt0KqDyaUfQpOGJMXFUXAtOPixWHVwcdbVwVUQ
BD9AHJ2cFF2kxP8lhRYxHhz34929x907QKiXmWZ1jAKabpvpZELM5lbE8CsiCCGMMQzLzDJmJSkF
3/F1jwBf7+I8y//cn6NbzVsMCIjEM8wwbeJ14qlN2+C8TxxlJVklPiceMemCxI9cVzx+41x0WeCZ
UTOTniOOEovFNlbamJVMjXiSOKZqOuULWY9VzluctXKVNe/JXxjJ68tLXKc5gCQWsAgJIhRUsYEy
bMRp1UmxkKb9hI+/3/VL5FLItQFGjnlUoEF2/eB/8LtbqzAx7iVFEkDoxXE+BoHwLtCoOc73seM0
ToDgM3Clt/yVOjD9SXqtpcWOgJ5t4OK6pSl7wOUO0PdkyKbsSkGaQqEAvJ/RN+WA3luga9XrrbmP
0wcgQ12lboCDQ2CoSNlrPu/ubO/t3zPN/n4AiVZysDNUkngAAAAGYktHRAD/AP8A/6C9p5MAAAAJ
cEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmDAUHMwbmoJmMAAABRklEQVQoz32SPyyDURTFf+fr
V50kVEzWRjSYasPS1aoMJmnzBqZiE5FIjP6EtMNLulmwskksRmKqzhiJiAVJ22spqZbvbPfe807e
+90nWioUCtOSNiT1ASFQBda99w9ESADOuRmgGIbhYrlcfmz1psxsJx6Pz373/lKQy+ViwGaj0Zhr
N3rvrySt1uv17agbBMlkckxStVKpvHQOvfdXwGhkgKR+M7v/z2Bmb1EBYbPZXACyzrnJfzzDkQHA
qPc+BRhAPp9PxWKxV+/9M8Dh9ch4yaVvDXoktpYzteNfTzCzz47DR2Z2/mNAG8CQ4B2zgy4G7UUi
kfgEeiV9/DDABoBBIAN6igxorfE0CIJNgNJNelcoC7oETqyp+S4GkvTrZ0lnwEPpJr2LUUTsLWfu
VqIgPjvnLr45mBnAGkZRxv7SRG0lagtfFWR2IQ04e8UAAAAASUVORK5CYII=
}
image create photo crt_16x12 -data {
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
kT1Iw0AcxV9TS0UqDnYQcchQxcGCX4ijVqEIFUKt0KqDyaUfQpOGJMXFUXAtOPixWHVwcdbVwVUQ
BD9AHJ2cFF2kxP8lhRYxHhz34929x907QKiXmWZ1jAKabpvpZELM5lbE8CsiCCGMMQzLzDJmJSkF
3/F1jwBf7+I8y//cn6NbzVsMCIjEM8wwbeJ14qlN2+C8TxxlJVklPiceMemCxI9cVzx+41x0WeCZ
UTOTniOOEovFNlbamJVMjXiSOKZqOuULWY9VzluctXKVNe/JXxjJ68tLXKc5gCQWsAgJIhRUsYEy
bMRp1UmxkKb9hI+/3/VL5FLItQFGjnlUoEF2/eB/8LtbqzAx7iVFEkDoxXE+BoHwLtCoOc73seM0
ToDgM3Clt/yVOjD9SXqtpcWOgJ5t4OK6pSl7wOUO0PdkyKbsSkGaQqEAvJ/RN+WA3luga9XrrbmP
0wcgQ12lboCDQ2CoSNlrPu/ubO/t3zPN/n4AiVZysDNUkngAAAAGYktHRAD/AP8A/6C9p5MAAAAJ
cEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmDAUHMwbmoJmMAAABRklEQVQoz32SPyyDURTFf+fr
V50kVEzWRjSYasPS1aoMJmnzBqZiE5FIjP6EtMNLulmwskksRmKqzhiJiAVJ22spqZbvbPfe807e
+90nWioUCtOSNiT1ASFQBda99w9ESADOuRmgGIbhYrlcfmz1psxsJx6Pz373/lKQy+ViwGaj0Zhr
N3rvrySt1uv17agbBMlkckxStVKpvHQOvfdXwGhkgKR+M7v/z2Bmb1EBYbPZXACyzrnJfzzDkQHA
qPc+BRhAPp9PxWKxV+/9M8Dh9ch4yaVvDXoktpYzteNfTzCzz47DR2Z2/mNAG8CQ4B2zgy4G7UUi
kfgEeiV9/DDABoBBIAN6igxorfE0CIJNgNJNelcoC7oETqyp+S4GkvTrZ0lnwEPpJr2LUUTsLWfu
VqIgPjvnLr45mBnAGkZRxv7SRG0lagtfFWR2IQ04e8UAAAAASUVORK5CYII=
}
image create photo pem_16x12 -data {
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
kT1Iw0AcxV9TS0UqDnYQcchQxcGCX4ijVqEIFUKt0KqDyaUfQpOGJMXFUXAtOPixWHVwcdbVwVUQ
BD9AHJ2cFF2kxP8lhRYxHhz34929x907QKiXmWZ1jAKabpvpZELM5lbE8CsiCCGMMQzLzDJmJSkF
3/F1jwBf7+I8y//cn6NbzVsMCIjEM8wwbeJ14qlN2+C8TxxlJVklPiceMemCxI9cVzx+41x0WeCZ
UTOTniOOEovFNlbamJVMjXiSOKZqOuULWY9VzluctXKVNe/JXxjJ68tLXKc5gCQWsAgJIhRUsYEy
bMRp1UmxkKb9hI+/3/VL5FLItQFGjnlUoEF2/eB/8LtbqzAx7iVFEkDoxXE+BoHwLtCoOc73seM0
ToDgM3Clt/yVOjD9SXqtpcWOgJ5t4OK6pSl7wOUO0PdkyKbsSkGaQqEAvJ/RN+WA3luga9XrrbmP
0wcgQ12lboCDQ2CoSNlrPu/ubO/t3zPN/n4AiVZysDNUkngAAAAGYktHRAD/AP8A/6C9p5MAAAAJ
cEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmDAUHMwbmoJmMAAABRklEQVQoz32SPyyDURTFf+fr
V50kVEzWRjSYasPS1aoMJmnzBqZiE5FIjP6EtMNLulmwskksRmKqzhiJiAVJ22spqZbvbPfe807e
+90nWioUCtOSNiT1ASFQBda99w9ESADOuRmgGIbhYrlcfmz1psxsJx6Pz373/lKQy+ViwGaj0Zhr
N3rvrySt1uv17agbBMlkckxStVKpvHQOvfdXwGhkgKR+M7v/z2Bmb1EBYbPZXACyzrnJfzzDkQHA
qPc+BRhAPp9PxWKxV+/9M8Dh9ch4yaVvDXoktpYzteNfTzCzz47DR2Z2/mNAG8CQ4B2zgy4G7UUi
kfgEeiV9/DDABoBBIAN6igxorfE0CIJNgNJNelcoC7oETqyp+S4GkvTrZ0lnwEPpJr2LUUTsLWfu
VqIgPjvnLr45mBnAGkZRxv7SRG0lagtfFWR2IQ04e8UAAAAASUVORK5CYII=
}
image create photo csr_16x12 -data {
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
kT1Iw0AcxV9TS0UqDnYQcchQxcGCX4ijVqEIFUKt0KqDyaUfQpOGJMXFUXAtOPixWHVwcdbVwVUQ
BD9AHJ2cFF2kxP8lhRYxHhz34929x907QKiXmWZ1jAKabpvpZELM5lbE8CsiCCGMMQzLzDJmJSkF
3/F1jwBf7+I8y//cn6NbzVsMCIjEM8wwbeJ14qlN2+C8TxxlJVklPiceMemCxI9cVzx+41x0WeCZ
UTOTniOOEovFNlbamJVMjXiSOKZqOuULWY9VzluctXKVNe/JXxjJ68tLXKc5gCQWsAgJIhRUsYEy
bMRp1UmxkKb9hI+/3/VL5FLItQFGjnlUoEF2/eB/8LtbqzAx7iVFEkDoxXE+BoHwLtCoOc73seM0
ToDgM3Clt/yVOjD9SXqtpcWOgJ5t4OK6pSl7wOUO0PdkyKbsSkGaQqEAvJ/RN+WA3luga9XrrbmP
0wcgQ12lboCDQ2CoSNlrPu/ubO/t3zPN/n4AiVZysDNUkngAAAAGYktHRAD/AP8A/6C9p5MAAAAJ
cEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmDAUHMwbmoJmMAAABRklEQVQoz32SPyyDURTFf+fr
V50kVEzWRjSYasPS1aoMJmnzBqZiE5FIjP6EtMNLulmwskksRmKqzhiJiAVJ22spqZbvbPfe807e
+90nWioUCtOSNiT1ASFQBda99w9ESADOuRmgGIbhYrlcfmz1psxsJx6Pz373/lKQy+ViwGaj0Zhr
N3rvrySt1uv17agbBMlkckxStVKpvHQOvfdXwGhkgKR+M7v/z2Bmb1EBYbPZXACyzrnJfzzDkQHA
qPc+BRhAPp9PxWKxV+/9M8Dh9ch4yaVvDXoktpYzteNfTzCzz47DR2Z2/mNAG8CQ4B2zgy4G7UUi
kfgEeiV9/DDABoBBIAN6igxorfE0CIJNgNJNelcoC7oETqyp+S4GkvTrZ0lnwEPpJr2LUUTsLWfu
VqIgPjvnLr45mBnAGkZRxv7SRG0lagtfFWR2IQ04e8UAAAAASUVORK5CYII=
}
image create photo git_16x12 -data {
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
kT1Iw0AcxV9TS0UqDnYQcchQnSz4hYiTVqEIFUKt0KqDyaUfQpOGJMXFUXAtOPixWHVwcdbVwVUQ
BD9AHJ2cFF2kxP8lhRYxHhz34929x907QKiXmWZ1jACabpvpZELM5lbE8CsiCCOEaYzKzDJmJSkF
3/F1jwBf7+I8y//cn6NbzVsMCIjEM8wwbeJ14slN2+C8TxxlJVklPiceNumCxI9cVzx+41x0WeCZ
UTOTniOOEovFNlbamJVMjXiCOKZqOuULWY9VzluctXKVNe/JXxjJ68tLXKc5gCQWsAgJIhRUsYEy
bMRp1UmxkKb9hI+/3/VL5FLItQFGjnlUoEF2/eB/8LtbqzA+5iVFEkDoxXE+BoHwLtCoOc73seM0
ToDgM3Clt/yVOjD1SXqtpcWOgJ5t4OK6pSl7wOUO0PdkyKbsSkGaQqEAvJ/RN+WA3luga9XrrbmP
0wcgQ12lboCDQ2CoSNlrPu/ubO/t3zPN/n4AtjZywjCqfNkAAAAGYktHRAD/AP8A/6C9p5MAAAAJ
cEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmDAcGATEYpspOAAABMUlEQVQoz42SsUoDQRRFz+yM
G5CQ0sbC2iqNECwWUUTUQgj5AasUi4sfE8hPSEgjwcZCUkRIYWNnpZWlRI1keLvPZgXd7AZv+Zhz
Zu5jDCVJkqThvR+qqjjnOv1+/4OKBMVBt9td896fqeoBcJSm6SiO4/q/BEmSNIA7YBO4AB5VNVol
Mb/hxWJxA+zmo23n3KeIvAAYY8bW2tNiHVsBA1gRuTfGvAKHwJaqRq1W62o6nfo/Fbz3wwIMsGGt
vQTesyxrAg+qGonIYGkHqipU5zwIgjdglldxSwLnXMcYMy6Ac1X9AnaAZ2APmIRh2C5dYhzH9TRN
R6oaAWRZ1lTVubX2KT8yqdVqx71eb1YqKJHcAh44qYKXBPlHWgeugf1VN1cKfl4iIgNjjAvDsF0F
A3wD9EWTx4J8PxsAAAAASUVORK5CYII=
}

View File

@ -55,5 +55,21 @@ dict set lexers MD procFindString {(#+?)\s*?PROCNAME}
dict set lexers MD procRegexpCommand {regexp -nocase -all -- {^(#+?)\s(.+?)$} $line match keyWord procName} dict set lexers MD procRegexpCommand {regexp -nocase -all -- {^(#+?)\s(.+?)$} $line match keyWord procName}
# dict set lexers YML varRegexpCommandMultiline {regexp -all -line -- {^(\s*)(set_fact|vars):$} $line match indent keyWord} # dict set lexers YML varRegexpCommandMultiline {regexp -all -line -- {^(\s*)(set_fact|vars):$} $line match indent keyWord}
#--------------------------------------------------
# Perl
dict set lexers PL commentSymbol {#}
dict set lexers PL variableSymbol {$}
dict set lexers PL tabSize 4
dict set lexers PL procFindString {(sub )\s*?PROCNAME}
dict set lexers PL procRegexpCommand {regexp -nocase -all -- {^\s*?(sub)\s([a-zA-Z0-9\-_:]+?)($|\(.+?\))} $line match keyWord procName params}
dict set lexers PL varRegexpCommand {regexp -nocase -all -- {^(\s*?)\$([a-zA-Z0-9\-_$]+)\s+=\s+(.+?)(\s*;$)} $line match indent varName varValue lineEnd}
#--------------------------------------------------
# Perl
dict set lexers INI commentSymbol {#}
dict set lexers INI tabSize 4
dict set lexers INI procFindString {(\[)PROCNAME(\])}
dict set lexers INI procRegexpCommand {regexp -nocase -all -- {^\s*?(\[)([a-zA-Z0-9\-_:]+?)(\])$} $line match keyWord procName}
# ------------------------------------------------- # -------------------------------------------------
dict set lexers ALL varDirectory {variables vars group_vars host_vars defaults} dict set lexers ALL varDirectory {variables vars group_vars host_vars defaults}

View File

@ -230,7 +230,7 @@ proc ImageBase64Encode {} {
} }
proc FindImage {ext} { proc FindImage {ext} {
foreach img [image names] { foreach img [image names] {
if [regexp -nocase -all -- "^($ext)(_)" $img match v1 v2] { if [regexp -nocase -all -- "^($ext)(_16x12)" $img match v1 v2] {
# puts "\nFindinig images: $img \n" # puts "\nFindinig images: $img \n"
return $img return $img
} }

View File

@ -31,6 +31,8 @@ namespace eval Tree {
set findImg [::FindImage gitlab] set findImg [::FindImage gitlab]
} elseif {[string match {*bitbucket*} [string tolower $text]]} { } elseif {[string match {*bitbucket*} [string tolower $text]]} {
set findImg [::FindImage bitbucket] set findImg [::FindImage bitbucket]
} elseif {[string match {\.git*} [string tolower $text]]} {
set findImg [::FindImage git]
} }
if {$fileExt ne "" || $findImg ne ""} { if {$fileExt ne "" || $findImg ne ""} {
set image $findImg set image $findImg
@ -47,6 +49,8 @@ namespace eval Tree {
set image [::FindImage redhat] set image [::FindImage redhat]
} elseif {[string match {*gitlab*} [string tolower [file tail $item]]]} { } elseif {[string match {*gitlab*} [string tolower [file tail $item]]]} {
set image [::FindImage gitlab] set image [::FindImage gitlab]
} elseif {[string match {.git} [string tolower [file tail $item]]]} {
set image [::FindImage git]
} else { } else {
set image pixel set image pixel
} }
@ -78,7 +82,7 @@ namespace eval Tree {
set key [lindex [split $id "::"] 0] set key [lindex [split $id "::"] 0]
if {$values eq "" || $key eq ""} {return} if {$values eq "" || $key eq ""} {return}
puts "$key $tree $values" # puts "$key $tree $values"
switch $key { switch $key {
directory { directory {
FileOper::ReadFolder $values FileOper::ReadFolder $values
@ -100,7 +104,7 @@ namespace eval Tree {
set key [lindex [split $id "::"] 0] set key [lindex [split $id "::"] 0]
if {$values eq "" || $key eq ""} {return} if {$values eq "" || $key eq ""} {return}
puts "$key $tree $values" # puts "$key $tree $values"
switch -regexp $key { switch -regexp $key {
directory { directory {
FileOper::ReadFolder $values FileOper::ReadFolder $values

View File

@ -10,7 +10,7 @@ exec wish "$0" -- "$@"
###################################################### ######################################################
# Version: 2.0.0 # Version: 2.0.0
# Release: alpha # Release: alpha
# Build: 01122022125119 # Build: 07122022155807
###################################################### ######################################################
# определим текущую версию, релиз и т.д. # определим текущую версию, релиз и т.д.
@ -125,7 +125,8 @@ if [info exists opened] {
FileOper::ReadFolder $path FileOper::ReadFolder $path
ReadFilesFromDirectory $path $path ReadFilesFromDirectory $path $path
} elseif [file exists $path] { } elseif [file exists $path] {
ResetModifiedFlag [FileOper::Edit $path] # ResetModifiedFlag [FileOper::Edit $path]
FileOper::Edit $path
} }
} }
} else { } else {