mirror of
1
0
Fork 0
This commit is contained in:
Chris 2017-12-18 09:23:08 +00:00 committed by GitHub
commit ca2f3fda63
204 changed files with 33417 additions and 6 deletions

19
.ctags Normal file
View File

@ -0,0 +1,19 @@
--exclude=node_modules
--exclude=gulp
--languages=-JavaScript
--langdef=js
--langmap=js:.js
--regex-js=/^(var)?[ \t]*([A-Za-z0-9_$]*\.)*([A-Za-z0-9_$]+)[ \t]*=[ \t]*\[/\3/a,array/
--regex-js=/^(var)?[ \t]*([A-Za-z0-9_$]*\.)*([A-Za-z0-9_$]+)[ \t]*=[ \t]*\{/\3/o,object/
--regex-js=/^(var)?[ \t]*([A-Za-z0-9_$]*\.)*([A-Za-z0-9_$]+)[ \t]*=[^{\[]*$/\3/r,var/
--regex-js=/^var[ \t]+([A-Za-z0-9._$]+)[ \t]*=[ \t]*[A-Za-z0-9_$]+.extend/\1/f,function/
--regex-js=/^[ \t]*([A-Za-z0-9_$]*\.)*([A-Za-z0-9_$]+)[ \t]*[:=][ \t]*function/\2/f,function/
--regex-js=/^[ \t]*function[ \t]*([A-Za-z0-9_$]+)[ \t]*\(/\1/f,function/
--regex-js=/^[ \t]*var[ \t]+([A-Za-z0-9_$]*\.)*([A-Za-z0-9_$]+)[ \t]*=[ \t]function/\2/f,function/
--regex-js=/(jQuery|\$)\([ \t]*([^ \t]*)[ \t]*\)\.bind\([ \t]*['"](.*)['"]/\2.\3/f,function/
--regex-js=/^[ \t]*describe[ \t]*\([ \t]*["'](.*)["']/\1/f,function/
--regex-js=/^([ \t]*)(describe|context|it)[ \t]*\([ \t]*["'](.*)["']/.\1\3/f,function/

4
.gitignore vendored
View File

@ -4,7 +4,5 @@ temp_dirs/yankring_history_v2.txt
sources_forked/yankring/doc/tags
sources_non_forked/tlib/doc/tags
sources_non_forked/ctrlp.vim/doc/tags*
my_plugins/
my_configs.vim
tags
.DS_Store
node_modules

5
.tern-config Normal file
View File

@ -0,0 +1,5 @@
{
"plugins": {
"closure": {}
}
}

12
functions/PrettifyJSON.js Normal file
View File

@ -0,0 +1,12 @@
const fs = require('fs')
function prettifyJSON(filePath) {
fs.readFile(filePath, (err, data) => {
console.log(JSON.stringify(JSON.parse(data), null, 4));
});
};
const argFilePath = process.argv[2];
prettifyJSON(argFilePath)

View File

@ -0,0 +1,5 @@
function! PrettifyJSON()
execute ':r !node ~/.vim_runtime/functions/PrettifyJSON.js %'
endfunction

28
functions/Vimdiff.vim Normal file
View File

@ -0,0 +1,28 @@
" see: https://brookhong.github.io/2016/09/03/view-diff-file-side-by-side-in-vim.html
function! Vimdiff()
let lines = getline(0, '$')
let la = []
let lb = []
for line in lines
if line[0] == '-'
call add(la, line[1:])
elseif line[0] == '+'
call add(lb, line[1:])
else
call add(la, line)
call add(lb, line)
endif
endfor
tabnew
set bt=nofile
vertical new
set bt=nofile
call append(0, la)
diffthis
exe "normal \<C-W>l"
call append(0, lb)
diffthis
endfunction
autocmd FileType diff nnoremap <silent> <leader>vd :call Vimdiff()<CR>

62
my_configs.vim Normal file
View File

@ -0,0 +1,62 @@
if has("mac") || has("macunix")
set gfn=Hack:h9,Source\ Code\ Pro:h9,Menlo:h9
elseif has("win16") || has("win32")
set gfn=Hack:h9,Source\ Code\ Pro:h9,Bitstream\ Vera\ Sans\ Mono:h9
elseif has("gui_gtk2")
set gfn=Hack\ 9,Source\ Code\ Pro\ 9,Bitstream\ Vera\ Sans\ Mono\ 9
elseif has("linux")
set gfn=Hack\ 9,Source\ Code\ Pro\ 9,Bitstream\ Vera\ Sans\ Mono\ 9
elseif has("unix")
set gfn=Monospace\ 9
endif
" move around tabs. conflict with the original screen top/bottom
" comment them out if you want the original H/L
" go to prev tab
map <S-H> gT
" go to next tab
map <S-L> gt
" mv current tab left
map <C-H> :execute 'tabmove ' . (tabpagenr()-2)<CR>
" mv current tab right
map <C-L> :execute 'tabmove ' . (tabpagenr()+1)<CR>
" new tab
map <C-t><C-t> :tabnew<CR>
" close tab
map <C-t><C-w> :tabclose<CR>
" show all open tabs
map <C-t><C-a> :tabs<CR>
" toggle TagBar
nmap <F11> :TagbarToggle<CR>
" toggle NerdTree
map <F12> :NERDTreeToggle<CR>
set expandtab
set shiftwidth=2
set tabstop=2
set softtabstop=2
set cmdheight=1
set number
" yank to the system register (*) by default
set clipboard=unnamed
" Mark, highlight multiple words
source ~/.vim_runtime/sources_non_forked/Mark/plugin/mark.vim
let g:mwDefaultHighlightingPalette = 'maximum'
let g:mwDefaultHighlightingNum = 10
" Vim-jsx
let g:jsx_ext_required = 0
" Eslint
" let g:syntastic_javascript_checkers = ['eslint']
" disable Syntastic by default
let g:syntastic_mode_map = { 'mode': 'passive' }
" setl foldmethod=manual

23
package.json Normal file
View File

@ -0,0 +1,23 @@
{
"name": "vimrc",
"version": "1.0.0",
"description": "![VIM](https://dnp4pehkvoo6n.cloudfront.net/43c5af597bd5c1a64eb1829f011c208f/as/Ultimate%20Vimrc.svg)",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/ChrisOHu/vimrc.git"
},
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/ChrisOHu/vimrc/issues"
},
"homepage": "https://github.com/ChrisOHu/vimrc#readme",
"dependencies": {
"tern": "^0.21.0",
"tern-closure": "^0.1.3"
}
}

View File

@ -0,0 +1,63 @@
This is a mirror of http://www.vim.org/scripts/script.php?script_id=1238
This script is written to highlight several words in different colors simultaneously. For example, when you are browsing a big program file, you could highlight some key variables. This will make it easier to trace the source code.
I think this script is functional similar with MultipleSearch vimscript #479.
Usage:
Highlighting:
Normal mode:
\m mark or unmark the word under (or before) the cursor
Place the cursor under the word to be highlighted, press \m, then the word will be colored.
\r manually input a regular expression
To highlight an arbitrary regular expression, press \r and input the regexp.
\n clear this mark (i.e. the mark under the cursor), or clear all highlighted marks
Visual mode:
\m mark or unmark a visual selection
Select some text in Visual mode, press \m, then the selection will be colored.
\r manually input a regular expression (base on the selection text)
Command line:
:Mark regexp to mark a regular expression
:Mark regexp with exactly the same regexp to unmark it
:Mark to clear all marks
Searching:
Normal mode:
* # \* \# \/ \? use these six keys to jump to the other marks
and you could also use VIM's / and ? to search, since the mark patterns have
been added to the search history.
Here is a sumerization of * # \* \# \/ \?:
" First of all, \#, \? and # behave just like \*, \/ and *, respectively,
" except that \#, \? and # search backward.
"
" \*, \/ and *'s behaviors differ base on whether the cursor is currently
" placed over an active mark:
"
" Cursor over mark Cursor not over mark
" ---------------------------------------------------------------------------
" \* jump to the next occurrence of jump to the next occurrence of
" current mark, and remember it "last mark".
" as "last mark".
"
" \/ jump to the next occurrence of same as left
" ANY mark.
"
" * if \* is the most recently used, do VIM's original *
" do a \*; otherwise (\/ is the
" most recently used), do a \/.
Screenshot:
http://elephant.net.cn/files/vim_screenshot.png (It is also the screenshot of my colorscheme vimscript #1253.)
Bugs and Notes:
Some words which have been already colored by syntax scripts could not be highlighted.
mark.vim should be re-sourced after any changing to colors. For example, if you
:set background=dark OR
:colorscheme default
you should
:source PATH_OF_PLUGINS/mark.vim
after that. Otherwise, you won't see the colors.
Unfortunately, it seems that .gvimrc runs after plugin scripts. So if you set any color settings in .gvimrc, you have to add one line to the end of .gvimrc to source mark.vim.

View File

@ -0,0 +1,509 @@
" Script Name: mark.vim
" Version: 1.1.8 (global version)
" Last Change: April 25, 2008
" Author: Yuheng Xie <elephant@linux.net.cn>
" Contributor: Luc Hermitte
"
" Description: a little script to highlight several words in different colors
" simultaneously
"
" Usage: :Mark regexp to mark a regular expression
" :Mark regexp with exactly the same regexp to unmark it
" :Mark to clear all marks
"
" You may map keys for the call in your vimrc file for
" convenience. The default keys is:
" Highlighting:
" Normal \m mark or unmark the word under or before the cursor
" \r manually input a regular expression
" \n clear current mark (i.e. the mark under the cursor),
" or clear all marks
" Visual \m mark or unmark a visual selection
" \r manually input a regular expression
" Searching:
" Normal \* jump to the next occurrence of current mark
" \# jump to the previous occurrence of current mark
" \/ jump to the next occurrence of ANY mark
" \? jump to the previous occurrence of ANY mark
" * behaviors vary, please refer to the table on
" # line 123
" combined with VIM's / and ? etc.
"
" The default colors/groups setting is for marking six
" different words in different colors. You may define your own
" colors in your vimrc file. That is to define highlight group
" names as "MarkWordN", where N is a number. An example could be
" found below.
"
" Bugs: some colored words could not be highlighted
"
" Changes:
"
" 10th Mar 2006, Yuheng Xie: jump to ANY mark
" (*) added \* \# \/ \? for the ability of jumping to ANY mark, even when the
" cursor is not currently over any mark
"
" 20th Sep 2005, Yuheng Xie: minor modifications
" (*) merged MarkRegexVisual into MarkRegex
" (*) added GetVisualSelectionEscaped for multi-lines visual selection and
" visual selection contains ^, $, etc.
" (*) changed the name ThisMark to CurrentMark
" (*) added SearchCurrentMark and re-used raw map (instead of VIM function) to
" implement * and #
"
" 14th Sep 2005, Luc Hermitte: modifications done on v1.1.4
" (*) anti-reinclusion guards. They do not guard colors definitions in case
" this script must be reloaded after .gvimrc
" (*) Protection against disabled |line-continuation|s.
" (*) Script-local functions
" (*) Default keybindings
" (*) \r for visual mode
" (*) uses <leader> instead of "\"
" (*) do not mess with global variable g:w
" (*) regex simplified -> double quotes changed into simple quotes.
" (*) strpart(str, idx, 1) -> str[idx]
" (*) command :Mark
" -> e.g. :Mark Mark.\{-}\ze(
" default colors/groups
" you may define your own colors in you vimrc file, in the form as below:
hi MarkWord1 ctermbg=Cyan ctermfg=Black guibg=#ff7f50 guifg=Black
hi MarkWord2 ctermbg=Green ctermfg=Black guibg=#A4E57E guifg=Black
hi MarkWord3 ctermbg=Yellow ctermfg=Black guibg=#FFDB72 guifg=Black
hi MarkWord4 ctermbg=Red ctermfg=Black guibg=#ff4500 guifg=Black
hi MarkWord5 ctermbg=Magenta ctermfg=Black guibg=#ff00ff guifg=Black
hi MarkWord6 ctermbg=Blue ctermfg=Black guibg=#87ceeb guifg=Black
hi MarkWord7 ctermbg=DarkBlue ctermfg=Black guibg=#0000FF guifg=White
hi MarkWord8 ctermbg=DarkGreen ctermfg=Black guibg=#00FF00 guifg=Black
hi MarkWord9 ctermbg=DarkCyan ctermfg=Black guibg=#00FFFF guifg=Black
hi MarkWord10 ctermbg=DarkRed ctermfg=Black guibg=#FF0000 guifg=White
hi MarkWord11 ctermbg=DarkMagenta ctermfg=Black guibg=#FF00FF guifg=White
hi MarkWord12 ctermbg=Brown ctermfg=Black guibg=#8b008b guifg=White
hi MarkWord13 ctermbg=Grey ctermfg=Black guibg=#fafad2 guifg=Black
hi MarkWord14 ctermbg=Green ctermfg=Black guibg=#adff2f guifg=Black
let g:mwCycleMax=14
" Anti reinclusion guards
if exists('g:loaded_mark') && !exists('g:force_reload_mark')
finish
endif
" Support for |line-continuation|
let s:save_cpo = &cpo
set cpo&vim
" Default bindings
if !hasmapto('<Plug>MarkSet', 'n')
if (mapcheck('<leader>m', 'n') != "")
nunmap <leader>m
endif
nmap <unique> <silent> <leader>m <Plug>MarkSet
endif
if !hasmapto('<Plug>MarkSet', 'v')
if (mapcheck('<leader>m', 'v') != "")
vunmap <leader>m
endif
vmap <unique> <silent> <leader>m <Plug>MarkSet
endif
if !hasmapto('<Plug>MarkRegex', 'n')
if (mapcheck('<leader>r', 'n') != "")
nunmap <leader>r
endif
nmap <unique> <silent> <leader>r <Plug>MarkRegex
endif
if !hasmapto('<Plug>MarkRegex', 'v')
if (mapcheck('<leader>r', 'v') != "")
vunmap <leader>r
endif
vmap <unique> <silent> <leader>r <Plug>MarkRegex
endif
if !hasmapto('<Plug>MarkClear', 'n')
if (mapcheck('<leader>n', 'n') != "")
nunmap <leader>n
endif
nmap <unique> <silent> <leader>n <Plug>MarkClear
endif
nnoremap <silent> <Plug>MarkSet :call
\ <sid>MarkCurrentWord()<cr>
vnoremap <silent> <Plug>MarkSet <c-\><c-n>:call
\ <sid>DoMark(<sid>GetVisualSelectionEscaped("enV"))<cr>
nnoremap <silent> <Plug>MarkRegex :call
\ <sid>MarkRegex()<cr>
vnoremap <silent> <Plug>MarkRegex <c-\><c-n>:call
\ <sid>MarkRegex(<sid>GetVisualSelectionEscaped("N"))<cr>
nnoremap <silent> <Plug>MarkClear :call
\ <sid>DoMark(<sid>CurrentMark())<cr>
" Here is a sumerization of the following keys' behaviors:
"
" First of all, \#, \? and # behave just like \*, \/ and *, respectively,
" except that \#, \? and # search backward.
"
" \*, \/ and *'s behaviors differ base on whether the cursor is currently
" placed over an active mark:
"
" Cursor over mark Cursor not over mark
" ---------------------------------------------------------------------------
" \* jump to the next occurrence of jump to the next occurrence of
" current mark, and remember it "last mark".
" as "last mark".
"
" \/ jump to the next occurrence of same as left
" ANY mark.
"
" * if \* is the most recently used, do VIM's original *
" do a \*; otherwise (\/ is the
" most recently used), do a \/.
nnoremap <silent> <leader>* :call <sid>SearchCurrentMark()<cr>
nnoremap <silent> <leader># :call <sid>SearchCurrentMark("b")<cr>
nnoremap <silent> <leader>/ :call <sid>SearchAnyMark()<cr>
nnoremap <silent> <leader>? :call <sid>SearchAnyMark("b")<cr>
nnoremap <silent> * :if !<sid>SearchNext()<bar>execute "norm! *"<bar>endif<cr>
nnoremap <silent> # :if !<sid>SearchNext("b")<bar>execute "norm! #"<bar>endif<cr>
command! -nargs=? Mark call s:DoMark(<f-args>)
autocmd! BufWinEnter * call s:UpdateMark()
" Functions
function! s:MarkCurrentWord()
let w = s:PrevWord()
if w != ""
call s:DoMark('\<' . w . '\>')
endif
endfunction
function! s:GetVisualSelection()
let save_a = @a
silent normal! gv"ay
let res = @a
let @a = save_a
return res
endfunction
function! s:GetVisualSelectionEscaped(flags)
" flags:
" "e" \ -> \\
" "n" \n -> \\n for multi-lines visual selection
" "N" \n removed
" "V" \V added for marking plain ^, $, etc.
let result = s:GetVisualSelection()
let i = 0
while i < strlen(a:flags)
if a:flags[i] ==# "e"
let result = escape(result, '\')
elseif a:flags[i] ==# "n"
let result = substitute(result, '\n', '\\n', 'g')
elseif a:flags[i] ==# "N"
let result = substitute(result, '\n', '', 'g')
elseif a:flags[i] ==# "V"
let result = '\V' . result
endif
let i = i + 1
endwhile
return result
endfunction
" manually input a regular expression
function! s:MarkRegex(...) " MarkRegex(regexp)
let regexp = ""
if a:0 > 0
let regexp = a:1
endif
call inputsave()
let r = input("@", regexp)
call inputrestore()
if r != ""
call s:DoMark(r)
endif
endfunction
" define variables if they don't exist
function! s:InitMarkVariables()
if !exists("g:mwHistAdd")
let g:mwHistAdd = "/@"
endif
if !exists("g:mwCycle")
let g:mwCycle = 1
endif
let i = 1
while i <= g:mwCycleMax
if !exists("g:mwWord" . i)
let g:mwWord{i} = ""
endif
let i = i + 1
endwhile
if !exists("g:mwLastSearched")
let g:mwLastSearched = ""
endif
endfunction
" return the word under or before the cursor
function! s:PrevWord()
let line = getline(".")
if line[col(".") - 1] =~ '\w'
return expand("<cword>")
else
return substitute(strpart(line, 0, col(".") - 1), '^.\{-}\(\w\+\)\W*$', '\1', '')
endif
endfunction
" mark or unmark a regular expression
function! s:DoMark(...) " DoMark(regexp)
" define variables if they don't exist
call s:InitMarkVariables()
" clear all marks if regexp is null
let regexp = ""
if a:0 > 0
let regexp = a:1
endif
if regexp == ""
let i = 1
while i <= g:mwCycleMax
if g:mwWord{i} != ""
let g:mwWord{i} = ""
let lastwinnr = winnr()
exe "windo syntax clear MarkWord" . i
exe lastwinnr . "wincmd w"
endif
let i = i + 1
endwhile
let g:mwLastSearched = ""
return 0
endif
" clear the mark if it has been marked
let i = 1
while i <= g:mwCycleMax
if regexp == g:mwWord{i}
if g:mwLastSearched == g:mwWord{i}
let g:mwLastSearched = ""
endif
let g:mwWord{i} = ""
let lastwinnr = winnr()
exe "windo syntax clear MarkWord" . i
exe lastwinnr . "wincmd w"
return 0
endif
let i = i + 1
endwhile
" add to history
if stridx(g:mwHistAdd, "/") >= 0
call histadd("/", regexp)
endif
if stridx(g:mwHistAdd, "@") >= 0
call histadd("@", regexp)
endif
" quote regexp with / etc. e.g. pattern => /pattern/
let quote = "/?~!@#$%^&*+-=,.:"
let i = 0
while i < strlen(quote)
if stridx(regexp, quote[i]) < 0
let quoted_regexp = quote[i] . regexp . quote[i]
break
endif
let i = i + 1
endwhile
if i >= strlen(quote)
return -1
endif
" choose an unused mark group
let i = 1
while i <= g:mwCycleMax
if g:mwWord{i} == ""
let g:mwWord{i} = regexp
if i < g:mwCycleMax
let g:mwCycle = i + 1
else
let g:mwCycle = 1
endif
let lastwinnr = winnr()
exe "windo syntax clear MarkWord" . i
" suggested by Marc Weber
" exe "windo syntax match MarkWord" . i . " " . quoted_regexp . " containedin=ALL"
exe "windo syntax match MarkWord" . i . " " . quoted_regexp . " containedin=.*"
exe lastwinnr . "wincmd w"
return i
endif
let i = i + 1
endwhile
" choose a mark group by cycle
let i = 1
while i <= g:mwCycleMax
if g:mwCycle == i
if g:mwLastSearched == g:mwWord{i}
let g:mwLastSearched = ""
endif
let g:mwWord{i} = regexp
if i < g:mwCycleMax
let g:mwCycle = i + 1
else
let g:mwCycle = 1
endif
let lastwinnr = winnr()
exe "windo syntax clear MarkWord" . i
" suggested by Marc Weber
" exe "windo syntax match MarkWord" . i . " " . quoted_regexp . " containedin=ALL"
exe "windo syntax match MarkWord" . i . " " . quoted_regexp . " containedin=.*"
exe lastwinnr . "wincmd w"
return i
endif
let i = i + 1
endwhile
endfunction
" update mark colors
function! s:UpdateMark()
" define variables if they don't exist
call s:InitMarkVariables()
let i = 1
while i <= g:mwCycleMax
exe "syntax clear MarkWord" . i
if g:mwWord{i} != ""
" quote regexp with / etc. e.g. pattern => /pattern/
let quote = "/?~!@#$%^&*+-=,.:"
let j = 0
while j < strlen(quote)
if stridx(g:mwWord{i}, quote[j]) < 0
let quoted_regexp = quote[j] . g:mwWord{i} . quote[j]
break
endif
let j = j + 1
endwhile
if j >= strlen(quote)
continue
endif
" suggested by Marc Weber
" exe "syntax match MarkWord" . i . " " . quoted_regexp . " containedin=ALL"
exe "syntax match MarkWord" . i . " " . quoted_regexp . " containedin=.*"
endif
let i = i + 1
endwhile
endfunction
" return the mark string under the cursor. multi-lines marks not supported
function! s:CurrentMark()
" define variables if they don't exist
call s:InitMarkVariables()
let line = getline(".")
let i = 1
while i <= g:mwCycleMax
if g:mwWord{i} != ""
let start = 0
while start >= 0 && start < strlen(line) && start < col(".")
let b = match(line, g:mwWord{i}, start)
let e = matchend(line, g:mwWord{i}, start)
if b < col(".") && col(".") <= e
let s:current_mark_position = line(".") . "_" . b
return g:mwWord{i}
endif
let start = e
endwhile
endif
let i = i + 1
endwhile
return ""
endfunction
" search current mark
function! s:SearchCurrentMark(...) " SearchCurrentMark(flags)
let flags = ""
if a:0 > 0
let flags = a:1
endif
let w = s:CurrentMark()
if w != ""
let p = s:current_mark_position
call search(w, flags)
call s:CurrentMark()
if p == s:current_mark_position
call search(w, flags)
endif
let g:mwLastSearched = w
else
if g:mwLastSearched != ""
call search(g:mwLastSearched, flags)
else
call s:SearchAnyMark(flags)
let g:mwLastSearched = s:CurrentMark()
endif
endif
endfunction
" combine all marks into one regexp
function! s:AnyMark()
" define variables if they don't exist
call s:InitMarkVariables()
let w = ""
let i = 1
while i <= g:mwCycleMax
if g:mwWord{i} != ""
if w != ""
let w = w . '\|' . g:mwWord{i}
else
let w = g:mwWord{i}
endif
endif
let i = i + 1
endwhile
return w
endfunction
" search any mark
function! s:SearchAnyMark(...) " SearchAnyMark(flags)
let flags = ""
if a:0 > 0
let flags = a:1
endif
let w = s:CurrentMark()
if w != ""
let p = s:current_mark_position
else
let p = ""
endif
let w = s:AnyMark()
call search(w, flags)
call s:CurrentMark()
if p == s:current_mark_position
call search(w, flags)
endif
let g:mwLastSearched = ""
endfunction
" search last searched mark
function! s:SearchNext(...) " SearchNext(flags)
let flags = ""
if a:0 > 0
let flags = a:1
endif
let w = s:CurrentMark()
if w != ""
if g:mwLastSearched != ""
call s:SearchCurrentMark(flags)
else
call s:SearchAnyMark(flags)
endif
return 1
else
return 0
endif
endfunction
" Restore previous 'cpo' value
let &cpo = s:save_cpo
" vim: ts=2 sw=2

View File

@ -0,0 +1,24 @@
# cocoa.vim
Vim plugin for Cocoa/Objective-C development with updated (iOS8.1 and OS X 10.9) code completion and syntax highlighting.
## Installation
### With [Vundle](https://github.com/gmarik/vundle)
```
Plugin 'kentaroi/cocoa.vim'
```
### With [Pathogen](https://github.com/tpope/vim-pathogen)
```
cd ~/.vim/bundle
git clone https://github.com/kentaroi/cocoa.vim.git
```
## Author
[cocoa.vim](https://github.com/msanders/cocoa.vim) was developed
by [Michael Sanders](https://github.com/msanders).

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,59 @@
" Author: Michael Sanders (msanders42 [at] gmail [dot] com)
" Description: Better syntax highlighting for Objective-C files (part of the
" cocoa.vim plugin).
" Last Updated: June 23, 2009
" NOTE: This next file (cocoa_keywords.vim) is rather large and may slow
" things down. Loading it seems to take less than 0.5 microseconds
" on my machine, but I'm not sure of the consequences; if it is slow
" for you, just comment out the next line.
ru after/syntax/cocoa_keywords.vim
syn match objcDirective '@synthesize\|@property\|@optional\|@required' display
syn keyword objcType IBOutlet IBAction Method
syn keyword objcConstant YES NO TRUE FALSE
syn region objcImp start='@implementation' end='@end' transparent
syn region objcHeader start='@interface' end='@end' transparent
" I make this typo sometimes so it's nice to have it highlighted.
syn match objcError '\v(NSLogv=\(\s*)@<=[^@]=["'].*'me=e-1
syn match objcSubclass '\(@implementation\|@interface\)\@<=\s*\k\+' display contained containedin=objcImp,objcHeader
syn match objcSuperclass '\(@\(implementation\|interface\)\s*\k\+\s*:\)\@<=\s*\k*' display contained containedin=objcImp,objcHeader
" Matches "- (void) foo: (int) bar and: (float) foobar"
syn match objcMethod '^\s*[-+]\s*\_.\{-}[\{;]'me=e-1 transparent contains=cParen,objcInstMethod,objcFactMethod
" Matches "bar & foobar" in above
syn match objcMethodArg ')\@<=\s*\k\+' contained containedin=objcMethod
" Matches "foo:" & "and:" in above
syn match objcMethodName '\(^\s*[-+]\s*(\_[^)]*)\)\@<=\_\s*\_\k\+' contained containedin=objcMethod
syn match objcMethodColon '\k\+\s*:' contained containedin=objcMethod
" Don't match these groups in cParen "(...)"
syn cluster cParenGroup add=objcMethodName,objcMethodArg,objcMethodColon
" This fixes a bug with completion inside parens (e.g. if ([NSString ]))
syn cluster cParenGroup remove=objcMethodCall
" Matches "bar" in "[NSObject bar]" or "bar" in "[[NSObject foo: baz] bar]",
" but NOT "bar" in "[NSObject foo: bar]".
syn match objcMessageName '\(\[\s*\k\+\s\+\|\]\s*\)\@<=\k*\s*\]'me=e-1 display contained containedin=objcMethodCall
" Matches "foo:" in "[NSObject foo: bar]" or "[[NSObject new] foo: bar]"
syn match objcMessageColon '\(\_\S\+\_\s\+\)\@<=\k\+\s*:' display contained containedin=objcMethodCall
" Don't match these in this strange group for edge cases...
syn cluster cMultiGroup add=objcMessageColon,objcMessageName,objcMethodName,objcMethodArg,objcMethodColon
" You may want to customize this one. I couldn't find a default group to suit
" it, but you can modify your colorscheme to make this a different color.
hi link objcMethodName Special
hi link objcMethodColon objcMethodName
hi link objcMethodArg Identifier
hi link objcMessageName objcMethodArg
hi link objcMessageColon objcMessageName
hi link objcSubclass objcMethodName
hi link objcSuperclass String
hi link objcError Error

View File

@ -0,0 +1,215 @@
" File: cocoacomplete.vim (part of the cocoa.vim plugin)
" Author: Michael Sanders (msanders42 [at] gmail [dot] com)
" Last Updated: June 30, 2009
" Description: An omni-completion plugin for Cocoa/Objective-C.
let s:lib_dir = fnameescape(expand('<sfile>:p:h:h:h').'/lib/')
let s:cocoa_indexes = s:lib_dir.'cocoa_indexes/'
if !isdirectory(s:cocoa_indexes)
echom 'Error in cocoacomplete.vim: could not find ~/.vim/lib/cocoa_indexes directory'
endif
fun! objc#cocoacomplete#Complete(findstart, base)
if a:findstart
" Column where completion starts:
return match(getline('.'), '\k\+\%'.col('.').'c')
else
let matches = []
let complete_type = s:GetCompleteType(line('.'), col('.') - 1)
if complete_type == 'methods'
call s:Complete(a:base, ['alloc', 'init', 'retain', 'release',
\ 'autorelease', 'retainCount',
\ 'description', 'class', 'superclass',
\ 'self', 'zone', 'isProxy', 'hash'])
let obj_pos = s:GetObjPos(line('.'), col('.'))
call extend(matches, s:CompleteMethod(line('.'), obj_pos, a:base))
elseif complete_type == 'types' || complete_type == 'returntypes'
let opt_types = complete_type == 'returntypes' ? ['IBAction'] : []
call s:Complete(a:base, opt_types + ['void', 'id', 'BOOL', 'int',
\ 'double', 'float', 'char'])
call extend(matches, s:CompleteCocoa(a:base, 'classes', 'types',
\ 'notifications'))
elseif complete_type != ''
if complete_type =~ 'function_params$'
let complete_type = substitute(complete_type, 'function_params$', '', '')
let functions = s:CompleteFunction(a:base)
endif
" Mimic vim's dot syntax for other complete types (see :h ft).
let word = a:base == '' ? 'NS' : a:base
let args = [word] + split(complete_type, '\.')
call extend(matches, call('s:CompleteCocoa', args))
" List functions after the other items in the menu.
if exists('functions') | call extend(matches, functions) | endif
endif
return matches
endif
endf
fun s:GetCompleteType(lnum, col)
let scopelist = map(synstack(a:lnum, a:col), 'synIDattr(v:val, "name")')
if empty(scopelist) | return 'types' | endif
let current_scope = scopelist[-1]
let beforeCursor = strpart(getline(a:lnum), 0, a:col)
" Completing a function name:
if getline(a:lnum) =~ '\%'.(a:col + 1).'c\s*('
return 'functions'
elseif current_scope == 'objcSuperclass'
return 'classes'
" Inside brackets "[ ... ]":
elseif index(scopelist, 'objcMethodCall') != -1
return beforeCursor =~ '\[\k*$' ? 'classes' : 'methods'
" Inside parentheses "( ... )":
elseif current_scope == 'cParen'
" Inside parentheses for method definition:
if beforeCursor =~ '^\s*[-+]\s*([^{;]*'
return beforeCursor =~ '^\s*[-+]\s*([^)]*$' ? 'returntypes' : 'types'
" Inside function, loop, or conditional:
else
return 'classes.types.constants.function_params'
endif
" Inside braces "{ ... }" or after equals "=":
elseif current_scope == 'cBlock' || current_scope == 'objcAssign' || current_scope == ''
let type = current_scope == 'cBlock' ? 'types.constants.' : ''
let type = 'classes.'.type.'function_params'
if beforeCursor =~ 'IBOutlet' | return 'classes' | endif
return beforeCursor =~ '\v(^|[{};=\])]|return)\s*\k*$'? type : 'methods'
" Directly inside "@implementation ... @end" or "@interface ... @end"
elseif current_scope == 'objcImp' || current_scope == 'objcHeader'
" TODO: Complete delegate/subclass methods
endif
return ''
endf
" Adds item to the completion menu if they match the base.
fun s:Complete(base, items)
for item in a:items
if item =~ '^'.a:base | call complete_add(item) | endif
endfor
endf
" Returns position of "foo" in "[foo bar]" or "[baz bar: [foo bar]]".
fun s:GetObjPos(lnum, col)
let beforeCursor = strpart(getline(a:lnum), 0, a:col)
return match(beforeCursor, '\v.*(^|[\[=;])\s*\[*\zs[A-Za-z0-9_@]+') + 1
endf
" Completes a method given the position of the object and the method
" being completed.
fun s:CompleteMethod(lnum, col, method)
let class = s:GetCocoaClass(a:lnum, a:col)
if class == ''
let object = matchstr(getline(a:lnum), '\%'.a:col.'c\k\+')
let class = s:GetDeclWord(object)
if class == '' | return [] | endif
endif
let method = s:GetMethodName(a:lnum, a:col, a:method)
let matches = split(system(s:lib_dir.'get_methods.sh '.class.
\ '|grep "^'.method.'"'), "\n")
if exists('g:loaded_snips') " Use snipMate if it's installed
call objc#pum_snippet#Map()
else " Otherwise, only complete the method name.
call map(matches, 'substitute(v:val, ''\v:\zs.{-}\ze(\w+:|$)'', " ", "g")')
endif
" If dealing with a partial method name, only complete past it. E.g., in
" "[NSString stringWithCharacters:baz l|]" (where | is the cursor),
" only return "length", not "stringWithCharacters:length:".
if stridx(method, ':') != -1
let method = substitute(method, a:method.'$', '\\\\zs&', '')
call map(matches, 'matchstr(v:val, "'.method.'.*")')
endif
return matches
endf
" Returns the Cocoa class at a given position if it exists, or
" an empty string "" if it doesn't.
fun s:GetCocoaClass(lnum, col)
let class = matchstr(getline(a:lnum), '\%'.a:col.'c[A-Za-z0-9_"@]\+')
if class =~ '^@"' | return 'NSString' | endif " Treat @"..." as an NSString
let v:errmsg = ''
sil! hi cocoaClass
if v:errmsg == '' && synIDattr(synID(a:lnum, a:col, 0), 'name') == 'cocoaClass'
return class " If cocoaClass is defined, try using that.
endif
return system('grep ^'.class.' '.s:cocoa_indexes.'classes.txt') != ''
\ ? class : '' " Use grep as a fallback.
endf
" Returns the word before a variable declaration.
fun s:GetDeclWord(var)
let startpos = [line('.'), col('.')]
let line_found = searchdecl(a:var) != 0 ? 0 : line('.')
call cursor(startpos)
let matchstr = '\v(IBOutlet\s+)=\zs\k+\s*\ze\**\s*'
" If the declaration was not found in the implementation file, check
" the header.
if !line_found && expand('%:e') == 'm'
let header_path = expand('%:p:r').'.h'
if filereadable(header_path)
for line in readfile(header_path)
if line =~ '^\s*\(IBOutlet\)\=\s*\k*\s*\ze\**\s*'.a:var.'\s*'
return matchstr(line, matchstr)
endif
endfor
return ''
endif
endif
return matchstr(getline(line_found), matchstr.a:var)
endf
fun s:SearchList(list, regex)
for line in a:list
if line =~ a:regex
return line
endif
endfor
return ''
endf
" Returns the method name, ready to be searched by grep.
" The "base" word needs to be passed in separately, because
" Vim apparently removes it from the line during completions.
fun s:GetMethodName(lnum, col, base)
let line = getline(a:lnum)
let col = matchend(line, '\%'.a:col.'c\S\+\s\+') + 1 " Skip past class name.
if line =~ '\%'.col.'c\k\+:'
let base = a:base == '' ? '' : ' '.a:base
let method = matchstr(line, '\%'.col.'c.\{-}\ze]').base
return substitute(method, '\v\k+:\zs.{-}\ze(\s*\k+:|'.base.'$)', '[^:]*', 'g')
else
return a:base
endif
endf
" Completes Cocoa functions, using snippets for the parameters if possible.
fun s:CompleteFunction(word)
let files = s:cocoa_indexes.'functions.txt' " TODO: Add C functions.
let matches = split(system('zgrep -h "^'.a:word.'" '.files), "\n")
if exists('g:loaded_snips') " Use snipMate if it's installed
call objc#pum_snippet#Map()
else " Otherwise, just complete the function name
call map(matches, "{'word':matchstr(v:val, '^\\k\\+'), 'abbr':v:val}")
endif
return matches
endf
" Completes word for Cocoa "classes", "types", "notifications", or "constants".
" (supplied as the optional parameters).
fun s:CompleteCocoa(word, file, ...)
let files = ''
for file in [a:file] + a:000
let files .= ' '.s:cocoa_indexes.file.'.txt'
endfor
return split(system('grep -ho "^'.a:word.'[A-Za-z0-9_]*" '.files), "\n")
endf
" vim:noet:sw=4:ts=4:ft=vim

View File

@ -0,0 +1,185 @@
" File: objc#man.vim (part of the cocoa.vim plugin)
" Author: Michael Sanders (msanders42 [at] gmail [dot] com)
" Description: Allows you to look up Cocoa API docs in Vim.
" Last Updated: December 26, 2009
" NOTE: See http://tinyurl.com/remove-annoying-alert
" for removing the annoying security alert in Leopard.
" Return all matches in for ":CocoaDoc <tab>" sorted by length.
fun objc#man#Completion(ArgLead, CmdLine, CursorPos)
return system('grep -ho "^'.a:ArgLead.'\w*" ~/.vim/lib/cocoa_indexes/*.txt'.
\ "| perl -e 'print sort {length $a <=> length $b} <>'")
endf
let s:docsets = []
let locations = [
\ {'path': '/Developer/Documentation/DocSets/com.apple.ADC_Reference_Library.CoreReference.docset',
\ 'alias': 'Leopard'},
\ {'path': '/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleSnowLeopard.CoreReference.docset',
\ 'alias': 'Snow Leopard'},
\ {'path': '/Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiPhone3_0.iPhoneLibrary.docset',
\ 'alias': 'iPhone 3.0'}
\ ]
for location in locations
if isdirectory(location.path)
call add(s:docsets, location)
endif
endfor
let s:docset_cmd = '/Developer/usr/bin/docsetutil search -skip-text -query '
fun s:OpenFile(file)
if a:file =~ '/.*/man/'
exe ':!'.substitute(&kp, '^man -s', 'man', '').' '.a:file
else
" Sometimes Xcode doesn't download a bundle fully, and docsetutil is
" inaccurate.
if !filereadable(matchstr(a:file, '^.*\ze#.*$'))
echoh ErrorMsg
echom 'File "'.a:file.'" is not readable.'
echom 'Check that Xcode has fully downloaded the DocSet.'
echoh None
else
" /usr/bin/open strips the #fragments in file:// URLs, which we need,
" so I'm using applescript instead.
call system('osascript -e ''open location "file://'.a:file.'"'' &')
endif
endif
endf
fun objc#man#ShowDoc(...)
let word = a:0 ? a:1 : matchstr(getline('.'), '\<\w*\%'.col('.').'c\w\+:\=')
" Look up the whole method if it takes multiple arguments.
if !a:0 && word[len(word) - 1] == ':'
let word = s:GetMethodName()
endif
if word == ''
if !a:0 " Mimic K if using it as such
echoh ErrorMsg
echo 'E349: No identifier under cursor'
echoh None
endif
return
endif
let references = {}
" First check Cocoa docs for word using docsetutil
for location in s:docsets
let docset = location.path
let response = split(system(s:docset_cmd.word.' '.docset), "\n")
let docset .= '/Contents/Resources/Documents/' " Actual path of files
for line in response
" Format string is: " Language/type/class/word path"
let path = matchstr(line, '\S*$')
if path[0] != '/' | let path = docset.path | endif
" Ignore duplicate entries
if has_key(references, path) | continue | endif
let attrs = split(matchstr(line, '^ \zs*\S*'), '/')[:2]
" Ignore unrecognized entries.
if len(attrs) != 3 | continue | endif
" If no class is given use type instead
let [lang, type, class] = attrs
if class == '-' | let class = type | endif
let references[path] = {'lang': lang, 'class': class,
\ 'location': location}
endfor
endfor
" Then try man
let man = system('man -S2:3 -aW '.word)
if man !~ '^No manual entry'
for path in split(man, "\n")
if !has_key(references, path)
let references[path] = {'lang': 'C', 'class': 'man'}
endif
endfor
endif
if len(references) == 1
return s:OpenFile(keys(references)[0])
elseif !empty(references)
echoh ModeMsg | echo word | echoh None
return s:ChooseFrom(references)
else
echoh WarningMsg
echo "Can't find documentation for ".word
echoh None
endif
endf
fun s:ChooseFrom(references)
let type_abbr = {'cl' : 'Class', 'intf' : 'Protocol', 'cat' : 'Category',
\ 'intfm' : 'Method', 'instm' : 'Method', 'econst' : 'Enum',
\ 'tdef' : 'Typedef', 'macro' : 'Macro', 'data' : 'Data',
\ 'func' : 'Function'}
let inputlist = []
" Don't display "Objective-C" if all items are objc
let show_lang = !AllKeysEqual(values(a:references), 'lang', 'Objective-C')
let i = 1
for ref in values(a:references)
let class = ref.class
if has_key(type_abbr, class) | let class = type_abbr[class] | endif
call add(inputlist, i.'. '.(show_lang ? ref['lang'].' ' : '').class.' ('.ref.location.alias.')')
let i += 1
endfor
let num = inputlist(inputlist)
return num ? s:OpenFile(keys(a:references)[num - 1]) : -1
endf
fun AllKeysEqual(list, key, item)
for item in a:list
if item[a:key] != a:item
return 0
endif
endfor
return 1
endf
fun s:GetMethodName()
let pos = [line('.'), col('.')]
let startpos = searchpos('\v^\s*-.{-}\w+:|\[\s*\w+\s+\w+:|\]\s*\w+:', 'cbW')
" Method declaration (- (foo) bar:)
if getline(startpos[0]) =~ '^\s*-.\{-}\w\+:'
let endpos = searchpos('{', 'W')
" Message inside brackets ([foo bar: baz])
else
let endpos = searchpairpos('\[', '', '\]', 'W')
endif
call cursor(pos)
if startpos[0] == 0 || endpos[0] == 0 | return '' | endif
let lines = getline(startpos[0], endpos[0])
let lines[0] = strpart(lines[0], startpos[1] - 1)
let lines[-1] = strpart(lines[-1], 0, endpos[1])
" Ignore outer brackets
let message = substitute(join(lines), '^\[\|\]$', '', '')
" Ignore nested messages [...]
let message = substitute(message, '\[.\{-}\]', '', 'g')
" Ignore strings (could contain colons)
let message = substitute(message, '".\{-}"', '', 'g')
" Ignore @selector(...)
let message = substitute(message, '@selector(.\{-})', '', 'g')
return s:MatchAll(message, '\w\+:')
endf
fun s:MatchAll(haystack, needle)
let matches = matchstr(a:haystack, a:needle)
let index = matchend(a:haystack, a:needle)
while index != -1
let matches .= matchstr(a:haystack, a:needle, index + 1)
let index = matchend(a:haystack, a:needle, index + 1)
endw
return matches
endf
" vim:noet:sw=4:ts=4:ft=vim

View File

@ -0,0 +1,124 @@
" File: objc#method_builder.vim (part of the cocoa.vim plugin)
" Author: Michael Sanders (msanders42 [at] gmail [dot] com)
" Description: Builds an empty implementation (*.m) file given a header (*.h)
" file. When called with no arguments (simply ":BuildMethods"),
" it looks for the corresponding header file of the current *.m
" file (e.g. "foo.m" -> "foo.h").
" Last Updated: June 03, 2009
" - make sure you're not in a comment
" TODO: Relative pathnames
fun objc#method_builder#Completion(ArgLead, CmdLine, CursorPos)
let dir = stridx(a:ArgLead, '/') == -1 ? getcwd() : fnamemodify(a:ArgLead, ':h')
let search = fnamemodify(a:ArgLead, ':t')
let files = split(glob(dir.'/'.search.'*.h')
\ ."\n".glob(dir.'/'.search.'*/'), "\n")
call map(files, 'fnameescape(fnamemodify(v:val, ":."))')
return files
endf
fun s:Error(msg)
echoh ErrorMsg | echo a:msg | echoh None
return -1
endf
fun s:GetDeclarations(file)
let header = readfile(a:file)
let template = []
let in_comment = 0
let in_header = 0
let looking_for_semi = 0
for line in header
if in_comment
if stridx(line, '*/') != -1 | let in_comment = 0 | endif
continue " Ignore declarations inside multi-line comments
elseif stridx(line, '/*') != -1
let in_comment = 1 | continue
endif
if stridx(line, '@interface') != -1
let in_header = 1
let template += ['@implementation'.matchstr(line, '@interface\zs\s\+\w\+'), '']
continue
elseif in_header && stridx(line, '@end') != -1
let in_header = 0
call add(template, '@end')
break " Only process one @interface at a time, for now.
endif
if !in_header | continue | endif
let first_char = strpart(line, 0, 1)
if first_char == '-' || first_char == '+' || looking_for_semi
let semi_pos = stridx(line, ';')
let looking_for_semi = semi_pos == -1
if looking_for_semi
call add(template, line)
else
call add(template, strpart(line, 0, semi_pos))
let template += ['{', "\t", '}', '']
endif
endif
endfor
return template
endf
fun objc#method_builder#Build(header)
let headerfile = a:header == '' ? expand('%:p:r').'.h' : a:header
if expand('%:e') != 'm'
return s:Error('Not in an implementation file.')
elseif !filereadable(headerfile)
return s:Error('Could not read header file.')
endif
let declarations = s:GetDeclarations(headerfile)
if empty(declarations)
return s:Error('Header file has no method declarations!')
endif
let len = len(declarations)
let last_change = line('.')
if search('\V'.substitute(declarations[0], '\s\+', '\\s\\+', ''))
if !searchpair('@implementation', '', '@end', 'W')
return s:Error('Missing @end declaration.')
endif
let i = 2 " Skip past the @implementation line & blank line
let len -= 1 " Skip past @end declaration
let lnum = line('.') - 1
else
let i = 0
let lnum = line('.')
endif
let start_line = lnum
while i < len
let is_method = declarations[i][0] =~ '@\|+\|-'
if !is_method || !search('\V'.substitute(escape(declarations[i], '\'),
\ 'void\|IBAction', '\\(void\\|IBAction\\)', 'g'), 'n')
call append(lnum, declarations[i])
let lnum += 1
if is_method | let last_change = lnum | endif
else " Skip method declaration if it is already declared.
if declarations[i][0] == '@'
let i += 1
else
while declarations[i] != '}' && i < len
let i += 1
endw
let i += 1
endif
endif
let i += 1
endw
call cursor(last_change, 1)
if lnum == start_line
echoh WarningMsg
let class = matchstr(declarations[0], '@implementation\s\+\zs.*')
echo 'The methods for the "'.class.'" class have already been declared.'
echoh None
endif
endf
" vim:noet:sw=4:ts=4:ft=vim

View File

@ -0,0 +1,115 @@
" File: objc#method_list.vim (part of the cocoa.vim plugin)
" Author: Michael Sanders (msanders42 [at] gmail [dot] com)
" Description: Opens a split window containing the methods of the current file.
" Last Updated: July 13, 2009
au WinLeave Method\ List call<SID>LeaveMethodList()
au WinEnter Method\ List call objc#method_list#Activate(0)
fun objc#method_list#Activate(update)
let s:opt = {'is':&is, 'hls': &hls} " Save current options.
let s:last_search = @/
set is nohls
" If methodlist has already been opened, reactivate it.
if exists('s:mlist_buffer') && bufexists(s:mlist_buffer)
let mlist_win = bufwinnr(s:mlist_buffer)
if mlist_win == -1
sil exe 'belowright sbuf '.s:mlist_buffer
if a:update | call s:UpdateMethodList() | endif
elseif winbufnr(2) == -1
quit " If no other windows are open, close the method list automatically.
else " If method list is out of focus, bring it back into focus.
exe mlist_win.'winc w'
endif
else " Otherwise, create the method list.
call s:CreateMethodList()
call s:UpdateMethodList()
endif
endf
fun s:CreateMethodList()
botright new
let s:sortPref = 0
let s:mlist_buffer = bufnr('%')
sil file Method\ List
setl bt=nofile bh=wipe noswf nobl nonu nowrap syn=objc
syn match objcPragmark '^[^-+@].*$'
hi objcPragmark gui=italic term=underline
nn <silent> <buffer> <cr> :cal<SID>SelectMethod()<cr>
nn <buffer> q <c-w>q
nn <buffer> p <c-w>p
nm <buffer> l p
nm <buffer> <2-leftmouse> <cr>
endf
" Returns the lines of all the matches in a dictionary
fun s:GetAllMatches(needle)
let startpos = [line('.'), col('.')]
call cursor(1, 1)
let results = {}
let line = search(a:needle, 'Wc')
let key = matchstr(getline(line), a:needle)
if !s:InComment(line, 1) && key != ''
let results[key] = line
endif
while 1
let line = search(a:needle, 'W')
if !line | break | endif
let key = matchstr(getline(line), a:needle)
if !s:InComment(line, 1) && key != ''
let results[key] = line
endif
endw
call cursor(startpos)
return results
endf
fun s:InComment(line, col)
return stridx(synIDattr(synID(a:line, a:col, 0), 'name'), 'omment') != -1
endf
fun s:UpdateMethodList()
winc p " Go to source file window
let s:methods = s:GetAllMatches('^\v(\@(implementation|interface) \w+|'.
\ '\s*(\+|-).*|#pragma\s+mark\s+\zs.+)')
winc p " Go to method window
if empty(s:methods)
winc q
echoh WarningMsg
echo 'There are no methods in this file!'
echoh None
return
endif
call setline(1, sort(keys(s:methods), 's:SortByLineNum'))
exe "norm! \<c-w>".line('$').'_'
endf
fun s:SortByLineNum(i1, i2)
let line1 = s:methods[a:i1]
let line2 = s:methods[a:i2]
return line1 == line2 ? 0 : line1 > line2 ? 1 : -1
endf
fun s:SelectMethod()
let number = s:methods[getline('.')]
winc q
winc p
call cursor(number, 1)
endf
fun s:LeaveMethodList()
for [option, value] in items(s:opt)
exe 'let &'.option.'='.value
endfor
let @/ = s:last_search == '' ? '' : s:last_search
unl s:opt s:last_search
endf
" vim:noet:sw=4:ts=4:ft=vim

View File

@ -0,0 +1,87 @@
" File: pum_snippet.vim
" Author: Michael Sanders (msanders42 [at] gmail [dot] com)
" Last Updated: June 12, 2009
" Description: Uses snipMate to jump through function or method objc
" parameters when autocompleting. Used in cocoacomplete.vim.
" This function is invoked whenever pum_snippet is to be used; the keys are
" only mapped when used as the trigger, and then immediately unmapped to avoid
" breaking abbreviations, as well as other things.
fun! objc#pum_snippet#Map()
ino <silent> <buffer> <space> <c-r>=objc#pum_snippet#Trigger(' ')<cr>
if !exists('g:SuperTabMappingForward') " Only map tab if not using supertab.
\ || (g:SuperTabMappingForward != '<tab>' && g:SuperTabMappingForward != '<tab>')
ino <silent> <buffer> <tab> <c-r>=objc#pum_snippet#Trigger("\t")<cr>
endif
ino <silent> <buffer> <return> <c-r>=objc#pum_snippet#Trigger("\n")<cr>
let s:start = col('.')
" Completion menu can only be detected when the popup menu is visible, so
" 'menuone' needs to be temporarily set:
let s:cot = &cot
set cot+=menuone
endf
fun! objc#pum_snippet#Unmap()
call s:UnmapKey('<space>')
call s:UnmapKey('<tab>')
call s:UnmapKey('<return>')
endf
fun s:UnmapKey(key)
if maparg(a:key, 'i') =~? '^<C-R>=objc#pum_snippet#Trigger('
sil exe 'iunmap <buffer> '.a:key
endif
endf
fun! objc#pum_snippet#Trigger(key)
call objc#pum_snippet#Unmap()
if pumvisible()
let line = getline('.')
let col = col('.')
let word = matchstr(line, '\%'.s:start.'c\k\+(.\{-})\%'.col.'c')
if word != ''
let ConvertWord = function('s:ConvertFunction')
elseif match(line, '\%'.s:start.'c\k\+[^()]*:[^()]*\%'.col.'c') != -1
let word = matchstr(line, '\%'.s:start.'c\k\+[^()]*\%'.col.'c')
let ConvertWord = function('s:ConvertMethod')
endif
if word != ''
call s:ResetOptions()
let col -= len(word)
sil exe 's/\V'.escape(word, '\/').'\%#//'
return snipMate#expandSnip(ConvertWord(word), col)
endif
endif
call s:ResetOptions()
return a:key
endf
fun s:ResetOptions()
let &cot = s:cot
unl s:start s:cot
endf
fun s:ConvertFunction(function)
let name = matchstr(a:function, '^\k\+')
let params = matchstr(a:function, '^\k\+(\zs.*')
let snippet = name.'('.substitute(params, '\v(.{-1})(, |\))', '${0:\1}\2', 'g').'${0}'
return s:OrderSnippet(snippet)
endf
fun s:ConvertMethod(method)
if stridx(a:method, ':') == -1 | return a:method | endif
let snippet = substitute(a:method, '\v\k+:\zs.{-}\ze(\s*\k+:|$)', '${0:&}', 'g')
return s:OrderSnippet(snippet)
endf
" Converts "${0} foo ${0} bar ..." to "${1} foo ${2} bar", etc.
fun s:OrderSnippet(snippet)
let snippet = a:snippet
let i = 1
while stridx(snippet, '${0') != -1
let snippet = substitute(snippet, '${0', '${'.i, '')
let i += 1
endw
return snippet
endf
" vim:noet:sw=4:ts=4:ft=vim

View File

@ -0,0 +1,154 @@
*cocoa.txt* Plugin for Cocoa/Objective-C development.
cocoa.vim *cocoa*
Last Change: March 30, 2010
Author: Michael Sanders
|cocoa-introduction| Introduction
|cocoa-installation| Installation
|cocoa-overview| Overview of features
|cocoa-mappings| Mappings
|cocoa-commands| Commands
|cocoa-license| License
|cocoa-contact| Contact
For Vim version 7.0 or later.
This plugin only works if 'compatible' is not set.
{Vi does not have any of these features.}
==============================================================================
INTRODUCTION *cocoa-intro*
Cocoa.vim is a collection of scripts designed to make it easier to develop
Cocoa/Objective-C applications. It includes enhanced syntax highlighting, code
completion, documentation lookup, as well as a number of other features that
can be used to integrate Vim with Xcode, allowing you to essentially replace
Xcode's editor with Vim.
==============================================================================
INSTALLATION *cocoa-installation*
Documentation lookup and code completion for Cocoa.vim currently only work on
OS X 10.5+ (although the other parts should work on any platform). To install,
simply unzip cocoa.zip to your home vim directory (typically ~/.vim).
*cocoa-suggested-plugins*
The code completion in cocoa.vim uses snipMate, if you have it installed, to
allow you to conveniently <tab> over the parameters in functions and
methods. If you like cocoa.vim, you may also find objc_matchbracket.vim
useful.
*leopard-security-alert*
Documentation works by showing the page in your default browser, which
apparently causes Leopard to warn you of opening an html file for every word
you look up. To fix this, see this page: http://tinyurl.com/remove-annoying-alert
==============================================================================
FEATURE OVERVIEW *cocoa-features*
1. Enhanced syntax highlighting; Vim's syntax highlighting for
Objective-C seemed a bit incomplete to me, so I have added a few
niceties, such as highlighting Cocoa keywords and differentiating
the method name and passed objects in method calls and definitions.
2. Xcode-like mappings; mappings such as <d-r> (where "d" is "command")
to build & run and <d-0> to switch to the project window help to
integrate Xcode and Vim. For a complete list of the mappings in
cocoa.vim, see |cocoa-mappings|.
3. Methods for the current file can be listed and navigated to with
the |:ListMethods| command.
4. A template of methods declared in a header file (.h) can be built
in an implementation file (.m) with |:BuildMethods|.
5. Cocoa/C Documentation can be looked up with the |:CocoaDoc| command,
or simply with Vim's |K|.
6. Code completion for classes, methods, functions, constants, types,
and notifications can be invoked with <c-x><c-o>. Parameters for
methods and functions are automatically converted to snippets to
<tab> over if you have snipMate installed.
==============================================================================
MAPPINGS *cocoa-mappings* *g:objc_man_key*
Cocoa.vim maps the following keys, some for convenience and others to
integrate with Xcode:
(Disclaimer: Sorry, I could not use the swirly symbols because vim/git was
having encoding issues. Just pretend that e.g. <d-r> means cmd-r.)
|<Leader>|A - Alternate between header (.h) and implementation (.m) file
K - Look up documentation for word under cursor[1]
<d-m-up> - <Leader>A
<d-r> - Build & Run (Go)
<d-cr> - CMD-R
<d-b> - Build
<shift-k> - Clean
<d-0> - Go to Project
<d-2> - :ListMethods
<F5> (in insert mode) - Show omnicompletion menu
<d-/> - Comment out line
<d-[> - Decrease indent
<d-]> - Increase indent
([1] This can be customized by the variable g:objc_man_key.)
==============================================================================
COMMANDS *cocoa-commands*
*:ListMethods*
:ListMethods Open a split window containing the methods, functions,
and #pragma marks of the current file.
*:BuildMethods*
:BuildMethods [headerfile]
Build a template of methods in an implementation (.m)
from a list declared in a header file (.h). If no
argument is given, the corresponding header file is
used (e.g. "foo.m" -> "foo.h").
==============================================================================
CODE COMPLETION *cocoa-completion*
When cocoa.vim is installed the 'omnifunc' is automatically set to
'cocoacomplete#Complete'. This allows you to complete classes, functions,
methods, etc. with <c-x><c-o>. These keywords are saved from header files in
~/.vim/lib/cocoa_indexes; they have been built for you, although you can build
them again by running ~/.vim/lib/extras/cocoa_definitions.py.
Completions with parameters (i.e., functions and methods) are automatically
converted to |snipMate| if it is installed. To invoke the snippet, simply
press a whitespace character (space, tab, or return), and then navigate the
snippet as you would in snipMate.
==============================================================================
LICENSE *cocoa-license*
Cocoa.vim is released under the MIT license:
Copyright 2009-2010 Michael Sanders. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The software is provided "as is", without warranty of any kind, express or
implied, including but not limited to the warranties of merchantability,
fitness for a particular purpose and noninfringement. In no event shall the
authors or copyright holders be liable for any claim, damages or other
liability, whether in an action of contract, tort or otherwise, arising from,
out of or in connection with the software or the use or other dealings in the
software.
==============================================================================
CONTACT *cocoa-contact* *cocoa-author*
To contact the author (Michael Sanders), you may email:
msanders42+cocoa.vim <at> gmail <dot> com
Thanks for your interest in the script!
==============================================================================
vim:tw=78:ts=8:ft=help:norl:enc=utf-8:

View File

@ -0,0 +1,85 @@
" File: objc_cocoa_mappings.vim
" Author: Michael Sanders (msanders42 [at] gmail [dot] com)
" Description: Sets up mappings for cocoa.vim.
" Last Updated: December 26, 2009
if exists('b:cocoa_proj') || &cp || version < 700
finish
endif
let b:cocoa_proj = fnameescape(globpath(expand('<afile>:p:h'), '*.xcodeproj'))
" Search a few levels up to see if we can find the project file
if empty(b:cocoa_proj)
let b:cocoa_proj = fnameescape(globpath(expand('<afile>:p:h:h'), '*.xcodeproj'))
if empty(b:cocoa_proj)
let b:cocoa_proj = fnameescape(globpath(expand('<afile>:p:h:h:h'), '*.xcodeproj'))
if empty(b:cocoa_proj)
let b:cocoa_proj = fnameescape(globpath(expand('<afile>:p:h:h:h:h'), '*.xcodeproj'))
endif
endif
endif
let g:x = b:cocoa_proj
com! -buffer ListMethods call objc#method_list#Activate(1)
com! -buffer -nargs=? -complete=customlist,objc#method_builder#Completion BuildMethods call objc#method_builder#Build('<args>')
com! -buffer -nargs=? -complete=custom,objc#man#Completion CocoaDoc call objc#man#ShowDoc('<args>')
com! -buffer -nargs=? Alternate call <SID>AlternateFile()
let objc_man_key = exists('objc_man_key') ? objc_man_key : 'K'
exe 'nn <buffer> <silent> '.objc_man_key.' :<c-u>call objc#man#ShowDoc()<cr>'
nn <buffer> <silent> <leader>A :cal<SID>AlternateFile()<cr>
" Mimic some of Xcode's mappings.
nn <buffer> <silent> <d-r> :w<bar>cal<SID>BuildAnd('launch')<cr>
nn <buffer> <silent> <d-b> :w<bar>cal<SID>XcodeRun('build')<cr>
nn <buffer> <silent> <d-K> :w<bar>cal<SID>XcodeRun('clean')<cr>
" TODO: Add this
" nn <buffer> <silent> <d-y> :w<bar>cal<SID>BuildAnd('debug')<cr>
nn <buffer> <silent> <d-m-up> :cal<SID>AlternateFile()<cr>
nn <buffer> <silent> <d-0> :call system('open -a Xcode '.b:cocoa_proj)<cr>
nn <buffer> <silent> <d-2> :<c-u>ListMethods<cr>
nm <buffer> <silent> <d-cr> <d-r>
ino <buffer> <silent> <f5> <c-x><c-o>
nn <buffer> <d-/> I// <ESC>
nn <buffer> <d-[> <<
nn <buffer> <d-]> >>
if exists('*s:AlternateFile') | finish | endif
" Switch from header file to implementation file (and vice versa).
fun s:AlternateFile()
let path = expand('%:p:r').'.'
let extensions = expand('%:e') == 'h' ? ['m', 'c', 'cpp'] : ['h']
if !s:ReadableExtensionIn(path, extensions)
echoh ErrorMsg | echo 'Alternate file not readable.' | echoh None
endif
endf
" Returns true and switches to file if file with extension in any of
" |extensions| is readable, or returns false if not.
fun s:ReadableExtensionIn(path, extensions)
for ext in a:extensions
if filereadable(a:path.ext)
exe 'e'.fnameescape(a:path.ext)
return 1
endif
endfor
return 0
endf
" Opens Xcode and runs Applescript command.
fun s:XcodeRun(command)
call system("open -a Xcode ".b:cocoa_proj." && osascript -e 'tell app "
\ .'"Xcode" to '.a:command."' &")
endf
fun s:BuildAnd(command)
call system("open -a Xcode ".b:cocoa_proj." && osascript -e 'tell app "
\ ."\"Xcode\"' -e '"
\ .'set target_ to project of active project document '
\ ."' -e '"
\ .'if (build target_) starts with "Build succeeded" then '
\ .a:command.' target_'
\ ."' -e 'end tell'")
endf

View File

@ -0,0 +1,990 @@
ABAddressBook\|NSObject
ABGroup\|ABRecord\|NSObject
ABImageClient
ABMultiValue\|NSObject
ABMutableMultiValue\|ABMultiValue\|NSObject
ABPeoplePickerView\|NSView\|NSResponder\|NSObject
ABPerson\|ABRecord\|NSObject
ABPersonPicker
ABPersonPickerDelegate
ABPersonView\|NSView\|NSResponder\|NSObject
ABRecord\|NSObject
ABSearchElement\|NSObject
CIColor\|NSObject
CIImage\|NSObject
DOMAbstractView\|DOMObject\|WebScriptObject\|NSObject
DOMAttr\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMBlob\|DOMObject\|WebScriptObject\|NSObject
DOMCDATASection\|DOMText\|DOMCharacterData\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMCSSCharsetRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSFontFaceRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSImportRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSMediaRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSPageRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSPrimitiveValue\|DOMCSSValue\|DOMObject\|WebScriptObject\|NSObject
DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSRuleList\|DOMObject\|WebScriptObject\|NSObject
DOMCSSStyleDeclaration\|DOMObject\|WebScriptObject\|NSObject
DOMCSSStyleRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSStyleSheet\|DOMStyleSheet\|DOMObject\|WebScriptObject\|NSObject
DOMCSSUnknownRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSValue\|DOMObject\|WebScriptObject\|NSObject
DOMCSSValueList\|DOMCSSValue\|DOMObject\|WebScriptObject\|NSObject
DOMCharacterData\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMComment\|DOMCharacterData\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMCounter\|DOMObject\|WebScriptObject\|NSObject
DOMDocument\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMDocumentFragment\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMDocumentType\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMEntity\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMEntityReference\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMEventListener
DOMEventTarget
DOMFile\|DOMBlob\|DOMObject\|WebScriptObject\|NSObject
DOMFileList\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLAnchorElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLAppletElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLAreaElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLBRElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLBaseElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLBaseFontElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLBodyElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLButtonElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLCollection\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLDListElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLDirectoryElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLDivElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLDocument\|DOMDocument\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLEmbedElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLFieldSetElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLFontElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLFormElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLFrameElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLFrameSetElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLHRElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLHeadElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLHeadingElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLHtmlElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLIFrameElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLImageElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLInputElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLLIElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLLabelElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLLegendElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLLinkElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLMapElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLMarqueeElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLMenuElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLMetaElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLModElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLOListElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLObjectElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLOptGroupElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLOptionElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLOptionsCollection\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLParagraphElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLParamElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLPreElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLQuoteElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLScriptElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLSelectElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLStyleElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableCaptionElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableCellElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableColElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableRowElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableSectionElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTextAreaElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTitleElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLUListElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMImplementation\|DOMObject\|WebScriptObject\|NSObject
DOMKeyboardEvent\|DOMUIEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMMediaList\|DOMObject\|WebScriptObject\|NSObject
DOMMouseEvent\|DOMUIEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMMutationEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMNamedNodeMap\|DOMObject\|WebScriptObject\|NSObject
DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMNodeFilter\|DOMObject\|WebScriptObject\|NSObject
DOMNodeIterator\|DOMObject\|WebScriptObject\|NSObject
DOMNodeList\|DOMObject\|WebScriptObject\|NSObject
DOMNotation\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMObject\|WebScriptObject\|NSObject
DOMOverflowEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMProcessingInstruction\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMProgressEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMRGBColor\|DOMObject\|WebScriptObject\|NSObject
DOMRange\|DOMObject\|WebScriptObject\|NSObject
DOMRect\|DOMObject\|WebScriptObject\|NSObject
DOMStyleSheet\|DOMObject\|WebScriptObject\|NSObject
DOMStyleSheetList\|DOMObject\|WebScriptObject\|NSObject
DOMText\|DOMCharacterData\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMTreeWalker\|DOMObject\|WebScriptObject\|NSObject
DOMUIEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMWheelEvent\|DOMMouseEvent\|DOMUIEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMXPathExpression\|DOMObject\|WebScriptObject\|NSObject
DOMXPathNSResolver
DOMXPathResult\|DOMObject\|WebScriptObject\|NSObject
GKAchievement\|NSObject
GKAchievementChallenge\|GKChallenge\|NSObject
GKAchievementDescription\|NSObject
GKAchievementViewController\|NSViewController\|NSResponder\|NSObject
GKAchievementViewControllerDelegate
GKChallenge\|NSObject
GKChallengeEventHandler\|NSObject
GKChallengeEventHandlerDelegate
GKChallengeListener
GKFriendRequestComposeViewController\|NSViewController\|NSResponder\|NSObject
GKFriendRequestComposeViewControllerDelegate
GKGameCenterControllerDelegate
GKGameCenterViewController\|NSViewController\|NSResponder\|NSObject
GKInvite\|NSObject
GKInviteEventListener
GKLeaderboard\|NSObject
GKLeaderboardSet
GKLeaderboardViewController\|NSViewController\|NSResponder\|NSObject
GKLeaderboardViewControllerDelegate
GKLocalPlayer\|GKPlayer\|NSObject
GKLocalPlayerListener
GKMatch\|NSObject
GKMatchDelegate
GKMatchRequest\|NSObject
GKMatchmaker\|NSObject
GKMatchmakerViewController\|NSViewController\|NSResponder\|NSObject
GKMatchmakerViewControllerDelegate
GKNotificationBanner\|NSObject
GKPeerPickerController
GKPeerPickerControllerDelegate
GKPlayer\|NSObject
GKSavedGame
GKSavedGameListener
GKScore\|NSObject
GKScoreChallenge\|GKChallenge\|NSObject
GKSession\|NSObject
GKSessionDelegate
GKTurnBasedEventHandler\|NSObject
GKTurnBasedEventListener
GKTurnBasedExchangeReply
GKTurnBasedMatch\|NSObject
GKTurnBasedMatchmakerViewController\|NSViewController\|NSResponder\|NSObject
GKTurnBasedMatchmakerViewControllerDelegate
GKTurnBasedParticipant\|NSObject
GKVoiceChat\|NSObject
GKVoiceChatClient
GKVoiceChatService
ISyncChange\|NSObject
ISyncClient\|NSObject
ISyncConflictPropertyType
ISyncFilter\|NSObject
ISyncFiltering
ISyncManager\|NSObject
ISyncRecordReference\|NSObject
ISyncRecordSnapshot\|NSObject
ISyncSession\|NSObject
ISyncSessionDriver\|NSObject
ISyncSessionDriverDataSource
NSATSTypesetter\|NSTypesetter\|NSObject
NSActionCell\|NSCell\|NSObject
NSAffineTransform\|NSObject
NSAlert\|NSObject
NSAlertDelegate
NSAnimatablePropertyContainer
NSAnimation\|NSObject
NSAnimationContext\|NSObject
NSAnimationDelegate
NSAppearance\|NSObject
NSAppearanceCustomization
NSAppleEventDescriptor\|NSObject
NSAppleEventManager\|NSObject
NSAppleScript\|NSObject
NSApplication\|NSResponder\|NSObject
NSApplicationDelegate
NSArchiver\|NSCoder\|NSObject
NSArray\|NSObject
NSArrayController\|NSObjectController\|NSController\|NSObject
NSAssertionHandler\|NSObject
NSAtomicStore\|NSPersistentStore\|NSObject
NSAtomicStoreCacheNode\|NSObject
NSAttributeDescription\|NSPropertyDescription\|NSObject
NSAttributedString\|NSObject
NSAutoreleasePool\|NSObject
NSBezierPath\|NSObject
NSBitmapImageRep\|NSImageRep\|NSObject
NSBlockOperation\|NSOperation\|NSObject
NSBox\|NSView\|NSResponder\|NSObject
NSBrowser\|NSControl\|NSView\|NSResponder\|NSObject
NSBrowserCell\|NSCell\|NSObject
NSBrowserDelegate
NSBundle\|NSObject
NSButton\|NSControl\|NSView\|NSResponder\|NSObject
NSButtonCell\|NSActionCell\|NSCell\|NSObject
NSByteCountFormatter\|NSFormatter\|NSObject
NSCIImageRep\|NSImageRep\|NSObject
NSCache\|NSObject
NSCacheDelegate
NSCachedImageRep\|NSImageRep\|NSObject
NSCachedURLResponse\|NSObject
NSCalendar\|NSObject
NSCalendarDate\|NSDate\|NSObject
NSCell\|NSObject
NSChangeSpelling
NSCharacterSet\|NSObject
NSClassDescription\|NSObject
NSClipView\|NSView\|NSResponder\|NSObject
NSCloneCommand\|NSScriptCommand\|NSObject
NSCloseCommand\|NSScriptCommand\|NSObject
NSCoder\|NSObject
NSCoding
NSCollectionView\|NSView\|NSResponder\|NSObject
NSCollectionViewDelegate
NSCollectionViewItem\|NSViewController\|NSResponder\|NSObject
NSColor\|NSObject
NSColorList\|NSObject
NSColorPanel\|NSPanel\|NSWindow\|NSResponder\|NSObject
NSColorPicker\|NSObject
NSColorPickingCustom
NSColorPickingDefault
NSColorSpace\|NSObject
NSColorWell\|NSControl\|NSView\|NSResponder\|NSObject
NSComboBox\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
NSComboBoxCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSComboBoxCellDataSource
NSComboBoxDataSource
NSComboBoxDelegate
NSComparisonPredicate\|NSPredicate\|NSObject
NSCompoundPredicate\|NSPredicate\|NSObject
NSCondition\|NSObject
NSConditionLock\|NSObject
NSConnection\|NSObject
NSConnectionDelegate
NSConstantString\|NSSimpleCString\|NSString\|NSObject
NSControl\|NSView\|NSResponder\|NSObject
NSControlTextEditingDelegate
NSController\|NSObject
NSCopying
NSCountCommand\|NSScriptCommand\|NSObject
NSCountedSet\|NSMutableSet\|NSSet\|NSObject
NSCreateCommand\|NSScriptCommand\|NSObject
NSCursor\|NSObject
NSCustomImageRep\|NSImageRep\|NSObject
NSData\|NSObject
NSDataDetector\|NSRegularExpression\|NSObject
NSDate\|NSObject
NSDateComponents\|NSObject
NSDateFormatter\|NSFormatter\|NSObject
NSDatePicker\|NSControl\|NSView\|NSResponder\|NSObject
NSDatePickerCell\|NSActionCell\|NSCell\|NSObject
NSDatePickerCellDelegate
NSDecimalNumber\|NSNumber\|NSValue\|NSObject
NSDecimalNumberBehaviors
NSDecimalNumberHandler\|NSObject
NSDeleteCommand\|NSScriptCommand\|NSObject
NSDictionary\|NSObject
NSDictionaryController\|NSArrayController\|NSObjectController\|NSController\|NSObject
NSDirectoryEnumerator\|NSEnumerator\|NSObject
NSDiscardableContent
NSDistantObject\|NSProxy
NSDistantObjectRequest\|NSObject
NSDistributedLock\|NSObject
NSDistributedNotificationCenter\|NSNotificationCenter\|NSObject
NSDockTile\|NSObject
NSDockTilePlugIn
NSDocument\|NSObject
NSDocumentController\|NSObject
NSDraggingDestination
NSDraggingImageComponent\|NSObject
NSDraggingInfo
NSDraggingItem\|NSObject
NSDraggingSession\|NSObject
NSDraggingSource
NSDrawer\|NSResponder\|NSObject
NSDrawerDelegate
NSEPSImageRep\|NSImageRep\|NSObject
NSEntityDescription\|NSObject
NSEntityMapping\|NSObject
NSEntityMigrationPolicy\|NSObject
NSEnumerator\|NSObject
NSError\|NSObject
NSEvent\|NSObject
NSException\|NSObject
NSExistsCommand\|NSScriptCommand\|NSObject
NSExpression\|NSObject
NSExpressionDescription\|NSPropertyDescription\|NSObject
NSFastEnumeration
NSFetchRequest\|NSPersistentStoreRequest\|NSObject
NSFetchRequestExpression\|NSExpression\|NSObject
NSFetchedPropertyDescription\|NSPropertyDescription\|NSObject
NSFileCoordinator\|NSObject
NSFileHandle\|NSObject
NSFileManager\|NSObject
NSFileManagerDelegate
NSFilePresenter
NSFileProviderExtension
NSFileSecurity\|NSObject
NSFileVersion\|NSObject
NSFileWrapper\|NSObject
NSFont\|NSObject
NSFontCollection\|NSObject
NSFontDescriptor\|NSObject
NSFontManager\|NSObject
NSFontPanel\|NSPanel\|NSWindow\|NSResponder\|NSObject
NSFormCell\|NSActionCell\|NSCell\|NSObject
NSFormatter\|NSObject
NSGarbageCollector\|NSObject
NSGetCommand\|NSScriptCommand\|NSObject
NSGlyphGenerator\|NSObject
NSGlyphInfo\|NSObject
NSGlyphStorage
NSGradient\|NSObject
NSGraphicsContext\|NSObject
NSHTTPCookie\|NSObject
NSHTTPCookieStorage\|NSObject
NSHTTPURLResponse\|NSURLResponse\|NSObject
NSHashTable\|NSObject
NSHelpManager\|NSObject
NSHost\|NSObject
NSIgnoreMisspelledWords
NSImage\|NSObject
NSImageCell\|NSCell\|NSObject
NSImageDelegate
NSImageRep\|NSObject
NSImageView\|NSControl\|NSView\|NSResponder\|NSObject
NSIncrementalStore\|NSPersistentStore\|NSObject
NSIncrementalStoreNode\|NSObject
NSIndexPath\|NSObject
NSIndexSet\|NSObject
NSIndexSpecifier\|NSScriptObjectSpecifier\|NSObject
NSInputManager\|NSObject
NSInputServer\|NSObject
NSInputServerMouseTracker
NSInputServiceProvider
NSInputStream\|NSStream\|NSObject
NSInvocation\|NSObject
NSInvocationOperation\|NSOperation\|NSObject
NSJSONSerialization\|NSObject
NSKeyedArchiver\|NSCoder\|NSObject
NSKeyedArchiverDelegate
NSKeyedUnarchiver\|NSCoder\|NSObject
NSKeyedUnarchiverDelegate
NSLayoutConstraint\|NSObject
NSLayoutManager\|NSObject
NSLayoutManagerDelegate
NSLevelIndicator\|NSControl\|NSView\|NSResponder\|NSObject
NSLevelIndicatorCell\|NSActionCell\|NSCell\|NSObject
NSLinguisticTagger\|NSObject
NSLocale\|NSObject
NSLock\|NSObject
NSLocking
NSLogicalTest\|NSScriptWhoseTest\|NSObject
NSMachBootstrapServer\|NSPortNameServer\|NSObject
NSMachPort\|NSPort\|NSObject
NSMachPortDelegate
NSManagedObject\|NSObject
NSManagedObjectContext\|NSObject
NSManagedObjectID\|NSObject
NSManagedObjectModel\|NSObject
NSMapTable\|NSObject
NSMappingModel\|NSObject
NSMatrix\|NSControl\|NSView\|NSResponder\|NSObject
NSMatrixDelegate
NSMediaLibraryBrowserController\|NSObject
NSMenu\|NSObject
NSMenuDelegate
NSMenuItem\|NSObject
NSMenuItemCell\|NSButtonCell\|NSActionCell\|NSCell\|NSObject
NSMenuView\|NSView\|NSResponder\|NSObject
NSMergeConflict\|NSObject
NSMergePolicy\|NSObject
NSMessagePort\|NSPort\|NSObject
NSMessagePortNameServer\|NSPortNameServer\|NSObject
NSMetadataItem\|NSObject
NSMetadataQuery\|NSObject
NSMetadataQueryAttributeValueTuple\|NSObject
NSMetadataQueryDelegate
NSMetadataQueryResultGroup\|NSObject
NSMethodSignature\|NSObject
NSMiddleSpecifier\|NSScriptObjectSpecifier\|NSObject
NSMigrationManager\|NSObject
NSMoveCommand\|NSScriptCommand\|NSObject
NSMovie\|NSObject
NSMovieView\|NSView\|NSResponder\|NSObject
NSMutableArray\|NSArray\|NSObject
NSMutableAttributedString\|NSAttributedString\|NSObject
NSMutableCharacterSet\|NSCharacterSet\|NSObject
NSMutableCopying
NSMutableData\|NSData\|NSObject
NSMutableDictionary\|NSDictionary\|NSObject
NSMutableFontCollection\|NSFontCollection\|NSObject
NSMutableIndexSet\|NSIndexSet\|NSObject
NSMutableOrderedSet\|NSOrderedSet\|NSObject
NSMutableParagraphStyle\|NSParagraphStyle\|NSObject
NSMutableSet\|NSSet\|NSObject
NSMutableString\|NSString\|NSObject
NSMutableURLRequest\|NSURLRequest\|NSObject
NSNameSpecifier\|NSScriptObjectSpecifier\|NSObject
NSNetService\|NSObject
NSNetServiceBrowser\|NSObject
NSNetServiceBrowserDelegate
NSNetServiceDelegate
NSNib\|NSObject
NSNibConnector\|NSObject
NSNibControlConnector\|NSNibConnector\|NSObject
NSNibOutletConnector\|NSNibConnector\|NSObject
NSNotification\|NSObject
NSNotificationCenter\|NSObject
NSNotificationQueue\|NSObject
NSNull\|NSObject
NSNumber\|NSValue\|NSObject
NSNumberFormatter\|NSFormatter\|NSObject
NSObject
NSObjectController\|NSController\|NSObject
NSOpenGLContext\|NSObject
NSOpenGLLayer\|CAOpenGLLayer\|CALayer\|NSObject
NSOpenGLPixelBuffer\|NSObject
NSOpenGLPixelFormat\|NSObject
NSOpenGLView\|NSView\|NSResponder\|NSObject
NSOpenPanel\|NSSavePanel\|NSPanel\|NSWindow\|NSResponder\|NSObject
NSOpenSavePanelDelegate
NSOperation\|NSObject
NSOperationQueue\|NSObject
NSOrderedSet\|NSObject
NSOrthography\|NSObject
NSOutlineView\|NSTableView\|NSControl\|NSView\|NSResponder\|NSObject
NSOutlineViewDataSource
NSOutlineViewDelegate
NSOutputStream\|NSStream\|NSObject
NSPDFImageRep\|NSImageRep\|NSObject
NSPDFInfo\|NSObject
NSPDFPanel\|NSObject
NSPICTImageRep\|NSImageRep\|NSObject
NSPageController\|NSViewController\|NSResponder\|NSObject
NSPageControllerDelegate
NSPageLayout\|NSObject
NSPanel\|NSWindow\|NSResponder\|NSObject
NSParagraphStyle\|NSObject
NSPasteboard\|NSObject
NSPasteboardItem\|NSObject
NSPasteboardItemDataProvider
NSPasteboardReading
NSPasteboardWriting
NSPathCell\|NSActionCell\|NSCell\|NSObject
NSPathCellDelegate
NSPathComponentCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSPathControl\|NSControl\|NSView\|NSResponder\|NSObject
NSPathControlDelegate
NSPersistentDocument\|NSDocument\|NSObject
NSPersistentStore\|NSObject
NSPersistentStoreCoordinator\|NSObject
NSPersistentStoreCoordinatorSyncing
NSPersistentStoreRequest\|NSObject
NSPipe\|NSObject
NSPointerArray\|NSObject
NSPointerFunctions\|NSObject
NSPopUpButton\|NSButton\|NSControl\|NSView\|NSResponder\|NSObject
NSPopUpButtonCell\|NSMenuItemCell\|NSButtonCell\|NSActionCell\|NSCell\|NSObject
NSPopover\|NSResponder\|NSObject
NSPopoverDelegate
NSPort\|NSObject
NSPortCoder\|NSCoder\|NSObject
NSPortDelegate
NSPortMessage\|NSObject
NSPortNameServer\|NSObject
NSPositionalSpecifier\|NSObject
NSPredicate\|NSObject
NSPredicateEditor\|NSRuleEditor\|NSControl\|NSView\|NSResponder\|NSObject
NSPredicateEditorRowTemplate\|NSObject
NSPreferencePane\|NSObject
NSPrintInfo\|NSObject
NSPrintOperation\|NSObject
NSPrintPanel\|NSObject
NSPrintPanelAccessorizing
NSPrinter\|NSObject
NSProcessInfo\|NSObject
NSProgress\|NSObject
NSProgressIndicator\|NSView\|NSResponder\|NSObject
NSPropertyDescription\|NSObject
NSPropertyListSerialization\|NSObject
NSPropertyMapping\|NSObject
NSPropertySpecifier\|NSScriptObjectSpecifier\|NSObject
NSProtocolChecker\|NSProxy
NSProxy
NSPurgeableData\|NSMutableData\|NSData\|NSObject
NSQuickDrawView\|NSView\|NSResponder\|NSObject
NSQuitCommand\|NSScriptCommand\|NSObject
NSRandomSpecifier\|NSScriptObjectSpecifier\|NSObject
NSRangeSpecifier\|NSScriptObjectSpecifier\|NSObject
NSRecursiveLock\|NSObject
NSRegularExpression\|NSObject
NSRelationshipDescription\|NSPropertyDescription\|NSObject
NSRelativeSpecifier\|NSScriptObjectSpecifier\|NSObject
NSResponder\|NSObject
NSRuleEditor\|NSControl\|NSView\|NSResponder\|NSObject
NSRuleEditorDelegate
NSRulerMarker\|NSObject
NSRulerView\|NSView\|NSResponder\|NSObject
NSRunLoop\|NSObject
NSRunningApplication\|NSObject
NSSaveChangesRequest\|NSPersistentStoreRequest\|NSObject
NSSavePanel\|NSPanel\|NSWindow\|NSResponder\|NSObject
NSScanner\|NSObject
NSScreen\|NSObject
NSScriptClassDescription\|NSClassDescription\|NSObject
NSScriptCoercionHandler\|NSObject
NSScriptCommand\|NSObject
NSScriptCommandDescription\|NSObject
NSScriptExecutionContext\|NSObject
NSScriptObjectSpecifier\|NSObject
NSScriptSuiteRegistry\|NSObject
NSScriptWhoseTest\|NSObject
NSScrollView\|NSView\|NSResponder\|NSObject
NSScroller\|NSControl\|NSView\|NSResponder\|NSObject
NSSearchField\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
NSSearchFieldCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSSecureCoding
NSSecureTextField\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
NSSecureTextFieldCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSSegmentedCell\|NSActionCell\|NSCell\|NSObject
NSSegmentedControl\|NSControl\|NSView\|NSResponder\|NSObject
NSServicesMenuRequestor
NSSet\|NSObject
NSSetCommand\|NSScriptCommand\|NSObject
NSShadow\|NSObject
NSSharingService\|NSObject
NSSharingServiceDelegate
NSSharingServicePicker\|NSObject
NSSharingServicePickerDelegate
NSSimpleCString\|NSString\|NSObject
NSSimpleHorizontalTypesetter\|NSTypesetter\|NSObject
NSSlider\|NSControl\|NSView\|NSResponder\|NSObject
NSSliderCell\|NSActionCell\|NSCell\|NSObject
NSSocketPort\|NSPort\|NSObject
NSSocketPortNameServer\|NSPortNameServer\|NSObject
NSSortDescriptor\|NSObject
NSSound\|NSObject
NSSoundDelegate
NSSpecifierTest\|NSScriptWhoseTest\|NSObject
NSSpeechRecognizer\|NSObject
NSSpeechRecognizerDelegate
NSSpeechSynthesizer\|NSObject
NSSpeechSynthesizerDelegate
NSSpellChecker\|NSObject
NSSpellServer\|NSObject
NSSpellServerDelegate
NSSplitView\|NSView\|NSResponder\|NSObject
NSSplitViewDelegate
NSStackView\|NSView\|NSResponder\|NSObject
NSStackViewDelegate
NSStatusBar\|NSObject
NSStatusItem\|NSObject
NSStepper\|NSControl\|NSView\|NSResponder\|NSObject
NSStepperCell\|NSActionCell\|NSCell\|NSObject
NSStream\|NSObject
NSStreamDelegate
NSString\|NSObject
NSStringDrawingContext\|NSObject
NSTabView\|NSView\|NSResponder\|NSObject
NSTabViewDelegate
NSTabViewItem\|NSObject
NSTableCellView\|NSView\|NSResponder\|NSObject
NSTableColumn\|NSObject
NSTableHeaderCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSTableHeaderView\|NSView\|NSResponder\|NSObject
NSTableRowView\|NSView\|NSResponder\|NSObject
NSTableView\|NSControl\|NSView\|NSResponder\|NSObject
NSTableViewDataSource
NSTableViewDelegate
NSTask\|NSObject
NSText\|NSView\|NSResponder\|NSObject
NSTextAlternatives\|NSObject
NSTextAttachment\|NSObject
NSTextAttachmentCell\|NSCell\|NSObject
NSTextAttachmentContainer
NSTextBlock\|NSObject
NSTextCheckingResult\|NSObject
NSTextContainer\|NSObject
NSTextDelegate
NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSTextFieldDelegate
NSTextFinder\|NSObject
NSTextFinderBarContainer
NSTextFinderClient
NSTextInput
NSTextInputClient
NSTextInputContext\|NSObject
NSTextLayoutOrientationProvider
NSTextList\|NSObject
NSTextStorage\|NSMutableAttributedString\|NSAttributedString\|NSObject
NSTextStorageDelegate
NSTextTab\|NSObject
NSTextTable\|NSTextBlock\|NSObject
NSTextTableBlock\|NSTextBlock\|NSObject
NSTextView\|NSText\|NSView\|NSResponder\|NSObject
NSTextViewDelegate
NSThread\|NSObject
NSTimeZone\|NSObject
NSTimer\|NSObject
NSTokenField\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
NSTokenFieldCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSTokenFieldCellDelegate
NSTokenFieldDelegate
NSToolbar\|NSObject
NSToolbarDelegate
NSToolbarItem\|NSObject
NSToolbarItemGroup\|NSToolbarItem\|NSObject
NSToolbarItemValidations
NSTouch\|NSObject
NSTrackingArea\|NSObject
NSTreeController\|NSObjectController\|NSController\|NSObject
NSTreeNode\|NSObject
NSTypesetter\|NSObject
NSURL\|NSObject
NSURLAuthenticationChallenge\|NSObject
NSURLAuthenticationChallengeSender
NSURLCache\|NSObject
NSURLComponents\|NSObject
NSURLConnection\|NSObject
NSURLConnectionDataDelegate
NSURLConnectionDelegate
NSURLConnectionDownloadDelegate
NSURLCredential\|NSObject
NSURLCredentialStorage\|NSObject
NSURLDownload\|NSObject
NSURLDownloadDelegate
NSURLHandle\|NSObject
NSURLHandleClient
NSURLProtectionSpace\|NSObject
NSURLProtocol\|NSObject
NSURLProtocolClient
NSURLRequest\|NSObject
NSURLResponse\|NSObject
NSURLSession
NSURLSessionConfiguration
NSURLSessionDataDelegate
NSURLSessionDataTask
NSURLSessionDelegate
NSURLSessionDownloadDelegate
NSURLSessionDownloadTask
NSURLSessionTask
NSURLSessionTaskDelegate
NSURLSessionUploadTask
NSUUID\|NSObject
NSUbiquitousKeyValueStore\|NSObject
NSUnarchiver\|NSCoder\|NSObject
NSUndoManager\|NSObject
NSUniqueIDSpecifier\|NSScriptObjectSpecifier\|NSObject
NSUserAppleScriptTask\|NSUserScriptTask\|NSObject
NSUserAutomatorTask\|NSUserScriptTask\|NSObject
NSUserDefaults\|NSObject
NSUserDefaultsController\|NSController\|NSObject
NSUserInterfaceItemIdentification
NSUserInterfaceItemSearching
NSUserInterfaceValidations
NSUserNotification\|NSObject
NSUserNotificationCenter\|NSObject
NSUserNotificationCenterDelegate
NSUserScriptTask\|NSObject
NSUserUnixTask\|NSUserScriptTask\|NSObject
NSValidatedToobarItem
NSValidatedUserInterfaceItem
NSValue\|NSObject
NSValueTransformer\|NSObject
NSView\|NSResponder\|NSObject
NSViewAnimation\|NSAnimation\|NSObject
NSViewController\|NSResponder\|NSObject
NSWhoseSpecifier\|NSScriptObjectSpecifier\|NSObject
NSWindow\|NSResponder\|NSObject
NSWindowController\|NSResponder\|NSObject
NSWindowDelegate
NSWindowRestoration
NSWorkspace\|NSObject
NSXMLDTD\|NSXMLNode\|NSObject
NSXMLDTDNode\|NSXMLNode\|NSObject
NSXMLDocument\|NSXMLNode\|NSObject
NSXMLElement\|NSXMLNode\|NSObject
NSXMLNode\|NSObject
NSXMLParser\|NSObject
NSXMLParserDelegate
NSXPCConnection\|NSObject
NSXPCInterface\|NSObject
NSXPCListener\|NSObject
NSXPCListenerDelegate
NSXPCListenerEndpoint\|NSObject
NSXPCProxyCreating
QTCaptureAudioPreviewOutput\|QTCaptureOutput\|NSObject
QTCaptureConnection\|NSObject
QTCaptureDecompressedAudioOutput\|QTCaptureOutput\|NSObject
QTCaptureDecompressedVideoOutput\|QTCaptureOutput\|NSObject
QTCaptureDevice\|NSObject
QTCaptureDeviceInput\|QTCaptureInput\|NSObject
QTCaptureFileOutput\|QTCaptureOutput\|NSObject
QTCaptureInput\|NSObject
QTCaptureLayer\|CALayer\|NSObject
QTCaptureMovieFileOutput\|QTCaptureFileOutput\|QTCaptureOutput\|NSObject
QTCaptureOutput\|NSObject
QTCaptureSession\|NSObject
QTCaptureVideoPreviewOutput\|QTCaptureOutput\|NSObject
QTCaptureView\|NSView\|NSResponder\|NSObject
QTCompressionOptions\|NSObject
QTDataReference\|NSObject
QTExportOptions\|NSObject
QTExportSession\|NSObject
QTExportSessionDelegate
QTFormatDescription\|NSObject
QTMedia\|NSObject
QTMetadataItem\|NSObject
QTMovie\|NSObject
QTMovieLayer\|CALayer\|NSObject
QTMovieModernizer\|NSObject
QTMovieView\|NSView\|NSResponder\|NSObject
QTSampleBuffer\|NSObject
QTTrack\|NSObject
ScreenSaverDefaults\|NSUserDefaults\|NSObject
ScreenSaverView\|NSView\|NSResponder\|NSObject
UIAcceleration
UIAccelerometer
UIAccelerometerDelegate
UIAccessibilityCustomAction
UIAccessibilityElement
UIAccessibilityIdentification
UIAccessibilityReadingContent
UIActionSheet
UIActionSheetDelegate
UIActivity
UIActivityIndicatorView
UIActivityItemProvider
UIActivityItemSource
UIActivityViewController
UIAdaptivePresentationControllerDelegate
UIAlertAction
UIAlertController
UIAlertView
UIAlertViewDelegate
UIAppearance
UIAppearanceContainer
UIApplication
UIApplicationDelegate
UIAttachmentBehavior
UIBarButtonItem
UIBarItem
UIBarPositioning
UIBarPositioningDelegate
UIBezierPath
UIBlurEffect
UIButton
UICollectionReusableView
UICollectionView
UICollectionViewCell
UICollectionViewController
UICollectionViewDataSource
UICollectionViewDelegate
UICollectionViewDelegateFlowLayout
UICollectionViewFlowLayout
UICollectionViewFlowLayoutInvalidationContext
UICollectionViewLayout
UICollectionViewLayoutAttributes
UICollectionViewLayoutInvalidationContext
UICollectionViewTransitionLayout
UICollectionViewUpdateItem
UICollisionBehavior
UICollisionBehaviorDelegate
UIColor
UIContentContainer
UIControl
UICoordinateSpace
UIDataSourceModelAssociation
UIDatePicker
UIDevice
UIDictationPhrase
UIDocument
UIDocumentInteractionController
UIDocumentInteractionControllerDelegate
UIDocumentMenuDelegate
UIDocumentMenuViewController
UIDocumentPickerDelegate
UIDocumentPickerExtensionViewController
UIDocumentPickerViewController
UIDynamicAnimator
UIDynamicAnimatorDelegate
UIDynamicBehavior
UIDynamicItem
UIDynamicItemBehavior
UIEvent
UIFont
UIFontDescriptor
UIGestureRecognizer
UIGestureRecognizerDelegate
UIGravityBehavior
UIGuidedAccessRestrictionDelegate
UIImage
UIImageAsset
UIImagePickerController
UIImagePickerControllerDelegate
UIImageView
UIInputView
UIInputViewAudioFeedback
UIInputViewController
UIInterpolatingMotionEffect
UIKeyCommand
UIKeyInput
UILabel
UILayoutSupport
UILexicon
UILexiconEntry
UILocalNotification
UILocalizedIndexedCollation
UILongPressGestureRecognizer
UIManagedDocument
UIMarkupTextPrintFormatter
UIMenuController
UIMenuItem
UIMotionEffect
UIMotionEffectGroup
UIMutableUserNotificationAction
UIMutableUserNotificationCategory
UINavigationBar
UINavigationBarDelegate
UINavigationController
UINavigationControllerDelegate
UINavigationItem
UINib
UIObjectRestoration
UIPageControl
UIPageViewController
UIPageViewControllerDataSource
UIPageViewControllerDelegate
UIPanGestureRecognizer
UIPasteboard
UIPercentDrivenInteractiveTransition
UIPickerView
UIPickerViewAccessibilityDelegate
UIPickerViewDataSource
UIPickerViewDelegate
UIPinchGestureRecognizer
UIPopoverBackgroundView
UIPopoverBackgroundViewMethods
UIPopoverController
UIPopoverControllerDelegate
UIPopoverPresentationController
UIPopoverPresentationControllerDelegate
UIPresentationController
UIPrintFormatter
UIPrintInfo
UIPrintInteractionController
UIPrintInteractionControllerDelegate
UIPrintPageRenderer
UIPrintPaper
UIPrinter
UIPrinterPickerController
UIPrinterPickerControllerDelegate
UIProgressView
UIPushBehavior
UIReferenceLibraryViewController
UIRefreshControl
UIResponder
UIRotationGestureRecognizer
UIScreen
UIScreenEdgePanGestureRecognizer
UIScreenMode
UIScrollView
UIScrollViewAccessibilityDelegate
UIScrollViewDelegate
UISearchBar
UISearchBarDelegate
UISearchController
UISearchControllerDelegate
UISearchDisplayController
UISearchDisplayDelegate
UISearchResultsUpdating
UISegmentedControl
UISimpleTextPrintFormatter
UISlider
UISnapBehavior
UISplitViewController
UISplitViewControllerDelegate
UIStateRestoring
UIStepper
UIStoryboard
UIStoryboardPopoverSegue
UIStoryboardSegue
UISwipeGestureRecognizer
UISwitch
UITabBar
UITabBarController
UITabBarControllerDelegate
UITabBarDelegate
UITabBarItem
UITableView
UITableViewCell
UITableViewController
UITableViewDataSource
UITableViewDelegate
UITableViewHeaderFooterView
UITableViewRowAction
UITapGestureRecognizer
UITextChecker
UITextDocumentProxy
UITextField
UITextFieldDelegate
UITextInput
UITextInputDelegate
UITextInputMode
UITextInputStringTokenizer
UITextInputTokenizer
UITextInputTraits
UITextPosition
UITextRange
UITextSelecting
UITextSelectionRect
UITextView
UITextViewDelegate
UIToolbar
UIToolbarDelegate
UITouch
UITraitCollection
UITraitEnvironment
UIUserNotificationAction
UIUserNotificationCategory
UIUserNotificationSettings
UIVibrancyEffect
UIVideoEditorController
UIVideoEditorControllerDelegate
UIView
UIViewController
UIViewControllerAnimatedTransitioning
UIViewControllerContextTransitioning
UIViewControllerInteractiveTransitioning
UIViewControllerRestoration
UIViewControllerTransitionCoordinator
UIViewControllerTransitionCoordinatorContext
UIViewControllerTransitioningDelegate
UIViewPrintFormatter
UIVisualEffect
UIVisualEffectView
UIWebView
UIWebViewDelegate
UIWindow
WebArchive\|NSObject
WebBackForwardList\|NSObject
WebDataSource\|NSObject
WebDocumentRepresentation
WebDocumentSearching
WebDocumentText
WebDocumentView
WebDownload\|NSURLDownload\|NSObject
WebDownloadDelegate
WebFrame\|NSObject
WebFrameView\|NSView\|NSResponder\|NSObject
WebHistory\|NSObject
WebHistoryItem\|NSObject
WebOpenPanelResultListener\|NSObject
WebPlugInViewFactory
WebPolicyDecisionListener\|NSObject
WebPreferences\|NSObject
WebResource\|NSObject
WebScriptObject\|NSObject
WebUndefined\|NSObject
WebView\|NSView\|NSResponder\|NSObject

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,399 @@
NSAccessibilityActionDescription
NSAccessibilityPostNotification
NSAccessibilityPostNotificationWithUserInfo
NSAccessibilityRaiseBadArgumentException
NSAccessibilityRoleDescription
NSAccessibilityRoleDescriptionForUIElement
NSAccessibilitySetMayContainProtectedContent
NSAccessibilityUnignoredAncestor
NSAccessibilityUnignoredChildren
NSAccessibilityUnignoredChildrenForOnlyChild
NSAccessibilityUnignoredDescendant
NSAllHashTableObjects
NSAllMapTableKeys
NSAllMapTableValues
NSAllocateCollectable
NSAllocateMemoryPages
NSAllocateObject
NSApplicationLoad
NSApplicationMain
NSAvailableWindowDepths
NSBeep
NSBeginAlertSheet
NSBeginCriticalAlertSheet
NSBeginInformationalAlertSheet
NSBestDepth
NSBitsPerPixelFromDepth
NSBitsPerSampleFromDepth
NSClassFromString
NSColorSpaceFromDepth
NSCompareHashTables
NSCompareMapTables
NSContainsRect
NSConvertGlyphsToPackedGlyphs
NSConvertHostDoubleToSwapped
NSConvertHostFloatToSwapped
NSConvertSwappedDoubleToHost
NSConvertSwappedFloatToHost
NSCopyBits
NSCopyHashTableWithZone
NSCopyMapTableWithZone
NSCopyMemoryPages
NSCopyObject
NSCountFrames
NSCountHashTable
NSCountMapTable
NSCountWindows
NSCountWindowsForContext
NSCreateFileContentsPboardType
NSCreateFilenamePboardType
NSCreateHashTable
NSCreateHashTableWithZone
NSCreateMapTable
NSCreateMapTableWithZone
NSCreateZone
NSDeallocateMemoryPages
NSDeallocateObject
NSDecimalAdd
NSDecimalCompact
NSDecimalCompare
NSDecimalCopy
NSDecimalDivide
NSDecimalIsNotANumber
NSDecimalMultiply
NSDecimalMultiplyByPowerOf10
NSDecimalNormalize
NSDecimalPower
NSDecimalRound
NSDecimalString
NSDecimalSubtract
NSDecrementExtraRefCountWasZero
NSDefaultMallocZone
NSDictionaryOfVariableBindings
NSDisableScreenUpdates
NSDivideRect
NSDottedFrameRect
NSDrawBitmap
NSDrawButton
NSDrawColorTiledRects
NSDrawDarkBezel
NSDrawGrayBezel
NSDrawGroove
NSDrawLightBezel
NSDrawNinePartImage
NSDrawThreePartImage
NSDrawTiledRects
NSDrawWhiteBezel
NSDrawWindowBackground
NSEdgeInsetsMake
NSEnableScreenUpdates
NSEndHashTableEnumeration
NSEndMapTableEnumeration
NSEnumerateHashTable
NSEnumerateMapTable
NSEqualPoints
NSEqualRanges
NSEqualRects
NSEqualSizes
NSEraseRect
NSEventMaskFromType
NSExtraRefCount
NSFileTypeForHFSTypeCode
NSFrameAddress
NSFrameRect
NSFrameRectWithWidth
NSFrameRectWithWidthUsingOperation
NSFreeHashTable
NSFreeMapTable
NSFullUserName
NSGetAlertPanel
NSGetCriticalAlertPanel
NSGetFileType
NSGetFileTypes
NSGetInformationalAlertPanel
NSGetSizeAndAlignment
NSGetUncaughtExceptionHandler
NSGetWindowServerMemory
NSHFSTypeCodeFromFileType
NSHFSTypeOfFile
NSHashGet
NSHashInsert
NSHashInsertIfAbsent
NSHashInsertKnownAbsent
NSHashRemove
NSHeight
NSHighlightRect
NSHomeDirectory
NSHomeDirectoryForUser
NSHostByteOrder
NSIncrementExtraRefCount
NSInsetRect
NSIntegralRect
NSIntegralRectWithOptions
NSInterfaceStyleForKey
NSIntersectionRange
NSIntersectionRect
NSIntersectsRect
NSIsControllerMarker
NSIsEmptyRect
NSIsFreedObject
NSLocationInRange
NSLog
NSLogPageSize
NSLogv
NSMakeCollectable
NSMakePoint
NSMakeRange
NSMakeRect
NSMakeSize
NSMapGet
NSMapInsert
NSMapInsertIfAbsent
NSMapInsertKnownAbsent
NSMapMember
NSMapRemove
NSMaxRange
NSMaxX
NSMaxY
NSMidX
NSMidY
NSMinX
NSMinY
NSMouseInRect
NSNextHashEnumeratorItem
NSNextMapEnumeratorPair
NSNumberOfColorComponents
NSObjectFromCoder
NSOffsetRect
NSOpenStepRootDirectory
NSPageSize
NSPerformService
NSPlanarFromDepth
NSPointFromCGPoint
NSPointFromString
NSPointInRect
NSPointToCGPoint
NSProtocolFromString
NSRangeFromString
NSReadPixel
NSRealMemoryAvailable
NSReallocateCollectable
NSRecordAllocationEvent
NSRectClip
NSRectClipList
NSRectFill
NSRectFillList
NSRectFillListUsingOperation
NSRectFillListWithColors
NSRectFillListWithColorsUsingOperation
NSRectFillListWithGrays
NSRectFillUsingOperation
NSRectFromCGRect
NSRectFromString
NSRectToCGRect
NSRecycleZone
NSRegisterServicesProvider
NSReleaseAlertPanel
NSResetHashTable
NSResetMapTable
NSReturnAddress
NSRoundDownToMultipleOfPageSize
NSRoundUpToMultipleOfPageSize
NSRunAlertPanel
NSRunAlertPanelRelativeToWindow
NSRunCriticalAlertPanel
NSRunCriticalAlertPanelRelativeToWindow
NSRunInformationalAlertPanel
NSRunInformationalAlertPanelRelativeToWindow
NSSearchPathForDirectoriesInDomains
NSSelectorFromString
NSSetFocusRingStyle
NSSetShowsServicesMenuItem
NSSetUncaughtExceptionHandler
NSSetZoneName
NSShouldRetainWithZone
NSShowAnimationEffect
NSShowsServicesMenuItem
NSSizeFromCGSize
NSSizeFromString
NSSizeToCGSize
NSStringFromCGAffineTransform
NSStringFromCGPoint
NSStringFromCGRect
NSStringFromCGSize
NSStringFromCGVector
NSStringFromClass
NSStringFromHashTable
NSStringFromMapTable
NSStringFromPoint
NSStringFromProtocol
NSStringFromRange
NSStringFromRect
NSStringFromSelector
NSStringFromSize
NSStringFromUIEdgeInsets
NSStringFromUIOffset
NSSwapBigDoubleToHost
NSSwapBigFloatToHost
NSSwapBigIntToHost
NSSwapBigLongLongToHost
NSSwapBigLongToHost
NSSwapBigShortToHost
NSSwapDouble
NSSwapFloat
NSSwapHostDoubleToBig
NSSwapHostDoubleToLittle
NSSwapHostFloatToBig
NSSwapHostFloatToLittle
NSSwapHostIntToBig
NSSwapHostIntToLittle
NSSwapHostLongLongToBig
NSSwapHostLongLongToLittle
NSSwapHostLongToBig
NSSwapHostLongToLittle
NSSwapHostShortToBig
NSSwapHostShortToLittle
NSSwapInt
NSSwapLittleDoubleToHost
NSSwapLittleFloatToHost
NSSwapLittleIntToHost
NSSwapLittleLongLongToHost
NSSwapLittleLongToHost
NSSwapLittleShortToHost
NSSwapLong
NSSwapLongLong
NSSwapShort
NSTemporaryDirectory
NSTextAlignmentFromCTTextAlignment
NSTextAlignmentToCTTextAlignment
NSUnionRange
NSUnionRect
NSUnregisterServicesProvider
NSUpdateDynamicServices
NSUserName
NSValue
NSWidth
NSWindowList
NSWindowListForContext
NSZoneCalloc
NSZoneFree
NSZoneFromPointer
NSZoneMalloc
NSZoneName
NSZoneRealloc
NS_AVAILABLE
NS_AVAILABLE_IOS
NS_AVAILABLE_MAC
NS_CALENDAR_DEPRECATED
NS_DEPRECATED
NS_DEPRECATED_IOS
NS_DEPRECATED_MAC
UIAccessibilityConvertFrameToScreenCoordinates
UIAccessibilityConvertPathToScreenCoordinates
UIAccessibilityDarkerSystemColorsEnabled
UIAccessibilityIsBoldTextEnabled
UIAccessibilityIsClosedCaptioningEnabled
UIAccessibilityIsGrayscaleEnabled
UIAccessibilityIsGuidedAccessEnabled
UIAccessibilityIsInvertColorsEnabled
UIAccessibilityIsMonoAudioEnabled
UIAccessibilityIsReduceMotionEnabled
UIAccessibilityIsReduceTransparencyEnabled
UIAccessibilityIsSpeakScreenEnabled
UIAccessibilityIsSpeakSelectionEnabled
UIAccessibilityIsSwitchControlRunning
UIAccessibilityIsVoiceOverRunning
UIAccessibilityPostNotification
UIAccessibilityRegisterGestureConflictWithZoom
UIAccessibilityRequestGuidedAccessSession
UIAccessibilityZoomFocusChanged
UIApplicationMain
UIEdgeInsetsEqualToEdgeInsets
UIEdgeInsetsFromString
UIEdgeInsetsInsetRect
UIEdgeInsetsMake
UIGraphicsAddPDFContextDestinationAtPoint
UIGraphicsBeginImageContext
UIGraphicsBeginImageContextWithOptions
UIGraphicsBeginPDFContextToData
UIGraphicsBeginPDFContextToFile
UIGraphicsBeginPDFPage
UIGraphicsBeginPDFPageWithInfo
UIGraphicsEndImageContext
UIGraphicsEndPDFContext
UIGraphicsGetCurrentContext
UIGraphicsGetImageFromCurrentImageContext
UIGraphicsGetPDFContextBounds
UIGraphicsPopContext
UIGraphicsPushContext
UIGraphicsSetPDFContextDestinationForRect
UIGraphicsSetPDFContextURLForRect
UIGuidedAccessRestrictionStateForIdentifier
UIImageJPEGRepresentation
UIImagePNGRepresentation
UIImageWriteToSavedPhotosAlbum
UIOffsetEqualToOffset
UIOffsetFromString
UIOffsetMake
UIRectClip
UIRectFill
UIRectFillUsingBlendMode
UIRectFrame
UIRectFrameUsingBlendMode
UISaveVideoAtPathToSavedPhotosAlbum
UIVideoAtPathIsCompatibleWithSavedPhotosAlbum
NSAssert
NSAssert1
NSAssert2
NSAssert3
NSAssert4
NSAssert5
NSCAssert
NSCAssert1
NSCAssert2
NSCAssert3
NSCAssert4
NSCAssert5
NSCParameterAssert
NSDecimalMaxSize
NSDictionaryOfVariableBindings
NSGlyphInfoAtIndex
NSLocalizedString
NSLocalizedStringFromTable
NSLocalizedStringFromTableInBundle
NSLocalizedStringWithDefaultValue
NSParameterAssert
NSStackViewSpacingUseDefault
NSURLResponseUnknownLength
NS_AVAILABLE
NS_AVAILABLE_IOS
NS_AVAILABLE_IPHONE
NS_AVAILABLE_MAC
NS_CALENDAR_DEPRECATED
NS_CALENDAR_DEPRECATED_MAC
NS_CALENDAR_ENUM_DEPRECATED
NS_CLASS_AVAILABLE
NS_CLASS_AVAILABLE_IOS
NS_CLASS_AVAILABLE_MAC
NS_CLASS_DEPRECATED
NS_CLASS_DEPRECATED_IOS
NS_CLASS_DEPRECATED_MAC
NS_DEPRECATED
NS_DEPRECATED_IOS
NS_DEPRECATED_IPHONE
NS_DEPRECATED_MAC
NS_ENUM
NS_ENUM_AVAILABLE
NS_ENUM_AVAILABLE_IOS
NS_ENUM_AVAILABLE_MAC
NS_ENUM_DEPRECATED
NS_ENUM_DEPRECATED_IOS
NS_ENUM_DEPRECATED_MAC
NS_OPTIONS
NS_VALUERETURN
UIDeviceOrientationIsLandscape
UIDeviceOrientationIsPortrait
UIDeviceOrientationIsValidInterfaceOrientation
UIInterfaceOrientationIsLandscape
UIInterfaceOrientationIsPortrait
UI_USER_INTERFACE_IDIOM

View File

@ -0,0 +1,298 @@
NSAccessibilityAnnouncementRequestedNotification
NSAccessibilityApplicationActivatedNotification
NSAccessibilityApplicationDeactivatedNotification
NSAccessibilityApplicationHiddenNotification
NSAccessibilityApplicationShownNotification
NSAccessibilityCreatedNotification
NSAccessibilityDrawerCreatedNotification
NSAccessibilityFocusedUIElementChangedNotification
NSAccessibilityFocusedWindowChangedNotification
NSAccessibilityHelpTagCreatedNotification
NSAccessibilityLayoutChangedNotification
NSAccessibilityMainWindowChangedNotification
NSAccessibilityMovedNotification
NSAccessibilityResizedNotification
NSAccessibilityRowCollapsedNotification
NSAccessibilityRowCountChangedNotification
NSAccessibilityRowExpandedNotification
NSAccessibilitySelectedCellsChangedNotification
NSAccessibilitySelectedChildrenChangedNotification
NSAccessibilitySelectedChildrenMovedNotification
NSAccessibilitySelectedColumnsChangedNotification
NSAccessibilitySelectedRowsChangedNotification
NSAccessibilitySelectedTextChangedNotification
NSAccessibilitySheetCreatedNotification
NSAccessibilityTitleChangedNotification
NSAccessibilityUIElementDestroyedNotification
NSAccessibilityUnitsChangedNotification
NSAccessibilityValueChangedNotification
NSAccessibilityWindowCreatedNotification
NSAccessibilityWindowDeminiaturizedNotification
NSAccessibilityWindowMiniaturizedNotification
NSAccessibilityWindowMovedNotification
NSAccessibilityWindowResizedNotification
NSAnimationProgressMarkNotification
NSAntialiasThresholdChangedNotification
NSAppleEventManagerWillProcessFirstEventNotification
NSApplicationDidBecomeActiveNotification
NSApplicationDidChangeOcclusionStateNotification
NSApplicationDidChangeScreenParametersNotification
NSApplicationDidFinishLaunchingNotification
NSApplicationDidFinishRestoringWindowsNotification
NSApplicationDidHideNotification
NSApplicationDidResignActiveNotification
NSApplicationDidUnhideNotification
NSApplicationDidUpdateNotification
NSApplicationLaunchRemoteNotification
NSApplicationLaunchUserNotification
NSApplicationWillBecomeActiveNotification
NSApplicationWillFinishLaunchingNotification
NSApplicationWillHideNotification
NSApplicationWillResignActiveNotification
NSApplicationWillTerminateNotification
NSApplicationWillUnhideNotification
NSApplicationWillUpdateNotification
NSBrowserColumnConfigurationDidChangeNotification
NSBundleDidLoadNotification
NSCalendarDayChangedNotification
NSClassDescriptionNeededForClassNotification
NSColorListDidChangeNotification
NSColorPanelColorDidChangeNotification
NSComboBoxSelectionDidChangeNotification
NSComboBoxSelectionIsChangingNotification
NSComboBoxWillDismissNotification
NSComboBoxWillPopUpNotification
NSConnectionDidDieNotification
NSConnectionDidInitializeNotification
NSContextHelpModeDidActivateNotification
NSContextHelpModeDidDeactivateNotification
NSControlTextDidBeginEditingNotification
NSControlTextDidChangeNotification
NSControlTextDidEndEditingNotification
NSControlTintDidChangeNotification
NSCurrentLocaleDidChangeNotification
NSDidBecomeSingleThreadedNotification
NSDistributedNotification
NSDrawerDidCloseNotification
NSDrawerDidOpenNotification
NSDrawerWillCloseNotification
NSDrawerWillOpenNotification
NSFileHandleConnectionAcceptedNotification
NSFileHandleDataAvailableNotification
NSFileHandleNotification
NSFileHandleReadCompletionNotification
NSFileHandleReadToEndOfFileCompletionNotification
NSFontCollectionDidChangeNotification
NSFontSetChangedNotification
NSHTTPCookieManagerAcceptPolicyChangedNotification
NSHTTPCookieManagerCookiesChangedNotification
NSImageRepRegistryDidChangeNotification
NSKeyValueChangeNotification
NSLocalNotification
NSManagedObjectContextDidSaveNotification
NSManagedObjectContextObjectsDidChangeNotification
NSManagedObjectContextWillSaveNotification
NSMenuDidAddItemNotification
NSMenuDidBeginTrackingNotification
NSMenuDidChangeItemNotification
NSMenuDidEndTrackingNotification
NSMenuDidRemoveItemNotification
NSMenuDidSendActionNotification
NSMenuWillSendActionNotification
NSMetadataQueryDidFinishGatheringNotification
NSMetadataQueryDidStartGatheringNotification
NSMetadataQueryDidUpdateNotification
NSMetadataQueryGatheringProgressNotification
NSNotification
NSOutlineViewColumnDidMoveNotification
NSOutlineViewColumnDidResizeNotification
NSOutlineViewItemDidCollapseNotification
NSOutlineViewItemDidExpandNotification
NSOutlineViewItemWillCollapseNotification
NSOutlineViewItemWillExpandNotification
NSOutlineViewSelectionDidChangeNotification
NSOutlineViewSelectionIsChangingNotification
NSPersistentStoreCoordinatorStoresDidChangeNotification
NSPersistentStoreCoordinatorStoresWillChangeNotification
NSPersistentStoreCoordinatorWillRemoveStoreNotification
NSPersistentStoreDidImportUbiquitousContentChangesNotification
NSPopUpButtonCellWillPopUpNotification
NSPopUpButtonWillPopUpNotification
NSPopoverDidCloseNotification
NSPopoverDidShowNotification
NSPopoverWillCloseNotification
NSPopoverWillShowNotification
NSPortDidBecomeInvalidNotification
NSPreferencePaneCancelUnselectNotification
NSPreferencePaneDoUnselectNotification
NSPreferredScrollerStyleDidChangeNotification
NSRuleEditorRowsDidChangeNotification
NSScreenColorSpaceDidChangeNotification
NSScrollViewDidEndLiveMagnifyNotification
NSScrollViewDidEndLiveScrollNotification
NSScrollViewDidLiveScrollNotification
NSScrollViewWillStartLiveMagnifyNotification
NSScrollViewWillStartLiveScrollNotification
NSSpellCheckerDidChangeAutomaticDashSubstitutionNotification
NSSpellCheckerDidChangeAutomaticQuoteSubstitutionNotification
NSSpellCheckerDidChangeAutomaticSpellingCorrectionNotification
NSSpellCheckerDidChangeAutomaticTextReplacementNotification
NSSplitViewDidResizeSubviewsNotification
NSSplitViewWillResizeSubviewsNotification
NSSystemClockDidChangeNotification
NSSystemColorsDidChangeNotification
NSSystemTimeZoneDidChangeNotification
NSTableViewColumnDidMoveNotification
NSTableViewColumnDidResizeNotification
NSTableViewSelectionDidChangeNotification
NSTableViewSelectionIsChangingNotification
NSTaskDidTerminateNotification
NSTextAlternativesSelectedAlternativeStringNotification
NSTextDidBeginEditingNotification
NSTextDidChangeNotification
NSTextDidEndEditingNotification
NSTextInputContextKeyboardSelectionDidChangeNotification
NSTextStorageDidProcessEditingNotification
NSTextStorageWillProcessEditingNotification
NSTextViewDidChangeSelectionNotification
NSTextViewDidChangeTypingAttributesNotification
NSTextViewWillChangeNotifyingTextViewNotification
NSThreadWillExitNotification
NSToolbarDidRemoveItemNotification
NSToolbarWillAddItemNotification
NSURLCredentialStorageChangedNotification
NSUbiquitousKeyValueStoreDidChangeExternallyNotification
NSUbiquityIdentityDidChangeNotification
NSUndoManagerCheckpointNotification
NSUndoManagerDidCloseUndoGroupNotification
NSUndoManagerDidOpenUndoGroupNotification
NSUndoManagerDidRedoChangeNotification
NSUndoManagerDidUndoChangeNotification
NSUndoManagerWillCloseUndoGroupNotification
NSUndoManagerWillRedoChangeNotification
NSUndoManagerWillUndoChangeNotification
NSUserDefaultsDidChangeNotification
NSUserNotification
NSViewBoundsDidChangeNotification
NSViewDidUpdateTrackingAreasNotification
NSViewFocusDidChangeNotification
NSViewFrameDidChangeNotification
NSViewGlobalFrameDidChangeNotification
NSWillBecomeMultiThreadedNotification
NSWindowDidBecomeKeyNotification
NSWindowDidBecomeMainNotification
NSWindowDidChangeBackingPropertiesNotification
NSWindowDidChangeOcclusionStateNotification
NSWindowDidChangeScreenNotification
NSWindowDidChangeScreenProfileNotification
NSWindowDidDeminiaturizeNotification
NSWindowDidEndLiveResizeNotification
NSWindowDidEndSheetNotification
NSWindowDidEnterFullScreenNotification
NSWindowDidEnterVersionBrowserNotification
NSWindowDidExitFullScreenNotification
NSWindowDidExitVersionBrowserNotification
NSWindowDidExposeNotification
NSWindowDidMiniaturizeNotification
NSWindowDidMoveNotification
NSWindowDidResignKeyNotification
NSWindowDidResignMainNotification
NSWindowDidResizeNotification
NSWindowDidUpdateNotification
NSWindowWillBeginSheetNotification
NSWindowWillCloseNotification
NSWindowWillEnterFullScreenNotification
NSWindowWillEnterVersionBrowserNotification
NSWindowWillExitFullScreenNotification
NSWindowWillExitVersionBrowserNotification
NSWindowWillMiniaturizeNotification
NSWindowWillMoveNotification
NSWindowWillStartLiveResizeNotification
NSWorkspaceActiveSpaceDidChangeNotification
NSWorkspaceDidActivateApplicationNotification
NSWorkspaceDidChangeFileLabelsNotification
NSWorkspaceDidDeactivateApplicationNotification
NSWorkspaceDidHideApplicationNotification
NSWorkspaceDidLaunchApplicationNotification
NSWorkspaceDidMountNotification
NSWorkspaceDidPerformFileOperationNotification
NSWorkspaceDidRenameVolumeNotification
NSWorkspaceDidTerminateApplicationNotification
NSWorkspaceDidUnhideApplicationNotification
NSWorkspaceDidUnmountNotification
NSWorkspaceDidWakeNotification
NSWorkspaceScreensDidSleepNotification
NSWorkspaceScreensDidWakeNotification
NSWorkspaceSessionDidBecomeActiveNotification
NSWorkspaceSessionDidResignActiveNotification
NSWorkspaceWillLaunchApplicationNotification
NSWorkspaceWillPowerOffNotification
NSWorkspaceWillSleepNotification
NSWorkspaceWillUnmountNotification
UIAccessibilityAnnouncementDidFinishNotification
UIAccessibilityBoldTextStatusDidChangeNotification
UIAccessibilityClosedCaptioningStatusDidChangeNotification
UIAccessibilityDarkerSystemColorsStatusDidChangeNotification
UIAccessibilityGrayscaleStatusDidChangeNotification
UIAccessibilityGuidedAccessStatusDidChangeNotification
UIAccessibilityInvertColorsStatusDidChangeNotification
UIAccessibilityMonoAudioStatusDidChangeNotification
UIAccessibilityNotification
UIAccessibilityReduceMotionStatusDidChangeNotification
UIAccessibilityReduceTransparencyStatusDidChangeNotification
UIAccessibilitySpeakScreenStatusDidChangeNotification
UIAccessibilitySpeakSelectionStatusDidChangeNotification
UIAccessibilitySwitchControlStatusDidChangeNotification
UIApplicationBackgroundRefreshStatusDidChangeNotification
UIApplicationDidBecomeActiveNotification
UIApplicationDidChangeStatusBarFrameNotification
UIApplicationDidChangeStatusBarOrientationNotification
UIApplicationDidEnterBackgroundNotification
UIApplicationDidFinishLaunchingNotification
UIApplicationDidReceiveMemoryWarningNotification
UIApplicationLaunchOptionsLocalNotification
UIApplicationLaunchOptionsRemoteNotification
UIApplicationSignificantTimeChangeNotification
UIApplicationUserDidTakeScreenshotNotification
UIApplicationWillChangeStatusBarFrameNotification
UIApplicationWillChangeStatusBarOrientationNotification
UIApplicationWillEnterForegroundNotification
UIApplicationWillResignActiveNotification
UIApplicationWillTerminateNotification
UIContentSizeCategoryDidChangeNotification
UIDeviceBatteryLevelDidChangeNotification
UIDeviceBatteryStateDidChangeNotification
UIDeviceOrientationDidChangeNotification
UIDeviceProximityStateDidChangeNotification
UIDocumentStateChangedNotification
UIKeyboardDidChangeFrameNotification
UIKeyboardDidHideNotification
UIKeyboardDidShowNotification
UIKeyboardWillChangeFrameNotification
UIKeyboardWillHideNotification
UIKeyboardWillShowNotification
UILocalNotification
UIMenuControllerDidHideMenuNotification
UIMenuControllerDidShowMenuNotification
UIMenuControllerMenuFrameDidChangeNotification
UIMenuControllerWillHideMenuNotification
UIMenuControllerWillShowMenuNotification
UIPasteboardChangedNotification
UIPasteboardRemovedNotification
UIScreenBrightnessDidChangeNotification
UIScreenDidConnectNotification
UIScreenDidDisconnectNotification
UIScreenModeDidChangeNotification
UITableViewSelectionDidChangeNotification
UITextFieldTextDidBeginEditingNotification
UITextFieldTextDidChangeNotification
UITextFieldTextDidEndEditingNotification
UITextInputCurrentInputModeDidChangeNotification
UITextViewTextDidBeginEditingNotification
UITextViewTextDidChangeNotification
UITextViewTextDidEndEditingNotification
UIViewControllerShowDetailTargetDidChangeNotification
UIWindowDidBecomeHiddenNotification
UIWindowDidBecomeKeyNotification
UIWindowDidBecomeVisibleNotification
UIWindowDidResignKeyNotification

View File

@ -0,0 +1,457 @@
NSAccessibilityPriorityLevel
NSActivityOptions
NSAlertStyle
NSAlignmentOptions
NSAnimationBlockingMode
NSAnimationCurve
NSAnimationEffect
NSAnimationProgress
NSAppleEventManagerSuspensionID
NSApplicationActivationOptions
NSApplicationActivationPolicy
NSApplicationDelegateReply
NSApplicationOcclusionState
NSApplicationPresentationOptions
NSApplicationPrintReply
NSApplicationTerminateReply
NSAttributeType
NSAttributedStringEnumerationOptions
NSBackgroundStyle
NSBackingStoreType
NSBezelStyle
NSBezierPathElement
NSBinarySearchingOptions
NSBitmapFormat
NSBitmapImageFileType
NSBorderType
NSBoxType
NSBrowserColumnResizingType
NSBrowserDropOperation
NSButtonType
NSByteCountFormatterCountStyle
NSByteCountFormatterUnits
NSCalculationError
NSCalendarOptions
NSCalendarUnit
NSCellAttribute
NSCellImagePosition
NSCellStateValue
NSCellType
NSCharacterCollection
NSCollectionViewDropOperation
NSColorPanelMode
NSColorRenderingIntent
NSColorSpaceModel
NSComparisonPredicateModifier
NSComparisonPredicateOptions
NSComparisonResult
NSCompositingOperation
NSCompoundPredicateType
NSControlCharacterAction
NSControlSize
NSControlTint
NSCorrectionIndicatorType
NSCorrectionResponse
NSDataReadingOptions
NSDataSearchOptions
NSDataWritingOptions
NSDateFormatterBehavior
NSDateFormatterStyle
NSDatePickerElementFlags
NSDatePickerMode
NSDatePickerStyle
NSDeleteRule
NSDirectoryEnumerationOptions
NSDocumentChangeType
NSDragOperation
NSDraggingContext
NSDraggingFormation
NSDraggingItemEnumerationOptions
NSDrawerState
NSEntityMappingType
NSEnumerationOptions
NSEventGestureAxis
NSEventMask
NSEventPhase
NSEventSwipeTrackingOptions
NSEventType
NSExpressionType
NSFetchRequestResultType
NSFileCoordinatorReadingOptions
NSFileCoordinatorWritingOptions
NSFileManagerItemReplacementOptions
NSFileVersionAddingOptions
NSFileVersionReplacingOptions
NSFileWrapperReadingOptions
NSFileWrapperWritingOptions
NSFindPanelAction
NSFindPanelSubstringMatchType
NSFocusRingPlacement
NSFocusRingType
NSFontAction
NSFontCollectionVisibility
NSFontFamilyClass
NSFontRenderingMode
NSFontSymbolicTraits
NSFontTraitMask
NSGlyph
NSGlyphInscription
NSGlyphLayoutMode
NSGlyphProperty
NSGradientDrawingOptions
NSGradientType
NSHTTPCookieAcceptPolicy
NSHashEnumerator
NSHashTableOptions
NSImageAlignment
NSImageCacheMode
NSImageFrameStyle
NSImageInterpolation
NSImageLoadStatus
NSImageRepLoadStatus
NSImageScaling
NSInsertionPosition
NSInteger
NSJSONReadingOptions
NSJSONWritingOptions
NSKeyValueChange
NSKeyValueObservingOptions
NSKeyValueSetMutationKind
NSLayoutAttribute
NSLayoutConstraintOrientation
NSLayoutDirection
NSLayoutFormatOptions
NSLayoutPriority
NSLayoutRelation
NSLayoutStatus
NSLevelIndicatorStyle
NSLineBreakMode
NSLineCapStyle
NSLineJoinStyle
NSLineMovementDirection
NSLineSweepDirection
NSLinguisticTaggerOptions
NSLocaleLanguageDirection
NSManagedObjectContextConcurrencyType
NSMapEnumerator
NSMapTableOptions
NSMatchingFlags
NSMatchingOptions
NSMatrixMode
NSMediaLibrary
NSMenuProperties
NSMergePolicyType
NSModalSession
NSMultibyteGlyphPacking
NSNetServiceOptions
NSNetServicesError
NSNotificationCoalescing
NSNotificationSuspensionBehavior
NSNumberFormatterBehavior
NSNumberFormatterPadPosition
NSNumberFormatterRoundingMode
NSNumberFormatterStyle
NSOpenGLContextAuxiliary
NSOpenGLPixelFormatAttribute
NSOpenGLPixelFormatAuxiliary
NSOperationQueuePriority
NSPDFPanelOptions
NSPageControllerTransitionStyle
NSPaperOrientation
NSPasteboardReadingOptions
NSPasteboardWritingOptions
NSPathStyle
NSPersistentStoreRequestType
NSPersistentStoreUbiquitousTransitionType
NSPoint
NSPointerFunctionsOptions
NSPointingDeviceType
NSPopUpArrowPosition
NSPopoverAppearance
NSPopoverBehavior
NSPostingStyle
NSPredicateOperatorType
NSPrintPanelOptions
NSPrintRenderingQuality
NSPrinterTableStatus
NSPrintingOrientation
NSPrintingPageOrder
NSPrintingPaginationMode
NSProgressIndicatorStyle
NSProgressIndicatorThickness
NSProgressIndicatorThreadInfo
NSPropertyListFormat
NSPropertyListMutabilityOptions
NSPropertyListReadOptions
NSPropertyListWriteOptions
NSQTMovieLoopMode
NSRange
NSRect
NSRectEdge
NSRegularExpressionOptions
NSRelativePosition
NSRemoteNotificationType
NSRequestUserAttentionType
NSRoundingMode
NSRuleEditorNestingMode
NSRuleEditorRowType
NSRulerOrientation
NSSaveOperationType
NSSaveOptions
NSScreenAuxiliaryOpaque
NSScrollArrowPosition
NSScrollElasticity
NSScrollViewFindBarPosition
NSScrollerArrow
NSScrollerKnobStyle
NSScrollerPart
NSScrollerStyle
NSSearchPathDirectory
NSSearchPathDomainMask
NSSegmentStyle
NSSegmentSwitchTracking
NSSelectionAffinity
NSSelectionDirection
NSSelectionGranularity
NSSharingContentScope
NSSize
NSSliderType
NSSnapshotEventType
NSSocketNativeHandle
NSSortOptions
NSSpeechBoundary
NSSplitViewDividerStyle
NSStackViewGravity
NSStreamEvent
NSStreamStatus
NSStringCompareOptions
NSStringDrawingOptions
NSStringEncoding
NSStringEncodingConversionOptions
NSStringEnumerationOptions
NSSwappedDouble
NSSwappedFloat
NSTIFFCompression
NSTabState
NSTabViewType
NSTableViewAnimationOptions
NSTableViewColumnAutoresizingStyle
NSTableViewDraggingDestinationFeedbackStyle
NSTableViewDropOperation
NSTableViewGridLineStyle
NSTableViewRowSizeStyle
NSTableViewSelectionHighlightStyle
NSTaskTerminationReason
NSTestComparisonOperation
NSTextAlignment
NSTextBlockDimension
NSTextBlockLayer
NSTextBlockValueType
NSTextBlockVerticalAlignment
NSTextCheckingType
NSTextCheckingTypes
NSTextFieldBezelStyle
NSTextFinderAction
NSTextFinderMatchingType
NSTextLayoutOrientation
NSTextStorageEditActions
NSTextTabType
NSTextTableLayoutAlgorithm
NSTextWritingDirection
NSThreadPrivate
NSTickMarkPosition
NSTimeInterval
NSTimeZoneNameStyle
NSTitlePosition
NSTokenStyle
NSToolTipTag
NSToolbarDisplayMode
NSToolbarSizeMode
NSTouchPhase
NSTrackingAreaOptions
NSTrackingRectTag
NSTypesetterBehavior
NSTypesetterControlCharacterAction
NSTypesetterGlyphInfo
NSUInteger
NSURLBookmarkCreationOptions
NSURLBookmarkFileCreationOptions
NSURLBookmarkResolutionOptions
NSURLCacheStoragePolicy
NSURLCredentialPersistence
NSURLHandleStatus
NSURLRequestCachePolicy
NSURLRequestNetworkServiceType
NSURLSessionAuthChallengeDisposition
NSURLSessionResponseDisposition
NSURLSessionTaskState
NSUnderlineStyle
NSUsableScrollerParts
NSUserInterfaceLayoutDirection
NSUserInterfaceLayoutOrientation
NSUserNotificationActivationType
NSViewLayerContentsPlacement
NSViewLayerContentsRedrawPolicy
NSVolumeEnumerationOptions
NSWhoseSubelementIdentifier
NSWindingRule
NSWindowAnimationBehavior
NSWindowBackingLocation
NSWindowButton
NSWindowCollectionBehavior
NSWindowDepth
NSWindowNumberListOptions
NSWindowOcclusionState
NSWindowOrderingMode
NSWindowSharingType
NSWorkspaceIconCreationOptions
NSWorkspaceLaunchOptions
NSWritingDirection
NSXMLDTDNodeKind
NSXMLDocumentContentKind
NSXMLNodeKind
NSXMLParserError
NSXMLParserExternalEntityResolvingPolicy
NSXPCConnectionOptions
NSZone
UIAccelerationValue
UIAccessibilityNavigationStyle
UIAccessibilityNotifications
UIAccessibilityScrollDirection
UIAccessibilityTraits
UIAccessibilityZoomType
UIActionSheetStyle
UIActivityCategory
UIActivityIndicatorViewStyle
UIAlertActionStyle
UIAlertControllerStyle
UIAlertViewStyle
UIApplicationState
UIAttachmentBehaviorType
UIBackgroundFetchResult
UIBackgroundRefreshStatus
UIBackgroundTaskIdentifier
UIBarButtonItemStyle
UIBarButtonSystemItem
UIBarMetrics
UIBarPosition
UIBarStyle
UIBaselineAdjustment
UIBlurEffectStyle
UIButtonType
UICollectionElementCategory
UICollectionUpdateAction
UICollectionViewScrollDirection
UICollectionViewScrollPosition
UICollisionBehaviorMode
UIControlContentHorizontalAlignment
UIControlContentVerticalAlignment
UIControlEvents
UIControlState
UIDataDetectorTypes
UIDatePickerMode
UIDeviceBatteryState
UIDeviceOrientation
UIDocumentChangeKind
UIDocumentMenuOrder
UIDocumentPickerMode
UIDocumentSaveOperation
UIDocumentState
UIEdgeInsets
UIEventSubtype
UIEventType
UIFontDescriptorClass
UIFontDescriptorSymbolicTraits
UIGestureRecognizerState
UIGuidedAccessRestrictionState
UIImageOrientation
UIImagePickerControllerCameraCaptureMode
UIImagePickerControllerCameraDevice
UIImagePickerControllerCameraFlashMode
UIImagePickerControllerQualityType
UIImagePickerControllerSourceType
UIImageRenderingMode
UIImageResizingMode
UIInputViewStyle
UIInterfaceOrientation
UIInterfaceOrientationMask
UIInterpolatingMotionEffectType
UIKeyModifierFlags
UIKeyboardAppearance
UIKeyboardType
UILayoutConstraintAxis
UILayoutPriority
UILineBreakMode
UIMenuControllerArrowDirection
UIModalPresentationStyle
UIModalTransitionStyle
UINavigationControllerOperation
UIOffset
UIPageViewControllerNavigationDirection
UIPageViewControllerNavigationOrientation
UIPageViewControllerSpineLocation
UIPageViewControllerTransitionStyle
UIPopoverArrowDirection
UIPrintInfoDuplex
UIPrintInfoOrientation
UIPrintInfoOutputType
UIPrinterJobTypes
UIProgressViewStyle
UIPushBehaviorMode
UIRectCorner
UIRectEdge
UIRemoteNotificationType
UIReturnKeyType
UIScreenOverscanCompensation
UIScrollViewIndicatorStyle
UIScrollViewKeyboardDismissMode
UISearchBarIcon
UISearchBarStyle
UISegmentedControlSegment
UISegmentedControlStyle
UISplitViewControllerDisplayMode
UIStatusBarAnimation
UIStatusBarStyle
UISwipeGestureRecognizerDirection
UISystemAnimation
UITabBarItemPositioning
UITabBarSystemItem
UITableViewCellAccessoryType
UITableViewCellEditingStyle
UITableViewCellSelectionStyle
UITableViewCellSeparatorStyle
UITableViewCellStateMask
UITableViewCellStyle
UITableViewRowActionStyle
UITableViewRowAnimation
UITableViewScrollPosition
UITableViewStyle
UITextAlignment
UITextAutocapitalizationType
UITextAutocorrectionType
UITextBorderStyle
UITextDirection
UITextFieldViewMode
UITextGranularity
UITextLayoutDirection
UITextSpellCheckingType
UITextStorageDirection
UITextWritingDirection
UITouchPhase
UIUserInterfaceIdiom
UIUserInterfaceLayoutDirection
UIUserInterfaceSizeClass
UIUserNotificationActionContext
UIUserNotificationActivationMode
UIUserNotificationType
UIViewAnimationCurve
UIViewAnimationOptions
UIViewAnimationTransition
UIViewAutoresizing
UIViewContentMode
UIViewKeyframeAnimationOptions
UIViewTintAdjustmentMode
UIWebPaginationBreakingMode
UIWebPaginationMode
UIWebViewNavigationType
UIWindowLevel

View File

@ -0,0 +1,2 @@
These are the files I used to generate cocoa_indexes and cocoa_keywords.vim
You can delete them if you want; I've left them here in case you're curious.

View File

@ -0,0 +1,94 @@
#!/usr/bin/python
'''Builds Vim syntax file for Cocoa keywords.'''
import sys, datetime
import cocoa_definitions
def usage():
print 'usage: build_syntaxfile.py [outputfile]'
return -1
def generate_syntax_file():
'''Returns a list of lines for a Vim syntax file of Cocoa keywords.'''
dir = './cocoa_indexes/'
cocoa_definitions.extract_files_to(dir)
# Normal classes & protocols need to be differentiated in syntax, so
# we need to generate them again.
headers = ' '.join(cocoa_definitions.default_headers())
output = \
['" Description: Syntax highlighting for the cocoa.vim plugin.',
'" Adds highlighting for Cocoa keywords (classes, types, etc.).',
'" Last Generated: ' + datetime.date.today().strftime('%B %d, %Y'),
'']
output += ['" Cocoa Functions',
'syn keyword cocoaFunction containedin=objcMessage '
+ join_lines(read_file(dir + 'functions.txt')),
'',
'" Cocoa Classes',
'syn keyword cocoaClass containedin=objcMessage '
+ join_lines(get_classes(headers)),
'',
'" Cocoa Protocol Classes',
'syn keyword cocoaProtocol containedin=objcProtocol '
+ join_lines(get_protocol_classes(headers)),
'',
'" Cocoa Types',
'syn keyword cocoaType containedin=objcMessage CGFloat '
+ join_lines(read_file(dir + 'types.txt')),
'',
'" Cocoa Constants',
'syn keyword cocoaConstant containedin=objcMessage '
+ join_lines(read_file(dir + 'constants.txt')),
'',
'" Cocoa Notifications',
'syn keyword cocoaNotification containedin=objcMessage '
+ join_lines(read_file(dir + 'notifications.txt')),
'']
output += ['hi link cocoaFunction Keyword',
'hi link cocoaClass Special',
'hi link cocoaProtocol cocoaClass',
'hi link cocoaType Type',
'hi link cocoaConstant Constant',
'hi link cocoaNotification Constant']
return output
def read_file(fname):
'''Returns the lines as a string for the given filename.'''
f = open(fname, 'r')
lines = f.read()
f.close()
return lines
def join_lines(lines):
'''Returns string of lines with newlines converted to spaces.'''
if type(lines).__name__ == 'str':
return lines.replace('\n', ' ')
else:
line = ([line[:-1] if line[-1] == '\n' else line for line in lines])
return ' '.join(line)
def get_classes(header_files):
'''Returns @interface classes.'''
return cocoa_definitions.match_output("grep -ho '@interface \(NS\|UI\)[A-Za-z]*' "
+ header_files, '(NS|UI)\w+', 0)
def get_protocol_classes(header_files):
'''Returns @protocol classes.'''
return cocoa_definitions.match_output("grep -ho '@protocol \(NS\|UI\)[A-Za-z]*' "
+ header_files, '(NS|UI)\w+', 0)
def output_file(fname=None):
'''Writes syntax entries to file or prints them if no file is given.'''
if fname:
cocoa_definitions.write_file(fname, generate_syntax_file())
else:
print "\n".join(generate_syntax_file())
if __name__ == '__main__':
if '-h' in sys.argv or '--help' in sys.argv:
sys.exit(usage())
else:
output_file(sys.argv[1] if len(sys.argv) > 1 else None)

View File

@ -0,0 +1,64 @@
#!/usr/bin/python
'''
Creates text file of Cocoa superclasses in given filename or in
./cocoa_indexes/classes.txt by default.
'''
import os, re
from cocoa_definitions import write_file, find
from commands import getoutput
# We need find_headers() to return a dictionary instead of a list
def find_headers(root_folder, frameworks):
'''Returns a dictionary of the headers for each given framework.'''
headers_and_frameworks = {}
folder = root_folder + '/System/Library/Frameworks/'
for framework in frameworks:
bundle = folder + framework + '.framework'
if os.path.isdir(bundle):
headers_and_frameworks[framework] = ' '.join(find(bundle, '.h'))
return headers_and_frameworks
def get_classes(header_files_and_frameworks):
'''Returns list of Cocoa Protocols classes & their framework.'''
classes = {}
for framework, files in header_files_and_frameworks:
for line in getoutput(r"grep -ho '@\(interface\|protocol\) [A-Z]\w\+' "
+ files).split("\n"):
cocoa_class = re.search(r'[A-Z]\w+', line)
if cocoa_class and not classes.has_key(cocoa_class.group(0)):
classes[cocoa_class.group(0)] = framework
classes = classes.items()
classes.sort()
return classes
def get_superclasses(classes_and_frameworks):
'''
Given a list of Cocoa classes & their frameworks, returns a list of their
superclasses in the form: "class\|superclass\|superclass\|...".
'''
args = ''
for classname, framework in classes_and_frameworks:
args += classname + ' ' + framework + ' '
return getoutput('./superclasses ' + args).split("\n")
def output_file(fname=None):
'''Output text file of Cocoa classes to given filename.'''
if fname is None:
fname = './cocoa_indexes/classes.txt'
if not os.path.isdir(os.path.dirname(fname)):
os.mkdir(os.path.dirname(fname))
cocoa_frameworks = ('Foundation', 'AppKit', 'AddressBook', 'CoreData',
'PreferencePanes', 'QTKit', 'ScreenSaver',
'SyncServices', 'WebKit')
iphone_frameworks = ('UIKit', 'GameKit')
iphone_sdk_path = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk'
headers_and_frameworks = find_headers('', cocoa_frameworks).items() + \
find_headers(iphone_sdk_path, iphone_frameworks).items()
superclasses = get_superclasses(get_classes(headers_and_frameworks))
write_file(fname, superclasses)
if __name__ == '__main__':
from sys import argv
output_file(argv[1] if len(argv) > 1 else None)

View File

@ -0,0 +1,100 @@
#!/usr/bin/python
'''Creates a folder containing text files of Cocoa keywords.'''
import os, commands, re
from sys import argv
def find(searchpath, ext):
'''Mimics the "find searchpath -name *.ext" unix command.'''
results = []
for path, dirs, files in os.walk(searchpath):
for filename in files:
if filename.endswith(ext):
results.append(os.path.join(path, filename))
return results
def find_headers(root_folder, frameworks):
'''Returns list of the header files for the given frameworks.'''
headers = []
folder = root_folder + '/System/Library/Frameworks/'
for framework in frameworks:
headers.extend(find(folder + framework + '.framework', '.h'))
return headers
def default_headers():
'''Headers for common Cocoa frameworks.'''
cocoa_frameworks = ('Foundation', 'CoreFoundation', 'AppKit',
'AddressBook', 'CoreData', 'PreferencePanes', 'QTKit',
'ScreenSaver', 'SyncServices', 'WebKit')
iphone_frameworks = ('UIKit', 'GameKit')
iphone_sdk_path = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk'
return find_headers('', cocoa_frameworks) + \
find_headers(iphone_sdk_path, iphone_frameworks)
def match_output(command, regex, group_num):
'''
Returns an ordered list of all matches of the supplied regex for the
output of the given command.
'''
results = []
for line in commands.getoutput(command).split("\n"):
match = re.search(regex, line)
if match and not match.group(group_num) in results:
results.append(match.group(group_num))
results.sort()
return results
def get_functions(header_files):
'''Returns list of Cocoa Functions.'''
lines = match_output(r"grep -h '^[A-Z][A-Z_]* [^;]* \**\(NS\|UI\)\w\+ *(' "
+ header_files, r'((NS|UI)\w+)\s*\(.*?\)', 1)
lines = [format_function_line(line) for line in lines]
lines += match_output(r"grep -h '^#define \(NS\|UI\)\w\+ *(' "
+ header_files, r'((NS|UI)\w+)\s*\(.*?\)', 1)
return lines
def format_function_line(line):
# line = line.replace('NSInteger', 'int')
# line = line.replace('NSUInteger', 'unsigned int')
# line = line.replace('CGFloat', 'float')
return re.sub(r'void(\s*[^*])', r'\1', line)
def get_types(header_files):
'''Returns a list of Cocoa Types.'''
return match_output(r"grep -h 'typedef .* _*\(NS\|UI\)[A-Za-z]*' "
+ header_files, r'((NS|UI)[A-Za-z]+)\)?\s*(;|{)', 1)
def get_constants(header_files):
'''Returns a list of Cocoa Constants.'''
return match_output(r"awk '/^(typedef )?(enum|NS_(ENUM|OPTIONS)\(.*\)) .*\{/ {pr = 1;} /\}/ {pr = 0;}"
r"{ if(pr) print $0; }' " + header_files,
r'^\s*((NS|UI)[A-Z][A-Za-z0-9_]*)', 1)
def get_notifications(header_files):
'''Returns a list of Cocoa Notifications.'''
return match_output(r"egrep -h '\*(\s*const\s+)?\s*(NS|UI).*Notification' "
+ header_files, r'(NS|UI)\w*Notification', 0)
def write_file(filename, lines):
'''Attempts to write list to file or exits with error if it can't.'''
try:
f = open(filename, 'w')
except IOError, error:
raise SystemExit(argv[0] + ': %s' % error)
f.write("\n".join(lines))
f.close()
def extract_files_to(dirname=None):
'''Extracts .txt files to given directory or ./cocoa_indexes by default.'''
if dirname is None:
dirname = './cocoa_indexes'
if not os.path.isdir(dirname):
os.mkdir(dirname)
headers = ' '.join(default_headers())
write_file(dirname + '/functions.txt', get_functions (headers))
write_file(dirname + '/types.txt', get_types (headers))
write_file(dirname + '/constants.txt', get_constants (headers))
write_file(dirname + '/notifications.txt', get_notifications(headers))
if __name__ == '__main__':
extract_files_to(argv[1] if len(argv) > 1 else None)

View File

@ -0,0 +1,990 @@
ABAddressBook\|NSObject
ABGroup\|ABRecord\|NSObject
ABImageClient
ABMultiValue\|NSObject
ABMutableMultiValue\|ABMultiValue\|NSObject
ABPeoplePickerView\|NSView\|NSResponder\|NSObject
ABPerson\|ABRecord\|NSObject
ABPersonPicker
ABPersonPickerDelegate
ABPersonView\|NSView\|NSResponder\|NSObject
ABRecord\|NSObject
ABSearchElement\|NSObject
CIColor\|NSObject
CIImage\|NSObject
DOMAbstractView\|DOMObject\|WebScriptObject\|NSObject
DOMAttr\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMBlob\|DOMObject\|WebScriptObject\|NSObject
DOMCDATASection\|DOMText\|DOMCharacterData\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMCSSCharsetRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSFontFaceRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSImportRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSMediaRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSPageRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSPrimitiveValue\|DOMCSSValue\|DOMObject\|WebScriptObject\|NSObject
DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSRuleList\|DOMObject\|WebScriptObject\|NSObject
DOMCSSStyleDeclaration\|DOMObject\|WebScriptObject\|NSObject
DOMCSSStyleRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSStyleSheet\|DOMStyleSheet\|DOMObject\|WebScriptObject\|NSObject
DOMCSSUnknownRule\|DOMCSSRule\|DOMObject\|WebScriptObject\|NSObject
DOMCSSValue\|DOMObject\|WebScriptObject\|NSObject
DOMCSSValueList\|DOMCSSValue\|DOMObject\|WebScriptObject\|NSObject
DOMCharacterData\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMComment\|DOMCharacterData\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMCounter\|DOMObject\|WebScriptObject\|NSObject
DOMDocument\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMDocumentFragment\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMDocumentType\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMEntity\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMEntityReference\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMEventListener
DOMEventTarget
DOMFile\|DOMBlob\|DOMObject\|WebScriptObject\|NSObject
DOMFileList\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLAnchorElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLAppletElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLAreaElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLBRElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLBaseElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLBaseFontElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLBodyElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLButtonElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLCollection\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLDListElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLDirectoryElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLDivElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLDocument\|DOMDocument\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLEmbedElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLFieldSetElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLFontElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLFormElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLFrameElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLFrameSetElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLHRElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLHeadElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLHeadingElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLHtmlElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLIFrameElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLImageElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLInputElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLLIElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLLabelElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLLegendElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLLinkElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLMapElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLMarqueeElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLMenuElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLMetaElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLModElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLOListElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLObjectElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLOptGroupElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLOptionElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLOptionsCollection\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLParagraphElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLParamElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLPreElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLQuoteElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLScriptElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLSelectElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLStyleElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableCaptionElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableCellElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableColElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableRowElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTableSectionElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTextAreaElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLTitleElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMHTMLUListElement\|DOMHTMLElement\|DOMElement\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMImplementation\|DOMObject\|WebScriptObject\|NSObject
DOMKeyboardEvent\|DOMUIEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMMediaList\|DOMObject\|WebScriptObject\|NSObject
DOMMouseEvent\|DOMUIEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMMutationEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMNamedNodeMap\|DOMObject\|WebScriptObject\|NSObject
DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMNodeFilter\|DOMObject\|WebScriptObject\|NSObject
DOMNodeIterator\|DOMObject\|WebScriptObject\|NSObject
DOMNodeList\|DOMObject\|WebScriptObject\|NSObject
DOMNotation\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMObject\|WebScriptObject\|NSObject
DOMOverflowEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMProcessingInstruction\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMProgressEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMRGBColor\|DOMObject\|WebScriptObject\|NSObject
DOMRange\|DOMObject\|WebScriptObject\|NSObject
DOMRect\|DOMObject\|WebScriptObject\|NSObject
DOMStyleSheet\|DOMObject\|WebScriptObject\|NSObject
DOMStyleSheetList\|DOMObject\|WebScriptObject\|NSObject
DOMText\|DOMCharacterData\|DOMNode\|DOMObject\|WebScriptObject\|NSObject
DOMTreeWalker\|DOMObject\|WebScriptObject\|NSObject
DOMUIEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMWheelEvent\|DOMMouseEvent\|DOMUIEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
DOMXPathExpression\|DOMObject\|WebScriptObject\|NSObject
DOMXPathNSResolver
DOMXPathResult\|DOMObject\|WebScriptObject\|NSObject
GKAchievement\|NSObject
GKAchievementChallenge\|GKChallenge\|NSObject
GKAchievementDescription\|NSObject
GKAchievementViewController\|NSViewController\|NSResponder\|NSObject
GKAchievementViewControllerDelegate
GKChallenge\|NSObject
GKChallengeEventHandler\|NSObject
GKChallengeEventHandlerDelegate
GKChallengeListener
GKFriendRequestComposeViewController\|NSViewController\|NSResponder\|NSObject
GKFriendRequestComposeViewControllerDelegate
GKGameCenterControllerDelegate
GKGameCenterViewController\|NSViewController\|NSResponder\|NSObject
GKInvite\|NSObject
GKInviteEventListener
GKLeaderboard\|NSObject
GKLeaderboardSet
GKLeaderboardViewController\|NSViewController\|NSResponder\|NSObject
GKLeaderboardViewControllerDelegate
GKLocalPlayer\|GKPlayer\|NSObject
GKLocalPlayerListener
GKMatch\|NSObject
GKMatchDelegate
GKMatchRequest\|NSObject
GKMatchmaker\|NSObject
GKMatchmakerViewController\|NSViewController\|NSResponder\|NSObject
GKMatchmakerViewControllerDelegate
GKNotificationBanner\|NSObject
GKPeerPickerController
GKPeerPickerControllerDelegate
GKPlayer\|NSObject
GKSavedGame
GKSavedGameListener
GKScore\|NSObject
GKScoreChallenge\|GKChallenge\|NSObject
GKSession\|NSObject
GKSessionDelegate
GKTurnBasedEventHandler\|NSObject
GKTurnBasedEventListener
GKTurnBasedExchangeReply
GKTurnBasedMatch\|NSObject
GKTurnBasedMatchmakerViewController\|NSViewController\|NSResponder\|NSObject
GKTurnBasedMatchmakerViewControllerDelegate
GKTurnBasedParticipant\|NSObject
GKVoiceChat\|NSObject
GKVoiceChatClient
GKVoiceChatService
ISyncChange\|NSObject
ISyncClient\|NSObject
ISyncConflictPropertyType
ISyncFilter\|NSObject
ISyncFiltering
ISyncManager\|NSObject
ISyncRecordReference\|NSObject
ISyncRecordSnapshot\|NSObject
ISyncSession\|NSObject
ISyncSessionDriver\|NSObject
ISyncSessionDriverDataSource
NSATSTypesetter\|NSTypesetter\|NSObject
NSActionCell\|NSCell\|NSObject
NSAffineTransform\|NSObject
NSAlert\|NSObject
NSAlertDelegate
NSAnimatablePropertyContainer
NSAnimation\|NSObject
NSAnimationContext\|NSObject
NSAnimationDelegate
NSAppearance\|NSObject
NSAppearanceCustomization
NSAppleEventDescriptor\|NSObject
NSAppleEventManager\|NSObject
NSAppleScript\|NSObject
NSApplication\|NSResponder\|NSObject
NSApplicationDelegate
NSArchiver\|NSCoder\|NSObject
NSArray\|NSObject
NSArrayController\|NSObjectController\|NSController\|NSObject
NSAssertionHandler\|NSObject
NSAtomicStore\|NSPersistentStore\|NSObject
NSAtomicStoreCacheNode\|NSObject
NSAttributeDescription\|NSPropertyDescription\|NSObject
NSAttributedString\|NSObject
NSAutoreleasePool\|NSObject
NSBezierPath\|NSObject
NSBitmapImageRep\|NSImageRep\|NSObject
NSBlockOperation\|NSOperation\|NSObject
NSBox\|NSView\|NSResponder\|NSObject
NSBrowser\|NSControl\|NSView\|NSResponder\|NSObject
NSBrowserCell\|NSCell\|NSObject
NSBrowserDelegate
NSBundle\|NSObject
NSButton\|NSControl\|NSView\|NSResponder\|NSObject
NSButtonCell\|NSActionCell\|NSCell\|NSObject
NSByteCountFormatter\|NSFormatter\|NSObject
NSCIImageRep\|NSImageRep\|NSObject
NSCache\|NSObject
NSCacheDelegate
NSCachedImageRep\|NSImageRep\|NSObject
NSCachedURLResponse\|NSObject
NSCalendar\|NSObject
NSCalendarDate\|NSDate\|NSObject
NSCell\|NSObject
NSChangeSpelling
NSCharacterSet\|NSObject
NSClassDescription\|NSObject
NSClipView\|NSView\|NSResponder\|NSObject
NSCloneCommand\|NSScriptCommand\|NSObject
NSCloseCommand\|NSScriptCommand\|NSObject
NSCoder\|NSObject
NSCoding
NSCollectionView\|NSView\|NSResponder\|NSObject
NSCollectionViewDelegate
NSCollectionViewItem\|NSViewController\|NSResponder\|NSObject
NSColor\|NSObject
NSColorList\|NSObject
NSColorPanel\|NSPanel\|NSWindow\|NSResponder\|NSObject
NSColorPicker\|NSObject
NSColorPickingCustom
NSColorPickingDefault
NSColorSpace\|NSObject
NSColorWell\|NSControl\|NSView\|NSResponder\|NSObject
NSComboBox\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
NSComboBoxCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSComboBoxCellDataSource
NSComboBoxDataSource
NSComboBoxDelegate
NSComparisonPredicate\|NSPredicate\|NSObject
NSCompoundPredicate\|NSPredicate\|NSObject
NSCondition\|NSObject
NSConditionLock\|NSObject
NSConnection\|NSObject
NSConnectionDelegate
NSConstantString\|NSSimpleCString\|NSString\|NSObject
NSControl\|NSView\|NSResponder\|NSObject
NSControlTextEditingDelegate
NSController\|NSObject
NSCopying
NSCountCommand\|NSScriptCommand\|NSObject
NSCountedSet\|NSMutableSet\|NSSet\|NSObject
NSCreateCommand\|NSScriptCommand\|NSObject
NSCursor\|NSObject
NSCustomImageRep\|NSImageRep\|NSObject
NSData\|NSObject
NSDataDetector\|NSRegularExpression\|NSObject
NSDate\|NSObject
NSDateComponents\|NSObject
NSDateFormatter\|NSFormatter\|NSObject
NSDatePicker\|NSControl\|NSView\|NSResponder\|NSObject
NSDatePickerCell\|NSActionCell\|NSCell\|NSObject
NSDatePickerCellDelegate
NSDecimalNumber\|NSNumber\|NSValue\|NSObject
NSDecimalNumberBehaviors
NSDecimalNumberHandler\|NSObject
NSDeleteCommand\|NSScriptCommand\|NSObject
NSDictionary\|NSObject
NSDictionaryController\|NSArrayController\|NSObjectController\|NSController\|NSObject
NSDirectoryEnumerator\|NSEnumerator\|NSObject
NSDiscardableContent
NSDistantObject\|NSProxy
NSDistantObjectRequest\|NSObject
NSDistributedLock\|NSObject
NSDistributedNotificationCenter\|NSNotificationCenter\|NSObject
NSDockTile\|NSObject
NSDockTilePlugIn
NSDocument\|NSObject
NSDocumentController\|NSObject
NSDraggingDestination
NSDraggingImageComponent\|NSObject
NSDraggingInfo
NSDraggingItem\|NSObject
NSDraggingSession\|NSObject
NSDraggingSource
NSDrawer\|NSResponder\|NSObject
NSDrawerDelegate
NSEPSImageRep\|NSImageRep\|NSObject
NSEntityDescription\|NSObject
NSEntityMapping\|NSObject
NSEntityMigrationPolicy\|NSObject
NSEnumerator\|NSObject
NSError\|NSObject
NSEvent\|NSObject
NSException\|NSObject
NSExistsCommand\|NSScriptCommand\|NSObject
NSExpression\|NSObject
NSExpressionDescription\|NSPropertyDescription\|NSObject
NSFastEnumeration
NSFetchRequest\|NSPersistentStoreRequest\|NSObject
NSFetchRequestExpression\|NSExpression\|NSObject
NSFetchedPropertyDescription\|NSPropertyDescription\|NSObject
NSFileCoordinator\|NSObject
NSFileHandle\|NSObject
NSFileManager\|NSObject
NSFileManagerDelegate
NSFilePresenter
NSFileProviderExtension
NSFileSecurity\|NSObject
NSFileVersion\|NSObject
NSFileWrapper\|NSObject
NSFont\|NSObject
NSFontCollection\|NSObject
NSFontDescriptor\|NSObject
NSFontManager\|NSObject
NSFontPanel\|NSPanel\|NSWindow\|NSResponder\|NSObject
NSFormCell\|NSActionCell\|NSCell\|NSObject
NSFormatter\|NSObject
NSGarbageCollector\|NSObject
NSGetCommand\|NSScriptCommand\|NSObject
NSGlyphGenerator\|NSObject
NSGlyphInfo\|NSObject
NSGlyphStorage
NSGradient\|NSObject
NSGraphicsContext\|NSObject
NSHTTPCookie\|NSObject
NSHTTPCookieStorage\|NSObject
NSHTTPURLResponse\|NSURLResponse\|NSObject
NSHashTable\|NSObject
NSHelpManager\|NSObject
NSHost\|NSObject
NSIgnoreMisspelledWords
NSImage\|NSObject
NSImageCell\|NSCell\|NSObject
NSImageDelegate
NSImageRep\|NSObject
NSImageView\|NSControl\|NSView\|NSResponder\|NSObject
NSIncrementalStore\|NSPersistentStore\|NSObject
NSIncrementalStoreNode\|NSObject
NSIndexPath\|NSObject
NSIndexSet\|NSObject
NSIndexSpecifier\|NSScriptObjectSpecifier\|NSObject
NSInputManager\|NSObject
NSInputServer\|NSObject
NSInputServerMouseTracker
NSInputServiceProvider
NSInputStream\|NSStream\|NSObject
NSInvocation\|NSObject
NSInvocationOperation\|NSOperation\|NSObject
NSJSONSerialization\|NSObject
NSKeyedArchiver\|NSCoder\|NSObject
NSKeyedArchiverDelegate
NSKeyedUnarchiver\|NSCoder\|NSObject
NSKeyedUnarchiverDelegate
NSLayoutConstraint\|NSObject
NSLayoutManager\|NSObject
NSLayoutManagerDelegate
NSLevelIndicator\|NSControl\|NSView\|NSResponder\|NSObject
NSLevelIndicatorCell\|NSActionCell\|NSCell\|NSObject
NSLinguisticTagger\|NSObject
NSLocale\|NSObject
NSLock\|NSObject
NSLocking
NSLogicalTest\|NSScriptWhoseTest\|NSObject
NSMachBootstrapServer\|NSPortNameServer\|NSObject
NSMachPort\|NSPort\|NSObject
NSMachPortDelegate
NSManagedObject\|NSObject
NSManagedObjectContext\|NSObject
NSManagedObjectID\|NSObject
NSManagedObjectModel\|NSObject
NSMapTable\|NSObject
NSMappingModel\|NSObject
NSMatrix\|NSControl\|NSView\|NSResponder\|NSObject
NSMatrixDelegate
NSMediaLibraryBrowserController\|NSObject
NSMenu\|NSObject
NSMenuDelegate
NSMenuItem\|NSObject
NSMenuItemCell\|NSButtonCell\|NSActionCell\|NSCell\|NSObject
NSMenuView\|NSView\|NSResponder\|NSObject
NSMergeConflict\|NSObject
NSMergePolicy\|NSObject
NSMessagePort\|NSPort\|NSObject
NSMessagePortNameServer\|NSPortNameServer\|NSObject
NSMetadataItem\|NSObject
NSMetadataQuery\|NSObject
NSMetadataQueryAttributeValueTuple\|NSObject
NSMetadataQueryDelegate
NSMetadataQueryResultGroup\|NSObject
NSMethodSignature\|NSObject
NSMiddleSpecifier\|NSScriptObjectSpecifier\|NSObject
NSMigrationManager\|NSObject
NSMoveCommand\|NSScriptCommand\|NSObject
NSMovie\|NSObject
NSMovieView\|NSView\|NSResponder\|NSObject
NSMutableArray\|NSArray\|NSObject
NSMutableAttributedString\|NSAttributedString\|NSObject
NSMutableCharacterSet\|NSCharacterSet\|NSObject
NSMutableCopying
NSMutableData\|NSData\|NSObject
NSMutableDictionary\|NSDictionary\|NSObject
NSMutableFontCollection\|NSFontCollection\|NSObject
NSMutableIndexSet\|NSIndexSet\|NSObject
NSMutableOrderedSet\|NSOrderedSet\|NSObject
NSMutableParagraphStyle\|NSParagraphStyle\|NSObject
NSMutableSet\|NSSet\|NSObject
NSMutableString\|NSString\|NSObject
NSMutableURLRequest\|NSURLRequest\|NSObject
NSNameSpecifier\|NSScriptObjectSpecifier\|NSObject
NSNetService\|NSObject
NSNetServiceBrowser\|NSObject
NSNetServiceBrowserDelegate
NSNetServiceDelegate
NSNib\|NSObject
NSNibConnector\|NSObject
NSNibControlConnector\|NSNibConnector\|NSObject
NSNibOutletConnector\|NSNibConnector\|NSObject
NSNotification\|NSObject
NSNotificationCenter\|NSObject
NSNotificationQueue\|NSObject
NSNull\|NSObject
NSNumber\|NSValue\|NSObject
NSNumberFormatter\|NSFormatter\|NSObject
NSObject
NSObjectController\|NSController\|NSObject
NSOpenGLContext\|NSObject
NSOpenGLLayer\|CAOpenGLLayer\|CALayer\|NSObject
NSOpenGLPixelBuffer\|NSObject
NSOpenGLPixelFormat\|NSObject
NSOpenGLView\|NSView\|NSResponder\|NSObject
NSOpenPanel\|NSSavePanel\|NSPanel\|NSWindow\|NSResponder\|NSObject
NSOpenSavePanelDelegate
NSOperation\|NSObject
NSOperationQueue\|NSObject
NSOrderedSet\|NSObject
NSOrthography\|NSObject
NSOutlineView\|NSTableView\|NSControl\|NSView\|NSResponder\|NSObject
NSOutlineViewDataSource
NSOutlineViewDelegate
NSOutputStream\|NSStream\|NSObject
NSPDFImageRep\|NSImageRep\|NSObject
NSPDFInfo\|NSObject
NSPDFPanel\|NSObject
NSPICTImageRep\|NSImageRep\|NSObject
NSPageController\|NSViewController\|NSResponder\|NSObject
NSPageControllerDelegate
NSPageLayout\|NSObject
NSPanel\|NSWindow\|NSResponder\|NSObject
NSParagraphStyle\|NSObject
NSPasteboard\|NSObject
NSPasteboardItem\|NSObject
NSPasteboardItemDataProvider
NSPasteboardReading
NSPasteboardWriting
NSPathCell\|NSActionCell\|NSCell\|NSObject
NSPathCellDelegate
NSPathComponentCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSPathControl\|NSControl\|NSView\|NSResponder\|NSObject
NSPathControlDelegate
NSPersistentDocument\|NSDocument\|NSObject
NSPersistentStore\|NSObject
NSPersistentStoreCoordinator\|NSObject
NSPersistentStoreCoordinatorSyncing
NSPersistentStoreRequest\|NSObject
NSPipe\|NSObject
NSPointerArray\|NSObject
NSPointerFunctions\|NSObject
NSPopUpButton\|NSButton\|NSControl\|NSView\|NSResponder\|NSObject
NSPopUpButtonCell\|NSMenuItemCell\|NSButtonCell\|NSActionCell\|NSCell\|NSObject
NSPopover\|NSResponder\|NSObject
NSPopoverDelegate
NSPort\|NSObject
NSPortCoder\|NSCoder\|NSObject
NSPortDelegate
NSPortMessage\|NSObject
NSPortNameServer\|NSObject
NSPositionalSpecifier\|NSObject
NSPredicate\|NSObject
NSPredicateEditor\|NSRuleEditor\|NSControl\|NSView\|NSResponder\|NSObject
NSPredicateEditorRowTemplate\|NSObject
NSPreferencePane\|NSObject
NSPrintInfo\|NSObject
NSPrintOperation\|NSObject
NSPrintPanel\|NSObject
NSPrintPanelAccessorizing
NSPrinter\|NSObject
NSProcessInfo\|NSObject
NSProgress\|NSObject
NSProgressIndicator\|NSView\|NSResponder\|NSObject
NSPropertyDescription\|NSObject
NSPropertyListSerialization\|NSObject
NSPropertyMapping\|NSObject
NSPropertySpecifier\|NSScriptObjectSpecifier\|NSObject
NSProtocolChecker\|NSProxy
NSProxy
NSPurgeableData\|NSMutableData\|NSData\|NSObject
NSQuickDrawView\|NSView\|NSResponder\|NSObject
NSQuitCommand\|NSScriptCommand\|NSObject
NSRandomSpecifier\|NSScriptObjectSpecifier\|NSObject
NSRangeSpecifier\|NSScriptObjectSpecifier\|NSObject
NSRecursiveLock\|NSObject
NSRegularExpression\|NSObject
NSRelationshipDescription\|NSPropertyDescription\|NSObject
NSRelativeSpecifier\|NSScriptObjectSpecifier\|NSObject
NSResponder\|NSObject
NSRuleEditor\|NSControl\|NSView\|NSResponder\|NSObject
NSRuleEditorDelegate
NSRulerMarker\|NSObject
NSRulerView\|NSView\|NSResponder\|NSObject
NSRunLoop\|NSObject
NSRunningApplication\|NSObject
NSSaveChangesRequest\|NSPersistentStoreRequest\|NSObject
NSSavePanel\|NSPanel\|NSWindow\|NSResponder\|NSObject
NSScanner\|NSObject
NSScreen\|NSObject
NSScriptClassDescription\|NSClassDescription\|NSObject
NSScriptCoercionHandler\|NSObject
NSScriptCommand\|NSObject
NSScriptCommandDescription\|NSObject
NSScriptExecutionContext\|NSObject
NSScriptObjectSpecifier\|NSObject
NSScriptSuiteRegistry\|NSObject
NSScriptWhoseTest\|NSObject
NSScrollView\|NSView\|NSResponder\|NSObject
NSScroller\|NSControl\|NSView\|NSResponder\|NSObject
NSSearchField\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
NSSearchFieldCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSSecureCoding
NSSecureTextField\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
NSSecureTextFieldCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSSegmentedCell\|NSActionCell\|NSCell\|NSObject
NSSegmentedControl\|NSControl\|NSView\|NSResponder\|NSObject
NSServicesMenuRequestor
NSSet\|NSObject
NSSetCommand\|NSScriptCommand\|NSObject
NSShadow\|NSObject
NSSharingService\|NSObject
NSSharingServiceDelegate
NSSharingServicePicker\|NSObject
NSSharingServicePickerDelegate
NSSimpleCString\|NSString\|NSObject
NSSimpleHorizontalTypesetter\|NSTypesetter\|NSObject
NSSlider\|NSControl\|NSView\|NSResponder\|NSObject
NSSliderCell\|NSActionCell\|NSCell\|NSObject
NSSocketPort\|NSPort\|NSObject
NSSocketPortNameServer\|NSPortNameServer\|NSObject
NSSortDescriptor\|NSObject
NSSound\|NSObject
NSSoundDelegate
NSSpecifierTest\|NSScriptWhoseTest\|NSObject
NSSpeechRecognizer\|NSObject
NSSpeechRecognizerDelegate
NSSpeechSynthesizer\|NSObject
NSSpeechSynthesizerDelegate
NSSpellChecker\|NSObject
NSSpellServer\|NSObject
NSSpellServerDelegate
NSSplitView\|NSView\|NSResponder\|NSObject
NSSplitViewDelegate
NSStackView\|NSView\|NSResponder\|NSObject
NSStackViewDelegate
NSStatusBar\|NSObject
NSStatusItem\|NSObject
NSStepper\|NSControl\|NSView\|NSResponder\|NSObject
NSStepperCell\|NSActionCell\|NSCell\|NSObject
NSStream\|NSObject
NSStreamDelegate
NSString\|NSObject
NSStringDrawingContext\|NSObject
NSTabView\|NSView\|NSResponder\|NSObject
NSTabViewDelegate
NSTabViewItem\|NSObject
NSTableCellView\|NSView\|NSResponder\|NSObject
NSTableColumn\|NSObject
NSTableHeaderCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSTableHeaderView\|NSView\|NSResponder\|NSObject
NSTableRowView\|NSView\|NSResponder\|NSObject
NSTableView\|NSControl\|NSView\|NSResponder\|NSObject
NSTableViewDataSource
NSTableViewDelegate
NSTask\|NSObject
NSText\|NSView\|NSResponder\|NSObject
NSTextAlternatives\|NSObject
NSTextAttachment\|NSObject
NSTextAttachmentCell\|NSCell\|NSObject
NSTextAttachmentContainer
NSTextBlock\|NSObject
NSTextCheckingResult\|NSObject
NSTextContainer\|NSObject
NSTextDelegate
NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSTextFieldDelegate
NSTextFinder\|NSObject
NSTextFinderBarContainer
NSTextFinderClient
NSTextInput
NSTextInputClient
NSTextInputContext\|NSObject
NSTextLayoutOrientationProvider
NSTextList\|NSObject
NSTextStorage\|NSMutableAttributedString\|NSAttributedString\|NSObject
NSTextStorageDelegate
NSTextTab\|NSObject
NSTextTable\|NSTextBlock\|NSObject
NSTextTableBlock\|NSTextBlock\|NSObject
NSTextView\|NSText\|NSView\|NSResponder\|NSObject
NSTextViewDelegate
NSThread\|NSObject
NSTimeZone\|NSObject
NSTimer\|NSObject
NSTokenField\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
NSTokenFieldCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
NSTokenFieldCellDelegate
NSTokenFieldDelegate
NSToolbar\|NSObject
NSToolbarDelegate
NSToolbarItem\|NSObject
NSToolbarItemGroup\|NSToolbarItem\|NSObject
NSToolbarItemValidations
NSTouch\|NSObject
NSTrackingArea\|NSObject
NSTreeController\|NSObjectController\|NSController\|NSObject
NSTreeNode\|NSObject
NSTypesetter\|NSObject
NSURL\|NSObject
NSURLAuthenticationChallenge\|NSObject
NSURLAuthenticationChallengeSender
NSURLCache\|NSObject
NSURLComponents\|NSObject
NSURLConnection\|NSObject
NSURLConnectionDataDelegate
NSURLConnectionDelegate
NSURLConnectionDownloadDelegate
NSURLCredential\|NSObject
NSURLCredentialStorage\|NSObject
NSURLDownload\|NSObject
NSURLDownloadDelegate
NSURLHandle\|NSObject
NSURLHandleClient
NSURLProtectionSpace\|NSObject
NSURLProtocol\|NSObject
NSURLProtocolClient
NSURLRequest\|NSObject
NSURLResponse\|NSObject
NSURLSession
NSURLSessionConfiguration
NSURLSessionDataDelegate
NSURLSessionDataTask
NSURLSessionDelegate
NSURLSessionDownloadDelegate
NSURLSessionDownloadTask
NSURLSessionTask
NSURLSessionTaskDelegate
NSURLSessionUploadTask
NSUUID\|NSObject
NSUbiquitousKeyValueStore\|NSObject
NSUnarchiver\|NSCoder\|NSObject
NSUndoManager\|NSObject
NSUniqueIDSpecifier\|NSScriptObjectSpecifier\|NSObject
NSUserAppleScriptTask\|NSUserScriptTask\|NSObject
NSUserAutomatorTask\|NSUserScriptTask\|NSObject
NSUserDefaults\|NSObject
NSUserDefaultsController\|NSController\|NSObject
NSUserInterfaceItemIdentification
NSUserInterfaceItemSearching
NSUserInterfaceValidations
NSUserNotification\|NSObject
NSUserNotificationCenter\|NSObject
NSUserNotificationCenterDelegate
NSUserScriptTask\|NSObject
NSUserUnixTask\|NSUserScriptTask\|NSObject
NSValidatedToobarItem
NSValidatedUserInterfaceItem
NSValue\|NSObject
NSValueTransformer\|NSObject
NSView\|NSResponder\|NSObject
NSViewAnimation\|NSAnimation\|NSObject
NSViewController\|NSResponder\|NSObject
NSWhoseSpecifier\|NSScriptObjectSpecifier\|NSObject
NSWindow\|NSResponder\|NSObject
NSWindowController\|NSResponder\|NSObject
NSWindowDelegate
NSWindowRestoration
NSWorkspace\|NSObject
NSXMLDTD\|NSXMLNode\|NSObject
NSXMLDTDNode\|NSXMLNode\|NSObject
NSXMLDocument\|NSXMLNode\|NSObject
NSXMLElement\|NSXMLNode\|NSObject
NSXMLNode\|NSObject
NSXMLParser\|NSObject
NSXMLParserDelegate
NSXPCConnection\|NSObject
NSXPCInterface\|NSObject
NSXPCListener\|NSObject
NSXPCListenerDelegate
NSXPCListenerEndpoint\|NSObject
NSXPCProxyCreating
QTCaptureAudioPreviewOutput\|QTCaptureOutput\|NSObject
QTCaptureConnection\|NSObject
QTCaptureDecompressedAudioOutput\|QTCaptureOutput\|NSObject
QTCaptureDecompressedVideoOutput\|QTCaptureOutput\|NSObject
QTCaptureDevice\|NSObject
QTCaptureDeviceInput\|QTCaptureInput\|NSObject
QTCaptureFileOutput\|QTCaptureOutput\|NSObject
QTCaptureInput\|NSObject
QTCaptureLayer\|CALayer\|NSObject
QTCaptureMovieFileOutput\|QTCaptureFileOutput\|QTCaptureOutput\|NSObject
QTCaptureOutput\|NSObject
QTCaptureSession\|NSObject
QTCaptureVideoPreviewOutput\|QTCaptureOutput\|NSObject
QTCaptureView\|NSView\|NSResponder\|NSObject
QTCompressionOptions\|NSObject
QTDataReference\|NSObject
QTExportOptions\|NSObject
QTExportSession\|NSObject
QTExportSessionDelegate
QTFormatDescription\|NSObject
QTMedia\|NSObject
QTMetadataItem\|NSObject
QTMovie\|NSObject
QTMovieLayer\|CALayer\|NSObject
QTMovieModernizer\|NSObject
QTMovieView\|NSView\|NSResponder\|NSObject
QTSampleBuffer\|NSObject
QTTrack\|NSObject
ScreenSaverDefaults\|NSUserDefaults\|NSObject
ScreenSaverView\|NSView\|NSResponder\|NSObject
UIAcceleration
UIAccelerometer
UIAccelerometerDelegate
UIAccessibilityCustomAction
UIAccessibilityElement
UIAccessibilityIdentification
UIAccessibilityReadingContent
UIActionSheet
UIActionSheetDelegate
UIActivity
UIActivityIndicatorView
UIActivityItemProvider
UIActivityItemSource
UIActivityViewController
UIAdaptivePresentationControllerDelegate
UIAlertAction
UIAlertController
UIAlertView
UIAlertViewDelegate
UIAppearance
UIAppearanceContainer
UIApplication
UIApplicationDelegate
UIAttachmentBehavior
UIBarButtonItem
UIBarItem
UIBarPositioning
UIBarPositioningDelegate
UIBezierPath
UIBlurEffect
UIButton
UICollectionReusableView
UICollectionView
UICollectionViewCell
UICollectionViewController
UICollectionViewDataSource
UICollectionViewDelegate
UICollectionViewDelegateFlowLayout
UICollectionViewFlowLayout
UICollectionViewFlowLayoutInvalidationContext
UICollectionViewLayout
UICollectionViewLayoutAttributes
UICollectionViewLayoutInvalidationContext
UICollectionViewTransitionLayout
UICollectionViewUpdateItem
UICollisionBehavior
UICollisionBehaviorDelegate
UIColor
UIContentContainer
UIControl
UICoordinateSpace
UIDataSourceModelAssociation
UIDatePicker
UIDevice
UIDictationPhrase
UIDocument
UIDocumentInteractionController
UIDocumentInteractionControllerDelegate
UIDocumentMenuDelegate
UIDocumentMenuViewController
UIDocumentPickerDelegate
UIDocumentPickerExtensionViewController
UIDocumentPickerViewController
UIDynamicAnimator
UIDynamicAnimatorDelegate
UIDynamicBehavior
UIDynamicItem
UIDynamicItemBehavior
UIEvent
UIFont
UIFontDescriptor
UIGestureRecognizer
UIGestureRecognizerDelegate
UIGravityBehavior
UIGuidedAccessRestrictionDelegate
UIImage
UIImageAsset
UIImagePickerController
UIImagePickerControllerDelegate
UIImageView
UIInputView
UIInputViewAudioFeedback
UIInputViewController
UIInterpolatingMotionEffect
UIKeyCommand
UIKeyInput
UILabel
UILayoutSupport
UILexicon
UILexiconEntry
UILocalNotification
UILocalizedIndexedCollation
UILongPressGestureRecognizer
UIManagedDocument
UIMarkupTextPrintFormatter
UIMenuController
UIMenuItem
UIMotionEffect
UIMotionEffectGroup
UIMutableUserNotificationAction
UIMutableUserNotificationCategory
UINavigationBar
UINavigationBarDelegate
UINavigationController
UINavigationControllerDelegate
UINavigationItem
UINib
UIObjectRestoration
UIPageControl
UIPageViewController
UIPageViewControllerDataSource
UIPageViewControllerDelegate
UIPanGestureRecognizer
UIPasteboard
UIPercentDrivenInteractiveTransition
UIPickerView
UIPickerViewAccessibilityDelegate
UIPickerViewDataSource
UIPickerViewDelegate
UIPinchGestureRecognizer
UIPopoverBackgroundView
UIPopoverBackgroundViewMethods
UIPopoverController
UIPopoverControllerDelegate
UIPopoverPresentationController
UIPopoverPresentationControllerDelegate
UIPresentationController
UIPrintFormatter
UIPrintInfo
UIPrintInteractionController
UIPrintInteractionControllerDelegate
UIPrintPageRenderer
UIPrintPaper
UIPrinter
UIPrinterPickerController
UIPrinterPickerControllerDelegate
UIProgressView
UIPushBehavior
UIReferenceLibraryViewController
UIRefreshControl
UIResponder
UIRotationGestureRecognizer
UIScreen
UIScreenEdgePanGestureRecognizer
UIScreenMode
UIScrollView
UIScrollViewAccessibilityDelegate
UIScrollViewDelegate
UISearchBar
UISearchBarDelegate
UISearchController
UISearchControllerDelegate
UISearchDisplayController
UISearchDisplayDelegate
UISearchResultsUpdating
UISegmentedControl
UISimpleTextPrintFormatter
UISlider
UISnapBehavior
UISplitViewController
UISplitViewControllerDelegate
UIStateRestoring
UIStepper
UIStoryboard
UIStoryboardPopoverSegue
UIStoryboardSegue
UISwipeGestureRecognizer
UISwitch
UITabBar
UITabBarController
UITabBarControllerDelegate
UITabBarDelegate
UITabBarItem
UITableView
UITableViewCell
UITableViewController
UITableViewDataSource
UITableViewDelegate
UITableViewHeaderFooterView
UITableViewRowAction
UITapGestureRecognizer
UITextChecker
UITextDocumentProxy
UITextField
UITextFieldDelegate
UITextInput
UITextInputDelegate
UITextInputMode
UITextInputStringTokenizer
UITextInputTokenizer
UITextInputTraits
UITextPosition
UITextRange
UITextSelecting
UITextSelectionRect
UITextView
UITextViewDelegate
UIToolbar
UIToolbarDelegate
UITouch
UITraitCollection
UITraitEnvironment
UIUserNotificationAction
UIUserNotificationCategory
UIUserNotificationSettings
UIVibrancyEffect
UIVideoEditorController
UIVideoEditorControllerDelegate
UIView
UIViewController
UIViewControllerAnimatedTransitioning
UIViewControllerContextTransitioning
UIViewControllerInteractiveTransitioning
UIViewControllerRestoration
UIViewControllerTransitionCoordinator
UIViewControllerTransitionCoordinatorContext
UIViewControllerTransitioningDelegate
UIViewPrintFormatter
UIVisualEffect
UIVisualEffectView
UIWebView
UIWebViewDelegate
UIWindow
WebArchive\|NSObject
WebBackForwardList\|NSObject
WebDataSource\|NSObject
WebDocumentRepresentation
WebDocumentSearching
WebDocumentText
WebDocumentView
WebDownload\|NSURLDownload\|NSObject
WebDownloadDelegate
WebFrame\|NSObject
WebFrameView\|NSView\|NSResponder\|NSObject
WebHistory\|NSObject
WebHistoryItem\|NSObject
WebOpenPanelResultListener\|NSObject
WebPlugInViewFactory
WebPolicyDecisionListener\|NSObject
WebPreferences\|NSObject
WebResource\|NSObject
WebScriptObject\|NSObject
WebUndefined\|NSObject
WebView\|NSView\|NSResponder\|NSObject

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,399 @@
NSAccessibilityActionDescription
NSAccessibilityPostNotification
NSAccessibilityPostNotificationWithUserInfo
NSAccessibilityRaiseBadArgumentException
NSAccessibilityRoleDescription
NSAccessibilityRoleDescriptionForUIElement
NSAccessibilitySetMayContainProtectedContent
NSAccessibilityUnignoredAncestor
NSAccessibilityUnignoredChildren
NSAccessibilityUnignoredChildrenForOnlyChild
NSAccessibilityUnignoredDescendant
NSAllHashTableObjects
NSAllMapTableKeys
NSAllMapTableValues
NSAllocateCollectable
NSAllocateMemoryPages
NSAllocateObject
NSApplicationLoad
NSApplicationMain
NSAvailableWindowDepths
NSBeep
NSBeginAlertSheet
NSBeginCriticalAlertSheet
NSBeginInformationalAlertSheet
NSBestDepth
NSBitsPerPixelFromDepth
NSBitsPerSampleFromDepth
NSClassFromString
NSColorSpaceFromDepth
NSCompareHashTables
NSCompareMapTables
NSContainsRect
NSConvertGlyphsToPackedGlyphs
NSConvertHostDoubleToSwapped
NSConvertHostFloatToSwapped
NSConvertSwappedDoubleToHost
NSConvertSwappedFloatToHost
NSCopyBits
NSCopyHashTableWithZone
NSCopyMapTableWithZone
NSCopyMemoryPages
NSCopyObject
NSCountFrames
NSCountHashTable
NSCountMapTable
NSCountWindows
NSCountWindowsForContext
NSCreateFileContentsPboardType
NSCreateFilenamePboardType
NSCreateHashTable
NSCreateHashTableWithZone
NSCreateMapTable
NSCreateMapTableWithZone
NSCreateZone
NSDeallocateMemoryPages
NSDeallocateObject
NSDecimalAdd
NSDecimalCompact
NSDecimalCompare
NSDecimalCopy
NSDecimalDivide
NSDecimalIsNotANumber
NSDecimalMultiply
NSDecimalMultiplyByPowerOf10
NSDecimalNormalize
NSDecimalPower
NSDecimalRound
NSDecimalString
NSDecimalSubtract
NSDecrementExtraRefCountWasZero
NSDefaultMallocZone
NSDictionaryOfVariableBindings
NSDisableScreenUpdates
NSDivideRect
NSDottedFrameRect
NSDrawBitmap
NSDrawButton
NSDrawColorTiledRects
NSDrawDarkBezel
NSDrawGrayBezel
NSDrawGroove
NSDrawLightBezel
NSDrawNinePartImage
NSDrawThreePartImage
NSDrawTiledRects
NSDrawWhiteBezel
NSDrawWindowBackground
NSEdgeInsetsMake
NSEnableScreenUpdates
NSEndHashTableEnumeration
NSEndMapTableEnumeration
NSEnumerateHashTable
NSEnumerateMapTable
NSEqualPoints
NSEqualRanges
NSEqualRects
NSEqualSizes
NSEraseRect
NSEventMaskFromType
NSExtraRefCount
NSFileTypeForHFSTypeCode
NSFrameAddress
NSFrameRect
NSFrameRectWithWidth
NSFrameRectWithWidthUsingOperation
NSFreeHashTable
NSFreeMapTable
NSFullUserName
NSGetAlertPanel
NSGetCriticalAlertPanel
NSGetFileType
NSGetFileTypes
NSGetInformationalAlertPanel
NSGetSizeAndAlignment
NSGetUncaughtExceptionHandler
NSGetWindowServerMemory
NSHFSTypeCodeFromFileType
NSHFSTypeOfFile
NSHashGet
NSHashInsert
NSHashInsertIfAbsent
NSHashInsertKnownAbsent
NSHashRemove
NSHeight
NSHighlightRect
NSHomeDirectory
NSHomeDirectoryForUser
NSHostByteOrder
NSIncrementExtraRefCount
NSInsetRect
NSIntegralRect
NSIntegralRectWithOptions
NSInterfaceStyleForKey
NSIntersectionRange
NSIntersectionRect
NSIntersectsRect
NSIsControllerMarker
NSIsEmptyRect
NSIsFreedObject
NSLocationInRange
NSLog
NSLogPageSize
NSLogv
NSMakeCollectable
NSMakePoint
NSMakeRange
NSMakeRect
NSMakeSize
NSMapGet
NSMapInsert
NSMapInsertIfAbsent
NSMapInsertKnownAbsent
NSMapMember
NSMapRemove
NSMaxRange
NSMaxX
NSMaxY
NSMidX
NSMidY
NSMinX
NSMinY
NSMouseInRect
NSNextHashEnumeratorItem
NSNextMapEnumeratorPair
NSNumberOfColorComponents
NSObjectFromCoder
NSOffsetRect
NSOpenStepRootDirectory
NSPageSize
NSPerformService
NSPlanarFromDepth
NSPointFromCGPoint
NSPointFromString
NSPointInRect
NSPointToCGPoint
NSProtocolFromString
NSRangeFromString
NSReadPixel
NSRealMemoryAvailable
NSReallocateCollectable
NSRecordAllocationEvent
NSRectClip
NSRectClipList
NSRectFill
NSRectFillList
NSRectFillListUsingOperation
NSRectFillListWithColors
NSRectFillListWithColorsUsingOperation
NSRectFillListWithGrays
NSRectFillUsingOperation
NSRectFromCGRect
NSRectFromString
NSRectToCGRect
NSRecycleZone
NSRegisterServicesProvider
NSReleaseAlertPanel
NSResetHashTable
NSResetMapTable
NSReturnAddress
NSRoundDownToMultipleOfPageSize
NSRoundUpToMultipleOfPageSize
NSRunAlertPanel
NSRunAlertPanelRelativeToWindow
NSRunCriticalAlertPanel
NSRunCriticalAlertPanelRelativeToWindow
NSRunInformationalAlertPanel
NSRunInformationalAlertPanelRelativeToWindow
NSSearchPathForDirectoriesInDomains
NSSelectorFromString
NSSetFocusRingStyle
NSSetShowsServicesMenuItem
NSSetUncaughtExceptionHandler
NSSetZoneName
NSShouldRetainWithZone
NSShowAnimationEffect
NSShowsServicesMenuItem
NSSizeFromCGSize
NSSizeFromString
NSSizeToCGSize
NSStringFromCGAffineTransform
NSStringFromCGPoint
NSStringFromCGRect
NSStringFromCGSize
NSStringFromCGVector
NSStringFromClass
NSStringFromHashTable
NSStringFromMapTable
NSStringFromPoint
NSStringFromProtocol
NSStringFromRange
NSStringFromRect
NSStringFromSelector
NSStringFromSize
NSStringFromUIEdgeInsets
NSStringFromUIOffset
NSSwapBigDoubleToHost
NSSwapBigFloatToHost
NSSwapBigIntToHost
NSSwapBigLongLongToHost
NSSwapBigLongToHost
NSSwapBigShortToHost
NSSwapDouble
NSSwapFloat
NSSwapHostDoubleToBig
NSSwapHostDoubleToLittle
NSSwapHostFloatToBig
NSSwapHostFloatToLittle
NSSwapHostIntToBig
NSSwapHostIntToLittle
NSSwapHostLongLongToBig
NSSwapHostLongLongToLittle
NSSwapHostLongToBig
NSSwapHostLongToLittle
NSSwapHostShortToBig
NSSwapHostShortToLittle
NSSwapInt
NSSwapLittleDoubleToHost
NSSwapLittleFloatToHost
NSSwapLittleIntToHost
NSSwapLittleLongLongToHost
NSSwapLittleLongToHost
NSSwapLittleShortToHost
NSSwapLong
NSSwapLongLong
NSSwapShort
NSTemporaryDirectory
NSTextAlignmentFromCTTextAlignment
NSTextAlignmentToCTTextAlignment
NSUnionRange
NSUnionRect
NSUnregisterServicesProvider
NSUpdateDynamicServices
NSUserName
NSValue
NSWidth
NSWindowList
NSWindowListForContext
NSZoneCalloc
NSZoneFree
NSZoneFromPointer
NSZoneMalloc
NSZoneName
NSZoneRealloc
NS_AVAILABLE
NS_AVAILABLE_IOS
NS_AVAILABLE_MAC
NS_CALENDAR_DEPRECATED
NS_DEPRECATED
NS_DEPRECATED_IOS
NS_DEPRECATED_MAC
UIAccessibilityConvertFrameToScreenCoordinates
UIAccessibilityConvertPathToScreenCoordinates
UIAccessibilityDarkerSystemColorsEnabled
UIAccessibilityIsBoldTextEnabled
UIAccessibilityIsClosedCaptioningEnabled
UIAccessibilityIsGrayscaleEnabled
UIAccessibilityIsGuidedAccessEnabled
UIAccessibilityIsInvertColorsEnabled
UIAccessibilityIsMonoAudioEnabled
UIAccessibilityIsReduceMotionEnabled
UIAccessibilityIsReduceTransparencyEnabled
UIAccessibilityIsSpeakScreenEnabled
UIAccessibilityIsSpeakSelectionEnabled
UIAccessibilityIsSwitchControlRunning
UIAccessibilityIsVoiceOverRunning
UIAccessibilityPostNotification
UIAccessibilityRegisterGestureConflictWithZoom
UIAccessibilityRequestGuidedAccessSession
UIAccessibilityZoomFocusChanged
UIApplicationMain
UIEdgeInsetsEqualToEdgeInsets
UIEdgeInsetsFromString
UIEdgeInsetsInsetRect
UIEdgeInsetsMake
UIGraphicsAddPDFContextDestinationAtPoint
UIGraphicsBeginImageContext
UIGraphicsBeginImageContextWithOptions
UIGraphicsBeginPDFContextToData
UIGraphicsBeginPDFContextToFile
UIGraphicsBeginPDFPage
UIGraphicsBeginPDFPageWithInfo
UIGraphicsEndImageContext
UIGraphicsEndPDFContext
UIGraphicsGetCurrentContext
UIGraphicsGetImageFromCurrentImageContext
UIGraphicsGetPDFContextBounds
UIGraphicsPopContext
UIGraphicsPushContext
UIGraphicsSetPDFContextDestinationForRect
UIGraphicsSetPDFContextURLForRect
UIGuidedAccessRestrictionStateForIdentifier
UIImageJPEGRepresentation
UIImagePNGRepresentation
UIImageWriteToSavedPhotosAlbum
UIOffsetEqualToOffset
UIOffsetFromString
UIOffsetMake
UIRectClip
UIRectFill
UIRectFillUsingBlendMode
UIRectFrame
UIRectFrameUsingBlendMode
UISaveVideoAtPathToSavedPhotosAlbum
UIVideoAtPathIsCompatibleWithSavedPhotosAlbum
NSAssert
NSAssert1
NSAssert2
NSAssert3
NSAssert4
NSAssert5
NSCAssert
NSCAssert1
NSCAssert2
NSCAssert3
NSCAssert4
NSCAssert5
NSCParameterAssert
NSDecimalMaxSize
NSDictionaryOfVariableBindings
NSGlyphInfoAtIndex
NSLocalizedString
NSLocalizedStringFromTable
NSLocalizedStringFromTableInBundle
NSLocalizedStringWithDefaultValue
NSParameterAssert
NSStackViewSpacingUseDefault
NSURLResponseUnknownLength
NS_AVAILABLE
NS_AVAILABLE_IOS
NS_AVAILABLE_IPHONE
NS_AVAILABLE_MAC
NS_CALENDAR_DEPRECATED
NS_CALENDAR_DEPRECATED_MAC
NS_CALENDAR_ENUM_DEPRECATED
NS_CLASS_AVAILABLE
NS_CLASS_AVAILABLE_IOS
NS_CLASS_AVAILABLE_MAC
NS_CLASS_DEPRECATED
NS_CLASS_DEPRECATED_IOS
NS_CLASS_DEPRECATED_MAC
NS_DEPRECATED
NS_DEPRECATED_IOS
NS_DEPRECATED_IPHONE
NS_DEPRECATED_MAC
NS_ENUM
NS_ENUM_AVAILABLE
NS_ENUM_AVAILABLE_IOS
NS_ENUM_AVAILABLE_MAC
NS_ENUM_DEPRECATED
NS_ENUM_DEPRECATED_IOS
NS_ENUM_DEPRECATED_MAC
NS_OPTIONS
NS_VALUERETURN
UIDeviceOrientationIsLandscape
UIDeviceOrientationIsPortrait
UIDeviceOrientationIsValidInterfaceOrientation
UIInterfaceOrientationIsLandscape
UIInterfaceOrientationIsPortrait
UI_USER_INTERFACE_IDIOM

View File

@ -0,0 +1,298 @@
NSAccessibilityAnnouncementRequestedNotification
NSAccessibilityApplicationActivatedNotification
NSAccessibilityApplicationDeactivatedNotification
NSAccessibilityApplicationHiddenNotification
NSAccessibilityApplicationShownNotification
NSAccessibilityCreatedNotification
NSAccessibilityDrawerCreatedNotification
NSAccessibilityFocusedUIElementChangedNotification
NSAccessibilityFocusedWindowChangedNotification
NSAccessibilityHelpTagCreatedNotification
NSAccessibilityLayoutChangedNotification
NSAccessibilityMainWindowChangedNotification
NSAccessibilityMovedNotification
NSAccessibilityResizedNotification
NSAccessibilityRowCollapsedNotification
NSAccessibilityRowCountChangedNotification
NSAccessibilityRowExpandedNotification
NSAccessibilitySelectedCellsChangedNotification
NSAccessibilitySelectedChildrenChangedNotification
NSAccessibilitySelectedChildrenMovedNotification
NSAccessibilitySelectedColumnsChangedNotification
NSAccessibilitySelectedRowsChangedNotification
NSAccessibilitySelectedTextChangedNotification
NSAccessibilitySheetCreatedNotification
NSAccessibilityTitleChangedNotification
NSAccessibilityUIElementDestroyedNotification
NSAccessibilityUnitsChangedNotification
NSAccessibilityValueChangedNotification
NSAccessibilityWindowCreatedNotification
NSAccessibilityWindowDeminiaturizedNotification
NSAccessibilityWindowMiniaturizedNotification
NSAccessibilityWindowMovedNotification
NSAccessibilityWindowResizedNotification
NSAnimationProgressMarkNotification
NSAntialiasThresholdChangedNotification
NSAppleEventManagerWillProcessFirstEventNotification
NSApplicationDidBecomeActiveNotification
NSApplicationDidChangeOcclusionStateNotification
NSApplicationDidChangeScreenParametersNotification
NSApplicationDidFinishLaunchingNotification
NSApplicationDidFinishRestoringWindowsNotification
NSApplicationDidHideNotification
NSApplicationDidResignActiveNotification
NSApplicationDidUnhideNotification
NSApplicationDidUpdateNotification
NSApplicationLaunchRemoteNotification
NSApplicationLaunchUserNotification
NSApplicationWillBecomeActiveNotification
NSApplicationWillFinishLaunchingNotification
NSApplicationWillHideNotification
NSApplicationWillResignActiveNotification
NSApplicationWillTerminateNotification
NSApplicationWillUnhideNotification
NSApplicationWillUpdateNotification
NSBrowserColumnConfigurationDidChangeNotification
NSBundleDidLoadNotification
NSCalendarDayChangedNotification
NSClassDescriptionNeededForClassNotification
NSColorListDidChangeNotification
NSColorPanelColorDidChangeNotification
NSComboBoxSelectionDidChangeNotification
NSComboBoxSelectionIsChangingNotification
NSComboBoxWillDismissNotification
NSComboBoxWillPopUpNotification
NSConnectionDidDieNotification
NSConnectionDidInitializeNotification
NSContextHelpModeDidActivateNotification
NSContextHelpModeDidDeactivateNotification
NSControlTextDidBeginEditingNotification
NSControlTextDidChangeNotification
NSControlTextDidEndEditingNotification
NSControlTintDidChangeNotification
NSCurrentLocaleDidChangeNotification
NSDidBecomeSingleThreadedNotification
NSDistributedNotification
NSDrawerDidCloseNotification
NSDrawerDidOpenNotification
NSDrawerWillCloseNotification
NSDrawerWillOpenNotification
NSFileHandleConnectionAcceptedNotification
NSFileHandleDataAvailableNotification
NSFileHandleNotification
NSFileHandleReadCompletionNotification
NSFileHandleReadToEndOfFileCompletionNotification
NSFontCollectionDidChangeNotification
NSFontSetChangedNotification
NSHTTPCookieManagerAcceptPolicyChangedNotification
NSHTTPCookieManagerCookiesChangedNotification
NSImageRepRegistryDidChangeNotification
NSKeyValueChangeNotification
NSLocalNotification
NSManagedObjectContextDidSaveNotification
NSManagedObjectContextObjectsDidChangeNotification
NSManagedObjectContextWillSaveNotification
NSMenuDidAddItemNotification
NSMenuDidBeginTrackingNotification
NSMenuDidChangeItemNotification
NSMenuDidEndTrackingNotification
NSMenuDidRemoveItemNotification
NSMenuDidSendActionNotification
NSMenuWillSendActionNotification
NSMetadataQueryDidFinishGatheringNotification
NSMetadataQueryDidStartGatheringNotification
NSMetadataQueryDidUpdateNotification
NSMetadataQueryGatheringProgressNotification
NSNotification
NSOutlineViewColumnDidMoveNotification
NSOutlineViewColumnDidResizeNotification
NSOutlineViewItemDidCollapseNotification
NSOutlineViewItemDidExpandNotification
NSOutlineViewItemWillCollapseNotification
NSOutlineViewItemWillExpandNotification
NSOutlineViewSelectionDidChangeNotification
NSOutlineViewSelectionIsChangingNotification
NSPersistentStoreCoordinatorStoresDidChangeNotification
NSPersistentStoreCoordinatorStoresWillChangeNotification
NSPersistentStoreCoordinatorWillRemoveStoreNotification
NSPersistentStoreDidImportUbiquitousContentChangesNotification
NSPopUpButtonCellWillPopUpNotification
NSPopUpButtonWillPopUpNotification
NSPopoverDidCloseNotification
NSPopoverDidShowNotification
NSPopoverWillCloseNotification
NSPopoverWillShowNotification
NSPortDidBecomeInvalidNotification
NSPreferencePaneCancelUnselectNotification
NSPreferencePaneDoUnselectNotification
NSPreferredScrollerStyleDidChangeNotification
NSRuleEditorRowsDidChangeNotification
NSScreenColorSpaceDidChangeNotification
NSScrollViewDidEndLiveMagnifyNotification
NSScrollViewDidEndLiveScrollNotification
NSScrollViewDidLiveScrollNotification
NSScrollViewWillStartLiveMagnifyNotification
NSScrollViewWillStartLiveScrollNotification
NSSpellCheckerDidChangeAutomaticDashSubstitutionNotification
NSSpellCheckerDidChangeAutomaticQuoteSubstitutionNotification
NSSpellCheckerDidChangeAutomaticSpellingCorrectionNotification
NSSpellCheckerDidChangeAutomaticTextReplacementNotification
NSSplitViewDidResizeSubviewsNotification
NSSplitViewWillResizeSubviewsNotification
NSSystemClockDidChangeNotification
NSSystemColorsDidChangeNotification
NSSystemTimeZoneDidChangeNotification
NSTableViewColumnDidMoveNotification
NSTableViewColumnDidResizeNotification
NSTableViewSelectionDidChangeNotification
NSTableViewSelectionIsChangingNotification
NSTaskDidTerminateNotification
NSTextAlternativesSelectedAlternativeStringNotification
NSTextDidBeginEditingNotification
NSTextDidChangeNotification
NSTextDidEndEditingNotification
NSTextInputContextKeyboardSelectionDidChangeNotification
NSTextStorageDidProcessEditingNotification
NSTextStorageWillProcessEditingNotification
NSTextViewDidChangeSelectionNotification
NSTextViewDidChangeTypingAttributesNotification
NSTextViewWillChangeNotifyingTextViewNotification
NSThreadWillExitNotification
NSToolbarDidRemoveItemNotification
NSToolbarWillAddItemNotification
NSURLCredentialStorageChangedNotification
NSUbiquitousKeyValueStoreDidChangeExternallyNotification
NSUbiquityIdentityDidChangeNotification
NSUndoManagerCheckpointNotification
NSUndoManagerDidCloseUndoGroupNotification
NSUndoManagerDidOpenUndoGroupNotification
NSUndoManagerDidRedoChangeNotification
NSUndoManagerDidUndoChangeNotification
NSUndoManagerWillCloseUndoGroupNotification
NSUndoManagerWillRedoChangeNotification
NSUndoManagerWillUndoChangeNotification
NSUserDefaultsDidChangeNotification
NSUserNotification
NSViewBoundsDidChangeNotification
NSViewDidUpdateTrackingAreasNotification
NSViewFocusDidChangeNotification
NSViewFrameDidChangeNotification
NSViewGlobalFrameDidChangeNotification
NSWillBecomeMultiThreadedNotification
NSWindowDidBecomeKeyNotification
NSWindowDidBecomeMainNotification
NSWindowDidChangeBackingPropertiesNotification
NSWindowDidChangeOcclusionStateNotification
NSWindowDidChangeScreenNotification
NSWindowDidChangeScreenProfileNotification
NSWindowDidDeminiaturizeNotification
NSWindowDidEndLiveResizeNotification
NSWindowDidEndSheetNotification
NSWindowDidEnterFullScreenNotification
NSWindowDidEnterVersionBrowserNotification
NSWindowDidExitFullScreenNotification
NSWindowDidExitVersionBrowserNotification
NSWindowDidExposeNotification
NSWindowDidMiniaturizeNotification
NSWindowDidMoveNotification
NSWindowDidResignKeyNotification
NSWindowDidResignMainNotification
NSWindowDidResizeNotification
NSWindowDidUpdateNotification
NSWindowWillBeginSheetNotification
NSWindowWillCloseNotification
NSWindowWillEnterFullScreenNotification
NSWindowWillEnterVersionBrowserNotification
NSWindowWillExitFullScreenNotification
NSWindowWillExitVersionBrowserNotification
NSWindowWillMiniaturizeNotification
NSWindowWillMoveNotification
NSWindowWillStartLiveResizeNotification
NSWorkspaceActiveSpaceDidChangeNotification
NSWorkspaceDidActivateApplicationNotification
NSWorkspaceDidChangeFileLabelsNotification
NSWorkspaceDidDeactivateApplicationNotification
NSWorkspaceDidHideApplicationNotification
NSWorkspaceDidLaunchApplicationNotification
NSWorkspaceDidMountNotification
NSWorkspaceDidPerformFileOperationNotification
NSWorkspaceDidRenameVolumeNotification
NSWorkspaceDidTerminateApplicationNotification
NSWorkspaceDidUnhideApplicationNotification
NSWorkspaceDidUnmountNotification
NSWorkspaceDidWakeNotification
NSWorkspaceScreensDidSleepNotification
NSWorkspaceScreensDidWakeNotification
NSWorkspaceSessionDidBecomeActiveNotification
NSWorkspaceSessionDidResignActiveNotification
NSWorkspaceWillLaunchApplicationNotification
NSWorkspaceWillPowerOffNotification
NSWorkspaceWillSleepNotification
NSWorkspaceWillUnmountNotification
UIAccessibilityAnnouncementDidFinishNotification
UIAccessibilityBoldTextStatusDidChangeNotification
UIAccessibilityClosedCaptioningStatusDidChangeNotification
UIAccessibilityDarkerSystemColorsStatusDidChangeNotification
UIAccessibilityGrayscaleStatusDidChangeNotification
UIAccessibilityGuidedAccessStatusDidChangeNotification
UIAccessibilityInvertColorsStatusDidChangeNotification
UIAccessibilityMonoAudioStatusDidChangeNotification
UIAccessibilityNotification
UIAccessibilityReduceMotionStatusDidChangeNotification
UIAccessibilityReduceTransparencyStatusDidChangeNotification
UIAccessibilitySpeakScreenStatusDidChangeNotification
UIAccessibilitySpeakSelectionStatusDidChangeNotification
UIAccessibilitySwitchControlStatusDidChangeNotification
UIApplicationBackgroundRefreshStatusDidChangeNotification
UIApplicationDidBecomeActiveNotification
UIApplicationDidChangeStatusBarFrameNotification
UIApplicationDidChangeStatusBarOrientationNotification
UIApplicationDidEnterBackgroundNotification
UIApplicationDidFinishLaunchingNotification
UIApplicationDidReceiveMemoryWarningNotification
UIApplicationLaunchOptionsLocalNotification
UIApplicationLaunchOptionsRemoteNotification
UIApplicationSignificantTimeChangeNotification
UIApplicationUserDidTakeScreenshotNotification
UIApplicationWillChangeStatusBarFrameNotification
UIApplicationWillChangeStatusBarOrientationNotification
UIApplicationWillEnterForegroundNotification
UIApplicationWillResignActiveNotification
UIApplicationWillTerminateNotification
UIContentSizeCategoryDidChangeNotification
UIDeviceBatteryLevelDidChangeNotification
UIDeviceBatteryStateDidChangeNotification
UIDeviceOrientationDidChangeNotification
UIDeviceProximityStateDidChangeNotification
UIDocumentStateChangedNotification
UIKeyboardDidChangeFrameNotification
UIKeyboardDidHideNotification
UIKeyboardDidShowNotification
UIKeyboardWillChangeFrameNotification
UIKeyboardWillHideNotification
UIKeyboardWillShowNotification
UILocalNotification
UIMenuControllerDidHideMenuNotification
UIMenuControllerDidShowMenuNotification
UIMenuControllerMenuFrameDidChangeNotification
UIMenuControllerWillHideMenuNotification
UIMenuControllerWillShowMenuNotification
UIPasteboardChangedNotification
UIPasteboardRemovedNotification
UIScreenBrightnessDidChangeNotification
UIScreenDidConnectNotification
UIScreenDidDisconnectNotification
UIScreenModeDidChangeNotification
UITableViewSelectionDidChangeNotification
UITextFieldTextDidBeginEditingNotification
UITextFieldTextDidChangeNotification
UITextFieldTextDidEndEditingNotification
UITextInputCurrentInputModeDidChangeNotification
UITextViewTextDidBeginEditingNotification
UITextViewTextDidChangeNotification
UITextViewTextDidEndEditingNotification
UIViewControllerShowDetailTargetDidChangeNotification
UIWindowDidBecomeHiddenNotification
UIWindowDidBecomeKeyNotification
UIWindowDidBecomeVisibleNotification
UIWindowDidResignKeyNotification

View File

@ -0,0 +1,457 @@
NSAccessibilityPriorityLevel
NSActivityOptions
NSAlertStyle
NSAlignmentOptions
NSAnimationBlockingMode
NSAnimationCurve
NSAnimationEffect
NSAnimationProgress
NSAppleEventManagerSuspensionID
NSApplicationActivationOptions
NSApplicationActivationPolicy
NSApplicationDelegateReply
NSApplicationOcclusionState
NSApplicationPresentationOptions
NSApplicationPrintReply
NSApplicationTerminateReply
NSAttributeType
NSAttributedStringEnumerationOptions
NSBackgroundStyle
NSBackingStoreType
NSBezelStyle
NSBezierPathElement
NSBinarySearchingOptions
NSBitmapFormat
NSBitmapImageFileType
NSBorderType
NSBoxType
NSBrowserColumnResizingType
NSBrowserDropOperation
NSButtonType
NSByteCountFormatterCountStyle
NSByteCountFormatterUnits
NSCalculationError
NSCalendarOptions
NSCalendarUnit
NSCellAttribute
NSCellImagePosition
NSCellStateValue
NSCellType
NSCharacterCollection
NSCollectionViewDropOperation
NSColorPanelMode
NSColorRenderingIntent
NSColorSpaceModel
NSComparisonPredicateModifier
NSComparisonPredicateOptions
NSComparisonResult
NSCompositingOperation
NSCompoundPredicateType
NSControlCharacterAction
NSControlSize
NSControlTint
NSCorrectionIndicatorType
NSCorrectionResponse
NSDataReadingOptions
NSDataSearchOptions
NSDataWritingOptions
NSDateFormatterBehavior
NSDateFormatterStyle
NSDatePickerElementFlags
NSDatePickerMode
NSDatePickerStyle
NSDeleteRule
NSDirectoryEnumerationOptions
NSDocumentChangeType
NSDragOperation
NSDraggingContext
NSDraggingFormation
NSDraggingItemEnumerationOptions
NSDrawerState
NSEntityMappingType
NSEnumerationOptions
NSEventGestureAxis
NSEventMask
NSEventPhase
NSEventSwipeTrackingOptions
NSEventType
NSExpressionType
NSFetchRequestResultType
NSFileCoordinatorReadingOptions
NSFileCoordinatorWritingOptions
NSFileManagerItemReplacementOptions
NSFileVersionAddingOptions
NSFileVersionReplacingOptions
NSFileWrapperReadingOptions
NSFileWrapperWritingOptions
NSFindPanelAction
NSFindPanelSubstringMatchType
NSFocusRingPlacement
NSFocusRingType
NSFontAction
NSFontCollectionVisibility
NSFontFamilyClass
NSFontRenderingMode
NSFontSymbolicTraits
NSFontTraitMask
NSGlyph
NSGlyphInscription
NSGlyphLayoutMode
NSGlyphProperty
NSGradientDrawingOptions
NSGradientType
NSHTTPCookieAcceptPolicy
NSHashEnumerator
NSHashTableOptions
NSImageAlignment
NSImageCacheMode
NSImageFrameStyle
NSImageInterpolation
NSImageLoadStatus
NSImageRepLoadStatus
NSImageScaling
NSInsertionPosition
NSInteger
NSJSONReadingOptions
NSJSONWritingOptions
NSKeyValueChange
NSKeyValueObservingOptions
NSKeyValueSetMutationKind
NSLayoutAttribute
NSLayoutConstraintOrientation
NSLayoutDirection
NSLayoutFormatOptions
NSLayoutPriority
NSLayoutRelation
NSLayoutStatus
NSLevelIndicatorStyle
NSLineBreakMode
NSLineCapStyle
NSLineJoinStyle
NSLineMovementDirection
NSLineSweepDirection
NSLinguisticTaggerOptions
NSLocaleLanguageDirection
NSManagedObjectContextConcurrencyType
NSMapEnumerator
NSMapTableOptions
NSMatchingFlags
NSMatchingOptions
NSMatrixMode
NSMediaLibrary
NSMenuProperties
NSMergePolicyType
NSModalSession
NSMultibyteGlyphPacking
NSNetServiceOptions
NSNetServicesError
NSNotificationCoalescing
NSNotificationSuspensionBehavior
NSNumberFormatterBehavior
NSNumberFormatterPadPosition
NSNumberFormatterRoundingMode
NSNumberFormatterStyle
NSOpenGLContextAuxiliary
NSOpenGLPixelFormatAttribute
NSOpenGLPixelFormatAuxiliary
NSOperationQueuePriority
NSPDFPanelOptions
NSPageControllerTransitionStyle
NSPaperOrientation
NSPasteboardReadingOptions
NSPasteboardWritingOptions
NSPathStyle
NSPersistentStoreRequestType
NSPersistentStoreUbiquitousTransitionType
NSPoint
NSPointerFunctionsOptions
NSPointingDeviceType
NSPopUpArrowPosition
NSPopoverAppearance
NSPopoverBehavior
NSPostingStyle
NSPredicateOperatorType
NSPrintPanelOptions
NSPrintRenderingQuality
NSPrinterTableStatus
NSPrintingOrientation
NSPrintingPageOrder
NSPrintingPaginationMode
NSProgressIndicatorStyle
NSProgressIndicatorThickness
NSProgressIndicatorThreadInfo
NSPropertyListFormat
NSPropertyListMutabilityOptions
NSPropertyListReadOptions
NSPropertyListWriteOptions
NSQTMovieLoopMode
NSRange
NSRect
NSRectEdge
NSRegularExpressionOptions
NSRelativePosition
NSRemoteNotificationType
NSRequestUserAttentionType
NSRoundingMode
NSRuleEditorNestingMode
NSRuleEditorRowType
NSRulerOrientation
NSSaveOperationType
NSSaveOptions
NSScreenAuxiliaryOpaque
NSScrollArrowPosition
NSScrollElasticity
NSScrollViewFindBarPosition
NSScrollerArrow
NSScrollerKnobStyle
NSScrollerPart
NSScrollerStyle
NSSearchPathDirectory
NSSearchPathDomainMask
NSSegmentStyle
NSSegmentSwitchTracking
NSSelectionAffinity
NSSelectionDirection
NSSelectionGranularity
NSSharingContentScope
NSSize
NSSliderType
NSSnapshotEventType
NSSocketNativeHandle
NSSortOptions
NSSpeechBoundary
NSSplitViewDividerStyle
NSStackViewGravity
NSStreamEvent
NSStreamStatus
NSStringCompareOptions
NSStringDrawingOptions
NSStringEncoding
NSStringEncodingConversionOptions
NSStringEnumerationOptions
NSSwappedDouble
NSSwappedFloat
NSTIFFCompression
NSTabState
NSTabViewType
NSTableViewAnimationOptions
NSTableViewColumnAutoresizingStyle
NSTableViewDraggingDestinationFeedbackStyle
NSTableViewDropOperation
NSTableViewGridLineStyle
NSTableViewRowSizeStyle
NSTableViewSelectionHighlightStyle
NSTaskTerminationReason
NSTestComparisonOperation
NSTextAlignment
NSTextBlockDimension
NSTextBlockLayer
NSTextBlockValueType
NSTextBlockVerticalAlignment
NSTextCheckingType
NSTextCheckingTypes
NSTextFieldBezelStyle
NSTextFinderAction
NSTextFinderMatchingType
NSTextLayoutOrientation
NSTextStorageEditActions
NSTextTabType
NSTextTableLayoutAlgorithm
NSTextWritingDirection
NSThreadPrivate
NSTickMarkPosition
NSTimeInterval
NSTimeZoneNameStyle
NSTitlePosition
NSTokenStyle
NSToolTipTag
NSToolbarDisplayMode
NSToolbarSizeMode
NSTouchPhase
NSTrackingAreaOptions
NSTrackingRectTag
NSTypesetterBehavior
NSTypesetterControlCharacterAction
NSTypesetterGlyphInfo
NSUInteger
NSURLBookmarkCreationOptions
NSURLBookmarkFileCreationOptions
NSURLBookmarkResolutionOptions
NSURLCacheStoragePolicy
NSURLCredentialPersistence
NSURLHandleStatus
NSURLRequestCachePolicy
NSURLRequestNetworkServiceType
NSURLSessionAuthChallengeDisposition
NSURLSessionResponseDisposition
NSURLSessionTaskState
NSUnderlineStyle
NSUsableScrollerParts
NSUserInterfaceLayoutDirection
NSUserInterfaceLayoutOrientation
NSUserNotificationActivationType
NSViewLayerContentsPlacement
NSViewLayerContentsRedrawPolicy
NSVolumeEnumerationOptions
NSWhoseSubelementIdentifier
NSWindingRule
NSWindowAnimationBehavior
NSWindowBackingLocation
NSWindowButton
NSWindowCollectionBehavior
NSWindowDepth
NSWindowNumberListOptions
NSWindowOcclusionState
NSWindowOrderingMode
NSWindowSharingType
NSWorkspaceIconCreationOptions
NSWorkspaceLaunchOptions
NSWritingDirection
NSXMLDTDNodeKind
NSXMLDocumentContentKind
NSXMLNodeKind
NSXMLParserError
NSXMLParserExternalEntityResolvingPolicy
NSXPCConnectionOptions
NSZone
UIAccelerationValue
UIAccessibilityNavigationStyle
UIAccessibilityNotifications
UIAccessibilityScrollDirection
UIAccessibilityTraits
UIAccessibilityZoomType
UIActionSheetStyle
UIActivityCategory
UIActivityIndicatorViewStyle
UIAlertActionStyle
UIAlertControllerStyle
UIAlertViewStyle
UIApplicationState
UIAttachmentBehaviorType
UIBackgroundFetchResult
UIBackgroundRefreshStatus
UIBackgroundTaskIdentifier
UIBarButtonItemStyle
UIBarButtonSystemItem
UIBarMetrics
UIBarPosition
UIBarStyle
UIBaselineAdjustment
UIBlurEffectStyle
UIButtonType
UICollectionElementCategory
UICollectionUpdateAction
UICollectionViewScrollDirection
UICollectionViewScrollPosition
UICollisionBehaviorMode
UIControlContentHorizontalAlignment
UIControlContentVerticalAlignment
UIControlEvents
UIControlState
UIDataDetectorTypes
UIDatePickerMode
UIDeviceBatteryState
UIDeviceOrientation
UIDocumentChangeKind
UIDocumentMenuOrder
UIDocumentPickerMode
UIDocumentSaveOperation
UIDocumentState
UIEdgeInsets
UIEventSubtype
UIEventType
UIFontDescriptorClass
UIFontDescriptorSymbolicTraits
UIGestureRecognizerState
UIGuidedAccessRestrictionState
UIImageOrientation
UIImagePickerControllerCameraCaptureMode
UIImagePickerControllerCameraDevice
UIImagePickerControllerCameraFlashMode
UIImagePickerControllerQualityType
UIImagePickerControllerSourceType
UIImageRenderingMode
UIImageResizingMode
UIInputViewStyle
UIInterfaceOrientation
UIInterfaceOrientationMask
UIInterpolatingMotionEffectType
UIKeyModifierFlags
UIKeyboardAppearance
UIKeyboardType
UILayoutConstraintAxis
UILayoutPriority
UILineBreakMode
UIMenuControllerArrowDirection
UIModalPresentationStyle
UIModalTransitionStyle
UINavigationControllerOperation
UIOffset
UIPageViewControllerNavigationDirection
UIPageViewControllerNavigationOrientation
UIPageViewControllerSpineLocation
UIPageViewControllerTransitionStyle
UIPopoverArrowDirection
UIPrintInfoDuplex
UIPrintInfoOrientation
UIPrintInfoOutputType
UIPrinterJobTypes
UIProgressViewStyle
UIPushBehaviorMode
UIRectCorner
UIRectEdge
UIRemoteNotificationType
UIReturnKeyType
UIScreenOverscanCompensation
UIScrollViewIndicatorStyle
UIScrollViewKeyboardDismissMode
UISearchBarIcon
UISearchBarStyle
UISegmentedControlSegment
UISegmentedControlStyle
UISplitViewControllerDisplayMode
UIStatusBarAnimation
UIStatusBarStyle
UISwipeGestureRecognizerDirection
UISystemAnimation
UITabBarItemPositioning
UITabBarSystemItem
UITableViewCellAccessoryType
UITableViewCellEditingStyle
UITableViewCellSelectionStyle
UITableViewCellSeparatorStyle
UITableViewCellStateMask
UITableViewCellStyle
UITableViewRowActionStyle
UITableViewRowAnimation
UITableViewScrollPosition
UITableViewStyle
UITextAlignment
UITextAutocapitalizationType
UITextAutocorrectionType
UITextBorderStyle
UITextDirection
UITextFieldViewMode
UITextGranularity
UITextLayoutDirection
UITextSpellCheckingType
UITextStorageDirection
UITextWritingDirection
UITouchPhase
UIUserInterfaceIdiom
UIUserInterfaceLayoutDirection
UIUserInterfaceSizeClass
UIUserNotificationActionContext
UIUserNotificationActivationMode
UIUserNotificationType
UIViewAnimationCurve
UIViewAnimationOptions
UIViewAnimationTransition
UIViewAutoresizing
UIViewContentMode
UIViewKeyframeAnimationOptions
UIViewTintAdjustmentMode
UIWebPaginationBreakingMode
UIWebPaginationMode
UIWebViewNavigationType
UIWindowLevel

View File

@ -0,0 +1,63 @@
#!/usr/bin/python
'''
Lists Cocoa methods in given file or ./cocoa_indexes/methods.txt by default.
'''
import re, os, gzip
from cocoa_definitions import default_headers, format_function_line
def get_methods(headers):
'''Returns list of Cocoa methods.'''
matches = []
for header in headers:
f = open(header, 'r')
current_class = ''
for line in f:
if current_class == '':
if line[:10] == '@interface' or line[:9] == '@protocol':
current_class = re.match('@(interface|protocol)\s+(\w+)',
line).group(2)
else:
if line[:3] == '@end':
current_class = ''
elif re.match('[-+]\s*\(', line):
method_name = get_method_name(line)
if method_name:
match = current_class + ' ' + method_name
if match not in matches:
matches.append(match)
f.close()
matches = [format_line(line) for line in matches]
matches.sort()
return matches
def get_method_name(line):
'''Returns the method name & argument types for the given line.'''
if re.search('\w+\s*:', line):
return ' '.join(re.findall('\w+\s*:\s*\(.*?\)', line))
else:
return re.match(r'[-+]\s*\(.*?\)\s*(\w+)', line).group(1)
def format_line(line):
'''Removes parentheses/comments/unnecessary spacing for the given line.'''
line = re.sub(r'\s*:\s*', ':', line)
line = re.sub(r'/\*.*?\*/\s*|[()]', '', line)
line = re.sub(r'(NS\S+)Pointer', r'\1 *', line)
return format_function_line(line)
def extract_file_to(fname=None):
'''
Extracts methods to given file or ./cocoa_indexes/methods.txt by default.
'''
if fname is None:
fname = './cocoa_indexes/methods.txt.gz'
if not os.path.isdir(os.path.dirname(fname)):
os.mkdir(os.path.dirname(fname))
# This file is quite large, so I've compressed it.
f = gzip.open(fname, 'w')
f.write("\n".join(get_methods(default_headers())))
f.close()
if __name__ == '__main__':
from sys import argv
extract_file_to(argv[1] if len(argv) > 1 else None)

Binary file not shown.

View File

@ -0,0 +1,47 @@
/* -framework Foundation -Os -Wmost -dead_strip */
/* Returns list of superclasses ready to be used by grep. */
#import <Foundation/Foundation.h>
#import <objc/objc-runtime.h>
void usage()
{
fprintf(stderr, "Usage: superclasses class_name framework\n");
}
void print_superclasses(const char classname[], const char framework[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
/* Foundation is already included, so no need to load it again. */
if (strncmp(framework, "Foundation", 256) != 0) {
NSString *bundle =
[@"/System/Library/Frameworks/" stringByAppendingString:
[[NSString stringWithUTF8String:framework]
stringByAppendingPathExtension:@"framework"]];
[[NSBundle bundleWithPath:bundle] load];
}
Class aClass = NSClassFromString([NSString stringWithUTF8String:classname]);
char buf[BUFSIZ];
strncpy(buf, classname, BUFSIZ);
while ((aClass = class_getSuperclass(aClass)) != nil) {
strncat(buf, "\\|", BUFSIZ);
strncat(buf, [NSStringFromClass(aClass) UTF8String], BUFSIZ);
}
printf("%s\n", buf);
[pool drain];
}
int main(int argc, char const* argv[])
{
if (argc < 3 || argv[1][0] == '-')
usage();
else {
int i;
for (i = 1; i < argc - 1; i += 2)
print_superclasses(argv[i], argv[i + 1]);
}
return 0;
}

View File

@ -0,0 +1,4 @@
dir=`dirname $0`
classes=`grep -m 1 ^$1 ${dir}/cocoa_indexes/classes.txt`
if [ -z "$classes" ]; then exit; fi
zgrep "^\($classes\)" ${dir}/cocoa_indexes/methods.txt.gz | sed 's/^[^ ]* //'

View File

@ -0,0 +1,16 @@
" File: cocoa.vim
" Author: Michael Sanders (msanders42 [at] gmail [dot] com)
if exists('s:did_cocoa') || &cp || version < 700
finish
endif
let s:did_cocoa = 1
" These have to load after the normal ftplugins to override the defaults; I'd
" like to put this in ftplugin/objc_cocoa_mappings.vim, but that doesn't seem
" to work..
au FileType objc ru after/syntax/objc_enhanced.vim
\| let b:match_words = '@\(implementation\|interface\):@end'
\| setl inc=^\s*#\s*import omnifunc=objc#cocoacomplete#Complete
\| if globpath(expand('<afile>:p:h'), '*.xcodeproj') != '' |
\ setl makeprg=open\ -a\ xcode\ &&\ osascript\ -e\ 'tell\ app\ \"Xcode\"\ to\ build'
\| endif

View File

@ -0,0 +1,6 @@
Copyright (c) 2014 Keith Smiley (http://keith.so)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -0,0 +1,37 @@
# Swift.vim
Syntax and indent files for [Swift](https://developer.apple.com/swift/)
If you don't have a preferred installation method check out
[vim-plug](https://github.com/junegunn/vim-plug).
## Examples
![](https://raw.githubusercontent.com/keith/swift.vim/master/screenshots/screen.png)
![](https://raw.githubusercontent.com/keith/swift.vim/master/screenshots/screen2.png)
## [Syntastic](https://github.com/scrooloose/syntastic/) Integration
swift.vim can show errors inline from
[swift package manager](https://github.com/apple/swift-package-manager/)
or from [swiftlint](https://github.com/realm/SwiftLint) using
[syntastic](https://github.com/scrooloose/syntastic/).
![](https://raw.githubusercontent.com/keith/swift.vim/master/screenshots/screen3.png)
### Usage
- Install [syntastic](https://github.com/scrooloose/syntastic/)
- swiftpm integration will be automatically enabled if you're running vim
from a directory containing a `Package.swift` file.
- SwiftLint integration will be automatically enabled if you have
SwiftLint installed and if you're running vim from a directory
containing a `.swiftlint.yml` file.
- To enable both at once add this to your vimrc:
```vim
let g:syntastic_swift_checkers = ['swiftpm', 'swiftlint']
```

View File

@ -0,0 +1,48 @@
function! ale_linters#swift#swiftlint#GetExecutable(buffer)
if get(g:, 'ale_swift_swiftlint_use_defaults', 0) || filereadable('.swiftlint.yml')
return 'swiftlint'
endif
return ''
endfunction
function! ale_linters#swift#swiftlint#Handle(buffer, lines)
" Match and ignore file path (anything but ':')
" Match and capture line number
" Match and capture optional column number
" Match and capture warning level ('error' or 'warning')
" Match and capture anything in the message
let l:pattern = '^[^:]\+:\(\d\+\):\(\d\+\)\?:\?\s*\(\w\+\):\s*\(.*\)$'
let l:output = []
for l:line in a:lines
let l:match = matchlist(l:line, l:pattern)
if len(l:match) == 0
continue
endif
let l:line_number = l:match[1]
let l:column = l:match[2]
let l:type = toupper(l:match[3][0])
let l:text = l:match[4]
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': l:line_number,
\ 'vcol': 0,
\ 'col': l:column,
\ 'text': l:text,
\ 'type': l:type,
\ })
endfor
return l:output
endfunction
call ale#linter#Define('swift', {
\ 'name': 'swiftlint',
\ 'executable_callback': 'ale_linters#swift#swiftlint#GetExecutable',
\ 'command': 'swiftlint lint --use-stdin',
\ 'callback': 'ale_linters#swift#swiftlint#Handle',
\ })

View File

@ -0,0 +1,60 @@
if !exists('g:ale_swift_swiftpm_executable')
let g:ale_swift_swiftpm_executable = 'swift'
endif
if !exists('g:ale_swift_swiftpm_arguments')
let g:ale_swift_swiftpm_arguments = 'build'
endif
function! ale_linters#swift#swiftpm#GetExecutable(buffer)
if !filereadable('Package.swift')
return ''
endif
return g:ale_swift_swiftpm_executable
endfunction
function! ale_linters#swift#swiftpm#GetCommand(buffer)
return g:ale_swift_swiftpm_executable
\ . ' '
\ . g:ale_swift_swiftpm_arguments
endfunction
function! ale_linters#swift#swiftpm#Handle(buffer, lines)
" Match and ignore file path (anything but :)
" Match and capture line number
" Match and capture column number
" Match and capture anything in the message
let l:pattern = '^[^:]\+:\(\d\+\):\(\d\+\):\s*error:\s*\(.*\)$'
let l:output = []
for l:line in a:lines
let l:match = matchlist(l:line, l:pattern)
if len(l:match) == 0
continue
endif
let l:line_number = l:match[1]
let l:column = l:match[2]
let l:text = l:match[3]
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': l:line_number,
\ 'vcol': 0,
\ 'col': l:column,
\ 'text': l:text,
\ 'type': 'E',
\ })
endfor
return l:output
endfunction
call ale#linter#Define('swift', {
\ 'name': 'swiftpm',
\ 'executable_callback': 'ale_linters#swift#swiftpm#GetExecutable',
\ 'command_callback': 'ale_linters#swift#swiftpm#GetCommand',
\ 'callback': 'ale_linters#swift#swiftpm#Handle',
\ })

View File

@ -0,0 +1,9 @@
--langdef=swift
--langmap=swift:.swift
--regex-swift=/[[:<:]]class[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/c,class/
--regex-swift=/[[:<:]]enum[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/e,enum/
--regex-swift=/[[:<:]]func[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/f,function/
--regex-swift=/[[:<:]]protocol[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/P,protocol/
--regex-swift=/[[:<:]]struct[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/s,struct/
--regex-swift=/[[:<:]]extension[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/E,extension/
--regex-swift=/[[:<:]]typealias[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/t,typealias/

View File

@ -0,0 +1,124 @@
//
// MainViewController.swift
// HackerNews
//
// Copyright (c) 2014 Amit Burstein. All rights reserved.
// See LICENSE for licensing information.
//
// Abstract:
// Handles fetching and displaying posts from Hacker News.
//
import UIKit
import QuartzCore
class MainViewController: UIViewController, UITableViewDataSource {
// MARK: Properties
let postCellIdentifier = "PostCell"
let showBrowserIdentifier = "ShowBrowser"
var postFilter = PostFilterType.Top
var posts = HNPost[]()
var refreshControl = UIRefreshControl()
@IBOutlet var tableView: UITableView
// MARK: Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
configureUI()
fetchPosts()
}
override func viewWillAppear(animated: Bool) {
tableView.deselectRowAtIndexPath(tableView.indexPathForSelectedRow(), animated: animated)
super.viewWillAppear(animated)
}
// MARK: Functions
func configureUI() {
refreshControl.addTarget(self, action: "fetchPosts", forControlEvents: .ValueChanged)
refreshControl.attributedTitle = NSAttributedString(string: "Pull to Refresh")
tableView.insertSubview(refreshControl, atIndex: 0)
}
func fetchPosts() {
UIApplication.sharedApplication().networkActivityIndicatorVisible = true;
HNManager.sharedManager().loadPostsWithFilter(postFilter, completion: { posts in
if (posts != nil && posts.count > 0) {
self.posts = posts as HNPost[]
dispatch_async(dispatch_get_main_queue(), {
self.tableView.reloadSections(NSIndexSet(index: 0), withRowAnimation: .Fade)
self.refreshControl.endRefreshing()
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
})
} else {
println("Could not fetch posts!")
self.refreshControl.endRefreshing()
UIApplication.sharedApplication().networkActivityIndicatorVisible = false;
}
})
}
func stylePostCellAsRead(cell: UITableViewCell) {
cell.textLabel.textColor = UIColor(red: 119/255.0, green: 119/255.0, blue: 119/255.0, alpha: 1)
cell.detailTextLabel.textColor = UIColor(red: 153/255.0, green: 153/255.0, blue: 153/255.0, alpha: 1)
}
// MARK: UITableViewDataSource
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return posts.count
}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
let cell = tableView.dequeueReusableCellWithIdentifier(postCellIdentifier) as UITableViewCell
let post = posts[indexPath.row]
if HNManager.sharedManager().hasUserReadPost(post) {
stylePostCellAsRead(cell)
}
cell.textLabel.text = post.Title
cell.detailTextLabel.text = "\(post.Points) points by \(post.Username)"
return cell
}
// MARK: UIViewController
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject) {
if segue.identifier == showBrowserIdentifier {
let webView = segue.destinationViewController as BrowserViewController
let cell = sender as UITableViewCell
let post = posts[tableView.indexPathForCell(cell).row]
HNManager.sharedManager().setMarkAsReadForPost(post)
stylePostCellAsRead(cell)
webView.post = post
}
}
// MARK: IBActions
@IBAction func changePostFilter(sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
postFilter = .Top
fetchPosts()
case 1:
postFilter = .New
fetchPosts()
case 2:
postFilter = .Ask
fetchPosts()
default:
println("Bad segment index!")
}
}
}

View File

@ -0,0 +1,11 @@
import UIKit
class Foo: FooViewController, BarScrollable {
var canScroll = false
override func viewDidLoad() {
baseURL = "http://www.oaklandpostonline.com/search/?q=&t=article&c[]=blogs*"
super.viewDidLoad()
}
}

View File

@ -0,0 +1,361 @@
#!/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -i
// This is a comment
let foo = 5 // another comment
/* this is also a comment */
// If statements so the indented comments are valid
if foo {
/* this is an indented comment */
}
if foo {
/* this is a multi level indented comment /* you know */ */
}
// comments check splelling
/* this is
a multi-line
/* you know */
/** foo
bar
*/
comment
*/
/// foo bar
"this is a string no splell checking"
"this is a string\" with an escaped quote"
// TODO: This is a todo comment
// XXX: This is another todo comment
// FIXME: this is another todo comment
// NOTE: this is another todo comment
/* TODO multiple */
// MARK: this is a marker
if foo {
// this is a indented comment
}
5 // int
5.5 // float
5e-2
5E2
5.5E-2
5.5e2
5.5f2
5.5abc5.5 // broken
0xa2ef // hex
0x123P432
0xa_2ef // hex with underscore
0x13p-43
0x13r-43
0x213zdf // broken hex
0b10101 // binary
0b1010_1 // binary with underscore
0b1234 // broken binary
0o567 // octal
0o56_7 // octal with underscore
0o5689 // broken octal
1_000_000 // underscore separated million
1_000_0000_ // broken underscore separated number
1_000_0000. // broken underscore separated float
1_000_000.000_000_1 // just over one million
1_18181888_2.1.1 // broken underscore padded double
1_18181888_2.1 // valid according to swift repl
1_0_0 // valid 100
1_0_000.2 // valid 10000.2
1_____0.2________20___2 // also valid 10.2202
4__3.2_33_33 // valid 43.233
// Operators
~
!
%
^
&
2 * 2
-
+
=
|
2 / 5
.
>
<
a != b
a != b
a !== b
a !== b
%=
&%
&&
&&=
let a = 10 &* 20
&+
&-
8 &/ 20
&=
let a *= 20
++
+=
--
-=
..
...
let b = 50 /= 20
<<
<=
=<<
==
===
>=
>>
>>=
^=
|=
||
||=
~=
// Custom Operators
infix operator {
precedence 20 // Define precedence
associativity none // Define associativity
}
true
false
class Shape : NSObject {
var foo: String
var qux: String = "abcd"
let bar = String?[]()
let baz = String()?
let foo = Int()
init(thing: String) {
foo = thing
super.init(thing)
let bar:String= "123"
bar!
}
func foo(thing1 : String, 2thing : Int52) {
}
func bar(thing: String?){
}
}
import Cocoa
struct Thing: NSString {
var foo : Int
}
enum Card : Int {
case Spade = 1
case Heart
case Diamond
case Club
indirect case Foo(a: Card)
}
let indirect = 5
struct foo : bar {
switch (foo) {
case foo:
foo
case bar:
default:
stuff
case baz:
fuck
case bar:
bafsd
}
func foo() {
}
func bar(asdf: String) -> Bool {
}
func baz() -> (Foo, Bar)
{
}
func asdf<T>() {
}
}
struct ArgumentList {
var arguments: String[]
init(argv: UnsafePointer<CString>,
count: CInt)
{
foo
}
}
let a : UnsafePointer<CString>
func foo<T: Sequence>() {
}
init(argv: UnsafePointer<CString>, count: CInt) {
for i in 1..count {
let index = Int(i)
let arg = String.fromCString(argv[index])
arguments.append(arg)
}
}
func simpleDescription() -> String {
return "A shape with \(numberOfSides.toRaw()) sides."
}
let library = [
Movie(name: "foo bar",
dfasdfsdfdirector: "someone",
foo: "bar",
bazzzer: "qux")
]
foo as? String
let foo : Int = bar ?? 5
let arg: String = "123"
hello<String>(arg, arg2: 1.0, arg3: arg, arg4: "foo", arg5: false)
class MainViewController: UIViewController, UITableViewDataSource {}
@IBAction func changePostFilter(sender: UISegmentedControl) {}
override func prepareForSegue(segue: UIStoryboardSegue,
sender: AnyObject) {}
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {}
lazy var foo : String
#if foo
bar
#elseif baz
qux
#else
quix
#endif
client.host = "example.com"
client.pathPrefix = "/foo/"
@available(*, unavailable, renamed="bar", introduced=1.0, deprecated=2.2, message="hi")
func foo () {
override func loadView() {
super.loadView()
if foo {
foobar
}
}
}
let foo = CGRectMake(0, (5 - 2),
100, 200)
let dict = [
"foo": "Bar",
"nest": [
"fadsf",
]
]
if #available(OSX 10.10.3, *) {
// Use APIs OS X 10.10.3 and onwards
}
if #available(watchOS 2, iOS 9.0, OSX 10.11, *) {
// APIs available to watchOS 2.0, iOS 9.0, OSX 10.11 and onwards
}
// Tests backslashes in strings
"\\".uppercaseString()
"foo \(1 + 1)"
string.rangeOfString("^/Date\\(")
public var `extension`: String?
/**
This is the comment body
- parameter first: The first parameter
- Parameter first: The first parameter
- returns: Some value
*/
public let fareEstimate: FareEstimate //= (nil, nil) // comment should be highlighted as comment
// optionalFrom should be highlighted the same way
// Operator should also be highlighted
key = map.optionalFrom("string") ?? []
key = map.optionalFrom("string")
thing = map.optionalFrom("string") ?? .Fallback
// This should not break all highlighting
print("Copying \(NSProcessInfo().environment["SCRIPT_INPUT_FILE_\(index)"]!)")
// Neither should this
return addressParts.count == 2 ? addressParts[1] : "\(addressParts[1]), \(addressParts[2])"
// This is multiline garbage
"foo
bar
baz"
guard let path = NSBundle.mainBundle().pathForResource(imageName, ofType: "png"),
let data = NSData(contentsOfFile: path),
let data = NSData(contentsOfFile: path) else
{
}
UIView.animateWithDuration(duration, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: .CurveEaseInOut, animations: {
view.backgroundColor = UIColor.redColor()
}) { finished in
print("indent?")
}
// Indent last line should hold
self.init(className: "Item", dictionary: [
"identifier": item.identifier,
"title": item.title,
"link": item.link,
"date": item.date,
"summary": item.summary])
XCAssertEqual(variables as NSDictionary, expectedVariables as NSDictionary, "\(template)")

View File

@ -0,0 +1,12 @@
autocmd BufNewFile,BufRead *.swift set filetype=swift
autocmd BufRead * call s:Swift()
function! s:Swift()
if !empty(&filetype)
return
endif
let line = getline(1)
if line =~ "^#!.*swift"
setfiletype swift
endif
endfunction

View File

@ -0,0 +1,4 @@
setlocal commentstring=//\ %s
" @-@ adds the literal @ to iskeyword for @IBAction and similar
setlocal iskeyword+=@-@,#
setlocal completefunc=syntaxcomplete#Complete

View File

@ -0,0 +1,238 @@
" File: swift.vim
" Author: Keith Smiley
" Description: The indent file for Swift
" Last Modified: December 05, 2014
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
let s:cpo_save = &cpo
set cpo&vim
setlocal nosmartindent
setlocal indentkeys-=e
setlocal indentkeys+=0]
setlocal indentexpr=SwiftIndent()
function! s:NumberOfMatches(char, string, index)
let instances = 0
let i = 0
while i < strlen(a:string)
if a:string[i] == a:char && !s:IsExcludedFromIndentAtPosition(a:index, i + 1)
let instances += 1
endif
let i += 1
endwhile
return instances
endfunction
function! s:SyntaxNameAtPosition(line, column)
return synIDattr(synID(a:line, a:column, 0), "name")
endfunction
function! s:SyntaxName()
return s:SyntaxNameAtPosition(line("."), col("."))
endfunction
function! s:IsExcludedFromIndentAtPosition(line, column)
let name = s:SyntaxNameAtPosition(a:line, a:column)
return name ==# "swiftComment" || name ==# "swiftString"
endfunction
function! s:IsExcludedFromIndent()
return s:SyntaxName() ==# "swiftComment" || s:SyntaxName() ==# "swiftString"
endfunction
function! s:IsCommentLine(lnum)
return synIDattr(synID(a:lnum,
\ match(getline(a:lnum), "\S") + 1, 0), "name")
\ ==# "swiftComment"
endfunction
function! SwiftIndent(...)
let clnum = a:0 ? a:1 : v:lnum
let line = getline(clnum)
let previousNum = prevnonblank(clnum - 1)
while s:IsCommentLine(previousNum) != 0
let previousNum = prevnonblank(previousNum - 1)
endwhile
let previous = getline(previousNum)
let cindent = cindent(clnum)
let previousIndent = indent(previousNum)
let numOpenParens = s:NumberOfMatches("(", previous, previousNum)
let numCloseParens = s:NumberOfMatches(")", previous, previousNum)
let numOpenBrackets = s:NumberOfMatches("{", previous, previousNum)
let numCloseBrackets = s:NumberOfMatches("}", previous, previousNum)
let currentOpenBrackets = s:NumberOfMatches("{", line, clnum)
let currentCloseBrackets = s:NumberOfMatches("}", line, clnum)
let numOpenSquare = s:NumberOfMatches("[", previous, previousNum)
let numCloseSquare = s:NumberOfMatches("]", previous, previousNum)
let currentCloseSquare = s:NumberOfMatches("]", line, clnum)
if numOpenSquare > numCloseSquare && currentCloseSquare < 1
return previousIndent + shiftwidth()
endif
if currentCloseSquare > 0 && line !~ '\v\[.*\]'
let column = col(".")
call cursor(line("."), 1)
let openingSquare = searchpair("\\[", "", "\\]", "bWn", "s:IsExcludedFromIndent()")
call cursor(line("."), column)
if openingSquare == 0
return -1
endif
" - Line starts with closing square, indent as opening square
if line =~ '\v^\s*]'
return indent(openingSquare)
endif
" - Line contains closing square and more, indent a level above opening
return indent(openingSquare) + shiftwidth()
endif
if line =~ ":$"
let switch = search("switch", "bWn")
return indent(switch)
elseif previous =~ ":$"
return previousIndent + shiftwidth()
endif
if numOpenParens == numCloseParens
if numOpenBrackets > numCloseBrackets
if currentCloseBrackets > currentOpenBrackets || line =~ "\\v^\\s*}"
let column = col(".")
call cursor(line("."), 1)
let openingBracket = searchpair("{", "", "}", "bWn", "s:IsExcludedFromIndent()")
call cursor(line("."), column)
if openingBracket == 0
return -1
else
return indent(openingBracket)
endif
endif
return previousIndent + shiftwidth()
elseif previous =~ "}.*{"
if line =~ "\\v^\\s*}"
return previousIndent
endif
return previousIndent + shiftwidth()
elseif line =~ "}.*{"
let openingBracket = searchpair("{", "", "}", "bWn", "s:IsExcludedFromIndent()")
return indent(openingBracket)
elseif currentCloseBrackets > currentOpenBrackets
let column = col(".")
call cursor(line("."), 1)
let openingBracket = searchpair("{", "", "}", "bWn", "s:IsExcludedFromIndent()")
call cursor(line("."), column)
let bracketLine = getline(openingBracket)
let numOpenParensBracketLine = s:NumberOfMatches("(", bracketLine, openingBracket)
let numCloseParensBracketLine = s:NumberOfMatches(")", bracketLine, openingBracket)
if numCloseParensBracketLine > numOpenParensBracketLine
let line = line(".")
let column = col(".")
call cursor(openingParen, column)
let openingParen = searchpair("(", "", ")", "bWn", "s:IsExcludedFromIndent()")
call cursor(line, column)
return indent(openingParen)
endif
return indent(openingBracket)
else
" - Current line is blank, and the user presses 'o'
return previousIndent
endif
endif
if numCloseParens > 0
if currentOpenBrackets > 0 || currentCloseBrackets > 0
if currentOpenBrackets > 0
if numOpenBrackets > numCloseBrackets
return previousIndent + shiftwidth()
endif
if line =~ "}.*{"
let openingBracket = searchpair("{", "", "}", "bWn", "s:IsExcludedFromIndent()")
return indent(openingBracket)
endif
if numCloseParens > numOpenParens
let line = line(".")
let column = col(".")
call cursor(line - 1, column)
let openingParen = searchpair("(", "", ")", "bWn", "s:IsExcludedFromIndent()")
call cursor(line, column)
return indent(openingParen)
endif
return previousIndent
endif
if currentCloseBrackets > 0
let openingBracket = searchpair("{", "", "}", "bWn", "s:IsExcludedFromIndent()")
return indent(openingBracket)
endif
return cindent
endif
if numCloseParens < numOpenParens
if numOpenBrackets > numCloseBrackets
return previousIndent + shiftwidth()
endif
let previousParen = match(previous, "(")
return indent(previousParen) + shiftwidth()
endif
if numOpenBrackets > numCloseBrackets
let line = line(".")
let column = col(".")
call cursor(previousNum, column)
let openingParen = searchpair("(", "", ")", "bWn", "s:IsExcludedFromIndent()")
call cursor(line, column)
return indent(openingParen) + shiftwidth()
endif
" - Previous line has close then open braces, indent previous + 1 'sw'
if previous =~ "}.*{"
return previousIndent + shiftwidth()
endif
let line = line(".")
let column = col(".")
call cursor(previousNum, column)
let openingParen = searchpair("(", "", ")", "bWn", "s:IsExcludedFromIndent()")
call cursor(line, column)
return indent(openingParen)
endif
" - Line above has (unmatched) open paren, next line needs indent
if numOpenParens > 0
let savePosition = getcurpos()
" Must be at EOL because open paren has to be above (left of) the cursor
call cursor(previousNum, col("$"))
let previousParen = searchpair("(", "", ")", "bWn", "s:IsExcludedFromIndent()")
call setpos(".", savePosition)
return indent(previousParen) + shiftwidth()
endif
return cindent
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -0,0 +1,14 @@
let g:tagbar_type_swift = {
\ 'ctagstype': 'swift',
\ 'kinds': [
\ 'P:protocol',
\ 'c:class',
\ 's:struct',
\ 'e:enum',
\ 'E:extension',
\ 'f:function',
\ 't:typealias'
\ ],
\ 'sort': 0,
\ 'deffile': expand('<sfile>:p:h:h') . '/ctags/swift.cnf'
\ }

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@ -0,0 +1,290 @@
" File: swift.vim
" Author: Keith Smiley
" Description: Runtime files for Swift
" Last Modified: June 15, 2014
if exists("b:current_syntax")
finish
endif
" Comments
" Shebang
syntax match swiftShebang "\v#!.*$"
" Comment contained keywords
syntax keyword swiftTodos contained TODO XXX FIXME NOTE
syntax keyword swiftMarker contained MARK
" In comment identifiers
function! s:CommentKeywordMatch(keyword)
execute "syntax match swiftDocString \"\\v^\\s*-\\s*". a:keyword . "\\W\"hs=s+1,he=e-1 contained"
endfunction
syntax case ignore
call s:CommentKeywordMatch("attention")
call s:CommentKeywordMatch("author")
call s:CommentKeywordMatch("authors")
call s:CommentKeywordMatch("bug")
call s:CommentKeywordMatch("complexity")
call s:CommentKeywordMatch("copyright")
call s:CommentKeywordMatch("date")
call s:CommentKeywordMatch("experiment")
call s:CommentKeywordMatch("important")
call s:CommentKeywordMatch("invariant")
call s:CommentKeywordMatch("note")
call s:CommentKeywordMatch("parameter")
call s:CommentKeywordMatch("postcondition")
call s:CommentKeywordMatch("precondition")
call s:CommentKeywordMatch("remark")
call s:CommentKeywordMatch("remarks")
call s:CommentKeywordMatch("requires")
call s:CommentKeywordMatch("returns")
call s:CommentKeywordMatch("see")
call s:CommentKeywordMatch("since")
call s:CommentKeywordMatch("throws")
call s:CommentKeywordMatch("todo")
call s:CommentKeywordMatch("version")
call s:CommentKeywordMatch("warning")
syntax case match
delfunction s:CommentKeywordMatch
" Literals
" Strings
syntax region swiftString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=swiftInterpolatedWrapper oneline
syntax region swiftInterpolatedWrapper start="\v[^\\]\zs\\\(\s*" end="\v\s*\)" contained containedin=swiftString contains=swiftInterpolatedString,swiftString oneline
syntax match swiftInterpolatedString "\v\w+(\(\))?" contained containedin=swiftInterpolatedWrapper oneline
" Numbers
syntax match swiftNumber "\v<\d+>"
syntax match swiftNumber "\v<(\d+_+)+\d+(\.\d+(_+\d+)*)?>"
syntax match swiftNumber "\v<\d+\.\d+>"
syntax match swiftNumber "\v<\d*\.?\d+([Ee]-?)?\d+>"
syntax match swiftNumber "\v<0x[[:xdigit:]_]+([Pp]-?)?\x+>"
syntax match swiftNumber "\v<0b[01_]+>"
syntax match swiftNumber "\v<0o[0-7_]+>"
" BOOLs
syntax keyword swiftBoolean
\ true
\ false
" Operators
syntax match swiftOperator "\v\~"
syntax match swiftOperator "\v\s+!"
syntax match swiftOperator "\v\%"
syntax match swiftOperator "\v\^"
syntax match swiftOperator "\v\&"
syntax match swiftOperator "\v\*"
syntax match swiftOperator "\v-"
syntax match swiftOperator "\v\+"
syntax match swiftOperator "\v\="
syntax match swiftOperator "\v\|"
syntax match swiftOperator "\v\/"
syntax match swiftOperator "\v\."
syntax match swiftOperator "\v\<"
syntax match swiftOperator "\v\>"
syntax match swiftOperator "\v\?\?"
" Methods/Functions/Properties
syntax match swiftMethod "\(\.\)\@<=\w\+\((\)\@="
syntax match swiftProperty "\(\.\)\@<=\<\w\+\>(\@!"
" Swift closure arguments
syntax match swiftClosureArgument "\$\d\+\(\.\d\+\)\?"
syntax match swiftAvailability "\v((\*(\s*,\s*[a-zA-Z="0-9.]+)*)|(\w+\s+\d+(\.\d+(.\d+)?)?\s*,\s*)+\*)" contains=swiftString
syntax keyword swiftPlatforms OSX iOS watchOS OSXApplicationExtension iOSApplicationExtension contained containedin=swiftAvailability
syntax keyword swiftAvailabilityArg renamed unavailable introduced deprecated obsoleted message contained containedin=swiftAvailability
" Keywords {{{
syntax keyword swiftKeywords
\ associatedtype
\ associativity
\ atexit
\ break
\ case
\ catch
\ class
\ continue
\ convenience
\ default
\ defer
\ deinit
\ didSet
\ do
\ dynamic
\ else
\ extension
\ fallthrough
\ fileprivate
\ final
\ for
\ func
\ get
\ guard
\ if
\ import
\ in
\ infix
\ init
\ inout
\ internal
\ lazy
\ let
\ mutating
\ nil
\ nonmutating
\ operator
\ optional
\ override
\ postfix
\ precedence
\ precedencegroup
\ prefix
\ private
\ protocol
\ public
\ repeat
\ required
\ return
\ self
\ set
\ static
\ subscript
\ super
\ switch
\ throw
\ try
\ typealias
\ unowned
\ var
\ weak
\ where
\ while
\ willSet
syntax keyword swiftDefinitionModifier
\ rethrows
\ throws
syntax match swiftMultiwordKeywords "indirect case"
syntax match swiftMultiwordKeywords "indirect enum"
" }}}
" Names surrounded by backticks. This aren't limited to keywords because 1)
" Swift doesn't limit them to keywords and 2) I couldn't make the keywords not
" highlight at the same time
syntax region swiftEscapedReservedWord start="`" end="`" oneline
syntax keyword swiftAttributes
\ @assignment
\ @autoclosure
\ @available
\ @convention
\ @discardableResult
\ @exported
\ @IBAction
\ @IBDesignable
\ @IBInspectable
\ @IBOutlet
\ @noescape
\ @nonobjc
\ @noreturn
\ @NSApplicationMain
\ @NSCopying
\ @NSManaged
\ @objc
\ @testable
\ @UIApplicationMain
\ @warn_unused_result
syntax keyword swiftConditionStatement #available
syntax keyword swiftStructure
\ struct
\ enum
syntax keyword swiftDebugIdentifier
\ #column
\ #file
\ #function
\ #line
\ __COLUMN__
\ __FILE__
\ __FUNCTION__
\ __LINE__
syntax keyword swiftLineDirective #setline
syntax region swiftTypeWrapper start="\v:\s*" skip="\s*,\s*$*\s*" end="$\|/"me=e-1 contains=ALLBUT,swiftInterpolatedWrapper transparent
syntax region swiftTypeCastWrapper start="\(as\|is\)\(!\|?\)\=\s\+" end="\v(\s|$|\{)" contains=swiftType,swiftCastKeyword keepend transparent oneline
syntax region swiftGenericsWrapper start="\v\<" end="\v\>" contains=swiftType transparent oneline
syntax region swiftLiteralWrapper start="\v\=\s*" skip="\v[^\[\]]\(\)" end="\v(\[\]|\(\))" contains=ALL transparent oneline
syntax region swiftReturnWrapper start="\v-\>\s*" end="\v(\{|$)" contains=swiftType transparent oneline
syntax match swiftType "\v<\u\w*" contained containedin=swiftTypeWrapper,swiftLiteralWrapper,swiftGenericsWrapper,swiftTypeCastWrapper
syntax match swiftTypeDeclaration /->/ skipwhite nextgroup=swiftType
syntax keyword swiftImports import
syntax keyword swiftCastKeyword is as contained
" 'preprocesor' stuff
syntax keyword swiftPreprocessor
\ #if
\ #elseif
\ #else
\ #endif
\ #selector
" Comment patterns
syntax match swiftComment "\v\/\/.*$"
\ contains=swiftTodos,swiftDocString,swiftMarker,@Spell oneline
syntax region swiftComment start="/\*" end="\*/"
\ contains=swiftTodos,swiftDocString,swiftMarker,@Spell fold
" Set highlights
highlight default link swiftTodos Todo
highlight default link swiftDocString String
highlight default link swiftShebang Comment
highlight default link swiftComment Comment
highlight default link swiftMarker Comment
highlight default link swiftString String
highlight default link swiftInterpolatedWrapper Delimiter
highlight default link swiftTypeDeclaration Delimiter
highlight default link swiftNumber Number
highlight default link swiftBoolean Boolean
highlight default link swiftOperator Operator
highlight default link swiftCastKeyword Keyword
highlight default link swiftKeywords Keyword
highlight default link swiftMultiwordKeywords Keyword
highlight default link swiftEscapedReservedWord Normal
highlight default link swiftClosureArgument Operator
highlight default link swiftAttributes PreProc
highlight default link swiftConditionStatement PreProc
highlight default link swiftStructure Structure
highlight default link swiftType Type
highlight default link swiftImports Include
highlight default link swiftPreprocessor PreProc
highlight default link swiftMethod Function
highlight default link swiftProperty Identifier
highlight default link swiftDefinitionModifier Define
highlight default link swiftConditionStatement PreProc
highlight default link swiftAvailability Normal
highlight default link swiftAvailabilityArg Normal
highlight default link swiftPlatforms Keyword
highlight default link swiftDebugIdentifier PreProc
highlight default link swiftLineDirective PreProc
" Force vim to sync at least x lines. This solves the multiline comment not
" being highlighted issue
syn sync minlines=100
let b:current_syntax = "swift"

View File

@ -0,0 +1,45 @@
if exists('g:loaded_syntastic_swift_swiftlint_checker')
finish
endif
let g:loaded_syntastic_swift_swiftlint_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_swift_swiftlint_IsAvailable() dict
if !executable(self.getExec())
return 0
endif
return get(g:, 'syntastic_swift_swiftlint_use_defaults', 0)
\ || filereadable('.swiftlint.yml')
endfunction
function! SyntaxCheckers_swift_swiftlint_GetLocList() dict
let makeprg = self.makeprgBuild({
\ 'args': 'lint --use-script-input-files',
\ 'fname': '' })
let errorformat =
\ '%f:%l:%c: %trror: %m,' .
\ '%f:%l:%c: %tarning: %m,' .
\ '%f:%l: %trror: %m,' .
\ '%f:%l: %tarning: %m'
let env = {
\ 'SCRIPT_INPUT_FILE_COUNT': 1,
\ 'SCRIPT_INPUT_FILE_0': expand('%:p'),
\ }
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'env': env })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'swift',
\ 'name': 'swiftlint' })
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@ -0,0 +1,44 @@
if exists('g:loaded_syntastic_swift_swiftpm_checker')
finish
endif
let g:loaded_syntastic_swift_swiftpm_checker = 1
if !exists('g:syntastic_swift_swiftpm_executable')
let g:syntastic_swift_swiftpm_executable = 'swift'
endif
if !exists('g:syntastic_swift_swiftpm_arguments')
let g:syntastic_swift_swiftpm_arguments = 'build'
endif
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_swift_swiftpm_IsAvailable() dict
if !executable(self.getExec())
return 0
endif
return filereadable('Package.swift')
endfunction
function! SyntaxCheckers_swift_swiftpm_GetLocList() dict
let makeprg = self.makeprgBuild({
\ 'fname': '',
\ 'args': g:syntastic_swift_swiftpm_arguments })
let errorformat =
\ '%f:%l:%c: error: %m'
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'swift',
\ 'name': 'swiftpm',
\ 'exec': g:syntastic_swift_swiftpm_executable })
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@ -0,0 +1,4 @@
.gitignore export-ignore
.gitattributes export-ignore
README export-ignore
.info export-ignore

1
sources_non_forked/tagbar/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/doc/tags

View File

@ -0,0 +1,2 @@
tagbar
3465

View File

@ -0,0 +1,82 @@
TAGBAR LICENSE
This is the normal Vim license (see ':h license' in Vim) with the necessary
replacements for the project and maintainer information.
I) There are no restrictions on distributing unmodified copies of Tagbar
except that they must include this license text. You can also distribute
unmodified parts of Tagbar, likewise unrestricted except that they must
include this license text. You are also allowed to include executables
that you made from the unmodified Tagbar sources, plus your own usage
examples and scripts.
II) It is allowed to distribute a modified (or extended) version of Tagbar,
including executables and/or source code, when the following four
conditions are met:
1) This license text must be included unmodified.
2) The modified Tagbar must be distributed in one of the following five ways:
a) If you make changes to Tagbar yourself, you must clearly describe in
the distribution how to contact you. When the maintainer asks you
(in any way) for a copy of the modified Tagbar you distributed, you
must make your changes, including source code, available to the
maintainer without fee. The maintainer reserves the right to
include your changes in the official version of Tagbar. What the
maintainer will do with your changes and under what license they
will be distributed is negotiable. If there has been no negotiation
then this license, or a later version, also applies to your changes.
The current maintainer is Jan Larres <jan@majutsushi.net>. If this
changes it will be announced in appropriate places (most likely
majutsushi.github.io/tagbar and/or github.com/majutsushi/tagbar).
When it is completely impossible to contact the maintainer, the
obligation to send him your changes ceases. Once the maintainer has
confirmed that he has received your changes they will not have to be
sent again.
b) If you have received a modified Tagbar that was distributed as
mentioned under a) you are allowed to further distribute it
unmodified, as mentioned at I). If you make additional changes the
text under a) applies to those changes.
c) Provide all the changes, including source code, with every copy of
the modified Tagbar you distribute. This may be done in the form of
a context diff. You can choose what license to use for new code you
add. The changes and their license must not restrict others from
making their own changes to the official version of Tagbar.
d) When you have a modified Tagbar which includes changes as mentioned
under c), you can distribute it without the source code for the
changes if the following three conditions are met:
- The license that applies to the changes permits you to distribute
the changes to the Tagbar maintainer without fee or restriction, and
permits the Tagbar maintainer to include the changes in the official
version of Tagbar without fee or restriction.
- You keep the changes for at least three years after last
distributing the corresponding modified Tagbar. When the
maintainer or someone who you distributed the modified Tagbar to
asks you (in any way) for the changes within this period, you must
make them available to him.
- You clearly describe in the distribution how to contact you. This
contact information must remain valid for at least three years
after last distributing the corresponding modified Tagbar, or as
long as possible.
e) When the GNU General Public License (GPL) applies to the changes,
you can distribute the modified Tagbar under the GNU GPL version 2
or any later version.
3) A message must be added, at least in the documentation, such that the
user of the modified Tagbar is able to see that it was modified. When
distributing as mentioned under 2)e) adding the message is only
required for as far as this does not conflict with the license used for
the changes.
4) The contact information as required under 2)a) and 2)d) must not be
removed or changed, except that the person himself can make
corrections.
III) If you distribute a modified version of Tagbar, you are encouraged to use
the Tagbar license for your changes and make them available to the
maintainer, including the source code. The preferred way to do this is
by e-mail or by uploading the files to a server and e-mailing the URL. If
the number of changes is small (e.g., a modified Makefile) e-mailing a
context diff will do. The e-mail address to be used is
<jan@majutsushi.net>
IV) It is not allowed to remove this license from the distribution of the
Tagbar sources, parts of it or from a modified version. You may use this
license for previous Tagbar releases instead of the license that they
came with, at your option.

View File

@ -0,0 +1,85 @@
# Tagbar: a class outline viewer for Vim
## What Tagbar is
Tagbar is a Vim plugin that provides an easy way to browse the tags of the
current file and get an overview of its structure. It does this by creating a
sidebar that displays the ctags-generated tags of the current file, ordered by
their scope. This means that for example methods in C++ are displayed under
the class they are defined in.
## What Tagbar is not
Tagbar is not a general-purpose tool for managing `tags` files. It only
creates the tags it needs on-the-fly in-memory without creating any files.
`tags` file management is provided by other plugins, like for example
[easytags](https://github.com/xolox/vim-easytags).
## Dependencies
[Vim 7.3.1058](http://www.vim.org/)
[Exuberant Ctags 5.5](http://ctags.sourceforge.net/) or
[Universal Ctags](https://ctags.io) (recommended), a maintained fork of
Exuberant Ctags.
## Installation
Extract the archive or clone the repository into a directory in your
`'runtimepath'`, or use a plugin manager of your choice like
[pathogen](https://github.com/tpope/vim-pathogen). Don't forget to run
`:helptags` if your plugin manager doesn't do it for you so you can access the
documentation with `:help tagbar`.
If the ctags executable is not installed in one of the directories in your
`$PATH` environment variable you have to set the `g:tagbar_ctags_bin`
variable, see the documentation for more info.
## Quickstart
Put something like the following into your ~/.vimrc:
```vim
nmap <F8> :TagbarToggle<CR>
```
If you do this the F8 key will toggle the Tagbar window. You can of course use
any shortcut you want. For more flexible ways to open and close the window
(and the rest of the functionality) see the documentation.
## Support for additional filetypes
For filetypes that are not supported by Exuberant Ctags check out [the
wiki](https://github.com/majutsushi/tagbar/wiki) to see whether other projects
offer support for them and how to use them. Please add any other
projects/configurations that you find or create yourself so that others can
benefit from them, too.
## Note: If the file structure display is wrong
If you notice that there are some errors in the way your file's structure is
displayed in Tagbar, please make sure that the bug is actually in Tagbar
before you report an issue. Since Tagbar uses
[exuberant-ctags](http://ctags.sourceforge.net/) and compatible programs to do
the actual file parsing, it is likely that the bug is actually in the program
responsible for that filetype instead.
There is an example in `:h tagbar-issues` about how to run ctags manually so
you can determine where the bug actually is. If the bug is actually in ctags,
please report it on their website instead, as there is nothing I can do about
it in Tagbar. Thank you!
You can also have a look at [ctags bugs that have previously been filed
against Tagbar](https://github.com/majutsushi/tagbar/issues?labels=ctags-bug&page=1&state=closed).
## Screenshots
![screenshot1](https://i.imgur.com/Sf9Ls2r.png)
![screenshot2](https://i.imgur.com/n4bpPv3.png)
## License
Vim license, see LICENSE
## Maintainer
Jan Larres <[jan@majutsushi.net](mailto:jan@majutsushi.net)>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,62 @@
function! tagbar#debug#start_debug(...) abort
let filename = a:0 > 0 ? a:1 : ''
if empty(filename)
let s:debug_file = 'tagbardebug.log'
else
let s:debug_file = filename
endif
" Clear log file and start it with version info
exe 'redir! > ' . s:debug_file
silent version
redir END
" Check whether the log file could be created
if !filewritable(s:debug_file)
echomsg 'Tagbar: Unable to create log file ' . s:debug_file
let s:debug_file = ''
return
endif
let s:debug_enabled = 1
endfunction
function! tagbar#debug#stop_debug() abort
let s:debug_enabled = 0
let s:debug_file = ''
endfunction
function! tagbar#debug#log(msg) abort
if s:debug_enabled
execute 'redir >> ' . s:debug_file
silent echon s:gettime() . ': ' . a:msg . "\n"
redir END
endif
endfunction
function! tagbar#debug#log_ctags_output(output) abort
if s:debug_enabled
exe 'redir! > ' . s:debug_file . '.ctags_out'
silent echon a:output
redir END
endif
endfunction
function! tagbar#debug#enabled() abort
return s:debug_enabled
endfunction
if has('reltime')
function! s:gettime() abort
let time = split(reltimestr(reltime()), '\.')
return strftime('%Y-%m-%d %H:%M:%S.', time[0]) . time[1]
endfunction
else
function! s:gettime() abort
return strftime('%Y-%m-%d %H:%M:%S')
endfunction
endif
let s:debug_enabled = 0
let s:debug_file = ''

View File

@ -0,0 +1,237 @@
let s:visibility_symbols = {
\ 'public' : '+',
\ 'protected' : '#',
\ 'private' : '-'
\ }
function! tagbar#prototypes#basetag#new(name) abort
let newobj = {}
let newobj.name = a:name
let newobj.fields = {}
let newobj.fields.line = 0
let newobj.fields.column = 0
let newobj.prototype = ''
let newobj.path = ''
let newobj.fullpath = a:name
let newobj.depth = 0
let newobj.parent = {}
let newobj.tline = -1
let newobj.fileinfo = {}
let newobj.typeinfo = {}
let newobj._childlist = []
let newobj._childdict = {}
let newobj.isNormalTag = function(s:add_snr('s:isNormalTag'))
let newobj.isPseudoTag = function(s:add_snr('s:isPseudoTag'))
let newobj.isSplitTag = function(s:add_snr('s:isSplitTag'))
let newobj.isKindheader = function(s:add_snr('s:isKindheader'))
let newobj.getPrototype = function(s:add_snr('s:getPrototype'))
let newobj._getPrefix = function(s:add_snr('s:_getPrefix'))
let newobj.initFoldState = function(s:add_snr('s:initFoldState'))
let newobj.getClosedParentTline = function(s:add_snr('s:getClosedParentTline'))
let newobj.isFoldable = function(s:add_snr('s:isFoldable'))
let newobj.isFolded = function(s:add_snr('s:isFolded'))
let newobj.openFold = function(s:add_snr('s:openFold'))
let newobj.closeFold = function(s:add_snr('s:closeFold'))
let newobj.setFolded = function(s:add_snr('s:setFolded'))
let newobj.openParents = function(s:add_snr('s:openParents'))
let newobj.addChild = function(s:add_snr('s:addChild'))
let newobj.getChildren = function(s:add_snr('s:getChildren'))
let newobj.getChildrenByName = function(s:add_snr('s:getChildrenByName'))
let newobj.removeChild = function(s:add_snr('s:removeChild'))
return newobj
endfunction
" s:isNormalTag() {{{1
function! s:isNormalTag() abort dict
return 0
endfunction
" s:isPseudoTag() {{{1
function! s:isPseudoTag() abort dict
return 0
endfunction
" s:isSplitTag {{{1
function! s:isSplitTag() abort dict
return 0
endfunction
" s:isKindheader() {{{1
function! s:isKindheader() abort dict
return 0
endfunction
" s:getPrototype() {{{1
function! s:getPrototype(short) abort dict
return self.prototype
endfunction
" s:_getPrefix() {{{1
function! s:_getPrefix() abort dict
let fileinfo = self.fileinfo
if !empty(self._childlist)
if fileinfo.tagfolds[self.fields.kind][self.fullpath]
let prefix = g:tagbar#icon_closed
else
let prefix = g:tagbar#icon_open
endif
else
let prefix = ' '
endif
" Visibility is called 'access' in the ctags output
if g:tagbar_show_visibility
if has_key(self.fields, 'access')
let prefix .= get(s:visibility_symbols, self.fields.access, ' ')
elseif has_key(self.fields, 'file')
let prefix .= s:visibility_symbols.private
else
let prefix .= ' '
endif
endif
return prefix
endfunction
" s:initFoldState() {{{1
function! s:initFoldState(known_files) abort dict
let fileinfo = self.fileinfo
if a:known_files.has(fileinfo.fpath) &&
\ has_key(fileinfo, '_tagfolds_old') &&
\ has_key(fileinfo._tagfolds_old[self.fields.kind], self.fullpath)
" The file has been updated and the tag was there before, so copy its
" old fold state
let fileinfo.tagfolds[self.fields.kind][self.fullpath] =
\ fileinfo._tagfolds_old[self.fields.kind][self.fullpath]
elseif self.depth >= fileinfo.foldlevel
let fileinfo.tagfolds[self.fields.kind][self.fullpath] = 1
else
let fileinfo.tagfolds[self.fields.kind][self.fullpath] =
\ fileinfo.kindfolds[self.fields.kind]
endif
endfunction
" s:getClosedParentTline() {{{1
function! s:getClosedParentTline() abort dict
let tagline = self.tline
" Find the first closed parent, starting from the top of the hierarchy.
let parents = []
let curparent = self.parent
while !empty(curparent)
call add(parents, curparent)
let curparent = curparent.parent
endwhile
for parent in reverse(parents)
if parent.isFolded()
let tagline = parent.tline
break
endif
endfor
return tagline
endfunction
" s:isFoldable() {{{1
function! s:isFoldable() abort dict
return !empty(self._childlist)
endfunction
" s:isFolded() {{{1
function! s:isFolded() abort dict
return self.fileinfo.tagfolds[self.fields.kind][self.fullpath]
endfunction
" s:openFold() {{{1
function! s:openFold() abort dict
if self.isFoldable()
let self.fileinfo.tagfolds[self.fields.kind][self.fullpath] = 0
endif
endfunction
" s:closeFold() {{{1
function! s:closeFold() abort dict
let newline = line('.')
if !empty(self.parent) && self.parent.isKindheader()
" Tag is child of generic 'kind'
call self.parent.closeFold()
let newline = self.parent.tline
elseif self.isFoldable() && !self.isFolded()
" Tag is parent of a scope and is not folded
let self.fileinfo.tagfolds[self.fields.kind][self.fullpath] = 1
let newline = self.tline
elseif !empty(self.parent)
" Tag is normal child, so close parent
let parent = self.parent
let self.fileinfo.tagfolds[parent.fields.kind][parent.fullpath] = 1
let newline = parent.tline
endif
return newline
endfunction
" s:setFolded() {{{1
function! s:setFolded(folded) abort dict
let self.fileinfo.tagfolds[self.fields.kind][self.fullpath] = a:folded
endfunction
" s:openParents() {{{1
function! s:openParents() abort dict
let parent = self.parent
while !empty(parent)
call parent.openFold()
let parent = parent.parent
endwhile
endfunction
" s:addChild() {{{1
function! s:addChild(tag) abort dict
call add(self._childlist, a:tag)
if has_key(self._childdict, a:tag.name)
call add(self._childdict[a:tag.name], a:tag)
else
let self._childdict[a:tag.name] = [a:tag]
endif
endfunction
" s:getChildren() {{{1
function! s:getChildren() dict abort
return self._childlist
endfunction
" s:getChildrenByName() {{{1
function! s:getChildrenByName(tagname) dict abort
return get(self._childdict, a:tagname, [])
endfunction
" s:removeChild() {{{1
function! s:removeChild(tag) dict abort
let idx = index(self._childlist, a:tag)
if idx >= 0
call remove(self._childlist, idx)
endif
let namelist = get(self._childdict, a:tag.name, [])
let idx = index(namelist, a:tag)
if idx >= 0
call remove(namelist, idx)
endif
endfunction
" s:add_snr() {{{1
function! s:add_snr(funcname) abort
if !exists("s:snr")
let s:snr = matchstr(expand('<sfile>'), '<SNR>\d\+_\zeget_snr$')
endif
return s:snr . a:funcname
endfunction
" Modeline {{{1
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,146 @@
function! tagbar#prototypes#fileinfo#new(fname, ftype, typeinfo) abort
let newobj = {}
" The complete file path
let newobj.fpath = a:fname
let newobj.bufnr = bufnr(a:fname)
" File modification time
let newobj.mtime = getftime(a:fname)
" The vim file type
let newobj.ftype = a:ftype
" List of the tags that are present in the file, sorted according to the
" value of 'g:tagbar_sort'
let newobj._taglist = []
let newobj._tagdict = {}
" Dictionary of the tags, indexed by line number in the file
let newobj.fline = {}
" Dictionary of the tags, indexed by line number in the tagbar
let newobj.tline = {}
" Dictionary of the folding state of 'kind's, indexed by short name
let newobj.kindfolds = {}
let newobj.typeinfo = a:typeinfo
" copy the default fold state from the type info
for kind in a:typeinfo.kinds
let newobj.kindfolds[kind.short] =
\ g:tagbar_foldlevel == 0 ? 1 : kind.fold
endfor
" Dictionary of dictionaries of the folding state of individual tags,
" indexed by kind and full path
let newobj.tagfolds = {}
for kind in a:typeinfo.kinds
let newobj.tagfolds[kind.short] = {}
endfor
" The current foldlevel of the file
let newobj.foldlevel = g:tagbar_foldlevel
let newobj.addTag = function(s:add_snr('s:addTag'))
let newobj.getTags = function(s:add_snr('s:getTags'))
let newobj.getTagsByName = function(s:add_snr('s:getTagsByName'))
let newobj.removeTag = function(s:add_snr('s:removeTag'))
let newobj.reset = function(s:add_snr('s:reset'))
let newobj.clearOldFolds = function(s:add_snr('s:clearOldFolds'))
let newobj.sortTags = function(s:add_snr('s:sortTags'))
let newobj.openKindFold = function(s:add_snr('s:openKindFold'))
let newobj.closeKindFold = function(s:add_snr('s:closeKindFold'))
return newobj
endfunction
" s:addTag() {{{1
function! s:addTag(tag) abort dict
call add(self._taglist, a:tag)
if has_key(self._tagdict, a:tag.name)
call add(self._tagdict[a:tag.name], a:tag)
else
let self._tagdict[a:tag.name] = [a:tag]
endif
endfunction
" s:getTags() {{{1
function! s:getTags() dict abort
return self._taglist
endfunction
" s:getTagsByName() {{{1
function! s:getTagsByName(tagname) dict abort
return get(self._tagdict, a:tagname, [])
endfunction
" s:removeTag() {{{1
function! s:removeTag(tag) dict abort
let idx = index(self._taglist, a:tag)
if idx >= 0
call remove(self._taglist, idx)
endif
let namelist = get(self._tagdict, a:tag.name, [])
let idx = index(namelist, a:tag)
if idx >= 0
call remove(namelist, idx)
endif
endfunction
" s:reset() {{{1
" Reset stuff that gets regenerated while processing a file and save the old
" tag folds
function! s:reset() abort dict
let self.mtime = getftime(self.fpath)
let self._taglist = []
let self._tagdict = {}
let self.fline = {}
let self.tline = {}
let self._tagfolds_old = self.tagfolds
let self.tagfolds = {}
for kind in self.typeinfo.kinds
let self.tagfolds[kind.short] = {}
endfor
endfunction
" s:clearOldFolds() {{{1
function! s:clearOldFolds() abort dict
if exists('self._tagfolds_old')
unlet self._tagfolds_old
endif
endfunction
" s:sortTags() {{{1
function! s:sortTags(compare_typeinfo) abort dict
if get(a:compare_typeinfo, 'sort', g:tagbar_sort)
call tagbar#sorting#sort(self._taglist, 'kind', a:compare_typeinfo)
else
call tagbar#sorting#sort(self._taglist, 'line', a:compare_typeinfo)
endif
endfunction
" s:openKindFold() {{{1
function! s:openKindFold(kind) abort dict
let self.kindfolds[a:kind.short] = 0
endfunction
" s:closeKindFold() {{{1
function! s:closeKindFold(kind) abort dict
let self.kindfolds[a:kind.short] = 1
endfunction
" s:add_snr() {{{1
function! s:add_snr(funcname) abort
if !exists("s:snr")
let s:snr = matchstr(expand('<sfile>'), '<SNR>\d\+_\zeget_snr$')
endif
return s:snr . a:funcname
endfunction
" Modeline {{{1
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,61 @@
function! tagbar#prototypes#kindheadertag#new(name) abort
let newobj = tagbar#prototypes#basetag#new(a:name)
let newobj.isKindheader = function(s:add_snr('s:isKindheader'))
let newobj.getPrototype = function(s:add_snr('s:getPrototype'))
let newobj.isFoldable = function(s:add_snr('s:isFoldable'))
let newobj.isFolded = function(s:add_snr('s:isFolded'))
let newobj.openFold = function(s:add_snr('s:openFold'))
let newobj.closeFold = function(s:add_snr('s:closeFold'))
let newobj.toggleFold = function(s:add_snr('s:toggleFold'))
return newobj
endfunction
" s:isKindheader() {{{1
function! s:isKindheader() abort dict
return 1
endfunction
" s:getPrototype() {{{1
function! s:getPrototype(short) abort dict
return self.name . ': ' .
\ self.numtags . ' ' . (self.numtags > 1 ? 'tags' : 'tag')
endfunction
" s:isFoldable() {{{1
function! s:isFoldable() abort dict
return 1
endfunction
" s:isFolded() {{{1
function! s:isFolded() abort dict
return self.fileinfo.kindfolds[self.short]
endfunction
" s:openFold() {{{1
function! s:openFold() abort dict
let self.fileinfo.kindfolds[self.short] = 0
endfunction
" s:closeFold() {{{1
function! s:closeFold() abort dict
let self.fileinfo.kindfolds[self.short] = 1
return line('.')
endfunction
" s:toggleFold() {{{1
function! s:toggleFold(fileinfo) abort dict
let a:fileinfo.kindfolds[self.short] = !a:fileinfo.kindfolds[self.short]
endfunction
" s:add_snr() {{{1
function! s:add_snr(funcname) abort
if !exists("s:snr")
let s:snr = matchstr(expand('<sfile>'), '<SNR>\d\+_\zeget_snr$')
endif
return s:snr . a:funcname
endfunction
" Modeline {{{1
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,119 @@
function! tagbar#prototypes#normaltag#new(name) abort
let newobj = tagbar#prototypes#basetag#new(a:name)
let newobj.isNormalTag = function(s:add_snr('s:isNormalTag'))
let newobj.strfmt = function(s:add_snr('s:strfmt'))
let newobj.str = function(s:add_snr('s:str'))
let newobj.getPrototype = function(s:add_snr('s:getPrototype'))
return newobj
endfunction
" s:isNormalTag() {{{1
function! s:isNormalTag() abort dict
return 1
endfunction
" s:strfmt() {{{1
function! s:strfmt() abort dict
let typeinfo = self.typeinfo
let suffix = get(self.fields, 'signature', '')
if has_key(self.fields, 'type')
let suffix .= ' : ' . self.fields.type
elseif has_key(get(typeinfo, 'kind2scope', {}), self.fields.kind)
let suffix .= ' : ' . typeinfo.kind2scope[self.fields.kind]
endif
return self._getPrefix() . self.name . suffix
endfunction
" s:str() {{{1
function! s:str(longsig, full) abort dict
if a:full && self.path != ''
let str = self.path . self.typeinfo.sro . self.name
else
let str = self.name
endif
if has_key(self.fields, 'signature')
if a:longsig
let str .= self.fields.signature
else
let str .= '()'
endif
endif
return str
endfunction
" s:getPrototype() {{{1
function! s:getPrototype(short) abort dict
if self.prototype != ''
let prototype = self.prototype
else
let bufnr = self.fileinfo.bufnr
if self.fields.line == 0 || !bufloaded(bufnr)
" No linenumber available or buffer not loaded (probably due to
" 'nohidden'), try the pattern instead
return substitute(self.pattern, '^\\M\\^\\C\s*\(.*\)\\$$', '\1', '')
endif
let line = getbufline(bufnr, self.fields.line)[0]
let list = split(line, '\zs')
let start = index(list, '(')
if start == -1
return substitute(line, '^\s\+', '', '')
endif
let opening = count(list, '(', 0, start)
let closing = count(list, ')', 0, start)
if closing >= opening
return substitute(line, '^\s\+', '', '')
endif
let balance = opening - closing
let prototype = line
let curlinenr = self.fields.line + 1
while balance > 0
let curline = getbufline(bufnr, curlinenr)[0]
let curlist = split(curline, '\zs')
let balance += count(curlist, '(')
let balance -= count(curlist, ')')
let prototype .= "\n" . curline
let curlinenr += 1
endwhile
let self.prototype = prototype
endif
if a:short
" join all lines and remove superfluous spaces
let prototype = substitute(prototype, '^\s\+', '', '')
let prototype = substitute(prototype, '\_s\+', ' ', 'g')
let prototype = substitute(prototype, '(\s\+', '(', 'g')
let prototype = substitute(prototype, '\s\+)', ')', 'g')
" Avoid hit-enter prompts
let maxlen = &columns - 12
if len(prototype) > maxlen
let prototype = prototype[:maxlen - 1 - 3]
let prototype .= '...'
endif
endif
return prototype
endfunction
" s:add_snr() {{{1
function! s:add_snr(funcname) abort
if !exists("s:snr")
let s:snr = matchstr(expand('<sfile>'), '<SNR>\d\+_\zeget_snr$')
endif
return s:snr . a:funcname
endfunction
" Modeline {{{1
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,36 @@
function! tagbar#prototypes#pseudotag#new(name) abort
let newobj = tagbar#prototypes#basetag#new(a:name)
let newobj.isPseudoTag = function(s:add_snr('s:isPseudoTag'))
let newobj.strfmt = function(s:add_snr('s:strfmt'))
return newobj
endfunction
" s:isPseudoTag() {{{1
function! s:isPseudoTag() abort dict
return 1
endfunction
" s:strfmt() {{{1
function! s:strfmt() abort dict
let typeinfo = self.typeinfo
let suffix = get(self.fields, 'signature', '')
if has_key(typeinfo.kind2scope, self.fields.kind)
let suffix .= ' : ' . typeinfo.kind2scope[self.fields.kind]
endif
return self._getPrefix() . self.name . '*' . suffix
endfunction
" s:add_snr() {{{1
function! s:add_snr(funcname) abort
if !exists("s:snr")
let s:snr = matchstr(expand('<sfile>'), '<SNR>\d\+_\zeget_snr$')
endif
return s:snr . a:funcname
endfunction
" Modeline {{{1
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,26 @@
" A tag that was created because of a tag name that covers multiple scopes
" Inherits the fields of the "main" tag it was split from.
" May be replaced during tag processing if it appears as a normal tag later,
" just like a pseudo tag.
function! tagbar#prototypes#splittag#new(name) abort
let newobj = tagbar#prototypes#normaltag#new(a:name)
let newobj.isSplitTag = function(s:add_snr('s:isSplitTag'))
return newobj
endfunction
function! s:isSplitTag() abort dict
return 1
endfunction
function! s:add_snr(funcname) abort
if !exists("s:snr")
let s:snr = matchstr(expand('<sfile>'), '<SNR>\d\+_\zeget_snr$')
endif
return s:snr . a:funcname
endfunction
" Modeline {{{1
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,42 @@
function! tagbar#prototypes#typeinfo#new(...) abort
let newobj = {}
let newobj.kinddict = {}
if a:0 > 0
call extend(newobj, a:1)
endif
let newobj.getKind = function(s:add_snr('s:getKind'))
let newobj.createKinddict = function(s:add_snr('s:createKinddict'))
return newobj
endfunction
" s:getKind() {{{1
function! s:getKind(kind) abort dict
let idx = self.kinddict[a:kind]
return self.kinds[idx]
endfunction
" s:createKinddict() {{{1
" Create a dictionary of the kind order for fast access in sorting functions
function! s:createKinddict() abort dict
let i = 0
for kind in self.kinds
let self.kinddict[kind.short] = i
let i += 1
endfor
let self.kinddict['?'] = i
endfunction
" s:add_snr() {{{1
function! s:add_snr(funcname) abort
if !exists("s:snr")
let s:snr = matchstr(expand('<sfile>'), '<SNR>\d\+_\zeget_snr$')
endif
return s:snr . a:funcname
endfunction
" Modeline {{{1
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,57 @@
" Script-local variable needed since compare functions can't
" take additional arguments
let s:compare_typeinfo = {}
function! tagbar#sorting#sort(tags, compareby, compare_typeinfo) abort
let s:compare_typeinfo = a:compare_typeinfo
let comparemethod =
\ a:compareby == 'kind' ? 's:compare_by_kind' : 's:compare_by_line'
call sort(a:tags, comparemethod)
for tag in a:tags
if !empty(tag.getChildren())
call tagbar#sorting#sort(tag.getChildren(), a:compareby,
\ a:compare_typeinfo)
endif
endfor
endfunction
function! s:compare_by_kind(tag1, tag2) abort
let typeinfo = s:compare_typeinfo
if typeinfo.kinddict[a:tag1.fields.kind] <#
\ typeinfo.kinddict[a:tag2.fields.kind]
return -1
elseif typeinfo.kinddict[a:tag1.fields.kind] >#
\ typeinfo.kinddict[a:tag2.fields.kind]
return 1
else
" Ignore '~' prefix for C++ destructors to sort them directly under
" the constructors
if a:tag1.name[0] ==# '~'
let name1 = a:tag1.name[1:]
else
let name1 = a:tag1.name
endif
if a:tag2.name[0] ==# '~'
let name2 = a:tag2.name[1:]
else
let name2 = a:tag2.name
endif
let ci = g:tagbar_case_insensitive
if (((!ci) && (name1 <=# name2)) || (ci && (name1 <=? name2)))
return -1
else
return 1
endif
endif
endfunction
function! s:compare_by_line(tag1, tag2) abort
return a:tag1.fields.line - a:tag2.fields.line
endfunction
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,51 @@
function! tagbar#state#get_current_file(force_current) abort
return s:get().getCurrent(a:force_current)
endfunction
function! tagbar#state#set_current_file(fileinfo) abort
call s:get().setCurrentFile(a:fileinfo)
endfunction
function! tagbar#state#set_paused() abort
call s:get().setPaused()
endfunction
function! s:get() abort
if !exists('t:tagbar_state')
let t:tagbar_state = s:State.New()
endif
return t:tagbar_state
endfunction
let s:State = {
\ '_current' : {},
\ '_paused' : {},
\ }
" s:state.New() {{{1
function! s:State.New() abort dict
return deepcopy(self)
endfunction
" s:state.getCurrent() {{{1
function! s:State.getCurrent(force_current) abort dict
if !tagbar#is_paused() || a:force_current
return self._current
else
return self._paused
endif
endfunction
" s:state.setCurrentFile() {{{1
function! s:State.setCurrentFile(fileinfo) abort dict
let self._current = a:fileinfo
endfunction
" s:state.setPaused() {{{1
function! s:State.setPaused() abort dict
let self._paused = self._current
endfunction
" Modeline {{{1
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,752 @@
" Type definitions for standard Exuberant Ctags
function! tagbar#types#ctags#init(supported_types) abort
let types = {}
" Ant {{{1
let type_ant = tagbar#prototypes#typeinfo#new()
let type_ant.ctagstype = 'ant'
let type_ant.kinds = [
\ {'short' : 'p', 'long' : 'projects', 'fold' : 0, 'stl' : 1},
\ {'short' : 't', 'long' : 'targets', 'fold' : 0, 'stl' : 1}
\ ]
let types.ant = type_ant
" Asm {{{1
let type_asm = tagbar#prototypes#typeinfo#new()
let type_asm.ctagstype = 'asm'
let type_asm.kinds = [
\ {'short' : 'm', 'long' : 'macros', 'fold' : 0, 'stl' : 1},
\ {'short' : 't', 'long' : 'types', 'fold' : 0, 'stl' : 1},
\ {'short' : 'd', 'long' : 'defines', 'fold' : 0, 'stl' : 1},
\ {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1}
\ ]
let types.asm = type_asm
" ASP {{{1
let type_aspvbs = tagbar#prototypes#typeinfo#new()
let type_aspvbs.ctagstype = 'asp'
let type_aspvbs.kinds = [
\ {'short' : 'd', 'long' : 'constants', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'subroutines', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 1}
\ ]
let types.aspvbs = type_aspvbs
" Asymptote {{{1
" Asymptote gets parsed well using filetype = c
let type_asy = tagbar#prototypes#typeinfo#new()
let type_asy.ctagstype = 'c'
let type_asy.kinds = [
\ {'short' : 'd', 'long' : 'macros', 'fold' : 1, 'stl' : 0},
\ {'short' : 'p', 'long' : 'prototypes', 'fold' : 1, 'stl' : 0},
\ {'short' : 'g', 'long' : 'enums', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'enumerators', 'fold' : 0, 'stl' : 0},
\ {'short' : 't', 'long' : 'typedefs', 'fold' : 0, 'stl' : 0},
\ {'short' : 's', 'long' : 'structs', 'fold' : 0, 'stl' : 1},
\ {'short' : 'u', 'long' : 'unions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'members', 'fold' : 0, 'stl' : 0},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}
\ ]
let type_asy.sro = '::'
let type_asy.kind2scope = {
\ 'g' : 'enum',
\ 's' : 'struct',
\ 'u' : 'union'
\ }
let type_asy.scope2kind = {
\ 'enum' : 'g',
\ 'struct' : 's',
\ 'union' : 'u'
\ }
let types.asy = type_asy
" Awk {{{1
let type_awk = tagbar#prototypes#typeinfo#new()
let type_awk.ctagstype = 'awk'
let type_awk.kinds = [
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}
\ ]
let types.awk = type_awk
" Basic {{{1
let type_basic = tagbar#prototypes#typeinfo#new()
let type_basic.ctagstype = 'basic'
let type_basic.kinds = [
\ {'short' : 'c', 'long' : 'constants', 'fold' : 0, 'stl' : 1},
\ {'short' : 'g', 'long' : 'enumerations', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1},
\ {'short' : 't', 'long' : 'types', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 1}
\ ]
let types.basic = type_basic
" BETA {{{1
let type_beta = tagbar#prototypes#typeinfo#new()
let type_beta.ctagstype = 'beta'
let type_beta.kinds = [
\ {'short' : 'f', 'long' : 'fragments', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'slots', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'patterns', 'fold' : 0, 'stl' : 1}
\ ]
let types.beta = type_beta
" C {{{1
let type_c = tagbar#prototypes#typeinfo#new()
let type_c.ctagstype = 'c'
let type_c.kinds = [
\ {'short' : 'd', 'long' : 'macros', 'fold' : 1, 'stl' : 0},
\ {'short' : 'p', 'long' : 'prototypes', 'fold' : 1, 'stl' : 0},
\ {'short' : 'g', 'long' : 'enums', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'enumerators', 'fold' : 0, 'stl' : 0},
\ {'short' : 't', 'long' : 'typedefs', 'fold' : 0, 'stl' : 0},
\ {'short' : 's', 'long' : 'structs', 'fold' : 0, 'stl' : 1},
\ {'short' : 'u', 'long' : 'unions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'members', 'fold' : 0, 'stl' : 0},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}
\ ]
let type_c.sro = '::'
let type_c.kind2scope = {
\ 'g' : 'enum',
\ 's' : 'struct',
\ 'u' : 'union'
\ }
let type_c.scope2kind = {
\ 'enum' : 'g',
\ 'struct' : 's',
\ 'union' : 'u'
\ }
let types.c = type_c
" C++ {{{1
let type_cpp = tagbar#prototypes#typeinfo#new()
let type_cpp.ctagstype = 'c++'
let type_cpp.kinds = [
\ {'short' : 'd', 'long' : 'macros', 'fold' : 1, 'stl' : 0},
\ {'short' : 'p', 'long' : 'prototypes', 'fold' : 1, 'stl' : 0},
\ {'short' : 'g', 'long' : 'enums', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'enumerators', 'fold' : 0, 'stl' : 0},
\ {'short' : 't', 'long' : 'typedefs', 'fold' : 0, 'stl' : 0},
\ {'short' : 'n', 'long' : 'namespaces', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'structs', 'fold' : 0, 'stl' : 1},
\ {'short' : 'u', 'long' : 'unions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'members', 'fold' : 0, 'stl' : 0},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0}
\ ]
let type_cpp.sro = '::'
let type_cpp.kind2scope = {
\ 'g' : 'enum',
\ 'n' : 'namespace',
\ 'c' : 'class',
\ 's' : 'struct',
\ 'u' : 'union'
\ }
let type_cpp.scope2kind = {
\ 'enum' : 'g',
\ 'namespace' : 'n',
\ 'class' : 'c',
\ 'struct' : 's',
\ 'union' : 'u'
\ }
let types.cpp = type_cpp
let types.cuda = type_cpp
" C# {{{1
let type_cs = tagbar#prototypes#typeinfo#new()
let type_cs.ctagstype = 'c#'
let type_cs.kinds = [
\ {'short' : 'd', 'long' : 'macros', 'fold' : 1, 'stl' : 0},
\ {'short' : 'f', 'long' : 'fields', 'fold' : 0, 'stl' : 1},
\ {'short' : 'g', 'long' : 'enums', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'enumerators', 'fold' : 0, 'stl' : 0},
\ {'short' : 't', 'long' : 'typedefs', 'fold' : 0, 'stl' : 1},
\ {'short' : 'n', 'long' : 'namespaces', 'fold' : 0, 'stl' : 1},
\ {'short' : 'i', 'long' : 'interfaces', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'structs', 'fold' : 0, 'stl' : 1},
\ {'short' : 'E', 'long' : 'events', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'properties', 'fold' : 0, 'stl' : 1}
\ ]
let type_cs.sro = '.'
let type_cs.kind2scope = {
\ 'n' : 'namespace',
\ 'i' : 'interface',
\ 'c' : 'class',
\ 's' : 'struct',
\ 'g' : 'enum'
\ }
let type_cs.scope2kind = {
\ 'namespace' : 'n',
\ 'interface' : 'i',
\ 'class' : 'c',
\ 'struct' : 's',
\ 'enum' : 'g'
\ }
let types.cs = type_cs
" COBOL {{{1
let type_cobol = tagbar#prototypes#typeinfo#new()
let type_cobol.ctagstype = 'cobol'
let type_cobol.kinds = [
\ {'short' : 'd', 'long' : 'data items', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'file descriptions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'g', 'long' : 'group items', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'paragraphs', 'fold' : 0, 'stl' : 1},
\ {'short' : 'P', 'long' : 'program ids', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'sections', 'fold' : 0, 'stl' : 1}
\ ]
let types.cobol = type_cobol
" DOS Batch {{{1
let type_dosbatch = tagbar#prototypes#typeinfo#new()
let type_dosbatch.ctagstype = 'dosbatch'
let type_dosbatch.kinds = [
\ {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 1}
\ ]
let types.dosbatch = type_dosbatch
" Eiffel {{{1
let type_eiffel = tagbar#prototypes#typeinfo#new()
let type_eiffel.ctagstype = 'eiffel'
let type_eiffel.kinds = [
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'features', 'fold' : 0, 'stl' : 1}
\ ]
let type_eiffel.sro = '.' " Not sure, is nesting even possible?
let type_eiffel.kind2scope = {
\ 'c' : 'class',
\ 'f' : 'feature'
\ }
let type_eiffel.scope2kind = {
\ 'class' : 'c',
\ 'feature' : 'f'
\ }
let types.eiffel = type_eiffel
" Erlang {{{1
let type_erlang = tagbar#prototypes#typeinfo#new()
let type_erlang.ctagstype = 'erlang'
let type_erlang.kinds = [
\ {'short' : 'm', 'long' : 'modules', 'fold' : 0, 'stl' : 1},
\ {'short' : 'd', 'long' : 'macro definitions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'r', 'long' : 'record definitions', 'fold' : 0, 'stl' : 1}
\ ]
let type_erlang.sro = '.' " Not sure, is nesting even possible?
let type_erlang.kind2scope = {
\ 'm' : 'module'
\ }
let type_erlang.scope2kind = {
\ 'module' : 'm'
\ }
let types.erlang = type_erlang
" Flex {{{1
" Vim doesn't support Flex out of the box, this is based on rough
" guesses and probably requires
" http://www.vim.org/scripts/script.php?script_id=2909
" Improvements welcome!
let type_as = tagbar#prototypes#typeinfo#new()
let type_as.ctagstype = 'flex'
let type_as.kinds = [
\ {'short' : 'v', 'long' : 'global variables', 'fold' : 0, 'stl' : 0},
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'properties', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'x', 'long' : 'mxtags', 'fold' : 0, 'stl' : 0}
\ ]
let type_as.sro = '.'
let type_as.kind2scope = {
\ 'c' : 'class'
\ }
let type_as.scope2kind = {
\ 'class' : 'c'
\ }
let types.mxml = type_as
let types.actionscript = type_as
" Fortran {{{1
let type_fortran = tagbar#prototypes#typeinfo#new()
let type_fortran.ctagstype = 'fortran'
let type_fortran.kinds = [
\ {'short' : 'm', 'long' : 'modules', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'programs', 'fold' : 0, 'stl' : 1},
\ {'short' : 'k', 'long' : 'components', 'fold' : 0, 'stl' : 1},
\ {'short' : 't', 'long' : 'derived types and structures', 'fold' : 0,
\ 'stl' : 1},
\ {'short' : 'c', 'long' : 'common blocks', 'fold' : 0, 'stl' : 1},
\ {'short' : 'b', 'long' : 'block data', 'fold' : 0, 'stl' : 0},
\ {'short' : 'e', 'long' : 'entry points', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'subroutines', 'fold' : 0, 'stl' : 1},
\ {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1},
\ {'short' : 'n', 'long' : 'namelists', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0}
\ ]
let type_fortran.sro = '.' " Not sure, is nesting even possible?
let type_fortran.kind2scope = {
\ 'm' : 'module',
\ 'p' : 'program',
\ 'f' : 'function',
\ 's' : 'subroutine'
\ }
let type_fortran.scope2kind = {
\ 'module' : 'm',
\ 'program' : 'p',
\ 'function' : 'f',
\ 'subroutine' : 's'
\ }
let types.fortran = type_fortran
" HTML {{{1
let type_html = tagbar#prototypes#typeinfo#new()
let type_html.ctagstype = 'html'
let type_html.kinds = [
\ {'short' : 'f', 'long' : 'JavaScript functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'a', 'long' : 'named anchors', 'fold' : 0, 'stl' : 1}
\ ]
let types.html = type_html
" Java {{{1
let type_java = tagbar#prototypes#typeinfo#new()
let type_java.ctagstype = 'java'
let type_java.kinds = [
\ {'short' : 'p', 'long' : 'packages', 'fold' : 1, 'stl' : 0},
\ {'short' : 'f', 'long' : 'fields', 'fold' : 0, 'stl' : 0},
\ {'short' : 'g', 'long' : 'enum types', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'enum constants', 'fold' : 0, 'stl' : 0},
\ {'short' : 'i', 'long' : 'interfaces', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1}
\ ]
let type_java.sro = '.'
let type_java.kind2scope = {
\ 'g' : 'enum',
\ 'i' : 'interface',
\ 'c' : 'class'
\ }
let type_java.scope2kind = {
\ 'enum' : 'g',
\ 'interface' : 'i',
\ 'class' : 'c'
\ }
let types.java = type_java
" JavaScript {{{1
let type_javascript = tagbar#prototypes#typeinfo#new()
let type_javascript.ctagstype = 'javascript'
let type_javascript.kinds = [
\ {'short': 'v', 'long': 'global variables', 'fold': 0, 'stl': 0},
\ {'short': 'c', 'long': 'classes', 'fold': 0, 'stl': 1},
\ {'short': 'p', 'long': 'properties', 'fold': 0, 'stl': 0},
\ {'short': 'm', 'long': 'methods', 'fold': 0, 'stl': 1},
\ {'short': 'f', 'long': 'functions', 'fold': 0, 'stl': 1},
\ ]
let type_javascript.sro = '.'
let type_javascript.kind2scope = {
\ 'c' : 'class',
\ 'f' : 'function',
\ 'm' : 'method',
\ 'p' : 'property',
\ }
let type_javascript.scope2kind = {
\ 'class' : 'c',
\ 'function' : 'f',
\ }
let types.javascript = type_javascript
" Lisp {{{1
let type_lisp = tagbar#prototypes#typeinfo#new()
let type_lisp.ctagstype = 'lisp'
let type_lisp.kinds = [
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}
\ ]
let types.lisp = type_lisp
let types.clojure = type_lisp
" Lua {{{1
let type_lua = tagbar#prototypes#typeinfo#new()
let type_lua.ctagstype = 'lua'
let type_lua.kinds = [
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}
\ ]
let types.lua = type_lua
" Make {{{1
let type_make = tagbar#prototypes#typeinfo#new()
let type_make.ctagstype = 'make'
let type_make.kinds = [
\ {'short' : 'm', 'long' : 'macros', 'fold' : 0, 'stl' : 1}
\ ]
let types.make = type_make
" Matlab {{{1
let type_matlab = tagbar#prototypes#typeinfo#new()
let type_matlab.ctagstype = 'matlab'
let type_matlab.kinds = [
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}
\ ]
let types.matlab = type_matlab
" ObjectiveC {{{1
let type_objc = tagbar#prototypes#typeinfo#new()
let type_objc.ctagstype = 'objectivec'
let type_objc.kinds = [
\ {'short' : 'M', 'long' : 'preprocessor macros', 'fold' : 1, 'stl' : 0},
\ {'short' : 'v', 'long' : 'global variables', 'fold' : 0, 'stl' : 0},
\ {'short' : 'i', 'long' : 'class interfaces', 'fold' : 0, 'stl' : 1},
\ {'short' : 'I', 'long' : 'class implementations', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'class methods', 'fold' : 0, 'stl' : 1},
\ {'short' : 'F', 'long' : 'object fields', 'fold' : 0, 'stl' : 0},
\ {'short' : 'm', 'long' : 'object methods', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'type structures', 'fold' : 0, 'stl' : 1},
\ {'short' : 't', 'long' : 'type aliases', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'enumerations', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'properties', 'fold' : 0, 'stl' : 0},
\ ]
let type_objc.sro = ':'
let type_objc.kind2scope = {
\ 'i' : 'interface',
\ 'I' : 'implementation',
\ 's' : 'struct',
\ }
let type_objc.scope2kind = {
\ 'interface' : 'i',
\ 'implementation' : 'I',
\ 'struct' : 's',
\ }
let types.objc = type_objc
let types.objcpp = type_objc
" Ocaml {{{1
let type_ocaml = tagbar#prototypes#typeinfo#new()
let type_ocaml.ctagstype = 'ocaml'
let type_ocaml.kinds = [
\ {'short' : 'M', 'long' : 'modules or functors', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'global variables', 'fold' : 0, 'stl' : 0},
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'C', 'long' : 'constructors', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'exceptions', 'fold' : 0, 'stl' : 1},
\ {'short' : 't', 'long' : 'type names', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'r', 'long' : 'structure fields', 'fold' : 0, 'stl' : 0}
\ ]
let type_ocaml.sro = '.' " Not sure, is nesting even possible?
let type_ocaml.kind2scope = {
\ 'M' : 'Module',
\ 'c' : 'class',
\ 't' : 'type'
\ }
let type_ocaml.scope2kind = {
\ 'Module' : 'M',
\ 'class' : 'c',
\ 'type' : 't'
\ }
let types.ocaml = type_ocaml
" Pascal {{{1
let type_pascal = tagbar#prototypes#typeinfo#new()
let type_pascal.ctagstype = 'pascal'
let type_pascal.kinds = [
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'procedures', 'fold' : 0, 'stl' : 1}
\ ]
let types.pascal = type_pascal
" Perl {{{1
let type_perl = tagbar#prototypes#typeinfo#new()
let type_perl.ctagstype = 'perl'
let type_perl.kinds = [
\ {'short' : 'p', 'long' : 'packages', 'fold' : 1, 'stl' : 0},
\ {'short' : 'c', 'long' : 'constants', 'fold' : 0, 'stl' : 0},
\ {'short' : 'f', 'long' : 'formats', 'fold' : 0, 'stl' : 0},
\ {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'subroutines', 'fold' : 0, 'stl' : 1}
\ ]
let types.perl = type_perl
" PHP {{{1
let type_php = tagbar#prototypes#typeinfo#new()
let type_php.ctagstype = 'php'
let type_php.kinds = [
\ {'short' : 'i', 'long' : 'interfaces', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'd', 'long' : 'constant definitions', 'fold' : 0, 'stl' : 0},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0},
\ {'short' : 'j', 'long' : 'javascript functions', 'fold' : 0, 'stl' : 1}
\ ]
let types.php = type_php
" Python {{{1
let type_python = tagbar#prototypes#typeinfo#new()
let type_python.ctagstype = 'python'
let type_python.kinds = [
\ {'short' : 'i', 'long' : 'imports', 'fold' : 1, 'stl' : 0},
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'members', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0}
\ ]
let type_python.sro = '.'
let type_python.kind2scope = {
\ 'c' : 'class',
\ 'f' : 'function',
\ 'm' : 'function'
\ }
let type_python.scope2kind = {
\ 'class' : 'c',
\ 'function' : 'f'
\ }
let types.python = type_python
let types.pyrex = type_python
let types.cython = type_python
" REXX {{{1
let type_rexx = tagbar#prototypes#typeinfo#new()
let type_rexx.ctagstype = 'rexx'
let type_rexx.kinds = [
\ {'short' : 's', 'long' : 'subroutines', 'fold' : 0, 'stl' : 1}
\ ]
let types.rexx = type_rexx
" Ruby {{{1
let type_ruby = tagbar#prototypes#typeinfo#new()
let type_ruby.ctagstype = 'ruby'
let type_ruby.kinds = [
\ {'short' : 'm', 'long' : 'modules', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'methods', 'fold' : 0, 'stl' : 1},
\ {'short' : 'F', 'long' : 'singleton methods', 'fold' : 0, 'stl' : 1}
\ ]
let type_ruby.sro = '.'
let type_ruby.kind2scope = {
\ 'c' : 'class',
\ 'm' : 'class',
\ 'f' : 'class'
\ }
let type_ruby.scope2kind = {
\ 'class' : 'c'
\ }
let types.ruby = type_ruby
" Scheme {{{1
let type_scheme = tagbar#prototypes#typeinfo#new()
let type_scheme.ctagstype = 'scheme'
let type_scheme.kinds = [
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'sets', 'fold' : 0, 'stl' : 1}
\ ]
let types.scheme = type_scheme
let types.racket = type_scheme
" Shell script {{{1
let type_sh = tagbar#prototypes#typeinfo#new()
let type_sh.ctagstype = 'sh'
let type_sh.kinds = [
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}
\ ]
let types.sh = type_sh
let types.csh = type_sh
let types.zsh = type_sh
" SLang {{{1
let type_slang = tagbar#prototypes#typeinfo#new()
let type_slang.ctagstype = 'slang'
let type_slang.kinds = [
\ {'short' : 'n', 'long' : 'namespaces', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}
\ ]
let types.slang = type_slang
" SML {{{1
let type_sml = tagbar#prototypes#typeinfo#new()
let type_sml.ctagstype = 'sml'
let type_sml.kinds = [
\ {'short' : 'e', 'long' : 'exception declarations', 'fold' : 0, 'stl' : 0},
\ {'short' : 'f', 'long' : 'function definitions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'functor definitions', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'signature declarations', 'fold' : 0, 'stl' : 0},
\ {'short' : 'r', 'long' : 'structure declarations', 'fold' : 0, 'stl' : 0},
\ {'short' : 't', 'long' : 'type definitions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'value bindings', 'fold' : 0, 'stl' : 0}
\ ]
let types.sml = type_sml
" SQL {{{1
" The SQL ctags parser seems to be buggy for me, so this just uses the
" normal kinds even though scopes should be available. Improvements
" welcome!
let type_sql = tagbar#prototypes#typeinfo#new()
let type_sql.ctagstype = 'sql'
let type_sql.kinds = [
\ {'short' : 'P', 'long' : 'packages', 'fold' : 1, 'stl' : 1},
\ {'short' : 'd', 'long' : 'prototypes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'cursors', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'F', 'long' : 'record fields', 'fold' : 0, 'stl' : 1},
\ {'short' : 'L', 'long' : 'block label', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'procedures', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'subtypes', 'fold' : 0, 'stl' : 1},
\ {'short' : 't', 'long' : 'tables', 'fold' : 0, 'stl' : 1},
\ {'short' : 'T', 'long' : 'triggers', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 1},
\ {'short' : 'i', 'long' : 'indexes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'events', 'fold' : 0, 'stl' : 1},
\ {'short' : 'U', 'long' : 'publications', 'fold' : 0, 'stl' : 1},
\ {'short' : 'R', 'long' : 'services', 'fold' : 0, 'stl' : 1},
\ {'short' : 'D', 'long' : 'domains', 'fold' : 0, 'stl' : 1},
\ {'short' : 'V', 'long' : 'views', 'fold' : 0, 'stl' : 1},
\ {'short' : 'n', 'long' : 'synonyms', 'fold' : 0, 'stl' : 1},
\ {'short' : 'x', 'long' : 'MobiLink Table Scripts', 'fold' : 0, 'stl' : 1},
\ {'short' : 'y', 'long' : 'MobiLink Conn Scripts', 'fold' : 0, 'stl' : 1},
\ {'short' : 'z', 'long' : 'MobiLink Properties', 'fold' : 0, 'stl' : 1}
\ ]
let types.sql = type_sql
" Tcl {{{1
let type_tcl = tagbar#prototypes#typeinfo#new()
let type_tcl.ctagstype = 'tcl'
let type_tcl.kinds = [
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'procedures', 'fold' : 0, 'stl' : 1}
\ ]
let types.tcl = type_tcl
" LaTeX {{{1
let type_tex = tagbar#prototypes#typeinfo#new()
let type_tex.ctagstype = 'tex'
let type_tex.kinds = [
\ {'short' : 'i', 'long' : 'includes', 'fold' : 1, 'stl' : 0},
\ {'short' : 'p', 'long' : 'parts', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'chapters', 'fold' : 0, 'stl' : 1},
\ {'short' : 's', 'long' : 'sections', 'fold' : 0, 'stl' : 1},
\ {'short' : 'u', 'long' : 'subsections', 'fold' : 0, 'stl' : 1},
\ {'short' : 'b', 'long' : 'subsubsections', 'fold' : 0, 'stl' : 1},
\ {'short' : 'P', 'long' : 'paragraphs', 'fold' : 0, 'stl' : 0},
\ {'short' : 'G', 'long' : 'subparagraphs', 'fold' : 0, 'stl' : 0},
\ {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 0}
\ ]
let type_tex.sro = '""'
let type_tex.kind2scope = {
\ 'p' : 'part',
\ 'c' : 'chapter',
\ 's' : 'section',
\ 'u' : 'subsection',
\ 'b' : 'subsubsection'
\ }
let type_tex.scope2kind = {
\ 'part' : 'p',
\ 'chapter' : 'c',
\ 'section' : 's',
\ 'subsection' : 'u',
\ 'subsubsection' : 'b'
\ }
let type_tex.sort = 0
let types.tex = type_tex
" Vala {{{1
" Vala is supported by the ctags fork provided by Anjuta, so only add the
" type if the fork is used to prevent error messages otherwise
if has_key(a:supported_types, 'vala') || executable('anjuta-tags')
let type_vala = tagbar#prototypes#typeinfo#new()
let type_vala.ctagstype = 'vala'
let type_vala.kinds = [
\ {'short' : 'e', 'long' : 'Enumerations', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'Enumeration values', 'fold' : 0, 'stl' : 0},
\ {'short' : 's', 'long' : 'Structures', 'fold' : 0, 'stl' : 1},
\ {'short' : 'i', 'long' : 'Interfaces', 'fold' : 0, 'stl' : 1},
\ {'short' : 'd', 'long' : 'Delegates', 'fold' : 0, 'stl' : 1},
\ {'short' : 'c', 'long' : 'Classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'Properties', 'fold' : 0, 'stl' : 0},
\ {'short' : 'f', 'long' : 'Fields', 'fold' : 0, 'stl' : 0},
\ {'short' : 'm', 'long' : 'Methods', 'fold' : 0, 'stl' : 1},
\ {'short' : 'E', 'long' : 'Error domains', 'fold' : 0, 'stl' : 1},
\ {'short' : 'r', 'long' : 'Error codes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'S', 'long' : 'Signals', 'fold' : 0, 'stl' : 1}
\ ]
let type_vala.sro = '.'
" 'enum' doesn't seem to be used as a scope, but it can't hurt to have
" it here
let type_vala.kind2scope = {
\ 's' : 'struct',
\ 'i' : 'interface',
\ 'c' : 'class',
\ 'e' : 'enum'
\ }
let type_vala.scope2kind = {
\ 'struct' : 's',
\ 'interface' : 'i',
\ 'class' : 'c',
\ 'enum' : 'e'
\ }
let types.vala = type_vala
endif
if !has_key(a:supported_types, 'vala') && executable('anjuta-tags')
let types.vala.ctagsbin = 'anjuta-tags'
endif
" Vera {{{1
" Why are variables 'virtual'?
let type_vera = tagbar#prototypes#typeinfo#new()
let type_vera.ctagstype = 'vera'
let type_vera.kinds = [
\ {'short' : 'd', 'long' : 'macros', 'fold' : 1, 'stl' : 0},
\ {'short' : 'g', 'long' : 'enums', 'fold' : 0, 'stl' : 1},
\ {'short' : 'T', 'long' : 'typedefs', 'fold' : 0, 'stl' : 0},
\ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'enumerators', 'fold' : 0, 'stl' : 0},
\ {'short' : 'm', 'long' : 'members', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 't', 'long' : 'tasks', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0},
\ {'short' : 'p', 'long' : 'programs', 'fold' : 0, 'stl' : 1}
\ ]
let type_vera.sro = '.' " Nesting doesn't seem to be possible
let type_vera.kind2scope = {
\ 'g' : 'enum',
\ 'c' : 'class',
\ 'v' : 'virtual'
\ }
let type_vera.scope2kind = {
\ 'enum' : 'g',
\ 'class' : 'c',
\ 'virtual' : 'v'
\ }
let types.vera = type_vera
" Verilog {{{1
let type_verilog = tagbar#prototypes#typeinfo#new()
let type_verilog.ctagstype = 'verilog'
let type_verilog.kinds = [
\ {'short' : 'c', 'long' : 'constants', 'fold' : 0, 'stl' : 0},
\ {'short' : 'e', 'long' : 'events', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'modules', 'fold' : 0, 'stl' : 1},
\ {'short' : 'n', 'long' : 'net data types', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'ports', 'fold' : 0, 'stl' : 1},
\ {'short' : 'r', 'long' : 'register data types', 'fold' : 0, 'stl' : 1},
\ {'short' : 't', 'long' : 'tasks', 'fold' : 0, 'stl' : 1}
\ ]
let types.verilog = type_verilog
" VHDL {{{1
" The VHDL ctags parser unfortunately doesn't generate proper scopes
let type_vhdl = tagbar#prototypes#typeinfo#new()
let type_vhdl.ctagstype = 'vhdl'
let type_vhdl.kinds = [
\ {'short' : 'P', 'long' : 'packages', 'fold' : 1, 'stl' : 0},
\ {'short' : 'c', 'long' : 'constants', 'fold' : 0, 'stl' : 0},
\ {'short' : 't', 'long' : 'types', 'fold' : 0, 'stl' : 1},
\ {'short' : 'T', 'long' : 'subtypes', 'fold' : 0, 'stl' : 1},
\ {'short' : 'r', 'long' : 'records', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'entities', 'fold' : 0, 'stl' : 1},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'p', 'long' : 'procedures', 'fold' : 0, 'stl' : 1}
\ ]
let types.vhdl = type_vhdl
" Vim {{{1
let type_vim = tagbar#prototypes#typeinfo#new()
let type_vim.ctagstype = 'vim'
let type_vim.kinds = [
\ {'short' : 'n', 'long' : 'vimball filenames', 'fold' : 0, 'stl' : 1},
\ {'short' : 'v', 'long' : 'variables', 'fold' : 1, 'stl' : 0},
\ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1},
\ {'short' : 'a', 'long' : 'autocommand groups', 'fold' : 1, 'stl' : 1},
\ {'short' : 'c', 'long' : 'commands', 'fold' : 0, 'stl' : 0},
\ {'short' : 'm', 'long' : 'maps', 'fold' : 1, 'stl' : 0}
\ ]
let types.vim = type_vim
" YACC {{{1
let type_yacc = tagbar#prototypes#typeinfo#new()
let type_yacc.ctagstype = 'yacc'
let type_yacc.kinds = [
\ {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1}
\ ]
let types.yacc = type_yacc
" }}}1
for [type, typeinfo] in items(types)
let typeinfo.ftype = type
endfor
for typeinfo in values(types)
call typeinfo.createKinddict()
endfor
return types
endfunction
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,151 @@
" ============================================================================
" File: tagbar.vim
" Description: List the current file's tags in a sidebar, ordered by class etc
" Author: Jan Larres <jan@majutsushi.net>
" Licence: Vim licence
" Website: http://majutsushi.github.com/tagbar/
" Version: 2.7
" Note: This plugin was heavily inspired by the 'Taglist' plugin by
" Yegappan Lakshmanan and uses a small amount of code from it.
"
" Original taglist copyright notice:
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" taglist.vim is provided *as is* and comes with no warranty of
" any kind, either expressed or implied. In no event will the
" copyright holder be liable for any damamges resulting from the
" use of this software.
" ============================================================================
scriptencoding utf-8
if &cp || exists('g:loaded_tagbar')
finish
endif
" Basic init {{{1
if v:version < 700
echohl WarningMsg
echomsg 'Tagbar: Vim version is too old, Tagbar requires at least 7.0'
echohl None
finish
endif
if v:version == 700 && !has('patch167')
echohl WarningMsg
echomsg 'Tagbar: Vim versions lower than 7.0.167 have a bug'
\ 'that prevents this version of Tagbar from working.'
\ 'Please use the alternate version posted on the website.'
echohl None
finish
endif
function! s:init_var(var, value) abort
if !exists('g:tagbar_' . a:var)
execute 'let g:tagbar_' . a:var . ' = ' . string(a:value)
endif
endfunction
function! s:setup_options() abort
if !exists('g:tagbar_vertical') || g:tagbar_vertical == 0
let previewwin_pos = 'topleft'
else
let previewwin_pos = 'rightbelow vertical'
endif
let options = [
\ ['autoclose', 0],
\ ['autofocus', 0],
\ ['autopreview', 0],
\ ['autoshowtag', 0],
\ ['case_insensitive', 0],
\ ['compact', 0],
\ ['expand', 0],
\ ['foldlevel', 99],
\ ['hide_nonpublic', 0],
\ ['indent', 2],
\ ['left', 0],
\ ['previewwin_pos', previewwin_pos],
\ ['show_visibility', 1],
\ ['show_linenumbers', 0],
\ ['singleclick', 0],
\ ['sort', 1],
\ ['systemenc', &encoding],
\ ['vertical', 0],
\ ['width', 40],
\ ['zoomwidth', 1],
\ ['silent', 0],
\ ]
for [opt, val] in options
call s:init_var(opt, val)
endfor
endfunction
call s:setup_options()
if !exists('g:tagbar_iconchars')
if has('multi_byte') && has('unix') && &encoding == 'utf-8' &&
\ (empty(&termencoding) || &termencoding == 'utf-8')
let g:tagbar_iconchars = ['▶', '▼']
else
let g:tagbar_iconchars = ['+', '-']
endif
endif
function! s:setup_keymaps() abort
let keymaps = [
\ ['jump', '<CR>'],
\ ['preview', 'p'],
\ ['previewwin', 'P'],
\ ['nexttag', '<C-N>'],
\ ['prevtag', '<C-P>'],
\ ['showproto', '<Space>'],
\ ['hidenonpublic', 'v'],
\
\ ['openfold', ['+', '<kPlus>', 'zo']],
\ ['closefold', ['-', '<kMinus>', 'zc']],
\ ['togglefold', ['o', 'za']],
\ ['openallfolds', ['*', '<kMultiply>', 'zR']],
\ ['closeallfolds', ['=', 'zM']],
\ ['incrementfolds', ['zr']],
\ ['decrementfolds', ['zm']],
\ ['nextfold', 'zj'],
\ ['prevfold', 'zk'],
\
\ ['togglesort', 's'],
\ ['togglecaseinsensitive', 'i'],
\ ['toggleautoclose', 'c'],
\ ['zoomwin', 'x'],
\ ['close', 'q'],
\ ['help', ['<F1>', '?']],
\ ]
for [map, key] in keymaps
call s:init_var('map_' . map, key)
unlet key
endfor
endfunction
call s:setup_keymaps()
augroup TagbarSession
autocmd!
autocmd SessionLoadPost * nested call tagbar#RestoreSession()
augroup END
" Commands {{{1
command! -nargs=0 Tagbar call tagbar#ToggleWindow()
command! -nargs=0 TagbarToggle call tagbar#ToggleWindow()
command! -nargs=? TagbarOpen call tagbar#OpenWindow(<f-args>)
command! -nargs=0 TagbarOpenAutoClose call tagbar#OpenWindow('fcj')
command! -nargs=0 TagbarClose call tagbar#CloseWindow()
command! -nargs=1 -bang TagbarSetFoldlevel call tagbar#SetFoldLevel(<args>, <bang>0)
command! -nargs=0 TagbarShowTag call tagbar#highlighttag(1, 1)
command! -nargs=? TagbarCurrentTag echo tagbar#currenttag('%s', 'No current tag', <f-args>)
command! -nargs=1 TagbarGetTypeConfig call tagbar#gettypeconfig(<f-args>)
command! -nargs=? TagbarDebug call tagbar#debug#start_debug(<f-args>)
command! -nargs=0 TagbarDebugEnd call tagbar#debug#stop_debug()
command! -nargs=0 TagbarTogglePause call tagbar#toggle_pause()
" Modeline {{{1
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,64 @@
" File: tagbar.vim
" Description: Tagbar syntax settings
" Author: Jan Larres <jan@majutsushi.net>
" Licence: Vim licence
" Website: http://majutsushi.github.com/tagbar/
" Version: 2.7
scriptencoding utf-8
if exists("b:current_syntax")
finish
endif
let s:ics = escape(join(g:tagbar_iconchars, ''), ']^\-')
let s:pattern = '\(^[' . s:ics . '] \?\)\@3<=[^-+: ]\+[^:]\+$'
execute "syntax match TagbarKind '" . s:pattern . "'"
let s:pattern = '\(\S\@<![' . s:ics . '][-+# ]\?\)\@<=[^*(]\+\(\*\?\(([^)]\+)\)\? :\)\@='
execute "syntax match TagbarScope '" . s:pattern . "'"
let s:pattern = '\S\@<![' . s:ics . ']\([-+# ]\?\)\@='
execute "syntax match TagbarFoldIcon '" . s:pattern . "'"
let s:pattern = '\(\S\@<![' . s:ics . ' ]\)\@<=+\([^-+# ]\)\@='
execute "syntax match TagbarVisibilityPublic '" . s:pattern . "'"
let s:pattern = '\(\S\@<![' . s:ics . ' ]\)\@<=#\([^-+# ]\)\@='
execute "syntax match TagbarVisibilityProtected '" . s:pattern . "'"
let s:pattern = '\(\S\@<![' . s:ics . ' ]\)\@<=-\([^-+# ]\)\@='
execute "syntax match TagbarVisibilityPrivate '" . s:pattern . "'"
unlet s:pattern
syntax match TagbarHelp '^".*' contains=TagbarHelpKey,TagbarHelpTitle
syntax match TagbarHelpKey '" \zs.*\ze:' contained
syntax match TagbarHelpTitle '" \zs-\+ \w\+ -\+' contained
syntax match TagbarNestedKind '^\s\+\[[^]]\+\]$'
syntax match TagbarType ' : \zs.*'
syntax match TagbarSignature '(.*)'
syntax match TagbarPseudoID '\*\ze :'
highlight default link TagbarHelp Comment
highlight default link TagbarHelpKey Identifier
highlight default link TagbarHelpTitle PreProc
highlight default link TagbarKind Identifier
highlight default link TagbarNestedKind TagbarKind
highlight default link TagbarScope Title
highlight default link TagbarType Type
highlight default link TagbarSignature SpecialKey
highlight default link TagbarPseudoID NonText
highlight default link TagbarFoldIcon Statement
highlight default link TagbarHighlight Search
highlight default TagbarAccessPublic guifg=Green ctermfg=Green
highlight default TagbarAccessProtected guifg=Blue ctermfg=Blue
highlight default TagbarAccessPrivate guifg=Red ctermfg=Red
highlight default link TagbarVisibilityPublic TagbarAccessPublic
highlight default link TagbarVisibilityProtected TagbarAccessProtected
highlight default link TagbarVisibilityPrivate TagbarAccessPrivate
let b:current_syntax = "tagbar"
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1

View File

@ -0,0 +1,5 @@
/autoload/css_color.vim export-subst
/.gitattributes export-ignore
/README.md export-ignore
/LICENSE export-ignore
/tests export-ignore

View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Aristotle Pagaltzis
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,8 @@
<img src="http://ap.github.io/vim-css-color/screenshot.png" alt=""/>
A very fast color keyword highlighter for Vim with context-sensitive support
for many language syntaxes.
<sub>Originally based on code
by [Niklas Hofer](http://www.vim.org/scripts/script.php?script_id=2150)
and [Max Vasiliev](https://github.com/skammer/vim-css-color).</sub>

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('css', 'extended', 'cssMediaBlock,cssFunction,cssDefinition,cssAttrRegion,cssComment')

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('hex', 'none', 'goComment,goString,goRawString')

View File

@ -0,0 +1,5 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
" default html syntax should already be including the css syntax
call css_color#init('none', 'none', 'htmlString,htmlCommentPart')

View File

@ -0,0 +1,15 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
" Author: Greg Werbin <ourobourbon@gmail.com>
" ft=coffee includes javascript, but mostly sets up own syntax groups
" so until it has specific support there's no point in loading anyway
" and for some reason the W3C syntax color keywords break its highlighting
" (this refers to the https://github.com/kchmck/vim-coffee-script plugin)
if -1 < index( split( &filetype, '[.]' ), 'coffee' ) | finish | endif
" javaScriptX = default Vim syntax, jsX = https://github.com/pangloss/vim-javascript
call css_color#init('hex', 'extended'
\, 'javaScriptComment,javaScriptLineComment,javaScriptStringS,javaScriptStringD'
\. 'jsComment,jsString,jsTemplateString,jsObjectKeyString,jsObjectStringKey,jsClassStringKey'
\)

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('css', 'none', 'jsonString')

View File

@ -0,0 +1,5 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
" should already be including the javascript and xml syntaxes
call css_color#init('css', 'none', '')

View File

@ -0,0 +1,11 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
" variable | property | multiline | end-of-line | plugin
" -----------------------+----------------+----------------+-------------+---------
" lessCssAttribute | lessCssComment | lessComment | https://github.com/genoma/vim-less
" lessAttribute | lessCssComment | lessComment | https://github.com/KohPoll/vim-less
" lessVariableValue | lessDefinition | cssComment | lessComment | https://github.com/groenewege/vim-less
" lessVariableDefinition | cssDefinition | cssComment | lessComment | https://github.com/lunaru/vim-less
call css_color#init('css', 'extended', 'lessVariableValue,lessVariableDefinition,lessDefinition,lessCssAttribute,lessAttribute,cssDefinition,cssComment,lessCssComment,lessComment')

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('hex', 'extended', 'moonComment,moonString')

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('hex', 'none', 'perlComment,perlDATA,perlString,perlStringUnexpanded,perlQQ,perlHereDoc')

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('css', 'basic', 'phpComment,phpStringSingle,phpStringDouble')

View File

@ -0,0 +1,5 @@
" Language: Colorful CSS Color Preview
" Author: DanCardin <ddcardin@gmail.com>
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('hex', 'none', 'pythonComment,pythonString')

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Greg Werbin <ourobourbon@gmail.com>
call css_color#init('hex', 'extended', 'rComment,rString')

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('hex', 'none', 'rubyComment,rubyData,rubyString')

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('css', 'extended', 'sassCssAttribute,sassComment,sassCssComment')

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('css', 'extended', 'scssAttribute,scssComment,scssVariableValue,scssMap,scssMapValue,sassCssAttribute,cssComment')

View File

@ -0,0 +1,4 @@
" Language: Colorful CSS Color Preview
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
call css_color#init('css', 'extended', 'stylusCssAttribute,stylusComment,cssComment')

Some files were not shown because too many files have changed in this diff Show More