亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? editor.tcl

?? 是TCL的另外一個(gè)編譯(解釋)器
?? TCL
?? 第 1 頁 / 共 4 頁
字號(hào):
    $TxtWidget tag configure keyword -font $EditorData(options,fonts,keywordFont)
    $TxtWidget tag configure pair -background red
    
    return
}

proc editorWindows::IsComment {line lineNum} {
    variable TxtWidget
    
    set a ""
    regexp "^( |\t)*\#" $line a
    
    if {$a != ""} {
        return [list $lineNum.[expr [string length $a]-1] $lineNum.[string length $line]]
    } else {
        regexp "^(.*\;( |\t)*)\#" $line a
        if {$a != ""} {
            $TxtWidget tag remove comment $lineNum.0 "$lineNum.0 lineend"
            set range [GetKeywordCoord $line $lineNum]
            if {$range != {} } {
                eval $TxtWidget tag add keyword $range
            } else {
                $TxtWidget tag remove keyword $lineNum.0 "$lineNum.0 lineend"
            }
            return [list $lineNum.[expr [string length $a]-1] $lineNum.[string length $line]]
        } else  {
            return {}
        }
    }
}

proc editorWindows::GetKeywordCoord {line lineNum} {
    global EditorData
    
    set name ""
    
    set temp [string trim $line \ \t\;\{\[\]\}]
    if {![scan $temp %s name]} {
        return {}
    }
    
    set nameStart [string first $name $line]
    set nameEnd [string wordend $line $nameStart]
    
    # is it keyword?
    if {[lsearch $EditorData(keywords) $name] != -1 || $name == "else" || $name == "elseif"} {
        return [list $lineNum.$nameStart $lineNum.$nameEnd]
    } else  {
        return {}
    }
}


proc editorWindows::GetTemplateKeyword { line } {
    global EditorData
    
    set a ""
    regexp "^( |\t|\;)*\[a-z\]+ $" $line a
    
    if {$a != ""} {
        # gets name
        set b ""
        regexp "^( |\t)*" $line b
        set nameStart [string length $b]
        set nameEnd [string length $a]
        set name [string range $a [string length $b] end]
        
        #return name without last space
        return [string range $name 0 [expr {[string length $name] - 2}]]
    } else {
        # check for else
        set a ""
        regexp "^( |\t)*\}( |\t)*else $" $line a
        
        if {$a != ""} {
            return "else"
        }
        
        # check for elseif
        set a ""
        regexp "^( |\t)*\}( |\t)*elseif $" $line a
        
        if {$a != ""} {
            return "elseif"
        }
    }
    
    return ""
}

proc editorWindows::setCursor {lineNum pos} {
    variable TxtWidget
    
    $TxtWidget mark set insert $lineNum.$pos
    $TxtWidget see insert
    focus $TxtWidget
    ReadCursor
    
    return
}

#reaction on changing tab size
proc editorWindows::onTabSize {} {
    variable TxtWidget
    global EditorData
    
    if {$TxtWidget != ""} {
        set size [expr {$EditorData(options,tabSize)*
            [font measure $EditorData(options,fonts,editorFont) -displayof $TxtWidget " "]}]
        $TxtWidget configure -tabs [list $size]
    }
    
    return
}

# reaction on change font
proc editorWindows::onFontChange {} {
    variable TxtWidget
    global EditorData
    
    if {$TxtWidget != ""} {
        $TxtWidget configure -font $EditorData(options,fonts,editorFont)
        ConfigureTags
    }
    
    return
}

proc editorWindows::onChangeFontSize {editWin} {
    global EditorData
    
    if {$editWin != ""} {
        $editWin configure -font editorFont
        $editWin tag configure comment -font commentFont -foreground blue
        $editWin tag configure keyword -font keywordFont
        $editWin tag configure pair -background red
        update
    }
    return
}

proc editorWindows::GetOpenPair {symbol {index ""}} {
    variable TxtWidget
    
    if {$index == ""} {
        set index "insert"
    } else  {
        set index "$index"
    }
    
    set count -1
    
    switch $symbol {
        "\}" {set rexp {(^[ \t\;]*#)|(\{)|(\\)|(\})}}
        "\]" {set rexp {(^[ \t\;]*#)|(\[)|(\\)|(\])}}
        "\)" {set rexp {(^[ \t\;]*#)|(\()|(\\)|(\))}}
    }
    while {$count != 0} {
        set index [$TxtWidget search -backwards -regexp $rexp "$index" "1.0"]
        
        if {$index == ""} {
            break
        }
        #check for quoting
        if {[$TxtWidget get "$index -1c"] != "\\"} {
            switch [$TxtWidget get $index] {
                "\{" {incr count}
                "\[" {incr count}
                "\(" {incr count}
                "\}" {incr count -1}
                "\]" {incr count -1}
                "\)" {incr count -1}
            }
        }
    }
    
    if {$count == 0} {
        return $index
    } else  {
        return ""
    }
}



proc editorWindows::GetClosePair {symbol {index ""}} {
    variable TxtWidget
    
    if {$index == ""} {
        set index "insert"
    }
    
    set count 1
    
    switch $symbol {
        "\{" {set rexp {(^[ \t\;]*#)|(\})|(\{)|(\\)}}
        "\[" {set rexp {(^[ \t\;]*#)|(\[)|(\\)|(\])}}
        "\(" {set rexp {(^[ \t\;]*#)|(\()|(\\)|(\))}}
    }
    while {$count != 0} {
        set index [$TxtWidget search -regexp $rexp "$index +1c" end ]
        if {$index == ""} {
            break
        }
        switch -- [$TxtWidget get $index] {
            "\{" {incr count}
            "\[" {incr count}
            "\(" {incr count}
            "\}" {incr count -1}
            "\]" {incr count -1}
            "\)" {incr count -1}
            "\\" {set index "$index +1ch"}
            default {
                #this is a comment line
                set index [$TxtWidget index "$index lineend"]
            }
        }
        if {[$TxtWidget compare $index >= "end-1c"]} {
            break
        }
    }
    if {$count == 0} {
        return [$TxtWidget index $index]
    } else  {
        return ""
    }
}

#process line for openSymbol
proc editorWindows::ProcessLineForOpenSymbol {line symbol countName} {
    upvar $countName count
    
    switch -- $symbol {
        "\}" {
            set openSymbol "\{"
        }
        "\]" {
            set openSymbol "\["
        }
        "\)" {
            set openSymbol "\("
        }
    }
    
    #process line
    for {set i [expr {[string length $line] - 1}]} {$i >= 0} {incr i -1} {
        set curChar [string index $line $i]
        
        if {$curChar == $openSymbol} {
            # increment count
            if {[string index $line [expr {$i - 1}]] == "\\"} {
                #skip it
                incr i -1
            } else  {
                incr count
                if {$count > 0} {
                    return $i
                }
            }
        } elseif {$curChar == $symbol } {
            # decrement count
            if {[string index $line [expr {$i - 1}]] == "\\"} {
                #skip it
                incr i -1
            } else  {
                incr count -1
            }
        }
    }
    
    return ""
}


#process line for closeSymbol
proc editorWindows::ProcessLineForCloseSymbol {line symbol countName} {
    upvar $countName count
    
    switch -- $symbol {
        "\{" {
            set closeSymbol "\}"
        }
        "\[" {
            set closeSymbol "\]"
        }
        "\(" {
            set closeSymbol "\)"
        }
    }
    
    #process line
    set len [string length $line]
    for {set i 0} {$i < $len} {incr i } {
        set curChar [string index $line $i]
        
        if {$curChar == $closeSymbol} {
            # increment count
            incr count
            if {$count > 0} {
                return $i
            }
        } elseif {$curChar == $symbol } {
            # decrement count
            incr count -1
        } elseif {$curChar == "\\"} {
            #skip next symbol
            incr i
        }
    }
    
    return ""
}

# count braces in text
proc editorWindows::CountBraces {text {count 0}} {
    set rexp_open {\{}
    set rexp_close {\}}
    #ignore comment lines
    regsub -all {^[ \t\;]#[^\n]*} $text "" dummy
    #ignore quoted braces
    regsub -all {(\\\\)} $dummy "" dummy
    regsub -all {(\\\{|\\\})} $dummy "" text
    set openBraces [regsub -all $rexp_open $text "*" dummy]
    set closeBraces [regsub -all $rexp_close $text "*" dummy]
    return [expr $openBraces - $closeBraces]
}

# colorize pair
proc editorWindows::ColorizePair {} {
    variable TxtWidget
    
    $TxtWidget tag remove pair 0.0 end
    
    #get current char
    set curChar [$TxtWidget get insert]
    
    switch -- $curChar {
        "\}" {
            set result [GetOpenPair "\}"]
            if {$result != ""} {
                $TxtWidget tag add pair $result "$result +1ch"
            }
        }
        "\]" {
            set result [GetOpenPair "\]"]
            if {$result != ""} {
                $TxtWidget tag add pair $result "$result +1ch"
            }
        }
        "\)" {
            set result [GetOpenPair "\)"]
            if {$result != ""} {
                $TxtWidget tag add pair $result "$result +1ch"
            }
        }
        "\{" {
            set result [GetClosePair "\{"]
            if {$result != ""} {
                $TxtWidget tag add pair $result "$result +1ch"
            }
        }
        "\[" {
            set result [GetClosePair "\["]
            if {$result != ""} {
                $TxtWidget tag add pair $result "$result +1ch"
            }
        }
        "\(" {
            set result [GetClosePair "\("]
            if {$result != ""} {
                $TxtWidget tag add pair $result "$result +1ch"
            }
        }
        default {return}
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品成人综合色在线婷婷 | 亚洲精品成人精品456| 一本大道av伊人久久综合| 久久99国产精品麻豆| 亚洲人成小说网站色在线| 五月天欧美精品| 亚洲人午夜精品天堂一二香蕉| 国产成人av福利| 日产欧产美韩系列久久99| 6080yy午夜一二三区久久| 色婷婷av一区二区三区之一色屋| 99久久精品国产导航| 成人午夜大片免费观看| 国产精品少妇自拍| 一区二区三区高清在线| 欧美日韩五月天| 久久成人免费电影| 欧美激情艳妇裸体舞| 亚洲女同女同女同女同女同69| 色8久久精品久久久久久蜜| 国产不卡视频在线观看| 色香色香欲天天天影视综合网| 成人黄色在线看| 偷拍自拍另类欧美| 成人免费看黄yyy456| 亚洲欧洲国产日本综合| 偷拍日韩校园综合在线| 伦理电影国产精品| 亚洲欧美怡红院| 在线看国产日韩| 日韩欧美一区中文| 国产传媒久久文化传媒| 日韩一区二区免费在线观看| 丁香婷婷综合激情五月色| 精品欧美乱码久久久久久1区2区| 18欧美乱大交hd1984| 国内外精品视频| 久久国产三级精品| 亚洲精品一区二区精华| 日韩国产高清影视| 久久国产综合精品| 欧美色涩在线第一页| 五月天婷婷综合| 337p亚洲精品色噜噜| 日韩一级成人av| 欧美日韩www| 日韩欧美成人激情| 蜜臂av日日欢夜夜爽一区| 精品少妇一区二区三区免费观看 | 91同城在线观看| 亚洲精品ww久久久久久p站| 亚洲激情第一区| 欧美亚洲高清一区二区三区不卡| 亚洲综合一区在线| 91麻豆精品国产91久久久资源速度 | 奇米影视在线99精品| 欧美一区二区三区在线| 国产老妇另类xxxxx| 亚洲视频一二区| 日韩在线观看一区二区| 久久久久久久久久看片| 欧美日韩国产一级| 国产不卡在线视频| 欧美一区二区福利视频| 91色.com| 中国av一区二区三区| 日韩美一区二区三区| 欧洲精品一区二区| 一区二区三区产品免费精品久久75| 欧美中文字幕不卡| 日韩美女一区二区三区| 一区二区三区久久| 波多野结衣一区二区三区| 天堂一区二区在线| 一区二区三区精品在线| 麻豆国产欧美日韩综合精品二区| 中文字幕不卡一区| 麻豆91精品视频| 日韩一区二区在线看片| 欧美乱妇一区二区三区不卡视频| 成人黄色电影在线| 欧美韩国一区二区| 韩国v欧美v亚洲v日本v| 国产一区二区久久| 欧美日本韩国一区二区三区视频| 色狠狠一区二区三区香蕉| 国产日韩欧美麻豆| wwww国产精品欧美| 成人综合婷婷国产精品久久| 国产91丝袜在线播放九色| 成人精品视频.| 成人网页在线观看| 亚洲综合成人在线| 在线欧美一区二区| 日韩一区二区三区电影在线观看 | 一区二区在线免费观看| 亚洲国产精品人人做人人爽| 91黄色免费看| 蜜臀av亚洲一区中文字幕| 日韩在线观看一区二区| 久久精品国产亚洲一区二区三区| 国产剧情一区二区| 91婷婷韩国欧美一区二区| 91一区在线观看| 欧美大片在线观看一区二区| 国产成人精品1024| 亚洲精品日产精品乱码不卡| 7777女厕盗摄久久久| 日韩精品一区国产麻豆| 亚洲天堂网中文字| 51精品久久久久久久蜜臀| 成人av电影在线网| 日韩一区二区在线观看| 性久久久久久久| 亚洲最新在线观看| 国产美女久久久久| 欧美一级夜夜爽| 欧美偷拍一区二区| 亚洲人妖av一区二区| 国产精品18久久久久久久久 | 日韩中文字幕av电影| 久久精品在这里| 午夜电影一区二区| 美女一区二区久久| 欧美在线不卡一区| 欧美丝袜第三区| 一区二区三区日韩精品视频| 亚洲欧美视频在线观看| 亚洲精品成人少妇| 亚洲视频一二三| 色诱亚洲精品久久久久久| 欧美国产1区2区| 久久久久久久久伊人| 国产98色在线|日韩| 国产传媒久久文化传媒| 国产精品久久久久婷婷二区次| 国产亚洲欧洲997久久综合 | 欧美性猛片xxxx免费看久爱| 一区二区三区欧美视频| 欧美电视剧在线看免费| 国产一区二区网址| 国产精品第一页第二页第三页| 国产精品毛片无遮挡高清| 99久久777色| 国产一区二区三区观看| 国产精品天美传媒沈樵| 91福利区一区二区三区| av在线不卡电影| 欧美三区免费完整视频在线观看| 一区二区三区欧美在线观看| 欧美日韩一区不卡| 粉嫩av亚洲一区二区图片| 欧美色图免费看| 粉嫩蜜臀av国产精品网站| 欧美久久一二区| 国产精品主播直播| 午夜精品福利视频网站| 中文字幕中文字幕一区二区| 精品88久久久久88久久久| 欧美羞羞免费网站| 国产视频一区在线观看| 精品在线你懂的| 五月婷婷综合激情| 4438x成人网最大色成网站| 91啪九色porn原创视频在线观看| 久久99蜜桃精品| 久久精品久久综合| 日韩欧美一区二区不卡| 色综合色综合色综合色综合色综合 | 99精品国产一区二区三区不卡| 久久66热re国产| 51精品国自产在线| 欧美日韩一区中文字幕| 亚洲综合一二区| 在线播放/欧美激情| 麻豆久久久久久| 中文字幕乱码日本亚洲一区二区| 麻豆91免费观看| 国内外成人在线视频| 国产日韩精品一区二区三区| 成人午夜激情在线| 一区二区不卡在线播放| 欧美精品18+| 成人激情动漫在线观看| 亚洲成人一区二区| 久久蜜桃一区二区| 亚洲图片激情小说| 日韩成人伦理电影在线观看| 韩国女主播一区| 自拍偷拍亚洲综合| 亚洲美女视频一区| 国产综合久久久久久鬼色| 亚洲女同ⅹxx女同tv| 免费成人你懂的| 91丨porny丨首页| 精品国产乱码久久久久久闺蜜 | 精品在线观看免费| 色88888久久久久久影院按摩| 精久久久久久久久久久| 99久久精品免费精品国产|