Some changes into GUI (tabs)
This commit is contained in:
parent
f1ca27d3e0
commit
faf594ce9b
|
@ -5,6 +5,11 @@
|
|||
# Author: Sergey Kalinin banzaj28@yandex.ru
|
||||
##########################################################
|
||||
|
||||
0.4.6
|
||||
25.05.2022
|
||||
- Added linux shell highlight
|
||||
- Added "Close" button into file tab
|
||||
|
||||
0.4.5
|
||||
15.03.2018
|
||||
- Added sort procedure for projects tree
|
||||
|
@ -437,6 +442,8 @@ characters to the right of the insertion cursor.
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
BIN
img/close.gif
Normal file
BIN
img/close.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 640 B |
BIN
img/close_16x16.png
Normal file
BIN
img/close_16x16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.2 KiB |
124
lib/editor.tcl
124
lib/editor.tcl
|
@ -606,9 +606,124 @@ proc EditFile {tree node fileName} {
|
|||
set fileExt [string tolower [string range [file extension $fileName] 1 end]]
|
||||
set parentNode [$tree parent $node]
|
||||
set project [$tree itemcget $parentNode -data]
|
||||
image create photo close_16x16 -data {
|
||||
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
|
||||
Iyrl5HIg6ot0m4a8jTrPU8pQHmN5mYQ7UnmaPMz/fq99nNWb1vosD4qgbs2pWqMRvD9CZwCrz7B8
|
||||
3ZDV/v22hhmnnvnnG78A3slQYApdFcIAAA+LaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hw
|
||||
YWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBt
|
||||
ZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2
|
||||
MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRm
|
||||
LXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczpp
|
||||
cHRjRXh0PSJodHRwOi8vaXB0Yy5vcmcvc3RkL0lwdGM0eG1wRXh0LzIwMDgtMDItMjkvIgogICAg
|
||||
eG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpz
|
||||
dEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgog
|
||||
ICAgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIKICAgIHht
|
||||
bG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOmRjPSJodHRwOi8v
|
||||
cHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i
|
||||
ZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8x
|
||||
LjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6MGQ3ZjM0YWItOTUzZS00
|
||||
ODY1LWJkYWMtNWZjYzA5MmNjNWVkIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmI2MTk2
|
||||
NTlmLWJiZjMtNDBkNi05YWMwLThiMmIyNzc4MGU3YiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVu
|
||||
dElEPSJ4bXAuZGlkOjAyODVmOGJjLTU1NjgtNGJmMS1iNDhkLTUwZGM2MGZkYjU5ZCIKICAgR0lN
|
||||
UDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIx
|
||||
NjUzNjM5ODc4NjYyNDkwIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjIiCiAgIGRjOkZvcm1hdD0i
|
||||
aW1hZ2UvcG5nIgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJ
|
||||
TVAgMi4xMCI+CiAgIDxpcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgIDxyZGY6QmFnLz4KICAg
|
||||
PC9pcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgPGlwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAg
|
||||
IDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgIDxpcHRjRXh0OkFydHdv
|
||||
cmtPck9iamVjdD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkFydHdvcmtPck9iamVjdD4K
|
||||
ICAgPGlwdGNFeHQ6UmVnaXN0cnlJZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OlJlZ2lz
|
||||
dHJ5SWQ+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAg
|
||||
ICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2
|
||||
dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjNjMGYyODI4LTRhY2EtNDdmMy1iZjM4LWJjY2YzYTM5MTEz
|
||||
YyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChMaW51eCkiCiAgICAgIHN0
|
||||
RXZ0OndoZW49IiswMzowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAg
|
||||
IDxwbHVzOkltYWdlU3VwcGxpZXI+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZVN1cHBs
|
||||
aWVyPgogICA8cGx1czpJbWFnZUNyZWF0b3I+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFn
|
||||
ZUNyZWF0b3I+CiAgIDxwbHVzOkNvcHlyaWdodE93bmVyPgogICAgPHJkZjpTZXEvPgogICA8L3Bs
|
||||
dXM6Q29weXJpZ2h0T3duZXI+CiAgIDxwbHVzOkxpY2Vuc29yPgogICAgPHJkZjpTZXEvPgogICA8
|
||||
L3BsdXM6TGljZW5zb3I+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBt
|
||||
ZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
Cjw/eHBhY2tldCBlbmQ9InciPz5/607fAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCa
|
||||
nBgAAAAHdElNRQfmBRsIGCYdNEHNAAABw0lEQVQozz3NPUxTURxA8XPvfe1TFKRFo8UIRT40GqNh
|
||||
QdEYFReNg4tx00QDC9HBzcQRJ6ODMcbZuDg4OBLTaKIYQgcDVUClDfGjUKClYGn7Xvvu3wU98y85
|
||||
SiNEyTu9+zuOLJ0txku+PxWMlabIbaCwKI1FN14b7Lux3PnZSasS1lrPSxYflkepW4xA4/2Ry7fz
|
||||
bRPOnL6u2/S6KYRNR7hfFqrTCJjhO/PFWbkpB+WSZGRNxmVETku7xL65Z1wY6HmbKkhNvsgjeSae
|
||||
iIh4kpCL0iotr3SzM3DY66rSzCHi1AkDEELIoXD6t3U7S+dnnCrH2UUD/1rlJb8xqKhuN53DftcL
|
||||
naaJVswmCMiSYR2xtaTZeaV+oKBn+EgfezZBiF7OEWXV/hzVK5Mrtg7E2P1/oQjRw1VitpJ11j7g
|
||||
+SHhAlHA8pUCR9lOmdckcm5a51OlCYshggOUecAQj5nlPc+DSsL7brZuVPLuCYksYNhHgif4JJnk
|
||||
jUynKvf0vPHwMnrRHMtFxtUy7/hBmDDZ+q+Uf7c2JqIMhpp2TzXdMidtC0qjrV0sJ0pPg09YUAYH
|
||||
jy34Oxq6TVz2ipCtpatz5k8AwF+X6NHCM54kXAAAAABJRU5ErkJggg==
|
||||
}
|
||||
# set w [$noteBook insert end $node -text "$file" -image [Bitmap::get [file join $imgDir [GetImage $fileName].gif]] \
|
||||
#-background $editor(bg) -foreground $editor(fg)]
|
||||
set w [$noteBook insert end $node -text "$file" -image [Bitmap::get [file join $imgDir [GetImage $fileName].gif]]]
|
||||
set w [$noteBook insert end $node -text "$file" -image [Bitmap::get [file join $imgDir [GetImage $fileName].gif]] \
|
||||
-ractiveimage close_16x16 -rimage close_16x16 -rimagecmd CloseFileNB]
|
||||
# set w [$noteBook insert end $node -text "$file" -image [Bitmap::get [file join $imgDir close.png]]]
|
||||
|
||||
EditorFileNavigateMenu $w $fileName
|
||||
|
||||
|
@ -995,14 +1110,17 @@ proc ReadFileStructure {mod line lineNumber tree node} {
|
|||
# View modern notebook tab header for edited file
|
||||
# like as : "> dir1 > dir2 > file.tcl"
|
||||
proc EditorFileNavigateMenu {w fullPathFile} {
|
||||
set lblEditFileFullPath [label $w.lblEditFileFullPath -text [regsub -all -- {/|\\} $fullPathFile " > "] -anchor w]
|
||||
set lblEditFileFullPath [label $w.lblEditFileFullPath -text [regsub -all -- {/|\\} $fullPathFile " > "] -anchor w ]
|
||||
pack $lblEditFileFullPath -side top -fill x -padx 2 -pady 3
|
||||
}
|
||||
|
||||
####################################
|
||||
GetOp
|
||||
|
||||
|
||||
proc CloseFileNB {node nodeItem} {
|
||||
global tree
|
||||
FileDialog $tree close
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -329,10 +329,32 @@ proc FileDialog {nbNode operation} {
|
|||
|
||||
|
||||
namespace eval FileOperation {
|
||||
global noteBook fontNormal fontBold fileList noteBook projDir activeProject imgDir editor
|
||||
global types noteBook fontNormal fontBold fileList noteBook projDir activeProject imgDir editor rootDir
|
||||
}
|
||||
set types {
|
||||
{"Tcl files" {.tcl}}
|
||||
{"Tk files" {.tk}}
|
||||
{"Rivet files" {.rvt}}
|
||||
{"TclHttpd Template" {.tml}}
|
||||
{"Sql files" {.sql}}
|
||||
{"Html files" {.html}}
|
||||
{"Text files" {.txt}}
|
||||
{"JAVA files" {.java}}
|
||||
{"PERL files" {.pl}}
|
||||
{"PHP files" {.php}}
|
||||
{"FORTRAN files" {.for}}
|
||||
{"CAML or ML files" {.ml}}
|
||||
{"CAML or ML interface files" {.mli}}
|
||||
{"Ruby files" {.rb}}
|
||||
{"Text files" {} TEXT}
|
||||
{"All files" *}
|
||||
}
|
||||
set dot "_"
|
||||
|
||||
proc FileOperation::Open {} {
|
||||
set dir $projDir
|
||||
global tree node types dot env noteBook fontNormal fontBold fileList noteBook projDir activeProject imgDir editor rootDir
|
||||
# set dir $projDir
|
||||
set dir $env(HOME)
|
||||
set fullPath [tk_getOpenFile -initialdir $dir -filetypes $types -parent $noteBook]
|
||||
set file [string range $fullPath [expr [string last "/" $fullPath]+1] end]
|
||||
regsub -all "." $file "_" node
|
||||
|
@ -341,7 +363,7 @@ proc FileOperation::Open {} {
|
|||
set name [file rootname $file]
|
||||
set ext [string range [file extension $file] 1 end]
|
||||
set node "$name$dot$ext"
|
||||
EditFile $node $fullPath
|
||||
EditFile .frmBody.frmCat.noteBook.ffiles.frmTreeFiles.treeFiles $node $fullPath
|
||||
return 1
|
||||
}
|
||||
proc FileOperation::Close {} {
|
||||
|
|
|
@ -199,8 +199,3 @@ proc HighLightPERL {text line lineNumber node} {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -268,3 +268,4 @@ proc HighLightPHP {text line lineNumber node} {
|
|||
|
||||
|
||||
|
||||
|
||||
|
|
202
lib/highlight/shell.tcl
Normal file
202
lib/highlight/shell.tcl
Normal file
|
@ -0,0 +1,202 @@
|
|||
###########################################################
|
||||
# Tcl/Tk Project Manager #
|
||||
# version 0.0.1 #
|
||||
# TCL highlight file #
|
||||
# Copyright (c) "Sergey Kalinin", 2001, http://nuk-svk.ru #
|
||||
# Author: Sergey Kalinin banzaj28@yandex.ru #
|
||||
###########################################################
|
||||
set beginQuote "0.0"
|
||||
set endQuote "2.0"
|
||||
set endQuotePrev "0.0"
|
||||
|
||||
proc HighLightSHELL {text line lineNumber node} {
|
||||
global fontNormal fontBold editorFontBold tree imgDir noteBook systemCmdList
|
||||
global editor color
|
||||
global beginQuote endQuote endQuotePrev
|
||||
set startIndex 0
|
||||
|
||||
$text tag configure bold -font $editor(fontBold)
|
||||
$text tag configure className -font $editor(fontBold) -foreground $color(procName)
|
||||
$text tag configure keyWord -foreground $color(keyWord)
|
||||
$text tag configure comments -foreground $color(comments)
|
||||
$text tag configure variable -foreground $color(var)
|
||||
$text tag configure string -foreground $color(string)
|
||||
$text tag configure braceHighLight -font $editor(fontBold)\
|
||||
-foreground $color(braceBG) -background $color(braceFG)
|
||||
$text tag configure brace -foreground $color(brace)
|
||||
$text tag configure percent -foreground $color(percent)
|
||||
$text tag configure bindKey -foreground $color(bindKey)
|
||||
$text tag configure sql -font $editor(fontBold) -foreground $color(sql)
|
||||
|
||||
set keyWord [info commands]
|
||||
|
||||
foreach n $systemCmdList {lappend keyWord $n}
|
||||
|
||||
# for OOP extention
|
||||
foreach n {if else then fi for done do while lt gt} {lappend keyWord $n}
|
||||
set dataType {list abstract boolean byte char double float int long short}
|
||||
set sqlOperators {select from where and or count sum in order cast as by}
|
||||
set a ""
|
||||
set startPos 0
|
||||
set endPos 0
|
||||
set length 0
|
||||
set workLine $line
|
||||
set className ""
|
||||
while {$workLine != ""} {
|
||||
if {[regexp "(^|\t| )\[a-zA-Z\\_:\]+" $workLine word]} {
|
||||
set length [string length $word]
|
||||
set startPos [string first [string trim $word] $line]
|
||||
set endPos [expr $startPos + $length]
|
||||
set workLine [string range $workLine $length end]
|
||||
if {[lsearch $keyWord [string trim $word]] != -1} {
|
||||
$text tag add keyWord $lineNumber.$startPos $lineNumber.$endPos
|
||||
}
|
||||
if {[lsearch $dataType [string trim $word]] != -1} {
|
||||
$text tag add bold $lineNumber.$startPos $lineNumber.$endPos
|
||||
}
|
||||
if {[lsearch $sqlOperators [string trim $word]] != -1} {
|
||||
$text tag add sql $lineNumber.$startPos $lineNumber.$endPos
|
||||
}
|
||||
if {[string trim $word]=="class" || [string trim $word]=="extends" || [string trim $word]=="implements" || [string trim $word]=="use"} {
|
||||
$text tag add className $lineNumber.[expr $startPos + $length] $lineNumber.[string wordend $line [expr $startPos + $length +2]]
|
||||
}
|
||||
set startPos [expr $endPos + 1]
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
# string " " highlight
|
||||
set startPos 0
|
||||
set workLine $line
|
||||
while {$workLine != ""} {
|
||||
if {[regexp "\".*?\"" $workLine a b] || [regexp "\'.*?\'" $workLine a b]} {
|
||||
set start [string first $a $workLine]
|
||||
set end $start
|
||||
incr end [string length $a]
|
||||
set workLine [string range $workLine $end end]
|
||||
incr start $startPos
|
||||
incr end $startPos
|
||||
$text tag add string $lineNumber.$start $lineNumber.$end
|
||||
set startPos $end
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
# variable highlight #regexp -nocase -all -- {\$({|)[a-zA-Z0-9]+(:-|)(.+?}|)} string match v1 v2 v3
|
||||
#[regexp "\\$\[a-zA-Z0-9\\_\-\]+" $workLine a] ||
|
||||
set startPos 0
|
||||
set workLine $line
|
||||
while {$workLine != ""} {
|
||||
if [regexp -nocase -all -- {\$({|)([a-zA-Z0-9_\-]+)(:-|)(.+?}|\}|)} $workLine match v1 a v3 v4] {
|
||||
set start [string first $a $workLine]
|
||||
set end $start
|
||||
incr end [string length $a]
|
||||
set workLine [string range $workLine $end end]
|
||||
incr start $startPos
|
||||
incr end $startPos
|
||||
if {$a != ""} {
|
||||
$text tag add variable $lineNumber.$start $lineNumber.$end
|
||||
}
|
||||
set startPos $end
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
set startPos 0
|
||||
set workLine $line
|
||||
while {$workLine != ""} {
|
||||
if {[regexp "\\@\[a-zA-Z\\_:\]+" $workLine a]} {
|
||||
set start [string first $a $workLine]
|
||||
set end $start
|
||||
incr end [string length $a]
|
||||
set workLine [string range $workLine $end end]
|
||||
incr start $startPos
|
||||
incr end $startPos
|
||||
if {$a != ""} {
|
||||
$text tag add variable $lineNumber.$start $lineNumber.$end
|
||||
}
|
||||
set startPos $end
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
# persent % highlight
|
||||
set startPos 0
|
||||
set workLine $line
|
||||
while {$workLine != ""} {
|
||||
# if {[regexp "\%.*? " $workLine a b]}
|
||||
if {[regexp "\%" $workLine a b] || [regexp "(\-\>)" $workLine a b]} {
|
||||
set start [string first $a $workLine]
|
||||
set end $start
|
||||
incr end [string length $a]
|
||||
set workLine [string range $workLine $end end]
|
||||
incr start $startPos
|
||||
incr end $startPos
|
||||
$text tag add percent $lineNumber.$start $lineNumber.$end
|
||||
set startPos $end
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
# DEDERER
|
||||
# hightlight [, {, }, ], ( , )
|
||||
set startPos 0
|
||||
set workLine $line
|
||||
while {$workLine != ""} {
|
||||
if {[regexp {\(|\[|{|}|\]|\)} $workLine a b]} {
|
||||
set start [string first $a $workLine]
|
||||
set end $start
|
||||
incr end [string length $a]
|
||||
set workLine [string range $workLine $end end]
|
||||
incr start $startPos
|
||||
incr end $startPos
|
||||
$text tag add bold $lineNumber.$start $lineNumber.$end
|
||||
set startPos $end
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
# parameter for command hightlight regexp -nocase -all -- {\s-+\w+(?=\s)} string match
|
||||
set startPos 0
|
||||
set workLine $line
|
||||
while {$workLine != ""} {
|
||||
if {[regexp -nocase -all -- {\s-+\w+(?=\s)} $workLine a b]} {
|
||||
set start [expr [string first $a $workLine] + 1]
|
||||
set end $start
|
||||
incr end [string length $a]
|
||||
set workLine [string range $workLine $end end]
|
||||
incr start $startPos
|
||||
incr end $startPos
|
||||
$text tag add bindKey $lineNumber.$start $lineNumber.$end
|
||||
set startPos $end
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
## COMENTS ##
|
||||
set workLine [$text get $lineNumber.0 $lineNumber.end]
|
||||
if {[regexp -indices "(^|\t|;| )#" $workLine word]} {
|
||||
set p [lindex $word 1]
|
||||
$text tag add comments $lineNumber.$p $lineNumber.end
|
||||
$text tag raise comments
|
||||
} else {
|
||||
$text tag remove comments $lineNumber.0 $lineNumber.end
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -177,6 +177,9 @@ bind . <Control-eacute> Quit
|
|||
bind . <Control-q> Quit
|
||||
bind . <Control-ccedilla> PrintDialog
|
||||
bind . <Control-p> PrintDialog
|
||||
bind . <Control-o> FileOperation::Open
|
||||
bind . <Control-O> FileOperation::Open
|
||||
|
||||
set sepIndex 0
|
||||
|
||||
########## STATUS BAR ##########
|
||||
|
@ -382,3 +385,5 @@ if {[info exists workingProject]} {
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ proc GetProjMenu {m} {
|
|||
$m add command -label [::msgcat::mc "Project settings"] -command {NewProj edit $activeProject ""}\
|
||||
-font $fontNormal
|
||||
$m add separator
|
||||
$m add command -label [::msgcat::mc "Open project"] -command {OpenProj} -font $fontNormal
|
||||
$m add command -label [::msgcat::mc "Open project"] -command {OpenProj "projects"} -font $fontNormal
|
||||
$m add command -label [::msgcat::mc "New project"] -command {NewProj new "" ""} -font $fontNormal
|
||||
$m add command -label [::msgcat::mc "Delete project"] -command DelProj -font $fontNormal
|
||||
$m add separator
|
||||
|
@ -182,3 +182,4 @@ proc GetFileMenu {m} {
|
|||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -587,6 +587,8 @@ proc HighLight {ext text line lineNumber node} {
|
|||
HighLightPHP $text $line $lineNumber $node
|
||||
} elseif {($ext == "rb")} {
|
||||
HighLightRUBY $text $line $lineNumber $node
|
||||
} elseif {($ext == "sh")} {
|
||||
HighLightSHELL $text $line $lineNumber $node
|
||||
} else {
|
||||
HighLightTCL $text $line $lineNumber $node
|
||||
}
|
||||
|
@ -665,8 +667,26 @@ proc GetExtention {node} {
|
|||
return $ext
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Get system command name from PATH environment variable
|
||||
proc GetSystemCommand {} {
|
||||
global tcl_platform env systemCmdList
|
||||
switch -exact -- $tcl_platform(platform) {
|
||||
"unix" {
|
||||
foreach path [split $env(PATH) ":"] {
|
||||
foreach commandName [lsort [glob -nocomplain [file join $path *]]] {
|
||||
lappend systemCmdList [file tail $commandName]
|
||||
}
|
||||
}
|
||||
}
|
||||
"windows" {
|
||||
foreach path [split $env(PATH) ";"] {
|
||||
foreach commandName [lsort [glob -nocomplain [file join $path *]]] {
|
||||
lappend systemCmdList [file tail $commandName]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -100,3 +100,4 @@ proc GoToLineButton {w} {
|
|||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -79,3 +79,5 @@ set workingProject ""
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ exec wish "$0" -- "$@"
|
|||
###############################################
|
||||
|
||||
########## VERSION INFORMATION ##########
|
||||
set ver "0.4.5"
|
||||
set ver "0.4.6"
|
||||
|
||||
package require BWidget
|
||||
package require msgcat
|
||||
|
@ -174,7 +174,6 @@ option add *Dialog.msg.background $editor(bg)
|
|||
# option add *Text.HighlightThickness 2 userDefault
|
||||
# option add *Entry.HighlightThickness 1 userDefault
|
||||
|
||||
|
||||
|
||||
GetSystemCommand
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user