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

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

?? items.vim

?? vim的自動配置文件
?? VIM
?? 第 1 頁 / 共 2 頁
字號:
" Description: Omni completion script for cpp files" Maintainer:  Vissale NEANG" Last Change: 25 jun 2006" Build the item list of an instruction" An item is an instruction between a -> or . or ->* or .*" We can sort an item in different kinds:" eg: ((MyClass1*)(pObject))->_memberOfClass1.get()     ->show()"     |        cast        |  |    member   | | method |  | method |" @return a list of item" an item is a dictionnary where keys are:"   tokens = list of token"   kind = itemVariable|itemCast|itemCppCast|itemTemplate|itemFunction|itemUnknown|itemThis|itemScopefunction! omni#cpp#items#Get(tokens, ...)    let bGetWordUnderCursor = (a:0>0)? a:1 : 0    let result = []    let itemsDelimiters = ['->', '.', '->*', '.*']    let tokens = reverse(omni#cpp#utils#BuildParenthesisGroups(a:tokens))    " fsm states:    "   0 = initial state    "   TODO: add description of fsm states    let state=(bGetWordUnderCursor)? 1 : 0    let item = {'tokens' : [], 'kind' : 'itemUnknown'}    let parenGroup=-1    for token in tokens        if state==0            if index(itemsDelimiters, token.value)>=0                let item = {'tokens' : [], 'kind' : 'itemUnknown'}                let state = 1            elseif token.value=='::'                let state = 9                let item.kind = 'itemScope'                " Maybe end of tokens            elseif token.kind =='cppOperatorPunctuator'                " If it's a cppOperatorPunctuator and the current token is not                " a itemsDelimiters or '::' we can exit                let state=-1                break            endif        elseif state==1            call insert(item.tokens, token)            if token.kind=='cppWord'                " It's an attribute member or a variable                let item.kind = 'itemVariable'                let state = 2                " Maybe end of tokens            elseif token.value=='this'                let item.kind = 'itemThis'                let state = 2                " Maybe end of tokens            elseif token.value==')'                let parenGroup = token.group                let state = 3            elseif token.value==']'                let parenGroup = token.group                let state = 4            elseif token.kind == 'cppDigit'                let state = -1                break            endif        elseif state==2            if index(itemsDelimiters, token.value)>=0                call insert(result, item)                let item = {'tokens' : [], 'kind' : 'itemUnknown'}                let state = 1            elseif token.value == '::'                call insert(item.tokens, token)                " We have to get namespace or classscope                let state = 8                " Maybe end of tokens            else                call insert(result, item)                let state=-1                break            endif        elseif state==3            call insert(item.tokens, token)            if token.value=='(' && token.group == parenGroup                let state = 5                " Maybe end of tokens            endif        elseif state==4            call insert(item.tokens, token)            if token.value=='[' && token.group == parenGroup                let state = 1            endif        elseif state==5            if token.kind=='cppWord'                " It's a function or method                let item.kind = 'itemFunction'                call insert(item.tokens, token)                let state = 2                " Maybe end of tokens            elseif token.value == '>'                " Maybe a cpp cast or template                let item.kind = 'itemTemplate'                call insert(item.tokens, token)                let parenGroup = token.group                let state = 6            else                " Perhaps it's a C cast eg: ((void*)(pData)) or a variable eg:(*pData)                let item.kind = omni#cpp#utils#GetCastType(item.tokens)                let state=-1                call insert(result, item)                break            endif        elseif state==6            call insert(item.tokens, token)            if token.value == '<' && token.group == parenGroup                " Maybe a cpp cast or template                let state = 7            endif        elseif state==7            call insert(item.tokens, token)            if token.kind=='cppKeyword'                " It's a cpp cast                let item.kind = omni#cpp#utils#GetCastType(item.tokens)                let state=-1                call insert(result, item)                break            else                " Template ?                let state=-1                call insert(result, item)                break            endif        elseif state==8            if token.kind=='cppWord'                call insert(item.tokens, token)                let state = 2                " Maybe end of tokens            else                let state=-1                call insert(result, item)                break            endif        elseif state==9            if token.kind == 'cppWord'                call insert(item.tokens, token)                let state = 10                " Maybe end of tokens            else                let state=-1                call insert(result, item)                break            endif        elseif state==10            if token.value == '::'                call insert(item.tokens, token)                let state = 9                " Maybe end of tokens            else                let state=-1                call insert(result, item)                break            endif        endif    endfor    if index([2, 5, 8, 9, 10], state)>=0        if state==5            let item.kind = omni#cpp#utils#GetCastType(item.tokens)        endif        call insert(result, item)    endif    return resultendfunc" Resolve type information of items" @param namespaces: list of namespaces used in the file" @param szCurrentClassScope: the current class scope, only used for the first" item to detect if this item is a class member (attribute, method)" @param items: list of item, can be an empty list @see GetItemsToCompletefunction! omni#cpp#items#ResolveItemsTypeInfo(contextStack, items)    " Note: kind = itemVariable|cCast|cppCast|template|function|itemUnknown|this    " For the first item, if it's a variable we try to detect the type of the    " variable with the function searchdecl. If it fails, thanks to the    " current class scope, we try to detect if the variable is an attribute    " member.    " If the kind of the item is a function, we have to first check if the    " function is a method of the class, if it fails we try to get a match in    " the global namespace. After that we get the returned type of the    " function.    " It the kind is a C cast or C++ cast, there is no problem, it's the    " easiest case. We just extract the type of the cast.    let szCurrentContext = ''    let typeInfo = {}    " Note: We search the decl only for the first item    let bSearchDecl = 1    for item in a:items        let curItem = item        if index(['itemVariable', 'itemFunction'], curItem.kind)>=0            " Note: a variable can be : MyNs::MyClass::_var or _var or (*pVar)            " or _var[0][0]            let szSymbol = s:GetSymbol(curItem.tokens)            " If we have MyNamespace::myVar            " We add MyNamespace in the context stack set szSymbol to myVar            if match(szSymbol, '::\w\+$') >= 0                let szCurrentContext = substitute(szSymbol, '::\w\+$', '', 'g')                let szSymbol = matchstr(szSymbol, '\w\+$')            endif            let tmpContextStack = a:contextStack            if szCurrentContext != ''                let tmpContextStack = [szCurrentContext] + a:contextStack            endif            if curItem.kind == 'itemVariable'                let typeInfo = s:GetTypeInfoOfVariable(tmpContextStack, szSymbol, bSearchDecl)            else                let typeInfo = s:GetTypeInfoOfReturnedType(tmpContextStack, szSymbol)            endif        elseif curItem.kind == 'itemThis'            if len(a:contextStack)                let typeInfo = omni#cpp#utils#CreateTypeInfo(substitute(a:contextStack[0], '^::', '', 'g'))            endif        elseif curItem.kind == 'itemCast'            let typeInfo = omni#cpp#utils#CreateTypeInfo(s:ResolveCCast(curItem.tokens))        elseif curItem.kind == 'itemCppCast'            let typeInfo = omni#cpp#utils#CreateTypeInfo(s:ResolveCppCast(curItem.tokens))        elseif curItem.kind == 'itemScope'            let typeInfo = omni#cpp#utils#CreateTypeInfo(substitute(s:TokensToString(curItem.tokens), '\s', '', 'g'))        endif        if omni#cpp#utils#IsTypeInfoValid(typeInfo)            let szCurrentContext = omni#cpp#utils#GetTypeInfoString(typeInfo)        endif        let bSearchDecl = 0    endfor    return typeInfoendfunc" Get symbol namefunction! s:GetSymbol(tokens)    let szSymbol = ''    let state = 0    for token in a:tokens        if state == 0            if token.value == '::'                let szSymbol .= token.value                let state = 1            elseif token.kind == 'cppWord'                let szSymbol .= token.value                let state = 2                " Maybe end of token            endif        elseif state == 1            if token.kind == 'cppWord'                let szSymbol .= token.value                let state = 2                " Maybe end of token            else                " Error                break            endif        elseif state == 2            if token.value == '::'                let szSymbol .= token.value                let state = 1            else                break            endif        endif    endfor    return szSymbolendfunc" Search a declaration." eg: std::map" can be empty" Note: The returned type info can be a typedef" The typedef resolution is done later" @return"   - a dictionnary where keys are"       - type: the type of value same as type()"       - value: the value

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品剧情v国产在线观看在线| 日日夜夜精品视频天天综合网| 亚洲成人自拍偷拍| 91麻豆蜜桃一区二区三区| 日本一区二区三区久久久久久久久不 | 91在线观看视频| 亚洲精品一区二区精华| 一区二区三区久久| 色94色欧美sute亚洲线路一ni| 国产亚洲污的网站| 男人的天堂亚洲一区| 欧美日韩二区三区| 久久不见久久见免费视频7| 久久亚洲精华国产精华液| 国产激情91久久精品导航| 中文字幕久久午夜不卡| 成人黄色777网| 免费观看在线色综合| 国产午夜三级一区二区三| 国产在线精品视频| 国产精品色一区二区三区| 成人性色生活片免费看爆迷你毛片| 国产日韩成人精品| 欧美三级在线视频| 免费av成人在线| 精品国产麻豆免费人成网站| 国产成人欧美日韩在线电影| 亚洲精品网站在线观看| 日韩欧美一区二区在线视频| 不卡一区中文字幕| 午夜欧美电影在线观看| 久久精品水蜜桃av综合天堂| 色狠狠色狠狠综合| 九九精品视频在线看| 亚洲精品国产无套在线观| 欧美日本在线观看| www.成人网.com| 国产电影一区在线| 久久电影国产免费久久电影| 伊人开心综合网| 国产欧美一区二区精品性| 日本电影欧美片| 99久久精品免费看国产免费软件| 亚洲18色成人| 亚洲精品国产视频| 精品国产人成亚洲区| 91精品国产综合久久精品| 欧美色视频在线| 日本道色综合久久| 99久久国产综合精品色伊| 国产99久久久国产精品潘金| 国产一区免费电影| 国产白丝精品91爽爽久久| 精品一二三四区| 久久99精品久久久久久| 美腿丝袜亚洲色图| 久久精品av麻豆的观看方式| 久久99精品国产| 成人av在线一区二区三区| 99在线精品观看| 色综合激情五月| 欧美日韩在线播放| 欧美tickling网站挠脚心| 欧美大片日本大片免费观看| 久久久久久久久久久黄色| 国产精品二区一区二区aⅴ污介绍| 日韩美女视频一区二区| 免费成人在线网站| 97久久超碰国产精品| 欧美日韩一级黄| 久久综合狠狠综合| 亚洲色图19p| 国产一区二区美女诱惑| 日本高清成人免费播放| 精品国产免费久久| 蜜臀av性久久久久av蜜臀妖精 | 一区二区视频免费在线观看| 久久国产日韩欧美精品| www.亚洲激情.com| 精品91自产拍在线观看一区| 亚洲美女视频在线观看| 福利视频网站一区二区三区| 欧美精品丝袜中出| 亚洲在线视频一区| 99精品久久99久久久久| 精品国产一区二区三区不卡| 亚洲人亚洲人成电影网站色| 国产一区二区免费看| 欧美一区二区精品在线| 一区二区三区日韩欧美| 成人国产精品免费| 精品av久久707| 全国精品久久少妇| 91精品国产91久久久久久一区二区| 国产精品视频免费看| 成人午夜精品在线| 国产亚洲综合在线| 高清在线观看日韩| 久久精品欧美一区二区三区麻豆| 久久99精品国产麻豆不卡| 欧美成人a∨高清免费观看| 丝袜美腿亚洲综合| 欧美成人精品3d动漫h| 色噜噜狠狠色综合中国| 亚洲国产经典视频| 972aa.com艺术欧美| 亚洲欧美一区二区久久| 日本韩国欧美在线| 视频一区国产视频| 精品国产乱码久久久久久久| 国产白丝网站精品污在线入口| 亚洲永久免费av| 国产精品全国免费观看高清| 欧美日韩一区不卡| 亚洲一区二区美女| 久久日韩精品一区二区五区| 色婷婷精品久久二区二区蜜臀av| 久久国产精品99精品国产| 国产精品久久久久久久久免费丝袜| 4438x亚洲最大成人网| 成人妖精视频yjsp地址| 天堂蜜桃一区二区三区| 亚洲免费观看高清完整版在线 | 午夜精品在线视频一区| 国产日产精品一区| 欧美日韩高清一区二区不卡| 97久久超碰国产精品| 国产夫妻精品视频| 国产mv日韩mv欧美| 国产露脸91国语对白| 国产中文字幕精品| 日日嗨av一区二区三区四区| 成人免费在线观看入口| 中文字幕成人av| 国产精品沙发午睡系列990531| 精品日韩一区二区三区 | 欧美在线视频日韩| 欧美日韩免费视频| 在线观看成人免费视频| 91在线视频播放| 不卡的av电影在线观看| 久久电影网站中文字幕| 免费成人在线视频观看| 久久99九九99精品| 国产高清在线精品| voyeur盗摄精品| 99久久精品免费观看| 色综合中文综合网| 99国产精品久久久久久久久久久| 国产成人在线视频免费播放| 国产精品99久久久久| 97久久超碰精品国产| 在线免费观看日本欧美| 欧美视频一区在线| 欧美一区二区三区小说| 337p粉嫩大胆噜噜噜噜噜91av | 日韩欧美www| 国产午夜精品在线观看| 亚洲乱码国产乱码精品精小说| 亚洲成人手机在线| 风间由美一区二区三区在线观看| 91日韩精品一区| 欧美va天堂va视频va在线| 亚洲欧洲成人精品av97| 麻豆国产精品官网| 欧美专区在线观看一区| 日韩精品一区二区在线| 中文久久乱码一区二区| 日韩av成人高清| 色婷婷av一区二区三区软件| 欧美一区二区免费视频| 亚洲国产另类av| 高清成人在线观看| 日韩三级伦理片妻子的秘密按摩| 中文字幕制服丝袜成人av| 免播放器亚洲一区| 欧美日韩精品欧美日韩精品一综合| 国产日产精品1区| 激情文学综合网| 91精品国产免费久久综合| 一区二区免费在线| 欧美中文字幕一区二区三区 | 免费观看在线综合色| 欧美网站一区二区| 尤物视频一区二区| 91视视频在线观看入口直接观看www | 日韩三级伦理片妻子的秘密按摩| 五月综合激情婷婷六月色窝| 欧美日韩综合不卡| 亚洲色欲色欲www在线观看| 99九九99九九九视频精品| 亚洲色图19p| 日韩一区二区中文字幕| 狠狠v欧美v日韩v亚洲ⅴ| 日韩欧美一级特黄在线播放| 亚洲大片免费看| 久久久精品免费网站| 在线精品观看国产| 蜜桃av一区二区三区| 亚洲乱码中文字幕|