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

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

?? items.vim

?? vim的自動(dòng)配置文件
?? VIM
?? 第 1 頁 / 共 2 頁
字號(hào):
" 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
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品国产传媒mv男同| 国产亚洲污的网站| 国产成a人无v码亚洲福利| 久久国产精品免费| 韩国中文字幕2020精品| 国产在线看一区| 狠狠色丁香九九婷婷综合五月| 丝袜美腿亚洲综合| 午夜精品福利在线| 免费看黄色91| 精品一区二区三区免费播放| 青青草97国产精品免费观看 | 中文在线一区二区| 国产日韩一级二级三级| 中文字幕中文字幕一区二区| 亚洲色图另类专区| 午夜精品福利久久久| 免费国产亚洲视频| 国产一区二区在线电影| 岛国一区二区三区| 91麻豆文化传媒在线观看| 91国偷自产一区二区三区成为亚洲经典 | 久久久精品一品道一区| 国产日本欧洲亚洲| 亚洲精品视频在线观看免费| 亚洲国产一区二区a毛片| 日精品一区二区| 国内不卡的二区三区中文字幕 | 日韩专区一卡二卡| 韩国三级在线一区| 色综合久久综合网97色综合| 欧美精品久久久久久久多人混战| 日韩视频国产视频| 国产精品家庭影院| 日韩精品一二区| 成人精品高清在线| 欧洲亚洲精品在线| 久久九九影视网| 亚洲国产美国国产综合一区二区| 卡一卡二国产精品| 日本大香伊一区二区三区| 欧美精品一区二区三区在线| 国产精品久久久久久久久快鸭| 亚洲成av人片www| 懂色av一区二区三区免费看| 欧美精品在线一区二区三区| 久久久久久久网| 亚洲国产中文字幕| a级高清视频欧美日韩| 51午夜精品国产| 亚洲人吸女人奶水| 国产老女人精品毛片久久| 欧美视频中文一区二区三区在线观看| www国产精品av| 婷婷综合五月天| 91久久精品日日躁夜夜躁欧美| 久久久99久久精品欧美| 五月婷婷欧美视频| 色噜噜狠狠色综合中国| 欧美国产精品中文字幕| 日韩国产欧美在线观看| 99免费精品视频| 国产精品人人做人人爽人人添| 美女久久久精品| 欧美老肥妇做.爰bbww视频| 国产精品久久久久久亚洲伦 | 亚洲色图都市小说| 国产精品99久久久久久久vr | 精品在线视频一区| 欧美日韩高清一区二区不卡| 亚洲嫩草精品久久| 91在线你懂得| 亚洲欧洲综合另类在线| 91麻豆福利精品推荐| 亚洲欧洲日韩在线| 91丝袜美腿高跟国产极品老师 | 91蜜桃视频在线| 亚洲啪啪综合av一区二区三区| 国产xxx精品视频大全| 国产午夜精品福利| 国产成人在线色| 国产日韩三级在线| 成人免费福利片| 国产精品电影一区二区三区| 成人一级黄色片| 综合久久久久久| 色噜噜狠狠色综合中国| 午夜欧美大尺度福利影院在线看| 欧美特级限制片免费在线观看| 一个色妞综合视频在线观看| 欧美系列亚洲系列| 免费看欧美美女黄的网站| 精品伦理精品一区| 国产二区国产一区在线观看| 国产精品久久久久一区二区三区| 色综合久久久久综合99| 日韩高清电影一区| 2021久久国产精品不只是精品| 成人午夜激情视频| 亚洲精品五月天| 欧美一区二区成人6969| 韩国精品主播一区二区在线观看 | 久久综合色之久久综合| 国产成人精品免费网站| 亚洲天堂成人在线观看| 欧美性大战久久久久久久蜜臀| 日本亚洲三级在线| 国产婷婷色一区二区三区| 91麻豆成人久久精品二区三区| 首页国产欧美久久| 国产亚洲短视频| 欧美色视频在线观看| 精品一区二区久久久| 亚洲乱码中文字幕综合| 日韩一区二区三| 99精品热视频| 日本午夜精品视频在线观看| 国产欧美一区二区三区鸳鸯浴 | 欧美精品久久一区二区三区| 国产福利一区二区三区视频| 一区二区三区在线观看视频| 日韩女优视频免费观看| 成年人国产精品| 美女网站在线免费欧美精品| 最新日韩av在线| 久久久久久免费| 欧美顶级少妇做爰| 色综合久久中文综合久久97| 国产一区二区日韩精品| 亚洲成人tv网| 亚洲免费观看在线视频| 久久精品一区二区三区不卡牛牛| 日本韩国欧美国产| 成人一区二区在线观看| 久久国产欧美日韩精品| 亚洲午夜在线视频| 1区2区3区精品视频| 国产欧美一区二区在线| 欧美大白屁股肥臀xxxxxx| 欧美探花视频资源| 91在线免费播放| 成人高清视频在线| 国产成人精品一区二| 狠狠色狠狠色合久久伊人| 日本系列欧美系列| 五月激情综合色| 亚洲永久精品大片| 亚洲精选视频在线| 综合久久久久久| 亚洲欧洲日韩综合一区二区| 欧美国产在线观看| 欧美国产日本视频| 国产精品女人毛片| 国产精品国产三级国产aⅴ入口 | 91精品国产全国免费观看| 欧美丰满嫩嫩电影| 欧美一区日韩一区| 欧美精品乱码久久久久久按摩| 欧美日韩一区久久| 在线成人免费观看| 91精品国产综合久久精品app| 欧美日韩一级二级| 欧美日韩一区二区三区不卡| 欧美性受极品xxxx喷水| 欧美日韩在线播放三区四区| 欧美亚洲高清一区| 69堂精品视频| 日韩欧美电影一二三| 久久一夜天堂av一区二区三区| 日韩精品专区在线| 国产亚洲美州欧州综合国| 久久久久久亚洲综合影院红桃| 精品粉嫩超白一线天av| 中文字幕精品在线不卡| 亚洲精选免费视频| 天堂av在线一区| 国产精品综合av一区二区国产馆| 国产精品1区2区| 日本精品视频一区二区三区| 欧美日韩一区二区三区免费看| 777奇米成人网| 久久久久久亚洲综合| 亚洲天堂网中文字| 日本视频一区二区| 成人三级伦理片| 欧美日韩情趣电影| 精品不卡在线视频| 亚洲激情第一区| 久久国产精品99久久人人澡| 成人深夜在线观看| 91精品国产色综合久久不卡蜜臀 | 91蜜桃免费观看视频| 欧美另类久久久品| 国产精品视频看| 日本午夜精品视频在线观看| 丁香亚洲综合激情啪啪综合| 欧美日韩视频一区二区| 欧美国产日韩亚洲一区| 日韩电影免费在线观看网站| 成人av午夜电影|