Добавил поддержку ruby, yaml/ Зачаток работы со структурой файлов (переменные процедуры)
This commit is contained in:
parent
a67916273c
commit
4f6735dcea
20
TODO
20
TODO
|
@ -6,3 +6,23 @@
|
||||||
######################################################
|
######################################################
|
||||||
|
|
||||||
2. Подстветку текущей вкладки и элемента в дереве
|
2. Подстветку текущей вкладки и элемента в дереве
|
||||||
|
|
||||||
|
--- Ansible ---
|
||||||
|
1. Определение всех переменных в отдельный список
|
||||||
|
- если открыт каталог с плэйбуками
|
||||||
|
подкаталоги vars, group_vars, host_vars, файл inventory
|
||||||
|
- внутри файла, конструкции вида:
|
||||||
|
set_fact:
|
||||||
|
varName: value
|
||||||
|
set_fact varName value
|
||||||
|
register: varName
|
||||||
|
vars:
|
||||||
|
varName: value
|
||||||
|
vars_files:
|
||||||
|
- var1.yml
|
||||||
|
- var2.yml
|
||||||
|
|
||||||
|
2. Внутри редактора на переменных {{ var_name }} сделать либо по наведении мыши либо по щелчку,
|
||||||
|
либо добавить ссылку на файл и где эта переменная определена
|
||||||
|
|
||||||
|
3. Если используется роль и переменная не найдена в плэйбуке то искать в роли (не факт что требуется)
|
||||||
|
|
|
@ -140,13 +140,18 @@ namespace eval Editor {
|
||||||
}
|
}
|
||||||
|
|
||||||
proc InsertTabular {txt} {
|
proc InsertTabular {txt} {
|
||||||
global cfgVariables
|
global cfgVariables lexers editors
|
||||||
set selIndex [$txt tag ranges sel]
|
set selIndex [$txt tag ranges sel]
|
||||||
set pos [$txt index insert]
|
set pos [$txt index insert]
|
||||||
set lineNum [lindex [split $pos "."] 0]
|
set lineNum [lindex [split $pos "."] 0]
|
||||||
|
set fileType [dict get $editors $txt fileType]
|
||||||
|
if {[dict exists $lexers $fileType tabSize] != 0 } {
|
||||||
|
set tabSize [dict get $lexers $fileType tabSize]
|
||||||
|
} else {
|
||||||
|
set tabSize $cfgVariables(tabSize)
|
||||||
|
}
|
||||||
# puts "Select : $selIndex"
|
# puts "Select : $selIndex"
|
||||||
for {set i 0} {$i < $cfgVariables(tabSize)} { incr i} {
|
for {set i 0} {$i < $tabSize} { incr i} {
|
||||||
append tabInsert " "
|
append tabInsert " "
|
||||||
}
|
}
|
||||||
# puts ">$tabInsert<"
|
# puts ">$tabInsert<"
|
||||||
|
@ -179,9 +184,15 @@ namespace eval Editor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
proc DeleteTabular {txt} {
|
proc DeleteTabular {txt} {
|
||||||
global cfgVariables
|
global cfgVariables lexers editors
|
||||||
set selIndex [$txt tag ranges sel]
|
set selIndex [$txt tag ranges sel]
|
||||||
set pos [$txt index insert]
|
set pos [$txt index insert]
|
||||||
|
set fileType [dict get $editors $txt fileType]
|
||||||
|
if {[dict exists $lexers $fileType tabSize] != 0 } {
|
||||||
|
set tabSize [dict get $lexers $fileType tabSize]
|
||||||
|
} else {
|
||||||
|
set tabSize $cfgVariables(tabSize)
|
||||||
|
}
|
||||||
set lineNum [lindex [split $pos "."] 0]
|
set lineNum [lindex [split $pos "."] 0]
|
||||||
if {$selIndex != ""} {
|
if {$selIndex != ""} {
|
||||||
set lineBegin [lindex [split [lindex $selIndex 0] "."] 0]
|
set lineBegin [lindex [split [lindex $selIndex 0] "."] 0]
|
||||||
|
@ -196,8 +207,8 @@ namespace eval Editor {
|
||||||
if {[regexp -nocase -indices -- {(^\s*)(.*?)} $str match v1 v2]} {
|
if {[regexp -nocase -indices -- {(^\s*)(.*?)} $str match v1 v2]} {
|
||||||
set posBegin [lindex [split $v1] 0]
|
set posBegin [lindex [split $v1] 0]
|
||||||
set posEnd [lindex [split $v1] 1]
|
set posEnd [lindex [split $v1] 1]
|
||||||
if {[expr $posEnd + 1] >= $cfgVariables(tabSize)} {
|
if {[expr $posEnd + 1] >= $tabSize} {
|
||||||
$txt delete $i.$posBegin $i.$cfgVariables(tabSize)
|
$txt delete $i.$posBegin $i.$tabSize
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -210,17 +221,23 @@ namespace eval Editor {
|
||||||
if {[regexp -nocase -indices -- {(^\s*)(.*?)} $str match v1]} {
|
if {[regexp -nocase -indices -- {(^\s*)(.*?)} $str match v1]} {
|
||||||
set posBegin [lindex [split $v1] 0]
|
set posBegin [lindex [split $v1] 0]
|
||||||
set posEnd [lindex [split $v1] 1]
|
set posEnd [lindex [split $v1] 1]
|
||||||
if {[expr $posEnd + 1] >= $cfgVariables(tabSize)} {
|
if {[expr $posEnd + 1] >= $tabSize} {
|
||||||
$txt delete $lineNum.$posBegin $lineNum.$cfgVariables(tabSize)
|
$txt delete $lineNum.$posBegin $lineNum.$tabSize
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
## TABULAR INSERT (auto indent)##
|
## TABULAR INSERT (auto indent)##
|
||||||
proc Indent {txt} {
|
proc Indent {txt} {
|
||||||
global cfgVariables
|
global cfgVariables lexers editors
|
||||||
# set tabSize 4
|
# set tabSize 4
|
||||||
set indentSize $cfgVariables(tabSize)
|
set fileType [dict get $editors $txt fileType]
|
||||||
|
if {[dict exists $lexers $fileType tabSize] != 0 } {
|
||||||
|
set tabSize [dict get $lexers $fileType tabSize]
|
||||||
|
} else {
|
||||||
|
set tabSize $cfgVariables(tabSize)
|
||||||
|
}
|
||||||
|
set indentSize $tabSize
|
||||||
set pos [$txt index insert]
|
set pos [$txt index insert]
|
||||||
set lineNum [lindex [split $pos "."] 0]
|
set lineNum [lindex [split $pos "."] 0]
|
||||||
set posNum [lindex [split $pos "."] 1]
|
set posNum [lindex [split $pos "."] 1]
|
||||||
|
@ -241,7 +258,7 @@ namespace eval Editor {
|
||||||
set shouldBeSpaces 0
|
set shouldBeSpaces 0
|
||||||
for {set i 0} {$i < $len} {incr i} {
|
for {set i 0} {$i < $len} {incr i} {
|
||||||
if {[string index $prevSpaces $i] == "\t"} {
|
if {[string index $prevSpaces $i] == "\t"} {
|
||||||
incr shouldBeSpaces $cfgVariables(tabSize)
|
incr shouldBeSpaces $tabSize
|
||||||
} else {
|
} else {
|
||||||
incr shouldBeSpaces
|
incr shouldBeSpaces
|
||||||
}
|
}
|
||||||
|
@ -451,7 +468,7 @@ namespace eval Editor {
|
||||||
bind $txt <Control-v> "Editor::SelectionPaste $txt"
|
bind $txt <Control-v> "Editor::SelectionPaste $txt"
|
||||||
|
|
||||||
#bind $txt <Control-adiaeresis> "auto_completition $txt"
|
#bind $txt <Control-adiaeresis> "auto_completition $txt"
|
||||||
#bind $txt <Control-l> "auto_completition $txt"
|
bind $txt <Control-l> "SearchVariable {$txt get {insert wordstart} {insert wordend}}"
|
||||||
# bind $txt <Control-icircumflex> ""
|
# bind $txt <Control-icircumflex> ""
|
||||||
# bind $txt <Control-j> ""
|
# bind $txt <Control-j> ""
|
||||||
bind $txt <Control-i> "ImageBase64Encode $txt"
|
bind $txt <Control-i> "ImageBase64Encode $txt"
|
||||||
|
@ -559,20 +576,33 @@ namespace eval Editor {
|
||||||
proc ReadStructure {txt treeItemName} {
|
proc ReadStructure {txt treeItemName} {
|
||||||
global tree nbEditor editors lexers
|
global tree nbEditor editors lexers
|
||||||
set fileType [dict get $editors $txt fileType]
|
set fileType [dict get $editors $txt fileType]
|
||||||
set l ""
|
set procList ""
|
||||||
|
set varList ""
|
||||||
|
set params ""
|
||||||
if {[dict exists $lexers $fileType] == 0} {return}
|
if {[dict exists $lexers $fileType] == 0} {return}
|
||||||
for {set lineNumber 0} {$lineNumber <= [$txt count -lines 0.0 end]} {incr lineNumber} {
|
for {set lineNumber 0} {$lineNumber <= [$txt count -lines 0.0 end]} {incr lineNumber} {
|
||||||
set line [$txt get $lineNumber.0 $lineNumber.end]
|
set line [$txt get $lineNumber.0 $lineNumber.end]
|
||||||
|
# Выбираем процедуры (функции, классы и т.д.)
|
||||||
if {[dict exists $lexers $fileType procRegexpCommand] != 0 } {
|
if {[dict exists $lexers $fileType procRegexpCommand] != 0 } {
|
||||||
if {[eval [dict get $lexers $fileType procRegexpCommand]]} {
|
if {[eval [dict get $lexers $fileType procRegexpCommand]]} {
|
||||||
set procName_ [string trim $procName]
|
set procName_ [string trim $procName]
|
||||||
puts [Tree::InsertItem $tree $treeItemName $procName_ "procedure" "$procName_ ($params)"]
|
puts [Tree::InsertItem $tree $treeItemName $procName_ "procedure" "$procName_ ($params)"]
|
||||||
lappend l [list $procName_ $params]
|
lappend procList [list $procName_ $params]
|
||||||
|
unset procName_
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Выбираем переменные
|
||||||
|
if {[dict exists $lexers $fileType varRegexpCommand] != 0 } {
|
||||||
|
if {[eval [dict get $lexers $fileType varRegexpCommand]]} {
|
||||||
|
set varName [string trim $varName]
|
||||||
|
set varValue [string trim $varValue]
|
||||||
|
puts "variable: $varName, value: $varValue"
|
||||||
|
lappend varList [list $varName $varValue]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dict set editors $txt procedureList $l
|
dict set editors $txt procedureList $procList
|
||||||
|
dict set editors $txt variableList $varList
|
||||||
}
|
}
|
||||||
|
|
||||||
proc FindFunction {findString} {
|
proc FindFunction {findString} {
|
||||||
|
|
|
@ -164,20 +164,28 @@ namespace eval FileOper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
proc ReadFolder {directory} {
|
proc ReadFolder {directory {parent ""}} {
|
||||||
global tree dir
|
global tree dir lexers
|
||||||
puts "Read the folder $directory"
|
puts "Read the folder $directory"
|
||||||
set rList ""
|
set rList ""
|
||||||
if {[catch {cd $directory}] != 0} {
|
if {[catch {cd $directory}] != 0} {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
set parent [Tree::InsertItem $tree {} $directory "directory" [file tail $directory]]
|
set parent [Tree::InsertItem $tree $parent $directory "directory" [file tail $directory]]
|
||||||
$tree selection set $parent
|
$tree selection set $parent
|
||||||
# if {[ $tree item $parent -open] eq "false"} {
|
# if {[ $tree item $parent -open] eq "false"} {
|
||||||
# $tree item $parent -open true
|
# $tree item $parent -open true
|
||||||
# } else {
|
# } else {
|
||||||
# $tree item $parent -open false
|
# $tree item $parent -open false
|
||||||
# }
|
# }
|
||||||
|
# Проверяем наличие списка каталогов для спецобработки
|
||||||
|
# и если есть читаем в список (ножно для ansible)
|
||||||
|
if {[dict exists $lexers ALL varDirectory] == 1} {
|
||||||
|
foreach i [split [dict get $lexers ALL varDirectory] " "] {
|
||||||
|
# puts "-------- $i"
|
||||||
|
lappend dirListForCheck [string trim $i]
|
||||||
|
}
|
||||||
|
}
|
||||||
# Getting an files and directorues lists
|
# Getting an files and directorues lists
|
||||||
foreach file [glob -nocomplain *] {
|
foreach file [glob -nocomplain *] {
|
||||||
lappend rList [list [file join $directory $file]]
|
lappend rList [list [file join $directory $file]]
|
||||||
|
@ -200,7 +208,7 @@ namespace eval FileOper {
|
||||||
# Sort lists and insert into tree
|
# Sort lists and insert into tree
|
||||||
if {[info exists lstDir] && [llength $lstDir] > 0} {
|
if {[info exists lstDir] && [llength $lstDir] > 0} {
|
||||||
foreach f [lsort $lstDir] {
|
foreach f [lsort $lstDir] {
|
||||||
puts " Tree insert item: [Tree::InsertItem $tree $parent [file join $directory $f] "directory" $f]"
|
puts "Tree insert item: [Tree::InsertItem $tree $parent [file join $directory $f] "directory" $f]"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if {[info exists lstFiles] && [llength $lstFiles] > 0} {
|
if {[info exists lstFiles] && [llength $lstFiles] > 0} {
|
||||||
|
|
|
@ -68,4 +68,43 @@ namespace eval Highlight {} {
|
||||||
ctext::addHighlightClassForRegexp $txt comments #666666 {(#|//)[^\n\r]*}
|
ctext::addHighlightClassForRegexp $txt comments #666666 {(#|//)[^\n\r]*}
|
||||||
ctext::addHighlightClassForSpecialChars $txt qoute #b84a0c {"'`}
|
ctext::addHighlightClassForSpecialChars $txt qoute #b84a0c {"'`}
|
||||||
}
|
}
|
||||||
|
proc YAML {txt} {
|
||||||
|
ctext::addHighlightClassForRegexp $txt qoute #b84a0c {("|'|`).*?("|'|`)}
|
||||||
|
ctext::addHighlightClassForRegexp $txt stackControl #19a2a6 {\s*?[\w]+:}
|
||||||
|
ctext::addHighlightClassForRegexp $txt vars #4471ca {(\$|\*|\&)[\.a-zA-Z0-9\_\-]+}
|
||||||
|
ctext::addHighlightClassForRegexp $txt vars #4471ca {(\{\{)(\s*?|)[\.a-zA-Z0-9\_\-]+((\s*?|))(\}\})}
|
||||||
|
ctext::addHighlightClassForSpecialChars $txt brackets green {[]{}()}
|
||||||
|
ctext::addHighlightClassForRegexp $txt paths lightblue {\.[a-zA-Z0-9\_\-]+}
|
||||||
|
ctext::addHighlightClassForRegexp $txt comments #666666 {(#|//)[^\n\r]*}
|
||||||
|
}
|
||||||
|
proc YML {txt} {
|
||||||
|
ctext::addHighlightClassForRegexp $txt qoute #b84a0c {("|'|`).*?("|'|`)}
|
||||||
|
ctext::addHighlightClassForRegexp $txt stackControl #19a2a6 {\s*?[\w]+:}
|
||||||
|
ctext::addHighlightClassForRegexp $txt vars #4471ca {(\$|\*|\&)[\.a-zA-Z0-9\_\-]+}
|
||||||
|
ctext::addHighlightClassForRegexp $txt vars #4471ca {(\{\{)(\s*?|)[\.a-zA-Z0-9\_\-]+((\s*?|))(\}\})}
|
||||||
|
ctext::addHighlightClassForSpecialChars $txt brackets green {[]{}()}
|
||||||
|
ctext::addHighlightClassForRegexp $txt paths lightblue {\.[a-zA-Z0-9\_\-]+}
|
||||||
|
ctext::addHighlightClassForRegexp $txt comments #666666 {(#|//)[^\n\r]*}
|
||||||
|
}
|
||||||
|
proc XML {txt} {
|
||||||
|
ctext::addHighlightClassForRegexp $txt qoute #b84a0c {("|'|`).*?("|'|`)}
|
||||||
|
ctext::addHighlightClassForRegexp $txt stackControl #19a2a6 {(<|<\\)*?[\w]+>}
|
||||||
|
ctext::addHighlightClassForRegexp $txt vars #4471ca {(\$|\*|\&)[\.a-zA-Z0-9\_\-]+}
|
||||||
|
ctext::addHighlightClassForSpecialChars $txt brackets green {[]{}()}
|
||||||
|
# ctext::addHighlightClassForRegexp $txt paths lightblue {\.[a-zA-Z0-9\_\-]+}
|
||||||
|
# ctext::addHighlightClassForRegexp $txt comments #666666 {(#|//)[^\n\r]*}
|
||||||
|
ctext::addHighlightClassForSpecialChars $txt tags #666666 {<>/}
|
||||||
|
}
|
||||||
|
proc RB {txt} {
|
||||||
|
ctext::addHighlightClassForRegexp $txt qoute #b84a0c {("|'|`).*?("|'|`)}
|
||||||
|
ctext::addHighlightClassForRegexp $txt flags orange {\s-[a-zA-Z]+}
|
||||||
|
ctext::addHighlightClass $txt stackControl #19a2a6 {def end class if else for while case when}
|
||||||
|
# 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::addHighlightClassForRegexp $txt vars #4471ca {(\$|\*|\&)[\.a-zA-Z0-9\_\-\[\]]+}
|
||||||
|
# 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 comments #666666 {(#|//)[^\n\r]*}
|
||||||
|
ctext::addHighlightClassForRegexp $txt namespaces #4f64ff {::}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -317,37 +317,6 @@ image create photo pixel -data {
|
||||||
cEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfmCAENMR0phoajAAAAGXRFWHRDb21tZW50AENyZWF0
|
cEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfmCAENMR0phoajAAAAGXRFWHRDb21tZW50AENyZWF0
|
||||||
ZWQgd2l0aCBHSU1QV4EOFwAAAAtJREFUCNdjYAACAAAFAAHiJgWbAAAAAElFTkSuQmCC
|
ZWQgd2l0aCBHSU1QV4EOFwAAAAtJREFUCNdjYAACAAAFAAHiJgWbAAAAAElFTkSuQmCC
|
||||||
}
|
}
|
||||||
|
|
||||||
image create photo html_10x20 -data {
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
|
|
||||||
kT1Iw1AUhU9bpUVaHOwg4pChOlkpKuKoVShChVArtOpg8tI/aNKQpLg4Cq4FB38Wqw4uzro6uAqC
|
|
||||||
4A+Io5OToouUeF9SaBHjhcf7OO+ew3v3Af5mlalmTwJQNcvIpJJCLr8qBF8Rgg8RJDAuMVOfE8U0
|
|
||||||
POvrnnqp7uI8y7vvz4ooBZMBPoF4lumGRbxBPL1p6Zz3iaOsLCnE58RjBl2Q+JHrsstvnEsO+3lm
|
|
||||||
1Mhm5omjxEKpi+UuZmVDJZ4ijimqRvn+nMsK5y3OarXO2vfkLwwXtJVlrtMaRgqLWIIIATLqqKAK
|
|
||||||
C3HaNVJMZOg86eEfcvwiuWRyVcDIsYAaVEiOH/wPfs/WLE5OuEnhJND7YtsfI0BwF2g1bPv72LZb
|
|
||||||
J0DgGbjSOv5aE5j5JL3R0WJHQP82cHHd0eQ94HIHGHzSJUNypAAtf7EIvJ/RN+WBgVugb82dW/sc
|
|
||||||
pw9AlmaVvgEODoHREmWve7w71D23f3va8/sBkKtys2tcKkcAAAAGYktHRAC8ALwAvCLnprkAAAAJ
|
|
||||||
cEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfmCAMHOR+ozyDaAAAAGXRFWHRDb21tZW50AENyZWF0
|
|
||||||
ZWQgd2l0aCBHSU1QV4EOFwAAALdJREFUKM+NkrEOgjAURU+7EOqKP8JvYdjEMDGym7jqH/EjxlGM
|
|
||||||
Ew4U8ni21SYsvY/Tw6Wg1tAyDS0TgfU+z/upGathAGXPATgCTsOAquzZiXkXBCpYAdyAlxzO6jUz
|
|
||||||
AvqUUBuBXYAHzPvCzvlsBMYQ1P6CKTvnrZfsC2qU4V7DFruspvE1bHLx7mn9ZHHKHcj1n4vY6apy
|
|
||||||
4Gpj6onuSPUur00QGrL7t3eETeMf5+9jARg1VwGdzj5HHW6sd2btFQAAAABJRU5ErkJggg==
|
|
||||||
}
|
|
||||||
image create photo htm_10x20 -data {
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
|
|
||||||
kT1Iw1AUhU9bpUVaHOwg4pChOlkpKuKoVShChVArtOpg8tI/aNKQpLg4Cq4FB38Wqw4uzro6uAqC
|
|
||||||
4A+Io5OToouUeF9SaBHjhcf7OO+ew3v3Af5mlalmTwJQNcvIpJJCLr8qBF8Rgg8RJDAuMVOfE8U0
|
|
||||||
POvrnnqp7uI8y7vvz4ooBZMBPoF4lumGRbxBPL1p6Zz3iaOsLCnE58RjBl2Q+JHrsstvnEsO+3lm
|
|
||||||
1Mhm5omjxEKpi+UuZmVDJZ4ijimqRvn+nMsK5y3OarXO2vfkLwwXtJVlrtMaRgqLWIIIATLqqKAK
|
|
||||||
C3HaNVJMZOg86eEfcvwiuWRyVcDIsYAaVEiOH/wPfs/WLE5OuEnhJND7YtsfI0BwF2g1bPv72LZb
|
|
||||||
J0DgGbjSOv5aE5j5JL3R0WJHQP82cHHd0eQ94HIHGHzSJUNypAAtf7EIvJ/RN+WBgVugb82dW/sc
|
|
||||||
pw9AlmaVvgEODoHREmWve7w71D23f3va8/sBkKtys2tcKkcAAAAGYktHRAC8ALwAvCLnprkAAAAJ
|
|
||||||
cEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfmCAMHOR+ozyDaAAAAGXRFWHRDb21tZW50AENyZWF0
|
|
||||||
ZWQgd2l0aCBHSU1QV4EOFwAAALdJREFUKM+NkrEOgjAURU+7EOqKP8JvYdjEMDGym7jqH/EjxlGM
|
|
||||||
Ew4U8ni21SYsvY/Tw6Wg1tAyDS0TgfU+z/upGathAGXPATgCTsOAquzZiXkXBCpYAdyAlxzO6jUz
|
|
||||||
AvqUUBuBXYAHzPvCzvlsBMYQ1P6CKTvnrZfsC2qU4V7DFruspvE1bHLx7mn9ZHHKHcj1n4vY6apy
|
|
||||||
4Gpj6onuSPUur00QGrL7t3eETeMf5+9jARg1VwGdzj5HHW6sd2btFQAAAABJRU5ErkJggg==
|
|
||||||
}
|
|
||||||
image create photo docker_16x12 -data {
|
image create photo docker_16x12 -data {
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9
|
||||||
kT1Iw0AcxV9bxVJaHCz4gUOG6mRBVMRRq1CECqFWaNXB5NIvaNKQpLg4Cq4FBz8Wqw4uzro6uAqC
|
kT1Iw0AcxV9bxVJaHCz4gUOG6mRBVMRRq1CECqFWaNXB5NIvaNKQpLg4Cq4FBz8Wqw4uzro6uAqC
|
||||||
|
@ -782,3 +751,295 @@ image create photo bitbucket_16x12 -data {
|
||||||
w+yvgEyKQrH0bV757KhawsBDnANVVJU2sbm7OoAFGOsiX082xiAixPXFOUqSbGhgAdYXzE3S4jdA
|
w+yvgEyKQrH0bV757KhawsBDnANVVJU2sbm7OoAFGOsiX082xiAixPXFOUqSbGhgAdYXzE3S4jdA
|
||||||
rK1eFpdgfjj9+x8A9DWzmPfpaEiwHlaEJo0+NhZTD/X7X+YcdHg7MQcwAAAAAElFTkSuQmCC
|
rK1eFpdgfjj9+x8A9DWzmPfpaEiwHlaEJo0+NhZTD/X7X+YcdHg7MQcwAAAAAElFTkSuQmCC
|
||||||
}
|
}
|
||||||
|
image create photo html_16x12 -data {
|
||||||
|
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
|
||||||
|
Ii5msqti5yu6ISCEGGZkZhlzkpSE7/i6R4CvdzGe5X/uz9Gr5iwGBETiWWaYNvEG8dSmbXDeJ46w
|
||||||
|
oqwSnxOPmnRB4keuKx6/cS64LPDMiJlOzRNHiMVCGyttzIqmRjxJHFU1nfKFjMcq5y3OWrnKmvfk
|
||||||
|
Lwzn9JVlrtMcQgKLWIIEEQqqKKEMm/oqQSfFQor24z7+QdcvkUshVwmMHAuoQIPs+sH/4He3Vn5i
|
||||||
|
3EsKx4HQi+N8DAOdu0Cj5jjfx47TOAGCz8CV3vJX6sD0J+m1lhY9Avq2gYvrlqbsAZc7wMCTIZuy
|
||||||
|
KwVpCvk88H5G35QF+m+BnjWvt+Y+Th+ANHWVvAEODoGRAmWv+7y7q723f880+/sBmApytieIWY0A
|
||||||
|
AA+LaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1
|
||||||
|
TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1l
|
||||||
|
dGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9
|
||||||
|
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVz
|
||||||
|
Y3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczppcHRjRXh0PSJodHRwOi8vaXB0Yy5vcmcv
|
||||||
|
c3RkL0lwdGM0eG1wRXh0LzIwMDgtMDItMjkvIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h
|
||||||
|
ZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNv
|
||||||
|
bS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6cGx1cz0iaHR0cDovL25z
|
||||||
|
LnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2lt
|
||||||
|
cC5vcmcveG1wLyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x
|
||||||
|
LyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1s
|
||||||
|
bnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElE
|
||||||
|
PSJnaW1wOmRvY2lkOmdpbXA6NmYxNmM4MjItMzk3My00OWVlLThmMTgtNjY0YzdmZDY1Y2U3Igog
|
||||||
|
ICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmQ5NGE5YTY2LTYyODMtNDNiNi04MDZiLWQ3ZDQy
|
||||||
|
NDZlYmIwOCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjhhYzc5YmVkLTBh
|
||||||
|
YTAtNGJkZi1hMjcyLTA4NjRiMGYwNmUzNiIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0
|
||||||
|
Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjYyMDk4MTcxODE5MjA0IgogICBHSU1Q
|
||||||
|
OlZlcnNpb249IjIuMTAuMjIiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICB0aWZmOk9yaWVu
|
||||||
|
dGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDxpcHRjRXh0Okxv
|
||||||
|
Y2F0aW9uQ3JlYXRlZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uQ3JlYXRl
|
||||||
|
ZD4KICAgPGlwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0
|
||||||
|
OkxvY2F0aW9uU2hvd24+CiAgIDxpcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgIDxyZGY6QmFn
|
||||||
|
Lz4KICAgPC9pcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgPGlwdGNFeHQ6UmVnaXN0cnlJZD4K
|
||||||
|
ICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgIDx4bXBNTTpIaXN0b3J5
|
||||||
|
PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgog
|
||||||
|
ICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJj
|
||||||
|
OTg2NzE4LWYzN2YtNDBjMC1iNDI3LWY4NGMxNWU4ZDgwNiIKICAgICAgc3RFdnQ6c29mdHdhcmVB
|
||||||
|
Z2VudD0iR2ltcCAyLjEwIChMaW51eCkiCiAgICAgIHN0RXZ0OndoZW49IiswMzowMCIvPgogICAg
|
||||||
|
PC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgIDxwbHVzOkltYWdlU3VwcGxpZXI+CiAg
|
||||||
|
ICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZVN1cHBsaWVyPgogICA8cGx1czpJbWFnZUNyZWF0
|
||||||
|
b3I+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZUNyZWF0b3I+CiAgIDxwbHVzOkNvcHly
|
||||||
|
aWdodE93bmVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6Q29weXJpZ2h0T3duZXI+CiAgIDxw
|
||||||
|
bHVzOkxpY2Vuc29yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6TGljZW5zb3I+CiAgPC9yZGY6
|
||||||
|
RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz62kJbO
|
||||||
|
AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5gkCBTgLLVZf
|
||||||
|
XQAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACKSURBVCjPY2BAAh9StJy+
|
||||||
|
ZahJI4t9y1CT/pCi5cRACHxM1/bYZs7wf5s5w/93aUr8DAwMDO/SlPg/pmnd2mbO8P9jurYHTs0f
|
||||||
|
0nTcYJo/pGl3ohqs1QiT+5Su7UuSZqIMIaQZmyHI4kwMlAKSvZCq40PIkC4GBgYuuOY0zSa8mglF
|
||||||
|
I0wMbzRSkpAAiQ5zqfboe2QAAAAASUVORK5CYII=
|
||||||
|
}
|
||||||
|
image create photo xml_16x12 -data {
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
|
||||||
|
kT1Iw0AcxV9Tix9UHOwg4pChOlkQFREnrUIRKoRaoVUHk0u/oElDkuLiKLgWHPxYrDq4OOvq4CoI
|
||||||
|
gh8gjk5Oii5S4v+SQosYD4778e7e4+4dINTLTLM6xgBNt81UIi5msqti5yu6ISCEGGZkZhlzkpSE
|
||||||
|
7/i6R4CvdzGe5X/uz9Gr5iwGBETiWWaYNvEG8dSmbXDeJ46woqwSnxOPmnRB4keuKx6/cS64LPDM
|
||||||
|
iJlOzRNHiMVCGyttzIqmRjxJHFU1nfKFjMcq5y3OWrnKmvfkLwzn9JVlrtMcQgKLWIIEEQqqKKEM
|
||||||
|
m/oqQSfFQor24z7+QdcvkUshVwmMHAuoQIPs+sH/4He3Vn5i3EsKx4HQi+N8DAOdu0Cj5jjfx47T
|
||||||
|
OAGCz8CV3vJX6sD0J+m1lhY9Avq2gYvrlqbsAZc7wMCTIZuyKwVpCvk88H5G35QF+m+BnjWvt+Y+
|
||||||
|
Th+ANHWVvAEODoGRAmWv+7y7q723f880+/sBmApyti9bk0oAAAAGYktHRAAAAAAAAPlDu38AAAAJ
|
||||||
|
cEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmCQIFNygIqTLgAAABi0lEQVQoz62SP0tbYRSHn/PG
|
||||||
|
VOmf3BDcXCQtUm9c+wESMApS0tIW+gHk3ixd281SN10dNDeLm4OCCAlIVKSfwMHEqQ3OhcZ7I0is
|
||||||
|
9j0d9JakUCfP9HJ+53ngvBy4zwrn3cJFeWKsv9f13VLouV8BLsoTY+G8W+jPTfyI/NysGOpXduiw
|
||||||
|
42Ud/fBsGEBVp0XloONlnSs7dCiGeuTnZgcEoTdVRHUbGFFkOxO0I1n5dnkzIkXUNjJBO0LYAEZQ
|
||||||
|
3en6uZcAEnpTRcHu3MLL6aD1KbaflZ+PG2uOUmcnozwaT8r6aS/y3S8oC8AvEXlr/gcDiDUzAgey
|
||||||
|
yW9ZP+0BOJWTzwiLwANV3TJ3faqBaQt7d84opgT0BP0YermlONB3JBTyJBIDgoEV1Lwx6aDZ+Eey
|
||||||
|
DDzsOpMvgJ/p1eP2X9ibXOyHU9VmzQCkg2YDkde3klfn5aePEVMEbcRwx8s6IO+BHiKlVLVZG7gD
|
||||||
|
p9LaVctc0lznn6x9/6FCQWA/zjNBO0qa67xa5pxKa/fervcP1l+f1xFiKJ4AAAAASUVORK5CYII=
|
||||||
|
}
|
||||||
|
image create photo htm_16x12 -data {
|
||||||
|
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
|
||||||
|
Ii5msqti5yu6ISCEGGZkZhlzkpSE7/i6R4CvdzGe5X/uz9Gr5iwGBETiWWaYNvEG8dSmbXDeJ46w
|
||||||
|
oqwSnxOPmnRB4keuKx6/cS64LPDMiJlOzRNHiMVCGyttzIqmRjxJHFU1nfKFjMcq5y3OWrnKmvfk
|
||||||
|
Lwzn9JVlrtMcQgKLWIIEEQqqKKEMm/oqQSfFQor24z7+QdcvkUshVwmMHAuoQIPs+sH/4He3Vn5i
|
||||||
|
3EsKx4HQi+N8DAOdu0Cj5jjfx47TOAGCz8CV3vJX6sD0J+m1lhY9Avq2gYvrlqbsAZc7wMCTIZuy
|
||||||
|
KwVpCvk88H5G35QF+m+BnjWvt+Y+Th+ANHWVvAEODoGRAmWv+7y7q723f880+/sBmApytieIWY0A
|
||||||
|
AA+LaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1
|
||||||
|
TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1l
|
||||||
|
dGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9
|
||||||
|
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVz
|
||||||
|
Y3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczppcHRjRXh0PSJodHRwOi8vaXB0Yy5vcmcv
|
||||||
|
c3RkL0lwdGM0eG1wRXh0LzIwMDgtMDItMjkvIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h
|
||||||
|
ZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNv
|
||||||
|
bS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6cGx1cz0iaHR0cDovL25z
|
||||||
|
LnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2lt
|
||||||
|
cC5vcmcveG1wLyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x
|
||||||
|
LyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1s
|
||||||
|
bnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElE
|
||||||
|
PSJnaW1wOmRvY2lkOmdpbXA6NmYxNmM4MjItMzk3My00OWVlLThmMTgtNjY0YzdmZDY1Y2U3Igog
|
||||||
|
ICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmQ5NGE5YTY2LTYyODMtNDNiNi04MDZiLWQ3ZDQy
|
||||||
|
NDZlYmIwOCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjhhYzc5YmVkLTBh
|
||||||
|
YTAtNGJkZi1hMjcyLTA4NjRiMGYwNmUzNiIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0
|
||||||
|
Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjYyMDk4MTcxODE5MjA0IgogICBHSU1Q
|
||||||
|
OlZlcnNpb249IjIuMTAuMjIiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICB0aWZmOk9yaWVu
|
||||||
|
dGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDxpcHRjRXh0Okxv
|
||||||
|
Y2F0aW9uQ3JlYXRlZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uQ3JlYXRl
|
||||||
|
ZD4KICAgPGlwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0
|
||||||
|
OkxvY2F0aW9uU2hvd24+CiAgIDxpcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgIDxyZGY6QmFn
|
||||||
|
Lz4KICAgPC9pcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgPGlwdGNFeHQ6UmVnaXN0cnlJZD4K
|
||||||
|
ICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgIDx4bXBNTTpIaXN0b3J5
|
||||||
|
PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgog
|
||||||
|
ICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJj
|
||||||
|
OTg2NzE4LWYzN2YtNDBjMC1iNDI3LWY4NGMxNWU4ZDgwNiIKICAgICAgc3RFdnQ6c29mdHdhcmVB
|
||||||
|
Z2VudD0iR2ltcCAyLjEwIChMaW51eCkiCiAgICAgIHN0RXZ0OndoZW49IiswMzowMCIvPgogICAg
|
||||||
|
PC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgIDxwbHVzOkltYWdlU3VwcGxpZXI+CiAg
|
||||||
|
ICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZVN1cHBsaWVyPgogICA8cGx1czpJbWFnZUNyZWF0
|
||||||
|
b3I+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZUNyZWF0b3I+CiAgIDxwbHVzOkNvcHly
|
||||||
|
aWdodE93bmVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6Q29weXJpZ2h0T3duZXI+CiAgIDxw
|
||||||
|
bHVzOkxpY2Vuc29yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6TGljZW5zb3I+CiAgPC9yZGY6
|
||||||
|
RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||||
|
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz62kJbO
|
||||||
|
AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5gkCBTgLLVZf
|
||||||
|
XQAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACKSURBVCjPY2BAAh9StJy+
|
||||||
|
ZahJI4t9y1CT/pCi5cRACHxM1/bYZs7wf5s5w/93aUr8DAwMDO/SlPg/pmnd2mbO8P9jurYHTs0f
|
||||||
|
0nTcYJo/pGl3ohqs1QiT+5Su7UuSZqIMIaQZmyHI4kwMlAKSvZCq40PIkC4GBgYuuOY0zSa8mglF
|
||||||
|
I0wMbzRSkpAAiQ5zqfboe2QAAAAASUVORK5CYII=
|
||||||
|
}
|
||||||
|
image create photo yaml_16x12 -data {
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
|
||||||
|
kT1Iw0AcxV9Tix9UHOwg4pChOlkQFREnrUIRKoRaoVUHk0u/oElDkuLiKLgWHPxYrDq4OOvq4CoI
|
||||||
|
gh8gjk5Oii5S4v+SQosYD4778e7e4+4dINTLTLM6xgBNt81UIi5msqti5yu6ISCEGGZkZhlzkpSE
|
||||||
|
7/i6R4CvdzGe5X/uz9Gr5iwGBETiWWaYNvEG8dSmbXDeJ46woqwSnxOPmnRB4keuKx6/cS64LPDM
|
||||||
|
iJlOzRNHiMVCGyttzIqmRjxJHFU1nfKFjMcq5y3OWrnKmvfkLwzn9JVlrtMcQgKLWIIEEQqqKKEM
|
||||||
|
m/oqQSfFQor24z7+QdcvkUshVwmMHAuoQIPs+sH/4He3Vn5i3EsKx4HQi+N8DAOdu0Cj5jjfx47T
|
||||||
|
OAGCz8CV3vJX6sD0J+m1lhY9Avq2gYvrlqbsAZc7wMCTIZuyKwVpCvk88H5G35QF+m+BnjWvt+Y+
|
||||||
|
Th+ANHWVvAEODoGRAmWv+7y7q723f880+/sBmApyti9bk0oAAAAGYktHRAAAAAAAAPlDu38AAAAJ
|
||||||
|
cEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmCQIGBxYUyKfhAAABlUlEQVQoz6XSz0vTcRzH8cfc
|
||||||
|
9mWiTWEOsUOKxC7CCtZB8KrQgiC8BF38N/xDOkd/gbeudlBWKhUpa3Qwael0LC0qbfvmvuvQl1o/
|
||||||
|
PPWBD+/T6/l5fZ6fD/+5kmB5+b75+UdKpZtara6Tk6xicdrS0gMLCw8Vi0UbG3v4hi568Y4Bg4OB
|
||||||
|
fH7W0NCMTGbczk6kXC4bG7vl7OyDtbUtjUYDx2j3QWJAq5U1MTFudHTG8PCEfP6KqakbEomkWq1h
|
||||||
|
ff2lKHqFJr7+DQjDjHq9rVAoyWbH5PM56XRas3luZeW5MHyCWtygg+h3B6R0OilRlDQ5WRIESaen
|
||||||
|
rK7uOzx8jA3UcYrzfokD8QzxWTL5XiIR6XapVjuq1U28wDt8icM/BfYDUkZGMmZnbwuCwNFRaHv7
|
||||||
|
GZ7iNU7iQ6L+8I8g5HKXLC7ekc1e126HqtU3Dg4q2OkTd/5n+FeDubmrcrm7BgYCu7tNlcpWXP0t
|
||||||
|
PsXv37sYUCjck8lMOz7eV6lsYiuu3m+996+fmIhnCddwGS1sYw8f47v3LgJ8B8dymnhxswZhAAAA
|
||||||
|
AElFTkSuQmCC
|
||||||
|
}
|
||||||
|
image create photo yml_16x12 -data {
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
|
||||||
|
kT1Iw0AcxV9Tix9UHOwg4pChOlkQFREnrUIRKoRaoVUHk0u/oElDkuLiKLgWHPxYrDq4OOvq4CoI
|
||||||
|
gh8gjk5Oii5S4v+SQosYD4778e7e4+4dINTLTLM6xgBNt81UIi5msqti5yu6ISCEGGZkZhlzkpSE
|
||||||
|
7/i6R4CvdzGe5X/uz9Gr5iwGBETiWWaYNvEG8dSmbXDeJ46woqwSnxOPmnRB4keuKx6/cS64LPDM
|
||||||
|
iJlOzRNHiMVCGyttzIqmRjxJHFU1nfKFjMcq5y3OWrnKmvfkLwzn9JVlrtMcQgKLWIIEEQqqKKEM
|
||||||
|
m/oqQSfFQor24z7+QdcvkUshVwmMHAuoQIPs+sH/4He3Vn5i3EsKx4HQi+N8DAOdu0Cj5jjfx47T
|
||||||
|
OAGCz8CV3vJX6sD0J+m1lhY9Avq2gYvrlqbsAZc7wMCTIZuyKwVpCvk88H5G35QF+m+BnjWvt+Y+
|
||||||
|
Th+ANHWVvAEODoGRAmWv+7y7q723f880+/sBmApyti9bk0oAAAAGYktHRAAAAAAAAPlDu38AAAAJ
|
||||||
|
cEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmCQIGBxYUyKfhAAABlUlEQVQoz6XSz0vTcRzH8cfc
|
||||||
|
9mWiTWEOsUOKxC7CCtZB8KrQgiC8BF38N/xDOkd/gbeudlBWKhUpa3Qwael0LC0qbfvmvuvQl1o/
|
||||||
|
PPWBD+/T6/l5fZ6fD/+5kmB5+b75+UdKpZtara6Tk6xicdrS0gMLCw8Vi0UbG3v4hi568Y4Bg4OB
|
||||||
|
fH7W0NCMTGbczk6kXC4bG7vl7OyDtbUtjUYDx2j3QWJAq5U1MTFudHTG8PCEfP6KqakbEomkWq1h
|
||||||
|
ff2lKHqFJr7+DQjDjHq9rVAoyWbH5PM56XRas3luZeW5MHyCWtygg+h3B6R0OilRlDQ5WRIESaen
|
||||||
|
rK7uOzx8jA3UcYrzfokD8QzxWTL5XiIR6XapVjuq1U28wDt8icM/BfYDUkZGMmZnbwuCwNFRaHv7
|
||||||
|
GZ7iNU7iQ6L+8I8g5HKXLC7ekc1e126HqtU3Dg4q2OkTd/5n+FeDubmrcrm7BgYCu7tNlcpWXP0t
|
||||||
|
PsXv37sYUCjck8lMOz7eV6lsYiuu3m+996+fmIhnCddwGS1sYw8f47v3LgJ8B8dymnhxswZhAAAA
|
||||||
|
AElFTkSuQmCC
|
||||||
|
}
|
||||||
|
image create photo rb_16x12 -data {
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
|
||||||
|
kT1Iw0AcxV9Tix9UHOwg4pChOlkQFREnrUIRKoRaoVUHk0u/oElDkuLiKLgWHPxYrDq4OOvq4CoI
|
||||||
|
gh8gjk5Oii5S4v+SQosYD4778e7e4+4dINTLTLM6xgBNt81UIi5msqti5yu6ISCEGGZkZhlzkpSE
|
||||||
|
7/i6R4CvdzGe5X/uz9Gr5iwGBETiWWaYNvEG8dSmbXDeJ46woqwSnxOPmnRB4keuKx6/cS64LPDM
|
||||||
|
iJlOzRNHiMVCGyttzIqmRjxJHFU1nfKFjMcq5y3OWrnKmvfkLwzn9JVlrtMcQgKLWIIEEQqqKKEM
|
||||||
|
m/oqQSfFQor24z7+QdcvkUshVwmMHAuoQIPs+sH/4He3Vn5i3EsKx4HQi+N8DAOdu0Cj5jjfx47T
|
||||||
|
OAGCz8CV3vJX6sD0J+m1lhY9Avq2gYvrlqbsAZc7wMCTIZuyKwVpCvk88H5G35QF+m+BnjWvt+Y+
|
||||||
|
Th+ANHWVvAEODoGRAmWv+7y7q723f880+/sBmApyti9bk0oAAAAGYktHRAAAAAAAAPlDu38AAAAJ
|
||||||
|
cEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmCQIGGArNk/UwAAAAqUlEQVQoz51SMQoCMRCcxAW7
|
||||||
|
gLpgZan5/3NygpWFSAS1sDFeLNyDMya54FZhdmYYZgM0jmOKOZxSYL+E6TXdABytD5uSMGvgmGIv
|
||||||
|
7xYxAOhcROuDSok57MsgAo8xMTUspdEDWSscEvFTONfJDsbxHNMLChdErGS3cEynqsFPvI/4bH1Y
|
||||||
|
CzIvGoj4DsCkhTmmAGBW62A4o6kV1jF1u6krFMRBLrRt+RN/zRuAsFTFUDTjWwAAAABJRU5ErkJg
|
||||||
|
gg==
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
dict set lexers TCL commentSymbol {#}
|
dict set lexers TCL commentSymbol {#}
|
||||||
dict set lexers TCL procFindString {proc PROCNAME}
|
dict set lexers TCL procFindString {proc PROCNAME}
|
||||||
dict set lexers TCL procRegexpCommand {regexp -nocase -all -- {^\s*?(proc) (.*?) \{(.*?)\} \{} $line match keyWord procName params}
|
dict set lexers TCL procRegexpCommand {regexp -nocase -all -- {^\s*?(proc) (.*?) \{(.*?)\} \{} $line match keyWord procName params}
|
||||||
|
dict set lexers TCL varRegexpCommand {regexp -nocase -all -- {^\s*?set\s+([a-zA-Z0-9\:\-_$]+)\s+(.+?)($|;)} $line match varName varValue lineEnd}
|
||||||
|
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
# Go lang
|
# Go lang
|
||||||
|
@ -26,3 +27,22 @@ dict set lexers SH procRegexpCommand {regexp -nocase -all -- {^\s*?(function |)\
|
||||||
dict set lexers PY commentSymbol {#}
|
dict set lexers PY commentSymbol {#}
|
||||||
dict set lexers PY procFindString {(def )\s*?PROCNAME}
|
dict set lexers PY procFindString {(def )\s*?PROCNAME}
|
||||||
dict set lexers PY procRegexpCommand {regexp -nocase -all -- {^\s*?(def)\s*?(.*?)\((.*?)\):} $line match keyWord procName params}
|
dict set lexers PY procRegexpCommand {regexp -nocase -all -- {^\s*?(def)\s*?(.*?)\((.*?)\):} $line match keyWord procName params}
|
||||||
|
|
||||||
|
#--------------------------------------------------
|
||||||
|
# Ruby
|
||||||
|
dict set lexers RB commentSymbol {#}
|
||||||
|
dict set lexers RB tabSize 2
|
||||||
|
dict set lexers RB procFindString {(def )\s*?PROCNAME}
|
||||||
|
dict set lexers RB procRegexpCommand {regexp -nocase -all -- {^\s*?(def)\s([a-zA-Z0-9\-_:]+?)($|\(.+?\))} $line match keyWord procName params}
|
||||||
|
|
||||||
|
#--------------------------------------------------
|
||||||
|
# YAML (ansible)
|
||||||
|
dict set lexers YML commentSymbol {#}
|
||||||
|
dict set lexers YML tabSize 2
|
||||||
|
dict set lexers YML procFindString {(- name:)\s*?PROCNAME}
|
||||||
|
dict set lexers YML procRegexpCommand {regexp -nocase -all -- {^\s*?- (name):\s(.+?)$} $line match keyWord procName}
|
||||||
|
dict set lexers YML varRegexpCommand {regexp -nocase -all -- {^\s*?([a-zA-Z0-9\-_$]+):\s+(.+?)(\s*$)} $line match varName varValue lineEnd}
|
||||||
|
|
||||||
|
dict set lexers ALL varDirectory {vars group_vars host_vars}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ proc GetFileMenu {m} {
|
||||||
set folderPath [FileOper::OpenFolderDialog]
|
set folderPath [FileOper::OpenFolderDialog]
|
||||||
if {$folderPath != ""} {
|
if {$folderPath != ""} {
|
||||||
FileOper::ReadFolder $folderPath
|
FileOper::ReadFolder $folderPath
|
||||||
|
ReadFilesFromDirectory $folderPath $folderPath
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$m add command -label [::msgcat::mc "Close folder"] -command {FileOper::CloseFolder}
|
$m add command -label [::msgcat::mc "Close folder"] -command {FileOper::CloseFolder}
|
||||||
|
|
|
@ -135,3 +135,15 @@ namespace eval Help {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc SearchVariable {varName} {
|
||||||
|
global fileStructure project variables
|
||||||
|
# puts "$fileStructure"
|
||||||
|
foreach key [dict keys $project] {
|
||||||
|
foreach f [dict get $project $key] {
|
||||||
|
foreach v [dict get $project $key $f] {
|
||||||
|
puts "--$v"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -12,46 +12,67 @@ package require fileutil
|
||||||
package require Thread
|
package require Thread
|
||||||
|
|
||||||
# TCL procedure
|
# TCL procedure
|
||||||
proc ReadFileStructureTCL {fileFullName} {
|
|
||||||
global procList
|
proc GetVariablesFromFile {fileName} {
|
||||||
set f [open "$fileFullName" r]
|
global tree nbEditor editors lexers project
|
||||||
while {[gets $f line] >=0} {
|
set fileType [string toupper [string trimleft [file extension $fileName] "."]]
|
||||||
if {[regexp -nocase -all -- {^\s*?(proc) (::|)(\w+)(::|:|)(\w+)\s*?(\{|\()(.*)(\}|\)) \{} $line match v1 v2 v3 v4 v5 v6 params v8]} {
|
set procList ""
|
||||||
set procName "$v2$v3$v4$v5"
|
set varList ""
|
||||||
lappend procList($fileFullName) [list $procName $params]
|
set params ""
|
||||||
|
set f [open "$fileName" r]
|
||||||
|
if {[dict exists $lexers $fileType] == 0} {return}
|
||||||
|
while {[gets $f line] >=0 } {
|
||||||
|
# Выбираем процедуры (функции, классы и т.д.)
|
||||||
|
# if {[dict exists $lexers $fileType procRegexpCommand] != 0 } {
|
||||||
|
# if {[eval [dict get $lexers $fileType procRegexpCommand]]} {
|
||||||
|
# set procName_ [string trim $procName]
|
||||||
|
# # puts [Tree::InsertItem $tree $treeItemName $procName_ "procedure" "$procName_ ($params)"]
|
||||||
|
# lappend procList [list $procName_ $params]
|
||||||
|
# unset procName_
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
# Выбираем переменные
|
||||||
|
if {[dict exists $lexers $fileType varRegexpCommand] != 0 } {
|
||||||
|
if {[eval [dict get $lexers $fileType varRegexpCommand]]} {
|
||||||
|
set varName [string trim $varName]
|
||||||
|
set varValue [string trim $varValue]
|
||||||
|
# puts "variable: $varName, value: $varValue"
|
||||||
|
lappend varList [list $varName $varValue]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
# puts $procList
|
||||||
|
# puts $varList
|
||||||
close $f
|
close $f
|
||||||
|
return $varList
|
||||||
}
|
}
|
||||||
|
|
||||||
# GO function
|
|
||||||
proc ReadFileStructureGO {fileName} {
|
|
||||||
if {[regexp -nocase -all -- {^\s*?func\s*?\((\w+\s*?\*\w+)\)\s*?(\w+)\((.*?)\)\s*?(\(\w+\)|\w+|)\s*?\{} $line match v1 funcName params returns]} {
|
|
||||||
# set procName "$v2$v3$v4$v5"
|
|
||||||
# lappend procList($activeProject) [list $procName [string trim $params]]
|
|
||||||
if {$v1 ne ""} {
|
|
||||||
set linkName [lindex [split $v1 " "] 1]
|
|
||||||
set functionName "\($linkName\).$funcName"
|
|
||||||
}
|
|
||||||
|
|
||||||
# tree parent item type text
|
proc ReadFilesFromDirectory {directory root {type ""}} {
|
||||||
lappend procList($fuleFullName) [list $functionName $params]
|
global procList project lexers variables
|
||||||
|
foreach i [split [dict get $lexers ALL varDirectory] " "] {
|
||||||
|
lappend l [string trim $i]
|
||||||
|
# puts $i
|
||||||
}
|
}
|
||||||
if {[regexp -nocase -all -- {^\s*?func\s*?(\w+)\((.*?)\) (\(\w+\)|\w+|)\s*?\{} $line match funcName params returns]} {
|
if {[catch {cd $directory}] != 0} {
|
||||||
lappend procList($fuleFullName) [list $functonName $params]
|
return ""
|
||||||
}
|
}
|
||||||
}
|
foreach fileName [glob -nocomplain *] {
|
||||||
|
|
||||||
proc ReadFilesFromDirectory {directory} {
|
|
||||||
global procList
|
|
||||||
puts $directory
|
|
||||||
foreach fileName [fileutil::findByPattern $directory *.tcl] {
|
|
||||||
puts "Find file: $fileName"
|
puts "Find file: $fileName"
|
||||||
ReadFileStructureTCL $fileName
|
if {[lsearch $l [file tail $fileName]] != -1 && [file isdirectory $fileName] == 1} {
|
||||||
}
|
# puts "--- $root $fileName"
|
||||||
set f [open "/tmp/test" w]
|
ReadFilesFromDirectory [file join $directory $fileName] $root "var"
|
||||||
foreach name [array names procList] {
|
} elseif {[file isdirectory $fileName] == 1} {
|
||||||
puts $f "$name: $procList($name)"
|
# set type ""
|
||||||
|
ReadFilesFromDirectory [file join $directory $fileName] $root
|
||||||
|
}
|
||||||
|
if {$type eq "var"} {
|
||||||
|
# puts ">>>>>$root $fileName"
|
||||||
|
# puts "[GetVariablesFromFile $fileName]"
|
||||||
|
dict set project $root $fileName "[GetVariablesFromFile $fileName]"
|
||||||
|
set variables([file join $root $directory $fileName]) [GetVariablesFromFile $fileName]
|
||||||
|
puts "[file join $root $directory $fileName]---$variables([file join $root $directory $fileName])"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ namespace eval Tree {
|
||||||
set image proc_10x10
|
set image proc_10x10
|
||||||
}
|
}
|
||||||
procedure {
|
procedure {
|
||||||
regsub -all {:} $item "_" subNode
|
regsub -all {\.|/|\\|\s|"|\{|\}|\(|\)} $item "_" subNode
|
||||||
# puts $subNode
|
# puts $subNode
|
||||||
set image proc_10x10
|
set image proc_10x10
|
||||||
}
|
}
|
||||||
|
|
14
projman.tcl
14
projman.tcl
|
@ -115,8 +115,22 @@ if [info exists opened] {
|
||||||
foreach path $opened {
|
foreach path $opened {
|
||||||
if [file isdirectory $path] {
|
if [file isdirectory $path] {
|
||||||
FileOper::ReadFolder $path
|
FileOper::ReadFolder $path
|
||||||
|
ReadFilesFromDirectory $path $path
|
||||||
|
# puts "aaa[dict values $project "ansible*"]"
|
||||||
} elseif [file exists $path] {
|
} elseif [file exists $path] {
|
||||||
ResetModifiedFlag [FileOper::Edit $path]
|
ResetModifiedFlag [FileOper::Edit $path]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach key [dict keys $project] {
|
||||||
|
foreach f [dict get $project $key] {
|
||||||
|
puts "----$f"
|
||||||
|
|
||||||
|
# dict set project $root fileName $fileName
|
||||||
|
# puts "--- [dict get $project $key fileName]"
|
||||||
|
# foreach v [dict get $project $key fileName] {
|
||||||
|
# puts "--$v"
|
||||||
|
# }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user