mirror of
https://github.com/fergalmoran/settings-webstorm.git
synced 2025-12-22 09:47:41 +00:00
Removed homesick stuff
This commit is contained in:
@@ -1 +1 @@
|
||||
My dotfiles - use homesick to clone
|
||||
My unix dotfiles (check vimfiles for my vim config)
|
||||
|
||||
113
home/.aliases
113
home/.aliases
@@ -1,113 +0,0 @@
|
||||
# Easier navigation: .., ..., ~ and -
|
||||
alias ..="cd .."
|
||||
alias ...="cd ../.."
|
||||
alias ....="cd ../../.."
|
||||
alias .....="cd ../../../.."
|
||||
alias ~="cd ~" # `cd` is probably faster to type though
|
||||
alias -- -="cd -"
|
||||
|
||||
# programs
|
||||
alias slt='open -a "Sublime Text 2"'
|
||||
# also/or do this:
|
||||
# ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl
|
||||
|
||||
|
||||
# be nice
|
||||
alias please=sudo
|
||||
alias hosts='sudo $EDITOR /etc/hosts' # yes I occasionally 127.0.0.1 twitter.com ;)
|
||||
|
||||
# Detect which `ls` flavor is in use
|
||||
if ls --color > /dev/null 2>&1; then # GNU `ls`
|
||||
colorflag="--color"
|
||||
else # OS X `ls`
|
||||
colorflag="-G"
|
||||
fi
|
||||
|
||||
# List all files colorized in long format
|
||||
alias l="ls -l ${colorflag}"
|
||||
|
||||
# List all files colorized in long format, including dot files
|
||||
alias la="ls -la ${colorflag}"
|
||||
|
||||
|
||||
# List only directories
|
||||
alias lsd='ls -l | grep "^d"'
|
||||
|
||||
# Always use color output for `ls`
|
||||
if [[ "$OSTYPE" =~ ^darwin ]]; then
|
||||
alias ls="command ls -G"
|
||||
else
|
||||
alias ls="command ls --color"
|
||||
export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:'
|
||||
fi
|
||||
|
||||
# `cat` with beautiful colors. requires Pygments installed.
|
||||
# sudo easy_install Pygments
|
||||
alias c='pygmentize -O style=monokai -f console256 -g'
|
||||
|
||||
# GIT STUFF
|
||||
|
||||
# Undo a `git push`
|
||||
alias undopush="git push -f origin HEAD^:master"
|
||||
|
||||
|
||||
# git root
|
||||
alias gr='[ ! -z `git rev-parse --show-cdup` ] && cd `git rev-parse --show-cdup || pwd`'
|
||||
|
||||
# IP addresses
|
||||
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
|
||||
alias localip="ipconfig getifaddr en1"
|
||||
alias ips="ifconfig -a | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1'"
|
||||
|
||||
# Enhanced WHOIS lookups
|
||||
alias whois="whois -h whois-servers.net"
|
||||
|
||||
# Flush Directory Service cache
|
||||
alias flush="dscacheutil -flushcache"
|
||||
|
||||
# View HTTP traffic
|
||||
alias sniff="sudo ngrep -d 'en1' -t '^(GET|POST) ' 'tcp and port 80'"
|
||||
alias httpdump="sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E \"Host\: .*|GET \/.*\""
|
||||
|
||||
# Canonical hex dump; some systems have this symlinked
|
||||
type -t hd > /dev/null || alias hd="hexdump -C"
|
||||
|
||||
# OS X has no `md5sum`, so use `md5` as a fallback
|
||||
type -t md5sum > /dev/null || alias md5sum="md5"
|
||||
|
||||
# Trim new lines and copy to clipboard
|
||||
alias trimcopy="tr -d '\n' | pbcopy"
|
||||
|
||||
# Recursively delete `.DS_Store` files
|
||||
alias cleanup="find . -name '*.DS_Store' -type f -ls -delete"
|
||||
|
||||
# Shortcuts
|
||||
alias g="git"
|
||||
alias v="vim"
|
||||
|
||||
# File size
|
||||
alias fs="stat -f \"%z bytes\""
|
||||
|
||||
# ROT13-encode text. Works for decoding, too! ;)
|
||||
alias rot13='tr a-zA-Z n-za-mN-ZA-M'
|
||||
|
||||
# Empty the Trash on all mounted volumes and the main HDD
|
||||
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; rm -rfv ~/.Trash"
|
||||
|
||||
# Hide/show all desktop icons (useful when presenting)
|
||||
alias hidedesktop="defaults write com.apple.finder CreateDesktop -bool false && killall Finder"
|
||||
alias showdesktop="defaults write com.apple.finder CreateDesktop -bool true && killall Finder"
|
||||
|
||||
|
||||
# PlistBuddy alias, because sometimes `defaults` just doesn’t cut it
|
||||
alias plistbuddy="/usr/libexec/PlistBuddy"
|
||||
|
||||
# One of @janmoesen’s ProTip™s
|
||||
for method in GET HEAD POST PUT DELETE TRACE OPTIONS; do
|
||||
alias "$method"="lwp-request -m '$method'"
|
||||
done
|
||||
|
||||
# Stuff I never really use but cannot delete either because of http://xkcd.com/530/
|
||||
alias stfu="osascript -e 'set volume output muted true'"
|
||||
alias pumpitup="osascript -e 'set volume 10'"
|
||||
alias hax="growlnotify -a 'Activity Monitor' 'System error' -m 'WTF R U DOIN'"
|
||||
@@ -1,23 +0,0 @@
|
||||
# Load ~/.extra, ~/.bash_prompt, ~/.exports, ~/.aliases and ~/.functions
|
||||
# ~/.extra can be used for settings you don’t want to commit
|
||||
for file in ~/.{extra,bash_prompt,exports,aliases,functions}; do
|
||||
[ -r "$file" ] && source "$file"
|
||||
done
|
||||
unset file
|
||||
|
||||
# init z https://github.com/rupa/z
|
||||
. ~/dev/tools/z/z.sh
|
||||
|
||||
# Case-insensitive globbing (used in pathname expansion)
|
||||
shopt -s nocaseglob
|
||||
|
||||
# Prefer US English and use UTF-8
|
||||
export LC_ALL="en_IE.UTF-8"
|
||||
export LANG="en_IE"
|
||||
|
||||
# Add tab completion for SSH hostnames based on ~/.ssh/config, ignoring wildcards
|
||||
[ -e "$HOME/.ssh/config" ] && complete -o "default" -o "nospace" -W "$(grep "^Host" ~/.ssh/config | grep -v "[?*]" | cut -d " " -f2)" scp sftp ssh
|
||||
|
||||
# Add tab completion for `defaults read|write NSGlobalDomain`
|
||||
# You could just use `-g` instead, but I like being explicit
|
||||
complete -W "NSGlobalDomain" defaults
|
||||
@@ -1,66 +0,0 @@
|
||||
# @gf3’s Sexy Bash Prompt, inspired by “Extravagant Zsh Prompt”
|
||||
# Shamelessly copied from https://github.com/gf3/dotfiles
|
||||
|
||||
default_username='paulirish'
|
||||
|
||||
|
||||
|
||||
if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then
|
||||
export TERM=gnome-256color
|
||||
elif infocmp xterm-256color >/dev/null 2>&1; then
|
||||
export TERM=xterm-256color
|
||||
fi
|
||||
|
||||
if tput setaf 1 &> /dev/null; then
|
||||
tput sgr0
|
||||
if [[ $(tput colors) -ge 256 ]] 2>/dev/null; then
|
||||
MAGENTA=$(tput setaf 9)
|
||||
ORANGE=$(tput setaf 172)
|
||||
GREEN=$(tput setaf 190)
|
||||
PURPLE=$(tput setaf 141)
|
||||
WHITE=$(tput setaf 256)
|
||||
else
|
||||
MAGENTA=$(tput setaf 5)
|
||||
ORANGE=$(tput setaf 4)
|
||||
GREEN=$(tput setaf 2)
|
||||
PURPLE=$(tput setaf 1)
|
||||
WHITE=$(tput setaf 7)
|
||||
fi
|
||||
BOLD=$(tput bold)
|
||||
RESET=$(tput sgr0)
|
||||
else
|
||||
MAGENTA="\033[1;31m"
|
||||
ORANGE="\033[1;33m"
|
||||
GREEN="\033[1;32m"
|
||||
PURPLE="\033[1;35m"
|
||||
WHITE="\033[1;37m"
|
||||
BOLD=""
|
||||
RESET="\033[m"
|
||||
fi
|
||||
|
||||
|
||||
function parse_git_dirty() {
|
||||
[[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
|
||||
}
|
||||
|
||||
function parse_git_branch() {
|
||||
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/\1$(parse_git_dirty)/"
|
||||
}
|
||||
|
||||
# Only show username/host if not default
|
||||
function usernamehost() {
|
||||
if [ $USER != $default_username ]; then echo "${MAGENTA}$USER ${WHITE}at ${ORANGE}$HOSTNAME $WHITEin "; fi
|
||||
}
|
||||
|
||||
# iTerm Tab and Title Customization and prompt customization
|
||||
# http://sage.ucsc.edu/xtal/iterm_tab_customization.html
|
||||
|
||||
# Put the string " [bash] hostname::/full/directory/path"
|
||||
# in the title bar using the command sequence
|
||||
# \[\e]2;[bash] \h::\]$PWD\[\a\]
|
||||
|
||||
# Put the penultimate and current directory
|
||||
# in the iterm tab
|
||||
# \[\e]1;\]$(basename $(dirname $PWD))/\W\[\a\]
|
||||
|
||||
PS1="\[\e]2;$PWD\[\a\]\[\e]1;\]$(basename "$(dirname "$PWD")")/\W\[\a\]${BOLD}\$(usernamehost)\[$GREEN\]\w\[$WHITE\]\$([[ -n \$(git branch 2> /dev/null) ]] && echo \" on \")\[$PURPLE\]\$(parse_git_branch)\[$WHITE\]\n\$ \[$RESET\]"
|
||||
@@ -1 +0,0 @@
|
||||
[ -n "$PS1" ] && source ~/.bash_profile
|
||||
@@ -1,23 +0,0 @@
|
||||
" Vim syntax file
|
||||
" Language: CSS 3
|
||||
" Maintainer: Shiao <i@shiao.org>
|
||||
" Last Change: 2010 Apr 5
|
||||
|
||||
syn keyword cssTagName article aside audio bb canvas command datagrid
|
||||
syn keyword cssTagName datalist details dialog embed figure footer
|
||||
syn keyword cssTagName header hgroup keygen mark meter nav output
|
||||
syn keyword cssTagName progress time ruby rt rp section time video
|
||||
syn keyword cssTagName source figcaption
|
||||
|
||||
syn keyword cssColorProp contained opacity
|
||||
|
||||
syn match cssTextProp contained "\<word-wrap\>"
|
||||
syn match cssTextProp contained "\<text-overflow\>"
|
||||
|
||||
syn match cssBoxProp contained "\<box-shadow\>"
|
||||
syn match cssBoxProp contained "\<border-radius\>"
|
||||
syn match cssBoxProp contained "\<border-\(\(top-left\|top-right\|bottom-right\|bottom-left\)-radius\)\>"
|
||||
" firefox border-radius TODO
|
||||
syn match cssBoxProp contained "-moz-border-radius\>"
|
||||
syn match cssBoxProp contained "-moz-border-radius\(-\(bottomleft\|bottomright\|topright\|topleft\)\)\>"
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
" Vim syntax file
|
||||
" Language: HTML (version 5)
|
||||
" Maintainer: Rodrigo Machado <rcmachado@gmail.com>
|
||||
" URL: http://gist.github.com/256840
|
||||
" Last Change: 2010 Aug 26
|
||||
" License: Public domain
|
||||
" (but let me know if you liked it :) )
|
||||
"
|
||||
" Note: This file just adds the new tags from HTML 5
|
||||
" and don't replace default html.vim syntax file
|
||||
|
||||
" HTML 5 tags
|
||||
syn keyword htmlTagName contained article aside audio bb canvas command datagrid
|
||||
syn keyword htmlTagName contained datalist details dialog embed figure footer
|
||||
syn keyword htmlTagName contained header hgroup keygen mark meter nav output
|
||||
syn keyword htmlTagName contained progress time ruby rt rp section time video
|
||||
syn keyword htmlTagName contained source figcaption
|
||||
|
||||
" HTML 5 arguments
|
||||
syn keyword htmlArg contained autofocus autocomplete placeholder min max step
|
||||
syn keyword htmlArg contained contenteditable contextmenu draggable hidden item
|
||||
syn keyword htmlArg contained itemprop list sandbox subject spellcheck
|
||||
syn keyword htmlArg contained novalidate seamless pattern formtarget manifest
|
||||
syn keyword htmlArg contained formaction formenctype formmethod formnovalidate
|
||||
syn keyword htmlArg contained sizes scoped async reversed sandbox srcdoc
|
||||
syn keyword htmlArg contained hidden role
|
||||
syn match htmlArg "\<\(aria-[\-a-zA-Z0-9_]\+\)=" contained
|
||||
syn match htmlArg contained "\s*data-[-a-zA-Z0-9_]\+"
|
||||
@@ -1,132 +0,0 @@
|
||||
" pathogen.vim - path option manipulation
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Version: 1.2
|
||||
|
||||
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
|
||||
"
|
||||
" API is documented below.
|
||||
|
||||
if exists("g:loaded_pathogen") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_pathogen = 1
|
||||
|
||||
" Split a path into a list.
|
||||
function! pathogen#split(path) abort " {{{1
|
||||
if type(a:path) == type([]) | return a:path | endif
|
||||
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
|
||||
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
|
||||
endfunction " }}}1
|
||||
|
||||
" Convert a list to a path.
|
||||
function! pathogen#join(...) abort " {{{1
|
||||
if type(a:1) == type(1) && a:1
|
||||
let i = 1
|
||||
let space = ' '
|
||||
else
|
||||
let i = 0
|
||||
let space = ''
|
||||
endif
|
||||
let path = ""
|
||||
while i < a:0
|
||||
if type(a:000[i]) == type([])
|
||||
let list = a:000[i]
|
||||
let j = 0
|
||||
while j < len(list)
|
||||
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
|
||||
let path .= ',' . escaped
|
||||
let j += 1
|
||||
endwhile
|
||||
else
|
||||
let path .= "," . a:000[i]
|
||||
endif
|
||||
let i += 1
|
||||
endwhile
|
||||
return substitute(path,'^,','','')
|
||||
endfunction " }}}1
|
||||
|
||||
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
|
||||
function! pathogen#legacyjoin(...) abort " {{{1
|
||||
return call('pathogen#join',[1] + a:000)
|
||||
endfunction " }}}1
|
||||
|
||||
" Remove duplicates from a list.
|
||||
function! pathogen#uniq(list) abort " {{{1
|
||||
let i = 0
|
||||
let seen = {}
|
||||
while i < len(a:list)
|
||||
if has_key(seen,a:list[i])
|
||||
call remove(a:list,i)
|
||||
else
|
||||
let seen[a:list[i]] = 1
|
||||
let i += 1
|
||||
endif
|
||||
endwhile
|
||||
return a:list
|
||||
endfunction " }}}1
|
||||
|
||||
" \ on Windows unless shellslash is set, / everywhere else.
|
||||
function! pathogen#separator() abort " {{{1
|
||||
return !exists("+shellslash") || &shellslash ? '/' : '\'
|
||||
endfunction " }}}1
|
||||
|
||||
" Convenience wrapper around glob() which returns a list.
|
||||
function! pathogen#glob(pattern) abort " {{{1
|
||||
let files = split(glob(a:pattern),"\n")
|
||||
return map(files,'substitute(v:val,"[".pathogen#separator()."/]$","","")')
|
||||
endfunction "}}}1
|
||||
|
||||
" Like pathogen#glob(), only limit the results to directories.
|
||||
function! pathogen#glob_directories(pattern) abort " {{{1
|
||||
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
|
||||
endfunction "}}}1
|
||||
|
||||
" Prepend all subdirectories of path to the rtp, and append all after
|
||||
" directories in those subdirectories.
|
||||
function! pathogen#runtime_prepend_subdirectories(path) " {{{1
|
||||
let sep = pathogen#separator()
|
||||
let before = pathogen#glob_directories(a:path.sep."*[^~]")
|
||||
let after = pathogen#glob_directories(a:path.sep."*[^~]".sep."after")
|
||||
let rtp = pathogen#split(&rtp)
|
||||
let path = expand(a:path)
|
||||
call filter(rtp,'v:val[0:strlen(path)-1] !=# path')
|
||||
let &rtp = pathogen#join(pathogen#uniq(before + rtp + after))
|
||||
return &rtp
|
||||
endfunction " }}}1
|
||||
|
||||
" For each directory in rtp, check for a subdirectory named dir. If it
|
||||
" exists, add all subdirectories of that subdirectory to the rtp, immediately
|
||||
" after the original directory. If no argument is given, 'bundle' is used.
|
||||
" Repeated calls with the same arguments are ignored.
|
||||
function! pathogen#runtime_append_all_bundles(...) " {{{1
|
||||
let sep = pathogen#separator()
|
||||
let name = a:0 ? a:1 : 'bundle'
|
||||
if "\n".s:done_bundles =~# "\\M\n".name."\n"
|
||||
return ""
|
||||
endif
|
||||
let s:done_bundles .= name . "\n"
|
||||
let list = []
|
||||
for dir in pathogen#split(&rtp)
|
||||
if dir =~# '\<after$'
|
||||
let list += pathogen#glob_directories(substitute(dir,'after$',name.sep.'*[^~]'.sep.'after','')) + [dir]
|
||||
else
|
||||
let list += [dir] + pathogen#glob_directories(dir.sep.name.sep.'*[^~]')
|
||||
endif
|
||||
endfor
|
||||
let &rtp = pathogen#join(pathogen#uniq(list))
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
let s:done_bundles = ''
|
||||
" }}}1
|
||||
|
||||
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
|
||||
function! pathogen#helptags() " {{{1
|
||||
for dir in pathogen#split(&rtp)
|
||||
if dir[0 : strlen($VIM)-1] !=# $VIM && isdirectory(dir.'/doc') && (!filereadable(dir.'/doc/tags') || filewritable(dir.'/doc/tags'))
|
||||
helptags `=dir.'/doc'`
|
||||
endif
|
||||
endfor
|
||||
endfunction " }}}1
|
||||
|
||||
" vim:set ft=vim ts=8 sw=2 sts=2:
|
||||
0
home/.vim/backups/.gitignore
vendored
0
home/.vim/backups/.gitignore
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,108 +0,0 @@
|
||||
" Part of Vim filetype plugin for Clojure
|
||||
" Language: Clojure
|
||||
" Maintainer: Meikel Brandmeyer <mb@kotka.de>
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
function! vimclojure#util#SynIdName()
|
||||
return synIDattr(synID(line("."), col("."), 0), "name")
|
||||
endfunction
|
||||
|
||||
function! vimclojure#util#WithSaved(closure)
|
||||
let v = a:closure.save()
|
||||
try
|
||||
let r = a:closure.f()
|
||||
finally
|
||||
call a:closure.restore(v)
|
||||
endtry
|
||||
return r
|
||||
endfunction
|
||||
|
||||
function! s:SavePosition() dict
|
||||
let [ _b, l, c, _o ] = getpos(".")
|
||||
let b = bufnr("%")
|
||||
return [b, l, c]
|
||||
endfunction
|
||||
|
||||
function! s:RestorePosition(value) dict
|
||||
let [b, l, c] = a:value
|
||||
|
||||
if bufnr("%") != b
|
||||
execute b "buffer!"
|
||||
endif
|
||||
call setpos(".", [0, l, c, 0])
|
||||
endfunction
|
||||
|
||||
function! vimclojure#util#WithSavedPosition(closure)
|
||||
let a:closure.save = function("s:SavePosition")
|
||||
let a:closure.restore = function("s:RestorePosition")
|
||||
|
||||
return vimclojure#util#WithSaved(a:closure)
|
||||
endfunction
|
||||
|
||||
function! s:SaveRegister(reg)
|
||||
return [a:reg, getreg(a:reg, 1), getregtype(a:reg)]
|
||||
endfunction
|
||||
|
||||
function! s:SaveRegisters() dict
|
||||
return map([self._register, "", "/", "-",
|
||||
\ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
|
||||
\ "s:SaveRegister(v:val)")
|
||||
endfunction
|
||||
|
||||
function! s:RestoreRegisters(registers) dict
|
||||
for register in a:registers
|
||||
call call(function("setreg"), register)
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! vimclojure#util#WithSavedRegister(reg, closure)
|
||||
let a:closure._register = a:reg
|
||||
let a:closure.save = function("s:SaveRegisters")
|
||||
let a:closure.restore = function("s:RestoreRegisters")
|
||||
|
||||
return vimclojure#util#WithSaved(a:closure)
|
||||
endfunction
|
||||
|
||||
function! s:SaveOption() dict
|
||||
return eval("&" . self._option)
|
||||
endfunction
|
||||
|
||||
function! s:RestoreOption(value) dict
|
||||
execute "let &" . self._option . " = a:value"
|
||||
endfunction
|
||||
|
||||
function! vimclojure#util#WithSavedOption(option, closure)
|
||||
let a:closure._option = a:option
|
||||
let a:closure.save = function("s:SaveOption")
|
||||
let a:closure.restore = function("s:RestoreOption")
|
||||
|
||||
return vimclojure#util#WithSaved(a:closure)
|
||||
endfunction
|
||||
|
||||
function! s:DoYank() dict
|
||||
silent execute self.yank
|
||||
return getreg(self.reg)
|
||||
endfunction
|
||||
|
||||
function! vimclojure#util#Yank(r, how)
|
||||
let closure = {
|
||||
\ 'reg': a:r,
|
||||
\ 'yank': a:how,
|
||||
\ 'f': function("s:DoYank")
|
||||
\ }
|
||||
|
||||
return vimclojure#util#WithSavedRegister(a:r, closure)
|
||||
endfunction
|
||||
|
||||
function! vimclojure#util#MoveBackward()
|
||||
call search('\S', 'Wb')
|
||||
endfunction
|
||||
|
||||
function! vimclojure#util#MoveForward()
|
||||
call search('\S', 'W')
|
||||
endfunction
|
||||
|
||||
" Epilog
|
||||
let &cpo = s:save_cpo
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) Stephen C. Gilardi. All rights reserved. The use and
|
||||
# distribution terms for this software are covered by the Eclipse Public
|
||||
# License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can be
|
||||
# found in the file epl-v10.html at the root of this distribution. By
|
||||
# using this software in any fashion, you are agreeing to be bound by the
|
||||
# terms of this license. You must not remove this notice, or any other,
|
||||
# from this software.
|
||||
#
|
||||
# clj-env-dir Launches Clojure, passing along command line arguments. This
|
||||
# launcher can be configured using environment variables and
|
||||
# makes it easy to include directories full of classpath roots
|
||||
# in CLASSPATH.
|
||||
#
|
||||
# scgilardi (gmail)
|
||||
# Created 7 January 2009
|
||||
#
|
||||
# Modified to read in an optional .clojure file in the current directory
|
||||
# naming further items for the CLASSPATH.
|
||||
#
|
||||
# Meikel Brandmeyer (mb ? kotka ! de)
|
||||
# Frankfurt am Main, 21.08.2009
|
||||
#
|
||||
# Environment variables (optional):
|
||||
#
|
||||
# CLOJURE_EXT Colon-delimited list of paths to directories whose top-level
|
||||
# contents are (either directly or as symbolic links) jar
|
||||
# files and/or directories whose paths will be in Clojure's
|
||||
# classpath. The value of the CLASSPATH environment variable
|
||||
# for Clojure will include these top-level paths followed by
|
||||
# the previous value of CLASSPATH (if any).
|
||||
# default:
|
||||
# example: /usr/local/share/clojure/ext:$HOME/.clojure.d/ext
|
||||
#
|
||||
# CLOJURE_JAVA The command to launch a JVM instance for Clojure
|
||||
# default: java
|
||||
# example: /usr/local/bin/java6
|
||||
#
|
||||
# CLOJURE_OPTS Java options for this JVM instance
|
||||
# default:
|
||||
# example:"-Xms32M -Xmx128M -server"
|
||||
#
|
||||
# CLOJURE_MAIN The Java class to launch
|
||||
# default: clojure.main
|
||||
# example: clojure.contrib.repl_ln
|
||||
|
||||
set -o errexit
|
||||
#set -o nounset
|
||||
#set -o xtrace
|
||||
|
||||
if [ -n "${CLOJURE_EXT:-}" ]; then
|
||||
OLD="$IFS"
|
||||
IFS=":"
|
||||
EXT="$(find -H ${CLOJURE_EXT} -mindepth 1 -maxdepth 1 -print0 | tr \\0 \:)"
|
||||
IFS="$OLD"
|
||||
if [ -n "${CLASSPATH:-}" ]; then
|
||||
CLASSPATH="${EXT}${CLASSPATH}"
|
||||
else
|
||||
CLASSPATH="${EXT%:}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f .clojure ]; then
|
||||
for path in `cat .clojure`; do
|
||||
if [ -n "${CLASSPATH:-}" ]; then
|
||||
CLASSPATH="${path}:${CLASSPATH}"
|
||||
else
|
||||
CLASSPATH="${path%:}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
export CLASSPATH
|
||||
|
||||
JAVA=${CLOJURE_JAVA:-java}
|
||||
OPTS=${CLOJURE_OPTS:-}
|
||||
MAIN=${CLOJURE_MAIN:-clojure.main}
|
||||
|
||||
exec ${JAVA} ${OPTS} ${MAIN} "$@"
|
||||
@@ -1,55 +0,0 @@
|
||||
@ECHO OFF
|
||||
|
||||
REM # Copyright (c) Stephen C. Gilardi. All rights reserved. The use and
|
||||
REM # distribution terms for this software are covered by the Eclipse Public
|
||||
REM # License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can be
|
||||
REM # found in the file epl-v10.html at the root of this distribution. By
|
||||
REM # using this software in any fashion, you are agreeing to be bound by the
|
||||
REM # terms of this license. You must not remove this notice, or any other,
|
||||
REM # from this software.
|
||||
REM #
|
||||
REM # scgilardi (gmail)
|
||||
REM # Created 7 January 2009
|
||||
REM #
|
||||
REM # Modified by Justin Johnson <justin _ honesthacker com> to run on Windows
|
||||
REM # and to include a check for .clojure file in the current directory.
|
||||
REM #
|
||||
REM # Environment variables:
|
||||
REM #
|
||||
REM # Optional:
|
||||
REM #
|
||||
REM # CLOJURE_EXT The path to a directory containing (either directly or as
|
||||
REM # symbolic links) jar files and/or directories whose paths
|
||||
REM # should be in Clojure's classpath. The value of the
|
||||
REM # CLASSPATH environment variable for Clojure will be a list
|
||||
REM # of these paths followed by the previous value of CLASSPATH
|
||||
REM # (if any).
|
||||
REM #
|
||||
REM # CLOJURE_JAVA The command to launch a JVM instance for Clojure
|
||||
REM # default: java
|
||||
REM # example: /usr/local/bin/java6
|
||||
REM #
|
||||
REM # CLOJURE_OPTS Java options for this JVM instance
|
||||
REM # default:
|
||||
REM # example:"-Xms32M -Xmx128M -server"
|
||||
REM #
|
||||
REM # Configuration files:
|
||||
REM #
|
||||
REM # Optional:
|
||||
REM #
|
||||
REM # .clojure A file sitting in the directory where you invoke ng-server.
|
||||
REM # Each line contains a single path that should be added to the classpath.
|
||||
REM #
|
||||
|
||||
SETLOCAL ENABLEDELAYEDEXPANSION
|
||||
|
||||
REM # Add all jar files from CLOJURE_EXT directory to classpath
|
||||
IF DEFINED CLOJURE_EXT FOR %%E IN ("%CLOJURE_EXT%\*") DO SET CP=!CP!;%%~fE
|
||||
|
||||
IF NOT DEFINED CLOJURE_JAVA SET CLOJURE_JAVA=java
|
||||
|
||||
REM # If the current directory has a .clojure file in it, add each path
|
||||
REM # in the file to the classpath.
|
||||
IF EXIST .clojure FOR /F %%E IN (.clojure) DO SET CP=!CP!;%%~fE
|
||||
|
||||
%CLOJURE_JAVA% %CLOJURE_OPTS% -cp "%CP%" clojure.main %1 %2 %3 %4 %5 %6 %7 %8 %9
|
||||
@@ -1,38 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
GRADLE_REV="0.8"
|
||||
GRADLE_URL="http://dist.codehaus.org/gradle/gradle-${GRADLE_REV}-bin.zip"
|
||||
GRADLE_ZIP="gradle.zip"
|
||||
GRADLE_DIR="gradle-${GRADLE_REV}"
|
||||
|
||||
PLUGIN_REV="1.3.0"
|
||||
PLUGIN_URL="http://clojars.org/repo/clojuresque/clojuresque/${PLUGIN_REV}/clojuresque-${PLUGIN_REV}.jar"
|
||||
PLUGIN_JAR="clojuresque-${PLUGIN_REV}.jar"
|
||||
|
||||
CACHE_DIR="cache"
|
||||
CACHE_GRADLE_ZIP="${CACHE_DIR}/${GRADLE_ZIP}"
|
||||
CACHE_GRADLE_DIR="${CACHE_DIR}/${GRADLE_DIR}"
|
||||
|
||||
if [ ! -e "${CACHE_DIR}" ]; then
|
||||
mkdir "${CACHE_DIR}"
|
||||
fi
|
||||
|
||||
if [ ! -e "${CACHE_GRADLE_ZIP}" ]; then
|
||||
wget ${GRADLE_URL} -O "${CACHE_GRADLE_ZIP}"
|
||||
fi
|
||||
|
||||
if [ ! -e "${CACHE_GRADLE_DIR}" ]; then
|
||||
pushd .
|
||||
cd "${CACHE_DIR}"
|
||||
unzip "${GRADLE_ZIP}"
|
||||
popd
|
||||
fi
|
||||
|
||||
if [ ! -e "${CACHE_PLUGIN_DIR}" ]; then
|
||||
wget ${PLUGIN_URL} -O "${CACHE_GRADLE_DIR}/lib/${PLUGIN_JAR}"
|
||||
fi
|
||||
|
||||
echo "clojure=clojuresque.ClojurePlugin" >> "${CACHE_GRADLE_DIR}/plugin.properties"
|
||||
|
||||
echo "Don't forget to set GRADLE_HOME!"
|
||||
echo "export GRADLE_HOME=\"${CACHE_GRADLE_DIR}\""
|
||||
@@ -1,77 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# Copyright (c) Stephen C. Gilardi. All rights reserved. The use and
|
||||
# distribution terms for this software are covered by the Eclipse Public
|
||||
# License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can be
|
||||
# found in the file epl-v10.html at the root of this distribution. By
|
||||
# using this software in any fashion, you are agreeing to be bound by the
|
||||
# terms of this license. You must not remove this notice, or any other,
|
||||
# from this software.
|
||||
#
|
||||
# clj-env-dir Launches Clojure, passing along command line arguments. This
|
||||
# launcher can be configured using environment variables and
|
||||
# makes it easy to include directories full of classpath roots
|
||||
# in CLASSPATH.
|
||||
#
|
||||
# scgilardi (gmail)
|
||||
# Created 7 January 2009
|
||||
#
|
||||
# Modified to act as launcher for the Nailgun server and to read in an
|
||||
# optional .clojure file in the current directory naming further items
|
||||
# for the CLASSPATH.
|
||||
#
|
||||
# Meikel Brandmeyer (mb ? kotka ! de)
|
||||
# Frankfurt am Main, 21.08.2009
|
||||
#
|
||||
# Environment variables (optional):
|
||||
#
|
||||
# CLOJURE_EXT Colon-delimited list of paths to directories whose top-level
|
||||
# contents are (either directly or as symbolic links) jar
|
||||
# files and/or directories whose paths will be in Clojure's
|
||||
# classpath. The value of the CLASSPATH environment variable
|
||||
# for Clojure will include these top-level paths followed by
|
||||
# the previous value of CLASSPATH (if any).
|
||||
# default:
|
||||
# example: /usr/local/share/clojure/ext:$HOME/.clojure.d/ext
|
||||
#
|
||||
# CLOJURE_JAVA The command to launch a JVM instance for Clojure
|
||||
# default: java
|
||||
# example: /usr/local/bin/java6
|
||||
#
|
||||
# CLOJURE_OPTS Java options for this JVM instance
|
||||
# default:
|
||||
# example:"-Xms32M -Xmx128M -server"
|
||||
#
|
||||
# .clojure A file in the current directory. Every line names an item
|
||||
# which will be added to the CLASSPATH.
|
||||
|
||||
set -o errexit
|
||||
#set -o nounset
|
||||
#set -o xtrace
|
||||
|
||||
if [ -n "${CLOJURE_EXT:-}" ]; then
|
||||
OLD="$IFS"
|
||||
IFS=":"
|
||||
EXT="$(find -H ${CLOJURE_EXT} -mindepth 1 -maxdepth 1 -print0 | tr \\0 \:)"
|
||||
IFS="$OLD"
|
||||
if [ -n "${CLASSPATH:-}" ]; then
|
||||
export CLASSPATH="${EXT}${CLASSPATH}"
|
||||
else
|
||||
export CLASSPATH="${EXT%:}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f .clojure ]; then
|
||||
for path in `cat .clojure`; do
|
||||
if [ -n "${CLASSPATH:-}" ]; then
|
||||
export CLASSPATH="${path}:${CLASSPATH}"
|
||||
else
|
||||
export CLASSPATH="${path%:}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
JAVA=${CLOJURE_JAVA:-java}
|
||||
OPTS=${CLOJURE_OPTS:-}
|
||||
|
||||
exec ${JAVA} ${OPTS} vimclojure.nailgun.NGServer 127.0.0.1 "$@"
|
||||
@@ -1,57 +0,0 @@
|
||||
@ECHO OFF
|
||||
|
||||
REM # Copyright (c) Stephen C. Gilardi. All rights reserved. The use and
|
||||
REM # distribution terms for this software are covered by the Eclipse Public
|
||||
REM # License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can be
|
||||
REM # found in the file epl-v10.html at the root of this distribution. By
|
||||
REM # using this software in any fashion, you are agreeing to be bound by the
|
||||
REM # terms of this license. You must not remove this notice, or any other,
|
||||
REM # from this software.
|
||||
REM #
|
||||
REM # scgilardi (gmail)
|
||||
REM # Created 7 January 2009
|
||||
REM #
|
||||
REM # Modified by Justin Johnson <justin _ honesthacker com> to act as Windows
|
||||
REM # launcher for the Nailgun server of VimClojure, and to include a check for
|
||||
REM # a .clojure file in the current directory.
|
||||
REM #
|
||||
REM # Environment variables:
|
||||
REM #
|
||||
REM # Optional:
|
||||
REM #
|
||||
REM # CLOJURE_EXT The path to a directory containing (either directly or as
|
||||
REM # symbolic links) jar files and/or directories whose paths
|
||||
REM # should be in Clojure's classpath. The value of the
|
||||
REM # CLASSPATH environment variable for Clojure will be a list
|
||||
REM # of these paths followed by the previous value of CLASSPATH
|
||||
REM # (if any).
|
||||
REM #
|
||||
REM # CLOJURE_JAVA The command to launch a JVM instance for Clojure
|
||||
REM # default: java
|
||||
REM # example: /usr/local/bin/java6
|
||||
REM #
|
||||
REM # CLOJURE_OPTS Java options for this JVM instance
|
||||
REM # default:
|
||||
REM # example:"-Xms32M -Xmx128M -server"
|
||||
REM #
|
||||
REM # Configuration files:
|
||||
REM #
|
||||
REM # Optional:
|
||||
REM #
|
||||
REM # .clojure A file sitting in the directory where you invoke ng-server.
|
||||
REM # Each line contains a single path that should be added to the classpath.
|
||||
REM #
|
||||
|
||||
SETLOCAL ENABLEDELAYEDEXPANSION
|
||||
|
||||
REM # Add all jar files from CLOJURE_EXT directory to classpath
|
||||
IF DEFINED CLOJURE_EXT FOR %%E IN ("%CLOJURE_EXT%\*") DO SET CP=!CP!;%%~fE
|
||||
|
||||
IF NOT DEFINED CLOJURE_JAVA SET CLOJURE_JAVA=java
|
||||
|
||||
REM # If the current directory has a .clojure file in it, add each path
|
||||
REM # in the file to the classpath.
|
||||
IF EXIST .clojure FOR /F %%E IN (.clojure) DO SET CP=!CP!;%%~fE
|
||||
|
||||
REM # Since we do not provide any security we at least bind only to the loopback.
|
||||
%CLOJURE_JAVA% %CLOJURE_OPTS% -cp "%CP%" vimclojure.nailgun.NGServer 127.0.0.1 %1 %2 %3 %4 %5 %6 %7 %8 %9
|
||||
@@ -1,394 +0,0 @@
|
||||
*vimclojure.txt* *clojure.vim*
|
||||
|
||||
VimClojure - A Clojure Environment
|
||||
==================================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
VimClojure is a filetype plugin and development environment for Clojure. It
|
||||
provides indenting, syntax highlighting and – if configured – interactive
|
||||
features like omni completion, documentation lookup and a Repl running in a
|
||||
Vim buffer.
|
||||
|
||||
Nailgun Server *clj-nailgun-server*
|
||||
--------------
|
||||
|
||||
To use the interactive part you have to start the nailgun server via the jar
|
||||
file. Make sure, that clojure and clojure-contrib are in your classpath and
|
||||
start the vimclojure.nailgun.NGServer class. Example invocation:
|
||||
>
|
||||
java -cp clojure.jar:clojure-contrib.jar:vimclojure.jar vimclojure.nailgun.NGServer 127.0.0.1
|
||||
<
|
||||
This may look different depending on your system.
|
||||
|
||||
You can stop the server by invoking the nailgun client with the ng-stop
|
||||
argument.
|
||||
>
|
||||
ng ng-stop
|
||||
<
|
||||
Set the vimclojure#WantNailgun variable in your vimrc.
|
||||
>
|
||||
let vimclojure#WantNailgun = 1
|
||||
<
|
||||
The actual server to connect to and the port of said server can be given
|
||||
via configuration variables. The defaults are:
|
||||
>
|
||||
let vimclojure#NailgunServer = "127.0.0.1"
|
||||
let vimclojure#NailgunPort = "2113"
|
||||
<
|
||||
Note: Should there be an error when executing an interactive command
|
||||
and the error message goes away to quickly, you can use |:messages| to
|
||||
recall the message and read it conveniently without time pressure.
|
||||
|
||||
VimClojure might pop up windows, like the preview window or the Repl.
|
||||
The place where this is done may be controlled with the SplitPos variable.
|
||||
Possible values are "left", "right", "top" and "bottom". The default is
|
||||
"top".
|
||||
|
||||
Example:
|
||||
>
|
||||
let vimclojure#SplitPos = "left"
|
||||
<
|
||||
It is also possible to specify the size of the new window. The size is
|
||||
specified in lines/columns.
|
||||
>
|
||||
let vimclojure#SplitSize = 10
|
||||
<
|
||||
|
||||
Errors
|
||||
------
|
||||
|
||||
Errors are reported in a temporary buffer. This is to make error messages
|
||||
more readable. In particular when they contain stacktraces from the Java
|
||||
side. However this may interfer with scripts which do not expect that a
|
||||
new buffer pops up. So one can go back to the old behaviour.
|
||||
>
|
||||
let vimclojure#UseErrorBuffer = 0
|
||||
<
|
||||
Note: the error might not be shown by vim. Check the output of |:message|
|
||||
for errors.
|
||||
|
||||
Syntax Highlighting *ft-clj-syntax*
|
||||
-------------------
|
||||
|
||||
The clojure syntax highlighting provides several options:
|
||||
>
|
||||
g:vimclojure#HighlightBuiltins
|
||||
If it is nonzero, then Clojure's builtin functions are
|
||||
highlighted. This useful to distuingish macros and special
|
||||
forms from functions. Enabled by default.
|
||||
|
||||
g:vimclojure#ParenRainbow
|
||||
Controls the colorisation of the differing levels of
|
||||
parenthesisation. If non-zero, different levels will be
|
||||
colored differently. Disabled by default.
|
||||
|
||||
g:vimclojure#DynamicHighlighting
|
||||
Uses the dynamic features of VimClojure to dynamically add
|
||||
the symbols of required and used namespaces. The file needs
|
||||
to be correct (ie. w/o syntax errors and on the classpath)
|
||||
for this to work. If this is not the case, dynamic
|
||||
highlighting is not done. Disabled by default.
|
||||
<
|
||||
The g:vimclojure#ParenRainbow option provides 10 levels of individual
|
||||
colorisation for the parentheses. Because of the quantity of colorisation
|
||||
levels, unlike non-rainbow highlighting, the rainbow mode specifies its
|
||||
highlighting using ctermfg and guifg, thereby bypassing the usual colorscheme
|
||||
control using standard highlighting groups. The actual highlighting used
|
||||
depends on the dark/bright setting (see |'bg'|).
|
||||
|
||||
To customise the paren rainbow colors provide a from levels to the desired
|
||||
color definitions.
|
||||
>
|
||||
let vimclojure#ParenRainbowColors = {
|
||||
\ '1': 'guifg=green',
|
||||
\ ...
|
||||
\ }
|
||||
<
|
||||
This will be used for all settings of 'bg'. If you want to specify only
|
||||
for light resp. dark backgrounds, just add "Light" resp. "Dark" to the
|
||||
option name.
|
||||
|
||||
Indenting *ft-clj-indent*
|
||||
---------
|
||||
|
||||
VimClojure provides the (hopefully) correct indentation rules for
|
||||
the standard forms and macros. However user code might define also
|
||||
forms for which the indentation should follow the indentation according
|
||||
to the 'lispwords' option. The names of these forms often follow a
|
||||
pattern like "defsomething" or "with-something".
|
||||
|
||||
By setting the fuzzy indent option, you can tell VimClojure, that you
|
||||
want names beginning in "def" or "with" to be indented as if they
|
||||
were included in the 'lispwords' option.
|
||||
>
|
||||
let vimclojure#FuzzyIndent = 1
|
||||
<
|
||||
This option is disabled by default.
|
||||
|
||||
Preview Window
|
||||
--------------
|
||||
|
||||
Many of the below mentioned commands open the so called preview window.
|
||||
It displays information obtained from the lookup functions and the omni
|
||||
completion. You may close the preview window with <LocalLeader>p.
|
||||
|
||||
Note: The preview window sometimes doesn't not adhere to the SplitPos
|
||||
variable. This is the case, eg. for omni completion. It happens when
|
||||
the preview window is created by Vim and not by VimClojure itself. At
|
||||
the moment, I don't know how to fix this.
|
||||
|
||||
Keybindings
|
||||
-----------
|
||||
|
||||
Note: <LocalLeader> is a Vim feature. More information can be found
|
||||
under the |maplocalleader| help topic.
|
||||
|
||||
You can redefine any key mapping using some autocommand in your .vimrc file.
|
||||
All mappings use so-called Plugs. Simply prepend <Plug>Clojure to the given
|
||||
Plug name and your setting will override the default mapping.
|
||||
>
|
||||
aucmd BufRead,BufNewFile *.clj nmap xyz <Plug>ClojureEvalToplevel
|
||||
<
|
||||
|
||||
<LocalLeader>et *et* *EvalToplevel*
|
||||
Send off the toplevel sexpression currently
|
||||
containing the cursor to the Clojure server.
|
||||
|
||||
<LocalLeader>ef *ef* *EvalFile*
|
||||
Send off the current file to the Clojure Server.
|
||||
|
||||
<LocalLeader>eb *eb* *EvalBlock*
|
||||
Send off the the mark visual block to the
|
||||
Clojure server. Obviously this mapping is only
|
||||
active in visual mode.
|
||||
Note: This does not check for structure.
|
||||
|
||||
<LocalLeader>el *el* *EvalLine*
|
||||
Send off the current line to the Clojure Server.
|
||||
Note: This does not check for structure.
|
||||
|
||||
<LocalLeader>ep *ep* *EvalParagraph*
|
||||
Send off the current paragraph to the Clojure Server.
|
||||
Note: This does not check for structure.
|
||||
|
||||
<LocalLeader>rf *rf* *RequireFile*
|
||||
Require the namespace of the current file with
|
||||
the :reload flag. Note: For this to work with
|
||||
a remote Clojure server, the files have to put in
|
||||
place before issueing the command, eg. via scp
|
||||
or NFS.
|
||||
|
||||
<LocalLeader>rF *rF* *RequireFileAll*
|
||||
Require the namespace of the current file with
|
||||
the :reload-all flag. Note: For this to work with
|
||||
a remote Clojure server, the files have to put in
|
||||
place before issueing the command, eg. via scp
|
||||
or NFS.
|
||||
|
||||
<LocalLeader>rt *rt* *RunTests*
|
||||
Require the namespace of the filename with the
|
||||
:reload flag. Then use clojure.contrib.test-is
|
||||
to run the tests of the namespace via run-tests.
|
||||
Note: For this to work with a remote Clojure
|
||||
server, the files have to put in place before
|
||||
issueing the command, eg. via scp or NFS.
|
||||
|
||||
<LocalLeader>me *me* *MacroExpand*
|
||||
Expand the innermost sexpression currently
|
||||
containing the cursor using macroexpand.
|
||||
|
||||
<LocalLeader>m1 *m1* *MacroExpand1*
|
||||
Same as MacroExpand, but use macroexpand-1.
|
||||
|
||||
|
||||
<LocalLeader>lw *lw* *DocLookupWord*
|
||||
Lookup up the word under the cursor and print
|
||||
the documentation for it via (doc).
|
||||
|
||||
<LocalLeader>li *li* *DocLookupInteractive*
|
||||
Lookup the documentation of an arbitrary word.
|
||||
The user is prompted for input.
|
||||
|
||||
<LocalLeader>fd *fd* *FindDoc*
|
||||
Find a the documentation for a given pattern
|
||||
with (find-doc). The user is prompted for input.
|
||||
|
||||
<LocalLeader>jw *jw* *JavadocLookupWord*
|
||||
Open the javadoc for the word under the cursor
|
||||
in an external browser.
|
||||
|
||||
<LocalLeader>ji *ji* *JavadocLookupInteractive*
|
||||
Open the javadoc for an arbitrary word in an
|
||||
external browser. The user is prompted for input.
|
||||
|
||||
<LocalLeader>sw *sw* *SourceLookupWord*
|
||||
Show a read-only view of the source the word under
|
||||
the cursor. For this to work, the source must be
|
||||
available in the Classpath or as a file (depending
|
||||
on how the source was loaded).
|
||||
|
||||
<LocalLeader>si *si* *SourceLookupInteractive*
|
||||
Show a read-only view of the source of an arbitrary
|
||||
word. For this to work, the source must be available
|
||||
in the Classpath or as a file (depending on how the
|
||||
source was loaded).
|
||||
|
||||
<LocalLeader>gw *gw* *GotoSourceWord*
|
||||
Goto the source of the word under the cursor. For this
|
||||
to work, the source must be available in a directory
|
||||
of the |'path'| option. The directories in the
|
||||
CLOJURE_SOURCE_DIRS environment variable will be added
|
||||
to the |'path'| setting.
|
||||
|
||||
<LocalLeader>gi *gi* *GotoSourceInteractive*
|
||||
Goto the source of an arbitrary word. For this to work,
|
||||
the source must be available in a directory of the
|
||||
|'path'| option. The directories in the
|
||||
CLOJURE_SOURCE_DIRS environment variable will be added
|
||||
to the |'path'| setting.
|
||||
|
||||
<LocalLeader>mw *mw* *MetaLookupWord*
|
||||
Lookup the meta data of the word under the cursor.
|
||||
|
||||
<LocalLeader>mi *mi* *MetaLookupInteractive*
|
||||
Lookup the meta data of an arbitrary word. The
|
||||
user is prompted for input.
|
||||
|
||||
<LocalLeader>sr *sr* *StartRepl*
|
||||
Start a new Vim Repl in a fresh buffer. There
|
||||
might be multiple Repls at the same time.
|
||||
|
||||
<LocalLeader>sR *sR* *StartLocalRepl*
|
||||
Start a new Vim Repl in a fresh buffer. Initialise
|
||||
the namespace to be the namespace of the current
|
||||
buffer. Note: this will 'require' the namespace!
|
||||
|
||||
The following key mappings are also supported if the dynamic features are
|
||||
turned off.
|
||||
|
||||
<LocalLeader>aw *aw* *AddToLispWords*
|
||||
Add the word under the cursor to the lispwords option
|
||||
of the buffer. This modifies the way the form is
|
||||
indented.
|
||||
|
||||
<LocalLeader>tr *tr* *ToggleParenRainbow*
|
||||
Toggle the paren rainbow option. Note: After
|
||||
toggling the default colors will be used. Not any
|
||||
customised ones.
|
||||
|
||||
Vim Repl
|
||||
--------
|
||||
|
||||
Start a Repl via the |sr| shortcut. At the prompt just type expressions.
|
||||
Hitting enter will determine, whether the expression is complete and
|
||||
will send it to the Clojure instance. In case the expression is incomplete,
|
||||
eg. after "(defn foo" will result in a newline for multiline expressions.
|
||||
|
||||
A newline will also be inserted if you are inside of the expression. The
|
||||
expression will only be submitted to the Repl when you hit enter after
|
||||
the last character of the buffer. If you are inside the expression and
|
||||
want to start the evaluation immediately you may use <C-CR> instead of
|
||||
the plain <CR>.
|
||||
|
||||
Previously sent expressions may be recalled via <C-Up> and <C-Down>.
|
||||
Note: sending multiple expressions will save them in the same history
|
||||
entry. So playing back with <C-Up> will again send all of the contained
|
||||
expressions.
|
||||
|
||||
If the current line starts with a repl prompt, the *^* command moves to
|
||||
the end of the prompt and to the beginning of the line.
|
||||
|
||||
The Plugs are:
|
||||
- <Plug>ClojureReplEnterHook for the enter key
|
||||
- <Plug>ClojureReplEvaluate for immediate evaluation (<C-CR>)
|
||||
- <Plug>ClojureReplHatHook for ^ navigation
|
||||
- <Plug>ClojureReplUpHistory for going backwards in history (<C-Up>)
|
||||
- <Plug>ClojureReplDownHistory for going forwards in history (<C-Down>)
|
||||
|
||||
The following convenience commands are provided:
|
||||
|
||||
- ,close - close the Repl and free the Repl resources in the server process
|
||||
- ,st - print a stack trace of *e as with clojure.contrib.stacktrace
|
||||
- ,ct - print a cause trace of *e as with clojure.contrib.stacktrace
|
||||
- ,toggle-pprint - toggle pretty-printing of evaluated values
|
||||
|
||||
You can also start a Repl with the :ClojureRepl command. This command works
|
||||
regardless of the type of the current buffer, while the shortcuts only work in
|
||||
Clojure buffers.
|
||||
|
||||
Pretty Printing
|
||||
---------------
|
||||
|
||||
In case Tom Faulhaber's cl-format package is available in the Classpath
|
||||
it will be used for pretty printing, eg. of macroexpansions. The Repl
|
||||
can be told to use pretty printing via a global Var.
|
||||
>
|
||||
(set! vimclojure.repl/*print-pretty* true)
|
||||
<
|
||||
|
||||
Omni Completion
|
||||
---------------
|
||||
|
||||
VimClojure supports omni completion for Clojure code. Hitting <C-X><C-O> in
|
||||
insert mode will try to provide completions for the item in front of the
|
||||
cursor.
|
||||
|
||||
The completion tries to be somewhat intelligent in what it completes.
|
||||
|
||||
- a word starting with an upper case letter will be completed to an
|
||||
imported class.
|
||||
Str<C-x><C-o> => String, StringBuilder, ...
|
||||
|
||||
- a word containing dots will be completed to a namespace.
|
||||
c.c<C-x><C-o> => clojure.core, clojure.contrib.repl-utils, ...
|
||||
|
||||
- everything else will be completed to a Var, an alias or namespace.
|
||||
|
||||
- a word containing a slash will be handled differently
|
||||
- if the word starts with an upper case letter, will complete
|
||||
static fields of the given class
|
||||
String/va<C-x><C-o> => String/valueOf
|
||||
|
||||
- otherwise it is treated as a namespace or alias
|
||||
clojure.core/re<C-x><C-o> => clojure.core/read, ...
|
||||
|
||||
The completion uses certain characters to split the matching. This are
|
||||
hyphens and (for namespaces) dots. So r-s<C-x><C-o> matches read-string.
|
||||
|
||||
Note: Completion of symbols and keywords is also provided via the <C-N>
|
||||
functionality of Vim.
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
There seems to be a race condition in nailgun. At the moment there is
|
||||
no solution to this problem. In case you get errors with valid looking
|
||||
input for vim, please contact me.
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
Copyright (c) 2008-2011 Meikel Brandmeyer, Frankfurt am Main
|
||||
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.
|
||||
==============================================================================
|
||||
.. vim: set ft=help norl ts=8 tw=78 et :
|
||||
@@ -1 +0,0 @@
|
||||
au BufNewFile,BufRead *.clj set filetype=clojure
|
||||
@@ -1,146 +0,0 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Clojure
|
||||
" Maintainer: Meikel Brandmeyer <mb@kotka.de>
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< cpt< isk< def<"
|
||||
|
||||
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:
|
||||
|
||||
setlocal define=^\\s*(def\\(-\\|n\\|n-\\|macro\\|struct\\|multi\\)?
|
||||
|
||||
" Set 'formatoptions' to break comment lines but not other lines,
|
||||
" and insert the comment leader when hitting <CR> or using "o".
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal commentstring=;%s
|
||||
|
||||
" Set 'comments' to format dashed lists in comments.
|
||||
setlocal comments=sO:;\ -,mO:;\ \ ,n:;
|
||||
|
||||
" Take all directories of the CLOJURE_SOURCE_DIRS environment variable
|
||||
" and add them to the path option.
|
||||
if has("win32") || has("win64")
|
||||
let s:delim = ";"
|
||||
else
|
||||
let s:delim = ":"
|
||||
endif
|
||||
for dir in split($CLOJURE_SOURCE_DIRS, s:delim)
|
||||
call vimclojure#AddPathToOption(dir . "/**", 'path')
|
||||
endfor
|
||||
|
||||
" When the matchit plugin is loaded, this makes the % command skip parens and
|
||||
" braces in comments.
|
||||
let b:match_words = &matchpairs
|
||||
let b:match_skip = 's:comment\|string\|character'
|
||||
|
||||
" Win32 can filter files in the browse dialog
|
||||
if has("gui_win32") && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
|
||||
\ "Jave Source Files (*.java)\t*.java\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
for ns in [ "clojure.core", "clojure.inspector", "clojure.java.browse",
|
||||
\ "clojure.java.io", "clojure.java.javadoc", "clojure.java.shell",
|
||||
\ "clojure.main", "clojure.pprint", "clojure.repl", "clojure.set",
|
||||
\ "clojure.stacktrace", "clojure.string", "clojure.template",
|
||||
\ "clojure.test", "clojure.test.tap", "clojure.test.junit",
|
||||
\ "clojure.walk", "clojure.xml", "clojure.zip" ]
|
||||
call vimclojure#AddCompletions(ns)
|
||||
endfor
|
||||
|
||||
" Define toplevel folding if desired.
|
||||
function! ClojureGetFoldingLevelWorker() dict
|
||||
execute self.lineno
|
||||
|
||||
if vimclojure#util#SynIdName() =~ 'clojureParen\d' && vimclojure#util#Yank('l', 'normal! "lyl') == '('
|
||||
return 1
|
||||
endif
|
||||
|
||||
if searchpairpos('(', '', ')', 'bWr', 'vimclojure#util#SynIdName() !~ "clojureParen\\d"') != [0, 0]
|
||||
return 1
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! ClojureGetFoldingLevel(lineno)
|
||||
let closure = {
|
||||
\ 'lineno' : a:lineno,
|
||||
\ 'f' : function("ClojureGetFoldingLevelWorker")
|
||||
\ }
|
||||
|
||||
return vimclojure#WithSavedPosition(closure)
|
||||
endfunction
|
||||
|
||||
" Disabled for now. Too slow (and naive).
|
||||
if exists("g:clj_want_folding") && g:clj_want_folding == 1 && 0 == 1
|
||||
setlocal foldexpr=ClojureGetFoldingLevel(v:lnum)
|
||||
setlocal foldmethod=expr
|
||||
endif
|
||||
|
||||
try
|
||||
call vimclojure#InitBuffer()
|
||||
catch /.*/
|
||||
" We swallow a failure here. It means most likely that the
|
||||
" server is not running.
|
||||
echohl WarningMsg
|
||||
echomsg v:exception
|
||||
echohl None
|
||||
endtry
|
||||
|
||||
call vimclojure#MapPlug("n", "aw", "AddToLispWords")
|
||||
call vimclojure#MapPlug("n", "tr", "ToggleParenRainbow")
|
||||
|
||||
call vimclojure#MapPlug("n", "lw", "DocLookupWord")
|
||||
call vimclojure#MapPlug("n", "li", "DocLookupInteractive")
|
||||
call vimclojure#MapPlug("n", "jw", "JavadocLookupWord")
|
||||
call vimclojure#MapPlug("n", "ji", "JavadocLookupInteractive")
|
||||
call vimclojure#MapPlug("n", "fd", "FindDoc")
|
||||
|
||||
call vimclojure#MapPlug("n", "mw", "MetaLookupWord")
|
||||
call vimclojure#MapPlug("n", "mi", "MetaLookupInteractive")
|
||||
|
||||
call vimclojure#MapPlug("n", "sw", "SourceLookupWord")
|
||||
call vimclojure#MapPlug("n", "si", "SourceLookupInteractive")
|
||||
|
||||
call vimclojure#MapPlug("n", "gw", "GotoSourceWord")
|
||||
call vimclojure#MapPlug("n", "gi", "GotoSourceInteractive")
|
||||
|
||||
call vimclojure#MapPlug("n", "rf", "RequireFile")
|
||||
call vimclojure#MapPlug("n", "rF", "RequireFileAll")
|
||||
|
||||
call vimclojure#MapPlug("n", "rt", "RunTests")
|
||||
|
||||
call vimclojure#MapPlug("n", "me", "MacroExpand")
|
||||
call vimclojure#MapPlug("n", "m1", "MacroExpand1")
|
||||
|
||||
call vimclojure#MapPlug("n", "ef", "EvalFile")
|
||||
call vimclojure#MapPlug("n", "el", "EvalLine")
|
||||
call vimclojure#MapPlug("v", "eb", "EvalBlock")
|
||||
call vimclojure#MapPlug("n", "et", "EvalToplevel")
|
||||
call vimclojure#MapPlug("n", "ep", "EvalParagraph")
|
||||
|
||||
call vimclojure#MapPlug("n", "sr", "StartRepl")
|
||||
call vimclojure#MapPlug("n", "sR", "StartLocalRepl")
|
||||
|
||||
if exists("b:vimclojure_namespace")
|
||||
setlocal omnifunc=vimclojure#OmniCompletion
|
||||
|
||||
augroup VimClojure
|
||||
autocmd CursorMovedI <buffer> if pumvisible() == 0 | pclose | endif
|
||||
augroup END
|
||||
endif
|
||||
|
||||
call vimclojure#MapPlug("n", "p", "CloseResultBuffer")
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
@@ -1,544 +0,0 @@
|
||||
*agent*
|
||||
*allow-unresolved-vars*
|
||||
*assert*
|
||||
*clojure-version*
|
||||
*command-line-args*
|
||||
*compile-files*
|
||||
*compile-path*
|
||||
*err*
|
||||
*file*
|
||||
*flush-on-newline*
|
||||
*fn-loader*
|
||||
*in*
|
||||
*math-context*
|
||||
*ns*
|
||||
*out*
|
||||
*print-dup*
|
||||
*print-length*
|
||||
*print-level*
|
||||
*print-meta*
|
||||
*print-readably*
|
||||
*read-eval*
|
||||
*source-path*
|
||||
*unchecked-math*
|
||||
*use-context-classloader*
|
||||
*verbose-defrecords*
|
||||
*warn-on-reflection*
|
||||
->>
|
||||
-cache-protocol-fn
|
||||
-reset-methods
|
||||
EMPTY-NODE
|
||||
accessor
|
||||
aclone
|
||||
add-classpath
|
||||
add-watch
|
||||
agent
|
||||
agent-error
|
||||
agent-errors
|
||||
aget
|
||||
alength
|
||||
alias
|
||||
all-ns
|
||||
alter
|
||||
alter-meta!
|
||||
alter-var-root
|
||||
amap
|
||||
ancestors
|
||||
and
|
||||
apply
|
||||
areduce
|
||||
array-map
|
||||
aset
|
||||
aset-boolean
|
||||
aset-byte
|
||||
aset-char
|
||||
aset-double
|
||||
aset-float
|
||||
aset-int
|
||||
aset-long
|
||||
aset-short
|
||||
assert
|
||||
assoc
|
||||
assoc!
|
||||
assoc-in
|
||||
associative?
|
||||
atom
|
||||
await
|
||||
await-for
|
||||
await1
|
||||
bases
|
||||
bean
|
||||
bigdec
|
||||
bigint
|
||||
biginteger
|
||||
binding
|
||||
bit-and
|
||||
bit-and-not
|
||||
bit-clear
|
||||
bit-flip
|
||||
bit-not
|
||||
bit-or
|
||||
bit-set
|
||||
bit-shift-left
|
||||
bit-shift-right
|
||||
bit-test
|
||||
bit-xor
|
||||
boolean
|
||||
boolean-array
|
||||
booleans
|
||||
bound-fn
|
||||
bound-fn*
|
||||
bound?
|
||||
butlast
|
||||
byte
|
||||
byte-array
|
||||
bytes
|
||||
case
|
||||
cast
|
||||
char
|
||||
char-array
|
||||
char-escape-string
|
||||
char-name-string
|
||||
char?
|
||||
chars
|
||||
chunk
|
||||
chunk-append
|
||||
chunk-buffer
|
||||
chunk-cons
|
||||
chunk-first
|
||||
chunk-next
|
||||
chunk-rest
|
||||
chunked-seq?
|
||||
class
|
||||
class?
|
||||
clear-agent-errors
|
||||
clojure-version
|
||||
coll?
|
||||
comment
|
||||
commute
|
||||
comp
|
||||
comparator
|
||||
compare
|
||||
compare-and-set!
|
||||
compile
|
||||
complement
|
||||
concat
|
||||
cond
|
||||
condp
|
||||
conj
|
||||
conj!
|
||||
cons
|
||||
constantly
|
||||
construct-proxy
|
||||
contains?
|
||||
count
|
||||
counted?
|
||||
create-ns
|
||||
create-struct
|
||||
cycle
|
||||
dec
|
||||
dec'
|
||||
decimal?
|
||||
declare
|
||||
definline
|
||||
definterface
|
||||
defmacro
|
||||
defmethod
|
||||
defmulti
|
||||
defn
|
||||
defn-
|
||||
defonce
|
||||
defprotocol
|
||||
defrecord
|
||||
defstruct
|
||||
deftype
|
||||
delay
|
||||
delay?
|
||||
deliver
|
||||
denominator
|
||||
deref
|
||||
derive
|
||||
descendants
|
||||
destructure
|
||||
disj
|
||||
disj!
|
||||
dissoc
|
||||
dissoc!
|
||||
distinct
|
||||
distinct?
|
||||
doall
|
||||
dorun
|
||||
doseq
|
||||
dosync
|
||||
dotimes
|
||||
doto
|
||||
double
|
||||
double-array
|
||||
doubles
|
||||
drop
|
||||
drop-last
|
||||
drop-while
|
||||
empty
|
||||
empty?
|
||||
ensure
|
||||
enumeration-seq
|
||||
error-handler
|
||||
error-mode
|
||||
eval
|
||||
even?
|
||||
every-pred
|
||||
every?
|
||||
extend
|
||||
extend-protocol
|
||||
extend-type
|
||||
extenders
|
||||
extends?
|
||||
false?
|
||||
ffirst
|
||||
file-seq
|
||||
filter
|
||||
find
|
||||
find-keyword
|
||||
find-ns
|
||||
find-protocol-impl
|
||||
find-protocol-method
|
||||
find-var
|
||||
first
|
||||
flatten
|
||||
float
|
||||
float-array
|
||||
float?
|
||||
floats
|
||||
flush
|
||||
fn?
|
||||
fnext
|
||||
fnil
|
||||
for
|
||||
force
|
||||
format
|
||||
frequencies
|
||||
future
|
||||
future-call
|
||||
future-cancel
|
||||
future-cancelled?
|
||||
future-done?
|
||||
future?
|
||||
gen-class
|
||||
gen-interface
|
||||
gensym
|
||||
get
|
||||
get-in
|
||||
get-method
|
||||
get-proxy-class
|
||||
get-thread-bindings
|
||||
get-validator
|
||||
group-by
|
||||
hash
|
||||
hash-combine
|
||||
hash-map
|
||||
hash-set
|
||||
identical?
|
||||
identity
|
||||
if-let
|
||||
if-not
|
||||
ifn?
|
||||
import
|
||||
in-ns
|
||||
inc
|
||||
inc'
|
||||
init-proxy
|
||||
instance?
|
||||
int
|
||||
int-array
|
||||
integer?
|
||||
interleave
|
||||
intern
|
||||
interpose
|
||||
into
|
||||
into-array
|
||||
ints
|
||||
io!
|
||||
isa?
|
||||
iterate
|
||||
iterator-seq
|
||||
juxt
|
||||
keep
|
||||
keep-indexed
|
||||
key
|
||||
keys
|
||||
keyword
|
||||
keyword?
|
||||
last
|
||||
lazy-cat
|
||||
lazy-seq
|
||||
let
|
||||
letfn
|
||||
line-seq
|
||||
list
|
||||
list*
|
||||
list?
|
||||
load
|
||||
load-file
|
||||
load-reader
|
||||
load-string
|
||||
loaded-libs
|
||||
locking
|
||||
long
|
||||
long-array
|
||||
longs
|
||||
loop
|
||||
macroexpand
|
||||
macroexpand-1
|
||||
make-array
|
||||
make-hierarchy
|
||||
map
|
||||
map-indexed
|
||||
map?
|
||||
mapcat
|
||||
max
|
||||
max-key
|
||||
memfn
|
||||
memoize
|
||||
merge
|
||||
merge-with
|
||||
meta
|
||||
method-sig
|
||||
methods
|
||||
min
|
||||
min-key
|
||||
mod
|
||||
munge
|
||||
name
|
||||
namespace
|
||||
namespace-munge
|
||||
neg?
|
||||
newline
|
||||
next
|
||||
nfirst
|
||||
nil?
|
||||
nnext
|
||||
not
|
||||
not-any?
|
||||
not-empty
|
||||
not-every?
|
||||
not=
|
||||
ns-aliases
|
||||
ns-imports
|
||||
ns-interns
|
||||
ns-map
|
||||
ns-name
|
||||
ns-publics
|
||||
ns-refers
|
||||
ns-resolve
|
||||
ns-unalias
|
||||
ns-unmap
|
||||
nth
|
||||
nthnext
|
||||
num
|
||||
number?
|
||||
numerator
|
||||
object-array
|
||||
odd?
|
||||
parents
|
||||
partial
|
||||
partition
|
||||
partition-all
|
||||
partition-by
|
||||
pcalls
|
||||
peek
|
||||
persistent!
|
||||
pmap
|
||||
pop
|
||||
pop!
|
||||
pop-thread-bindings
|
||||
pos?
|
||||
pr-str
|
||||
prefer-method
|
||||
prefers
|
||||
primitives-classnames
|
||||
print
|
||||
print-ctor
|
||||
print-dup
|
||||
print-method
|
||||
print-simple
|
||||
print-str
|
||||
printf
|
||||
println
|
||||
println-str
|
||||
prn
|
||||
prn-str
|
||||
promise
|
||||
proxy
|
||||
proxy-call-with-super
|
||||
proxy-mappings
|
||||
proxy-name
|
||||
proxy-super
|
||||
push-thread-bindings
|
||||
pvalues
|
||||
quot
|
||||
rand
|
||||
rand-int
|
||||
rand-nth
|
||||
range
|
||||
ratio?
|
||||
rational?
|
||||
rationalize
|
||||
re-find
|
||||
re-groups
|
||||
re-matcher
|
||||
re-matches
|
||||
re-pattern
|
||||
re-seq
|
||||
read
|
||||
read-line
|
||||
read-string
|
||||
realized?
|
||||
reduce
|
||||
reductions
|
||||
ref
|
||||
ref-history-count
|
||||
ref-max-history
|
||||
ref-min-history
|
||||
ref-set
|
||||
refer
|
||||
refer-clojure
|
||||
reify
|
||||
release-pending-sends
|
||||
rem
|
||||
remove
|
||||
remove-all-methods
|
||||
remove-method
|
||||
remove-ns
|
||||
remove-watch
|
||||
repeat
|
||||
repeatedly
|
||||
replace
|
||||
replicate
|
||||
require
|
||||
reset!
|
||||
reset-meta!
|
||||
resolve
|
||||
rest
|
||||
restart-agent
|
||||
resultset-seq
|
||||
reverse
|
||||
reversible?
|
||||
rseq
|
||||
rsubseq
|
||||
satisfies?
|
||||
second
|
||||
select-keys
|
||||
send
|
||||
send-off
|
||||
seq
|
||||
seq?
|
||||
seque
|
||||
sequence
|
||||
sequential?
|
||||
set
|
||||
set-error-handler!
|
||||
set-error-mode!
|
||||
set-validator!
|
||||
set?
|
||||
short
|
||||
short-array
|
||||
shorts
|
||||
shuffle
|
||||
shutdown-agents
|
||||
slurp
|
||||
some
|
||||
some-fn
|
||||
sort
|
||||
sort-by
|
||||
sorted-map
|
||||
sorted-map-by
|
||||
sorted-set
|
||||
sorted-set-by
|
||||
sorted?
|
||||
special-symbol?
|
||||
spit
|
||||
split-at
|
||||
split-with
|
||||
str
|
||||
string?
|
||||
struct
|
||||
struct-map
|
||||
subs
|
||||
subseq
|
||||
subvec
|
||||
supers
|
||||
swap!
|
||||
symbol
|
||||
symbol?
|
||||
sync
|
||||
take
|
||||
take-last
|
||||
take-nth
|
||||
take-while
|
||||
test
|
||||
the-ns
|
||||
thread-bound?
|
||||
time
|
||||
to-array
|
||||
to-array-2d
|
||||
trampoline
|
||||
transient
|
||||
tree-seq
|
||||
true?
|
||||
type
|
||||
unchecked-add
|
||||
unchecked-add-int
|
||||
unchecked-byte
|
||||
unchecked-char
|
||||
unchecked-dec
|
||||
unchecked-dec-int
|
||||
unchecked-divide-int
|
||||
unchecked-double
|
||||
unchecked-float
|
||||
unchecked-inc
|
||||
unchecked-inc-int
|
||||
unchecked-int
|
||||
unchecked-long
|
||||
unchecked-multiply
|
||||
unchecked-multiply-int
|
||||
unchecked-negate
|
||||
unchecked-negate-int
|
||||
unchecked-remainder-int
|
||||
unchecked-short
|
||||
unchecked-subtract
|
||||
unchecked-subtract-int
|
||||
underive
|
||||
unquote
|
||||
unquote-splicing
|
||||
update-in
|
||||
update-proxy
|
||||
use
|
||||
val
|
||||
vals
|
||||
var-get
|
||||
var-set
|
||||
var?
|
||||
vary-meta
|
||||
vec
|
||||
vector
|
||||
vector-of
|
||||
vector?
|
||||
when
|
||||
when-first
|
||||
when-let
|
||||
when-not
|
||||
while
|
||||
with-bindings
|
||||
with-bindings*
|
||||
with-in-str
|
||||
with-loading-context
|
||||
with-local-vars
|
||||
with-meta
|
||||
with-open
|
||||
with-out-str
|
||||
with-precision
|
||||
with-redefs
|
||||
with-redefs-fn
|
||||
xml-seq
|
||||
zero?
|
||||
zipmap
|
||||
@@ -1 +0,0 @@
|
||||
diff
|
||||
@@ -1,13 +0,0 @@
|
||||
atom?
|
||||
collection-tag
|
||||
get-child
|
||||
get-child-count
|
||||
inspect
|
||||
inspect-table
|
||||
inspect-tree
|
||||
is-leaf
|
||||
list-model
|
||||
list-provider
|
||||
old-table-model
|
||||
table-model
|
||||
tree-model
|
||||
@@ -1,2 +0,0 @@
|
||||
*open-url-script*
|
||||
browse-url
|
||||
@@ -1,19 +0,0 @@
|
||||
Coercions
|
||||
IOFactory
|
||||
as-file
|
||||
as-relative-path
|
||||
as-url
|
||||
copy
|
||||
default-streams-impl
|
||||
delete-file
|
||||
file
|
||||
input-stream
|
||||
make-input-stream
|
||||
make-output-stream
|
||||
make-parents
|
||||
make-reader
|
||||
make-writer
|
||||
output-stream
|
||||
reader
|
||||
resource
|
||||
writer
|
||||
@@ -1,8 +0,0 @@
|
||||
*core-java-api*
|
||||
*feeling-lucky*
|
||||
*feeling-lucky-url*
|
||||
*local-javadocs*
|
||||
*remote-javadocs*
|
||||
add-local-javadoc
|
||||
add-remote-javadoc
|
||||
javadoc
|
||||
@@ -1,4 +0,0 @@
|
||||
*sh-dir*
|
||||
*sh-env*
|
||||
with-sh-dir
|
||||
with-sh-env
|
||||
@@ -1,13 +0,0 @@
|
||||
demunge
|
||||
load-script
|
||||
main
|
||||
repl
|
||||
repl-caught
|
||||
repl-exception
|
||||
repl-prompt
|
||||
repl-read
|
||||
root-cause
|
||||
skip-if-eol
|
||||
skip-whitespace
|
||||
stack-element-str
|
||||
with-bindings
|
||||
@@ -1,25 +0,0 @@
|
||||
*print-base*
|
||||
*print-miser-width*
|
||||
*print-pprint-dispatch*
|
||||
*print-pretty*
|
||||
*print-radix*
|
||||
*print-right-margin*
|
||||
*print-suppress-namespaces*
|
||||
cl-format
|
||||
code-dispatch
|
||||
formatter
|
||||
formatter-out
|
||||
fresh-line
|
||||
get-pretty-writer
|
||||
pprint
|
||||
pprint-indent
|
||||
pprint-logical-block
|
||||
pprint-newline
|
||||
pprint-tab
|
||||
print-length-loop
|
||||
print-table
|
||||
set-pprint-dispatch
|
||||
simple-dispatch
|
||||
with-pprint-dispatch
|
||||
write
|
||||
write-out
|
||||
@@ -1,13 +0,0 @@
|
||||
apropos
|
||||
demunge
|
||||
dir
|
||||
dir-fn
|
||||
doc
|
||||
find-doc
|
||||
pst
|
||||
root-cause
|
||||
set-break-handler!
|
||||
source
|
||||
source-fn
|
||||
stack-element-str
|
||||
thread-stopper
|
||||
@@ -1,12 +0,0 @@
|
||||
difference
|
||||
index
|
||||
intersection
|
||||
join
|
||||
map-invert
|
||||
project
|
||||
rename
|
||||
rename-keys
|
||||
select
|
||||
subset?
|
||||
superset?
|
||||
union
|
||||
@@ -1,5 +0,0 @@
|
||||
print-cause-trace
|
||||
print-stack-trace
|
||||
print-throwable
|
||||
print-trace-element
|
||||
root-cause
|
||||
@@ -1,15 +0,0 @@
|
||||
blank?
|
||||
capitalize
|
||||
escape
|
||||
join
|
||||
lower-case
|
||||
replace
|
||||
replace-first
|
||||
reverse
|
||||
split
|
||||
split-lines
|
||||
trim
|
||||
trim-newline
|
||||
triml
|
||||
trimr
|
||||
upper-case
|
||||
@@ -1,2 +0,0 @@
|
||||
apply-template
|
||||
do-template
|
||||
@@ -1,18 +0,0 @@
|
||||
*depth*
|
||||
*var-context*
|
||||
element-content
|
||||
error-el
|
||||
failure-el
|
||||
finish-case
|
||||
finish-element
|
||||
finish-suite
|
||||
indent
|
||||
junit-report
|
||||
message-el
|
||||
package-class
|
||||
start-case
|
||||
start-element
|
||||
start-suite
|
||||
suite-attrs
|
||||
test-name
|
||||
with-junit-output
|
||||
@@ -1,6 +0,0 @@
|
||||
print-tap-diagnostic
|
||||
print-tap-fail
|
||||
print-tap-pass
|
||||
print-tap-plan
|
||||
tap-report
|
||||
with-tap-output
|
||||
@@ -1,35 +0,0 @@
|
||||
*initial-report-counters*
|
||||
*load-tests*
|
||||
*report-counters*
|
||||
*stack-trace-depth*
|
||||
*test-out*
|
||||
*testing-contexts*
|
||||
*testing-vars*
|
||||
are
|
||||
assert-any
|
||||
assert-expr
|
||||
assert-predicate
|
||||
compose-fixtures
|
||||
deftest
|
||||
deftest-
|
||||
do-report
|
||||
file-position
|
||||
function?
|
||||
get-possibly-unbound-var
|
||||
inc-report-counter
|
||||
join-fixtures
|
||||
report
|
||||
run-all-tests
|
||||
run-tests
|
||||
set-test
|
||||
successful?
|
||||
test-all-vars
|
||||
test-ns
|
||||
test-var
|
||||
testing
|
||||
testing-contexts-str
|
||||
testing-vars-str
|
||||
try-expr
|
||||
use-fixtures
|
||||
with-test
|
||||
with-test-out
|
||||
@@ -1,10 +0,0 @@
|
||||
keywordize-keys
|
||||
macroexpand-all
|
||||
postwalk
|
||||
postwalk-demo
|
||||
postwalk-replace
|
||||
prewalk
|
||||
prewalk-demo
|
||||
prewalk-replace
|
||||
stringify-keys
|
||||
walk
|
||||
@@ -1,13 +0,0 @@
|
||||
*current*
|
||||
*sb*
|
||||
*stack*
|
||||
*state*
|
||||
attrs
|
||||
content
|
||||
content-handler
|
||||
element
|
||||
emit
|
||||
emit-element
|
||||
parse
|
||||
startparse-sax
|
||||
tag
|
||||
@@ -1,27 +0,0 @@
|
||||
append-child
|
||||
branch?
|
||||
children
|
||||
down
|
||||
edit
|
||||
end?
|
||||
insert-child
|
||||
insert-left
|
||||
insert-right
|
||||
left
|
||||
leftmost
|
||||
lefts
|
||||
make-node
|
||||
next
|
||||
node
|
||||
path
|
||||
prev
|
||||
remove
|
||||
replace
|
||||
right
|
||||
rightmost
|
||||
rights
|
||||
root
|
||||
seq-zip
|
||||
vector-zip
|
||||
xml-zip
|
||||
zipper
|
||||
@@ -1,259 +0,0 @@
|
||||
" Vim indent file
|
||||
" Language: Clojure
|
||||
" Maintainer: Meikel Brandmeyer <mb@kotka.de>
|
||||
" URL: http://kotka.de/projects/clojure/vimclojure.html
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_indent = "setlocal ai< si< lw< et< sts< sw< inde< indk<"
|
||||
|
||||
setlocal noautoindent expandtab nosmartindent
|
||||
|
||||
setlocal softtabstop=2
|
||||
setlocal shiftwidth=2
|
||||
|
||||
setlocal indentkeys=!,o,O
|
||||
|
||||
if exists("*searchpairpos")
|
||||
|
||||
function! s:MatchPairs(open, close, stopat)
|
||||
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
|
||||
" comments.
|
||||
return searchpairpos(a:open, '', a:close, 'bWn',
|
||||
\ 'vimclojure#util#SynIdName() !~ "clojureParen\\d"',
|
||||
\ a:stopat)
|
||||
endfunction
|
||||
|
||||
function! ClojureCheckForStringWorker() dict
|
||||
" Check whether there is the last character of the previous line is
|
||||
" highlighted as a string. If so, we check whether it's a ". In this
|
||||
" case we have to check also the previous character. The " might be the
|
||||
" closing one. In case the we are still in the string, we search for the
|
||||
" opening ". If this is not found we take the indent of the line.
|
||||
let nb = prevnonblank(v:lnum - 1)
|
||||
|
||||
if nb == 0
|
||||
return -1
|
||||
endif
|
||||
|
||||
call cursor(nb, 0)
|
||||
call cursor(0, col("$") - 1)
|
||||
if vimclojure#util#SynIdName() != "clojureString"
|
||||
return -1
|
||||
endif
|
||||
|
||||
" This will not work for a " in the first column...
|
||||
if vimclojure#util#Yank('l', 'normal! "lyl') == '"'
|
||||
call cursor(0, col("$") - 2)
|
||||
if vimclojure#util#SynIdName() != "clojureString"
|
||||
return -1
|
||||
endif
|
||||
if vimclojure#util#Yank('l', 'normal! "lyl') != '\\'
|
||||
return -1
|
||||
endif
|
||||
call cursor(0, col("$") - 1)
|
||||
endif
|
||||
|
||||
let p = searchpos('\(^\|[^\\]\)\zs"', 'bW')
|
||||
|
||||
if p != [0, 0]
|
||||
return p[1] - 1
|
||||
endif
|
||||
|
||||
return indent(".")
|
||||
endfunction
|
||||
|
||||
function! s:CheckForString()
|
||||
return vimclojure#util#WithSavedPosition({
|
||||
\ 'f' : function("ClojureCheckForStringWorker")
|
||||
\ })
|
||||
endfunction
|
||||
|
||||
function! ClojureIsMethodSpecialCaseWorker() dict
|
||||
" Find the next enclosing form.
|
||||
call vimclojure#util#MoveBackward()
|
||||
|
||||
" Special case: we are at a '(('.
|
||||
if vimclojure#util#Yank('l', 'normal! "lyl') == '('
|
||||
return 0
|
||||
endif
|
||||
call cursor(self.pos)
|
||||
|
||||
let nextParen = s:MatchPairs('(', ')', 0)
|
||||
|
||||
" Special case: we are now at toplevel.
|
||||
if nextParen == [0, 0]
|
||||
return 0
|
||||
endif
|
||||
call cursor(nextParen)
|
||||
|
||||
call vimclojure#util#MoveForward()
|
||||
let keyword = vimclojure#util#Yank('l', 'normal! "lye')
|
||||
if index([ 'deftype', 'defrecord', 'reify', 'proxy',
|
||||
\ 'extend', 'extend-type', 'extend-protocol',
|
||||
\ 'letfn' ], keyword) >= 0
|
||||
return 1
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! s:IsMethodSpecialCase(position)
|
||||
let closure = {
|
||||
\ 'pos': a:position,
|
||||
\ 'f' : function("ClojureIsMethodSpecialCaseWorker")
|
||||
\ }
|
||||
|
||||
return vimclojure#util#WithSavedPosition(closure)
|
||||
endfunction
|
||||
|
||||
function! GetClojureIndent()
|
||||
" Get rid of special case.
|
||||
if line(".") == 1
|
||||
return 0
|
||||
endif
|
||||
|
||||
" We have to apply some heuristics here to figure out, whether to use
|
||||
" normal lisp indenting or not.
|
||||
let i = s:CheckForString()
|
||||
if i > -1
|
||||
return i
|
||||
endif
|
||||
|
||||
call cursor(0, 1)
|
||||
|
||||
" Find the next enclosing [ or {. We can limit the second search
|
||||
" to the line, where the [ was found. If no [ was there this is
|
||||
" zero and we search for an enclosing {.
|
||||
let paren = s:MatchPairs('(', ')', 0)
|
||||
let bracket = s:MatchPairs('\[', '\]', paren[0])
|
||||
let curly = s:MatchPairs('{', '}', bracket[0])
|
||||
|
||||
" In case the curly brace is on a line later then the [ or - in
|
||||
" case they are on the same line - in a higher column, we take the
|
||||
" curly indent.
|
||||
if curly[0] > bracket[0] || curly[1] > bracket[1]
|
||||
if curly[0] > paren[0] || curly[1] > paren[1]
|
||||
return curly[1]
|
||||
endif
|
||||
endif
|
||||
|
||||
" If the curly was not chosen, we take the bracket indent - if
|
||||
" there was one.
|
||||
if bracket[0] > paren[0] || bracket[1] > paren[1]
|
||||
return bracket[1]
|
||||
endif
|
||||
|
||||
" There are neither { nor [ nor (, ie. we are at the toplevel.
|
||||
if paren == [0, 0]
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Now we have to reimplement lispindent. This is surprisingly easy, as
|
||||
" soon as one has access to syntax items.
|
||||
"
|
||||
" - Check whether we are in a special position after deftype, defrecord,
|
||||
" reify, proxy or letfn. These are special cases.
|
||||
" - Get the next keyword after the (.
|
||||
" - If its first character is also a (, we have another sexp and align
|
||||
" one column to the right of the unmatched (.
|
||||
" - In case it is in lispwords, we indent the next line to the column of
|
||||
" the ( + sw.
|
||||
" - If not, we check whether it is last word in the line. In that case
|
||||
" we again use ( + sw for indent.
|
||||
" - In any other case we use the column of the end of the word + 2.
|
||||
call cursor(paren)
|
||||
|
||||
if s:IsMethodSpecialCase(paren)
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
|
||||
" In case we are at the last character, we use the paren position.
|
||||
if col("$") - 1 == paren[1]
|
||||
return paren[1]
|
||||
endif
|
||||
|
||||
" In case after the paren is a whitespace, we search for the next word.
|
||||
normal! l
|
||||
if vimclojure#util#Yank('l', 'normal! "lyl') == ' '
|
||||
normal! w
|
||||
endif
|
||||
|
||||
" If we moved to another line, there is no word after the (. We
|
||||
" use the ( position for indent.
|
||||
if line(".") > paren[0]
|
||||
return paren[1]
|
||||
endif
|
||||
|
||||
" We still have to check, whether the keyword starts with a (, [ or {.
|
||||
" In that case we use the ( position for indent.
|
||||
let w = vimclojure#util#Yank('l', 'normal! "lye')
|
||||
if stridx('([{', w[0]) > 0
|
||||
return paren[1]
|
||||
endif
|
||||
|
||||
if &lispwords =~ '\<' . w . '\>'
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
|
||||
" XXX: Slight glitch here with special cases. However it's only
|
||||
" a heureustic. Offline we can't do more.
|
||||
if g:vimclojure#FuzzyIndent
|
||||
\ && w != 'with-meta'
|
||||
\ && w != 'clojure.core/with-meta'
|
||||
\ && w =~ '\(^\|/\)\(def\|with\)'
|
||||
\ && w !~ '\(^\|/\)\(def\|with\).*\*$'
|
||||
\ && w !~ '\(^\|/\)\(def\|with\).*-fn$'
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
|
||||
normal! w
|
||||
if paren[0] < line(".")
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
|
||||
normal! ge
|
||||
return col(".") + 1
|
||||
endfunction
|
||||
|
||||
setlocal indentexpr=GetClojureIndent()
|
||||
|
||||
else
|
||||
|
||||
" In case we have searchpairpos not available we fall back to
|
||||
" normal lisp indenting.
|
||||
setlocal indentexpr=
|
||||
setlocal lisp
|
||||
let b:undo_indent .= " lisp<"
|
||||
|
||||
endif
|
||||
|
||||
" Defintions:
|
||||
setlocal lispwords=def,def-,defn,defn-,defmacro,defmacro-,defmethod,defmulti
|
||||
setlocal lispwords+=defonce,defvar,defvar-,defunbound,let,fn,letfn,binding,proxy
|
||||
setlocal lispwords+=defnk,definterface,defprotocol,deftype,defrecord,reify
|
||||
setlocal lispwords+=extend,extend-protocol,extend-type,bound-fn
|
||||
|
||||
" Conditionals and Loops:
|
||||
setlocal lispwords+=if,if-not,if-let,when,when-not,when-let,when-first
|
||||
setlocal lispwords+=condp,case,loop,dotimes,for,while
|
||||
|
||||
" Blocks:
|
||||
setlocal lispwords+=do,doto,try,catch,locking,with-in-str,with-out-str,with-open
|
||||
setlocal lispwords+=dosync,with-local-vars,doseq,dorun,doall,->,->>,future
|
||||
setlocal lispwords+=with-bindings
|
||||
|
||||
" Namespaces:
|
||||
setlocal lispwords+=ns,clojure.core/ns
|
||||
|
||||
" Java Classes:
|
||||
setlocal lispwords+=gen-class,gen-interface
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
@@ -1,60 +0,0 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Clojure
|
||||
" Maintainer: Meikel Brandmeyer <mb@kotka.de>
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("clojure_loaded")
|
||||
finish
|
||||
endif
|
||||
|
||||
let clojure_loaded = "2.2.0-SNAPSHOT"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
command! -nargs=0 ClojureRepl call vimclojure#StartRepl()
|
||||
|
||||
call vimclojure#MakeProtectedPlug("n", "AddToLispWords", "vimclojure#AddToLispWords", "expand(\"<cword>\")")
|
||||
call vimclojure#MakeProtectedPlug("n", "ToggleParenRainbow", "vimclojure#ToggleParenRainbow", "")
|
||||
|
||||
call vimclojure#MakeCommandPlug("n", "DocLookupWord", "vimclojure#DocLookup", "expand(\"<cword>\")")
|
||||
call vimclojure#MakeCommandPlug("n", "DocLookupInteractive", "vimclojure#DocLookup", "input(\"Symbol to look up: \")")
|
||||
call vimclojure#MakeCommandPlug("n", "JavadocLookupWord", "vimclojure#JavadocLookup", "expand(\"<cword>\")")
|
||||
call vimclojure#MakeCommandPlug("n", "JavadocLookupInteractive", "vimclojure#JavadocLookup", "input(\"Class to lookup: \")")
|
||||
call vimclojure#MakeCommandPlug("n", "FindDoc", "vimclojure#FindDoc", "")
|
||||
|
||||
call vimclojure#MakeCommandPlug("n", "MetaLookupWord", "vimclojure#MetaLookup", "expand(\"<cword>\")")
|
||||
call vimclojure#MakeCommandPlug("n", "MetaLookupInteractive", "vimclojure#MetaLookup", "input(\"Symbol to look up: \")")
|
||||
|
||||
call vimclojure#MakeCommandPlug("n", "SourceLookupWord", "vimclojure#SourceLookup", "expand(\"<cword>\")")
|
||||
call vimclojure#MakeCommandPlug("n", "SourceLookupInteractive", "vimclojure#SourceLookup", "input(\"Symbol to look up: \")")
|
||||
|
||||
call vimclojure#MakeCommandPlug("n", "GotoSourceWord", "vimclojure#GotoSource", "expand(\"<cword>\")")
|
||||
call vimclojure#MakeCommandPlug("n", "GotoSourceInteractive", "vimclojure#GotoSource", "input(\"Symbol to go to: \")")
|
||||
|
||||
call vimclojure#MakeCommandPlug("n", "RequireFile", "vimclojure#RequireFile", "0")
|
||||
call vimclojure#MakeCommandPlug("n", "RequireFileAll", "vimclojure#RequireFile", "1")
|
||||
|
||||
call vimclojure#MakeCommandPlug("n", "RunTests", "vimclojure#RunTests", "0")
|
||||
|
||||
call vimclojure#MakeCommandPlug("n", "MacroExpand", "vimclojure#MacroExpand", "0")
|
||||
call vimclojure#MakeCommandPlug("n", "MacroExpand1", "vimclojure#MacroExpand", "1")
|
||||
|
||||
call vimclojure#MakeCommandPlug("n", "EvalFile", "vimclojure#EvalFile", "")
|
||||
call vimclojure#MakeCommandPlug("n", "EvalLine", "vimclojure#EvalLine", "")
|
||||
call vimclojure#MakeCommandPlug("v", "EvalBlock", "vimclojure#EvalBlock", "")
|
||||
call vimclojure#MakeCommandPlug("n", "EvalToplevel", "vimclojure#EvalToplevel", "")
|
||||
call vimclojure#MakeCommandPlug("n", "EvalParagraph", "vimclojure#EvalParagraph", "")
|
||||
|
||||
call vimclojure#MakeCommandPlug("n", "StartRepl", "vimclojure#StartRepl", "")
|
||||
call vimclojure#MakeCommandPlug("n", "StartLocalRepl", "vimclojure#StartRepl", "b:vimclojure_namespace")
|
||||
|
||||
inoremap <Plug>ClojureReplEnterHook <Esc>:call b:vimclojure_repl.enterHook()<CR>
|
||||
inoremap <Plug>ClojureReplEvaluate <Esc>G$:call b:vimclojure_repl.enterHook()<CR>
|
||||
nnoremap <Plug>ClojureReplHatHook :call b:vimclojure_repl.hatHook()<CR>
|
||||
inoremap <Plug>ClojureReplUpHistory <C-O>:call b:vimclojure_repl.upHistory()<CR>
|
||||
inoremap <Plug>ClojureReplDownHistory <C-O>:call b:vimclojure_repl.downHistory()<CR>
|
||||
|
||||
nnoremap <Plug>ClojureCloseResultBuffer :call vimclojure#ResultBuffer.CloseBuffer()<CR>
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
@@ -1,356 +0,0 @@
|
||||
" Vim syntax file
|
||||
" Language: Clojure
|
||||
" Maintainer: Toralf Wittner <toralf.wittner@gmail.com>
|
||||
" modified by Meikel Brandmeyer <mb@kotka.de>
|
||||
" URL: http://kotka.de/projects/clojure/vimclojure.html
|
||||
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Highlight superfluous closing parens, brackets and braces.
|
||||
syn match clojureError "]\|}\|)"
|
||||
|
||||
" Special case for Windows.
|
||||
try
|
||||
call vimclojure#InitBuffer()
|
||||
catch /.*/
|
||||
" We swallow a failure here. It means most likely that the
|
||||
" server is not running.
|
||||
echohl WarningMsg
|
||||
echomsg v:exception
|
||||
echohl None
|
||||
endtry
|
||||
|
||||
if g:vimclojure#HighlightBuiltins != 0
|
||||
let s:builtins_map = {
|
||||
\ "Constant": "nil",
|
||||
\ "Boolean": "true false",
|
||||
\ "Cond": "if if-not if-let when when-not when-let "
|
||||
\ . "when-first cond condp case",
|
||||
\ "Exception": "try catch finally throw",
|
||||
\ "Repeat": "recur map mapcat reduce filter for doseq dorun "
|
||||
\ . "doall dotimes map-indexed keep keep-indexed",
|
||||
\ "Special": ". def do fn if let new quote var loop",
|
||||
\ "Variable": "*warn-on-reflection* this *assert* "
|
||||
\ . "*agent* *ns* *in* *out* *err* *command-line-args* "
|
||||
\ . "*print-meta* *print-readably* *print-length* "
|
||||
\ . "*allow-unresolved-args* *compile-files* "
|
||||
\ . "*compile-path* *file* *flush-on-newline* "
|
||||
\ . "*math-context* *unchecked-math* *print-dup* "
|
||||
\ . "*print-level* *use-context-classloader* "
|
||||
\ . "*source-path* *clojure-version* *read-eval* "
|
||||
\ . "*fn-loader* *1 *2 *3 *e",
|
||||
\ "Define": "def- defn defn- defmacro defmulti defmethod "
|
||||
\ . "defstruct defonce declare definline definterface "
|
||||
\ . "defprotocol defrecord deftype",
|
||||
\ "Macro": "and or -> assert with-out-str with-in-str with-open "
|
||||
\ . "locking destructure ns dosync binding delay "
|
||||
\ . "lazy-cons lazy-cat time assert with-precision "
|
||||
\ . "with-local-vars .. doto memfn proxy amap areduce "
|
||||
\ . "refer-clojure future lazy-seq letfn "
|
||||
\ . "with-loading-context bound-fn extend extend-protocol "
|
||||
\ . "extend-type reify with-bindings ->>",
|
||||
\ "Func": "= not= not nil? false? true? complement identical? "
|
||||
\ . "string? symbol? map? seq? vector? keyword? var? "
|
||||
\ . "special-symbol? apply partial comp constantly "
|
||||
\ . "identity comparator fn? re-matcher re-find re-matches "
|
||||
\ . "re-groups re-seq re-pattern str pr prn print "
|
||||
\ . "println pr-str prn-str print-str println-str newline "
|
||||
\ . "macroexpand macroexpand-1 monitor-enter monitor-exit "
|
||||
\ . "eval find-doc file-seq flush hash load load-file "
|
||||
\ . "read read-line scan slurp subs sync test "
|
||||
\ . "format printf loaded-libs use require load-reader "
|
||||
\ . "load-string + - * / +' -' *' /' < <= == >= > dec dec' "
|
||||
\ . "inc inc' min max "
|
||||
\ . "neg? pos? quot rem zero? rand rand-int decimal? even? "
|
||||
\ . "odd? float? integer? number? ratio? rational? "
|
||||
\ . "bit-and bit-or bit-xor bit-not bit-shift-left "
|
||||
\ . "bit-shift-right symbol keyword gensym count conj seq "
|
||||
\ . "first rest ffirst fnext nfirst nnext second every? "
|
||||
\ . "not-every? some not-any? concat reverse cycle "
|
||||
\ . "interleave interpose split-at split-with take "
|
||||
\ . "take-nth take-while drop drop-while repeat replicate "
|
||||
\ . "iterate range into distinct sort sort-by zipmap "
|
||||
\ . "line-seq butlast last nth nthnext next "
|
||||
\ . "repeatedly tree-seq enumeration-seq iterator-seq "
|
||||
\ . "coll? associative? empty? list? reversible? "
|
||||
\ . "sequential? sorted? list list* cons peek pop vec "
|
||||
\ . "vector peek pop rseq subvec array-map hash-map "
|
||||
\ . "sorted-map sorted-map-by assoc assoc-in dissoc get "
|
||||
\ . "get-in contains? find select-keys update-in key val "
|
||||
\ . "keys vals merge merge-with max-key min-key "
|
||||
\ . "create-struct struct-map struct accessor "
|
||||
\ . "remove-method meta with-meta in-ns refer create-ns "
|
||||
\ . "find-ns all-ns remove-ns import ns-name ns-map "
|
||||
\ . "ns-interns ns-publics ns-imports ns-refers ns-resolve "
|
||||
\ . "resolve ns-unmap name namespace require use "
|
||||
\ . "set! find-var var-get var-set ref deref "
|
||||
\ . "ensure alter ref-set commute agent send send-off "
|
||||
\ . "agent-errors clear-agent-errors await await-for "
|
||||
\ . "instance? bean alength aget aset aset-boolean "
|
||||
\ . "aset-byte aset-char aset-double aset-float "
|
||||
\ . "aset-int aset-long aset-short make-array "
|
||||
\ . "to-array to-array-2d into-array int long float "
|
||||
\ . "double char boolean short byte parse add-classpath "
|
||||
\ . "cast class get-proxy-class proxy-mappings "
|
||||
\ . "update-proxy hash-set sorted-set set disj set? "
|
||||
\ . "aclone add-watch alias alter-var-root "
|
||||
\ . "ancestors await1 bases bigdec bigint bit-and-not "
|
||||
\ . "bit-clear bit-flip bit-set bit-test counted?"
|
||||
\ . "char-escape-string char-name-string class? "
|
||||
\ . "compare compile construct-proxy delay? "
|
||||
\ . "derive descendants distinct? double-array "
|
||||
\ . "doubles drop-last empty float-array floats "
|
||||
\ . "force gen-class get-validator int-array ints "
|
||||
\ . "isa? long-array longs make-hierarchy method-sig "
|
||||
\ . "not-empty ns-aliases ns-unalias num partition "
|
||||
\ . "parents pmap prefer-method primitives-classnames "
|
||||
\ . "print-ctor print-dup print-method print-simple "
|
||||
\ . "proxy-call-with-super "
|
||||
\ . "proxy-super rationalize read-string remove "
|
||||
\ . "remove-watch replace resultset-seq rsubseq "
|
||||
\ . "seque set-validator! shutdown-agents subseq "
|
||||
\ . "supers "
|
||||
\ . "unchecked-add unchecked-dec unchecked-divide "
|
||||
\ . "unchecked-inc unchecked-multiply unchecked-negate "
|
||||
\ . "unchecked-subtract underive xml-seq trampoline "
|
||||
\ . "atom compare-and-set! ifn? gen-interface "
|
||||
\ . "intern init-proxy io! memoize proxy-name swap! "
|
||||
\ . "release-pending-sends the-ns unquote while "
|
||||
\ . "unchecked-remainder alter-meta! "
|
||||
\ . "future-call methods mod pcalls prefers pvalues "
|
||||
\ . "reset! realized? some-fn "
|
||||
\ . "reset-meta! type vary-meta unquote-splicing "
|
||||
\ . "sequence clojure-version counted? "
|
||||
\ . "chunk-buffer chunk-append chunk chunk-first "
|
||||
\ . "chunk-rest chunk-next chunk-cons chunked-seq? "
|
||||
\ . "deliver future? future-done? future-cancel "
|
||||
\ . "future-cancelled? get-method promise "
|
||||
\ . "ref-history-count ref-min-history ref-max-history "
|
||||
\ . "agent-error assoc! boolean-array booleans bound-fn* "
|
||||
\ . "bound? byte-array bytes char-array char? chars "
|
||||
\ . "conj! denominator disj! dissoc! error-handler "
|
||||
\ . "error-mode extenders extends? find-protocol-impl "
|
||||
\ . "find-protocol-method flatten frequencies "
|
||||
\ . "get-thread-bindings group-by hash-combine juxt "
|
||||
\ . "munge namespace-munge numerator object-array "
|
||||
\ . "partition-all partition-by persistent! pop! "
|
||||
\ . "pop-thread-bindings push-thread-bindings rand-nth "
|
||||
\ . "reductions remove-all-methods restart-agent "
|
||||
\ . "satisfies? set-error-handler! set-error-mode! "
|
||||
\ . "short-array shorts shuffle sorted-set-by take-last "
|
||||
\ . "thread-bound? transient vector-of with-bindings* fnil "
|
||||
\ . "spit biginteger every-pred find-keyword "
|
||||
\ . "unchecked-add-int unchecked-byte unchecked-char "
|
||||
\ . "unchecked-dec-int unchecked-divide-int "
|
||||
\ . "unchecked-double unchecked-float "
|
||||
\ . "unchecked-inc-int unchecked-int unchecked-long "
|
||||
\ . "unchecked-multiply-int unchecked-negate-int "
|
||||
\ . "unchecked-remainder-int unchecked-short "
|
||||
\ . "unchecked-subtract-int with-redefs with-redefs-fn"
|
||||
\ }
|
||||
|
||||
for category in keys(s:builtins_map)
|
||||
let words = split(s:builtins_map[category], " ")
|
||||
let words = map(copy(words), '"clojure.core/" . v:val') + words
|
||||
let s:builtins_map[category] = words
|
||||
endfor
|
||||
|
||||
call vimclojure#ColorNamespace(s:builtins_map)
|
||||
endif
|
||||
|
||||
if g:vimclojure#DynamicHighlighting != 0 && exists("b:vimclojure_namespace")
|
||||
try
|
||||
let s:result = vimclojure#ExecuteNailWithInput("DynamicHighlighting",
|
||||
\ b:vimclojure_namespace)
|
||||
if s:result.stderr == ""
|
||||
call vimclojure#ColorNamespace(s:result.value)
|
||||
unlet s:result
|
||||
endif
|
||||
catch /.*/
|
||||
" We ignore errors here. If the file is messed up, we at least get
|
||||
" the basic syntax highlighting.
|
||||
endtry
|
||||
endif
|
||||
|
||||
syn cluster clojureAtomCluster contains=clojureError,clojureFunc,clojureMacro,clojureCond,clojureDefine,clojureRepeat,clojureException,clojureConstant,clojureVariable,clojureSpecial,clojureKeyword,clojureString,clojureCharacter,clojureNumber,clojureBoolean,clojureQuote,clojureUnquote,clojureDispatch,clojurePattern
|
||||
syn cluster clojureTopCluster contains=@clojureAtomCluster,clojureComment,clojureSexp,clojureAnonFn,clojureVector,clojureMap,clojureSet
|
||||
|
||||
syn keyword clojureTodo contained FIXME XXX TODO FIXME: XXX: TODO:
|
||||
syn match clojureComment contains=clojureTodo ";.*$"
|
||||
|
||||
syn match clojureKeyword "\c:\{1,2}[a-z?!\-_+*./=<>#$][a-z0-9?!\-_+*\./=<>#$]*"
|
||||
|
||||
syn region clojureString start=/L\="/ skip=/\\\\\|\\"/ end=/"/
|
||||
|
||||
syn match clojureCharacter "\\."
|
||||
syn match clojureCharacter "\\[0-7]\{3\}"
|
||||
syn match clojureCharacter "\\u[0-9]\{4\}"
|
||||
syn match clojureCharacter "\\space"
|
||||
syn match clojureCharacter "\\tab"
|
||||
syn match clojureCharacter "\\newline"
|
||||
syn match clojureCharacter "\\return"
|
||||
syn match clojureCharacter "\\backspace"
|
||||
syn match clojureCharacter "\\formfeed"
|
||||
|
||||
let radixChars = "0123456789abcdefghijklmnopqrstuvwxyz"
|
||||
for radix in range(2, 36)
|
||||
execute 'syn match clojureNumber "\c\<-\?' . radix . 'r['
|
||||
\ . strpart(radixChars, 0, radix)
|
||||
\ . ']\+\>"'
|
||||
endfor
|
||||
|
||||
syn match clojureNumber "\<-\=[0-9]\+\(\.[0-9]*\)\=\(M\|\([eE][-+]\?[0-9]\+\)\)\?\>"
|
||||
syn match clojureNumber "\<-\=[0-9]\+N\?\>"
|
||||
syn match clojureNumber "\<-\=0x[0-9a-fA-F]\+\>"
|
||||
syn match clojureNumber "\<-\=[0-9]\+/[0-9]\+\>"
|
||||
|
||||
syn match clojureQuote "\('\|`\)"
|
||||
syn match clojureUnquote "\(\~@\|\~\)"
|
||||
syn match clojureDispatch "\(#^\|#'\)"
|
||||
syn match clojureDispatch "\^"
|
||||
|
||||
syn match clojureAnonArg contained "%\(\d\|&\)\?"
|
||||
syn match clojureVarArg contained "&"
|
||||
|
||||
syn region clojureSexpLevel0 matchgroup=clojureParen0 start="(" matchgroup=clojureParen0 end=")" contains=@clojureTopCluster,clojureSexpLevel1
|
||||
syn region clojureSexpLevel1 matchgroup=clojureParen1 start="(" matchgroup=clojureParen1 end=")" contained contains=@clojureTopCluster,clojureSexpLevel2
|
||||
syn region clojureSexpLevel2 matchgroup=clojureParen2 start="(" matchgroup=clojureParen2 end=")" contained contains=@clojureTopCluster,clojureSexpLevel3
|
||||
syn region clojureSexpLevel3 matchgroup=clojureParen3 start="(" matchgroup=clojureParen3 end=")" contained contains=@clojureTopCluster,clojureSexpLevel4
|
||||
syn region clojureSexpLevel4 matchgroup=clojureParen4 start="(" matchgroup=clojureParen4 end=")" contained contains=@clojureTopCluster,clojureSexpLevel5
|
||||
syn region clojureSexpLevel5 matchgroup=clojureParen5 start="(" matchgroup=clojureParen5 end=")" contained contains=@clojureTopCluster,clojureSexpLevel6
|
||||
syn region clojureSexpLevel6 matchgroup=clojureParen6 start="(" matchgroup=clojureParen6 end=")" contained contains=@clojureTopCluster,clojureSexpLevel7
|
||||
syn region clojureSexpLevel7 matchgroup=clojureParen7 start="(" matchgroup=clojureParen7 end=")" contained contains=@clojureTopCluster,clojureSexpLevel8
|
||||
syn region clojureSexpLevel8 matchgroup=clojureParen8 start="(" matchgroup=clojureParen8 end=")" contained contains=@clojureTopCluster,clojureSexpLevel9
|
||||
syn region clojureSexpLevel9 matchgroup=clojureParen9 start="(" matchgroup=clojureParen9 end=")" contained contains=@clojureTopCluster,clojureSexpLevel0
|
||||
|
||||
syn region clojureAnonFn matchgroup=clojureParen0 start="#(" matchgroup=clojureParen0 end=")" contains=@clojureTopCluster,clojureAnonArg,clojureSexpLevel0
|
||||
syn region clojureVector matchgroup=clojureParen0 start="\[" matchgroup=clojureParen0 end="\]" contains=@clojureTopCluster,clojureVarArg,clojureSexpLevel0
|
||||
syn region clojureMap matchgroup=clojureParen0 start="{" matchgroup=clojureParen0 end="}" contains=@clojureTopCluster,clojureSexpLevel0
|
||||
syn region clojureSet matchgroup=clojureParen0 start="#{" matchgroup=clojureParen0 end="}" contains=@clojureTopCluster,clojureSexpLevel0
|
||||
|
||||
syn region clojurePattern start=/L\=\#"/ skip=/\\\\\|\\"/ end=/"/
|
||||
|
||||
" FIXME: Matching of 'comment' is broken. It seems we can't nest
|
||||
" the different highlighting items, when they share the same end
|
||||
" pattern.
|
||||
" See also: https://bitbucket.org/kotarak/vimclojure/issue/87/comment-is-highlighted-incorrectly
|
||||
"
|
||||
"syn region clojureCommentSexp start="(" end=")" transparent contained contains=clojureCommentSexp
|
||||
"syn region clojureComment matchgroup=clojureParen0 start="(comment"rs=s+1 matchgroup=clojureParen0 end=")" contains=clojureTopCluster
|
||||
syn match clojureComment "comment"
|
||||
syn region clojureComment start="#!" end="\n"
|
||||
syn match clojureComment "#_"
|
||||
|
||||
syn sync fromstart
|
||||
|
||||
if version >= 600
|
||||
command -nargs=+ HiLink highlight default link <args>
|
||||
else
|
||||
command -nargs=+ HiLink highlight link <args>
|
||||
endif
|
||||
|
||||
HiLink clojureConstant Constant
|
||||
HiLink clojureBoolean Boolean
|
||||
HiLink clojureCharacter Character
|
||||
HiLink clojureKeyword Operator
|
||||
HiLink clojureNumber Number
|
||||
HiLink clojureString String
|
||||
HiLink clojurePattern Constant
|
||||
|
||||
HiLink clojureVariable Identifier
|
||||
HiLink clojureCond Conditional
|
||||
HiLink clojureDefine Define
|
||||
HiLink clojureException Exception
|
||||
HiLink clojureFunc Function
|
||||
HiLink clojureMacro Macro
|
||||
HiLink clojureRepeat Repeat
|
||||
|
||||
HiLink clojureQuote Special
|
||||
HiLink clojureUnquote Special
|
||||
HiLink clojureDispatch Special
|
||||
HiLink clojureAnonArg Special
|
||||
HiLink clojureVarArg Special
|
||||
HiLink clojureSpecial Special
|
||||
|
||||
HiLink clojureComment Comment
|
||||
HiLink clojureTodo Todo
|
||||
|
||||
HiLink clojureError Error
|
||||
|
||||
HiLink clojureParen0 Delimiter
|
||||
|
||||
if !exists("g:vimclojure#ParenRainbowColorsDark")
|
||||
if exists("g:vimclojure#ParenRainbowColors")
|
||||
let g:vimclojure#ParenRainbowColorsDark =
|
||||
\ g:vimclojure#ParenRainbowColors
|
||||
else
|
||||
let g:vimclojure#ParenRainbowColorsDark = {
|
||||
\ '1': 'ctermfg=yellow guifg=orange1',
|
||||
\ '2': 'ctermfg=green guifg=yellow1',
|
||||
\ '3': 'ctermfg=cyan guifg=greenyellow',
|
||||
\ '4': 'ctermfg=magenta guifg=green1',
|
||||
\ '5': 'ctermfg=red guifg=springgreen1',
|
||||
\ '6': 'ctermfg=yellow guifg=cyan1',
|
||||
\ '7': 'ctermfg=green guifg=slateblue1',
|
||||
\ '8': 'ctermfg=cyan guifg=magenta1',
|
||||
\ '9': 'ctermfg=magenta guifg=purple1'
|
||||
\ }
|
||||
endif
|
||||
endif
|
||||
|
||||
if !exists("g:vimclojure#ParenRainbowColorsLight")
|
||||
if exists("g:vimclojure#ParenRainbowColors")
|
||||
let g:vimclojure#ParenRainbowColorsLight =
|
||||
\ g:vimclojure#ParenRainbowColors
|
||||
else
|
||||
let g:vimclojure#ParenRainbowColorsLight = {
|
||||
\ '1': 'ctermfg=darkyellow guifg=orangered3',
|
||||
\ '2': 'ctermfg=darkgreen guifg=orange2',
|
||||
\ '3': 'ctermfg=blue guifg=yellow3',
|
||||
\ '4': 'ctermfg=darkmagenta guifg=olivedrab4',
|
||||
\ '5': 'ctermfg=red guifg=green4',
|
||||
\ '6': 'ctermfg=darkyellow guifg=paleturquoise3',
|
||||
\ '7': 'ctermfg=darkgreen guifg=deepskyblue4',
|
||||
\ '8': 'ctermfg=blue guifg=darkslateblue',
|
||||
\ '9': 'ctermfg=darkmagenta guifg=darkviolet'
|
||||
\ }
|
||||
endif
|
||||
endif
|
||||
|
||||
function! VimClojureSetupParenRainbow()
|
||||
if &background == "dark"
|
||||
let colors = g:vimclojure#ParenRainbowColorsDark
|
||||
else
|
||||
let colors = g:vimclojure#ParenRainbowColorsLight
|
||||
endif
|
||||
|
||||
for [level, color] in items(colors)
|
||||
execute "highlight clojureParen" . level . " " . color
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
if vimclojure#ParenRainbow != 0
|
||||
call VimClojureSetupParenRainbow()
|
||||
|
||||
augroup VimClojureSyntax
|
||||
autocmd ColorScheme * if &ft == "clojure" | call VimClojureSetupParenRainbow() | endif
|
||||
augroup END
|
||||
else
|
||||
HiLink clojureParen1 clojureParen0
|
||||
HiLink clojureParen2 clojureParen0
|
||||
HiLink clojureParen3 clojureParen0
|
||||
HiLink clojureParen4 clojureParen0
|
||||
HiLink clojureParen5 clojureParen0
|
||||
HiLink clojureParen6 clojureParen0
|
||||
HiLink clojureParen7 clojureParen0
|
||||
HiLink clojureParen8 clojureParen0
|
||||
HiLink clojureParen9 clojureParen0
|
||||
endif
|
||||
|
||||
delcommand HiLink
|
||||
|
||||
let b:current_syntax = "clojure"
|
||||
File diff suppressed because one or more lines are too long
@@ -1,59 +0,0 @@
|
||||
" 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=objcMessage
|
||||
|
||||
" 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=objcMessage
|
||||
" Matches "foo:" in "[NSObject foo: bar]" or "[[NSObject new] foo: bar]"
|
||||
syn match objcMessageColon '\(\_\S\+\_\s\+\)\@<=\k\+\s*:' display contained containedin=objcMessage
|
||||
|
||||
" 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
|
||||
@@ -1,215 +0,0 @@
|
||||
" 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, 'objcMessage') != -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
|
||||
@@ -1,185 +0,0 @@
|
||||
" 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
|
||||
@@ -1,124 +0,0 @@
|
||||
" 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
|
||||
@@ -1,115 +0,0 @@
|
||||
" 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
|
||||
@@ -1,87 +0,0 @@
|
||||
" 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
|
||||
@@ -1,154 +0,0 @@
|
||||
*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:
|
||||
@@ -1,85 +0,0 @@
|
||||
" 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
|
||||
@@ -1,637 +0,0 @@
|
||||
ABAddressBook\|NSObject
|
||||
ABGroup\|ABRecord\|NSObject
|
||||
ABImageClient
|
||||
ABMultiValue\|NSObject
|
||||
ABMutableMultiValue\|ABMultiValue\|NSObject
|
||||
ABPeoplePickerView\|NSView\|NSResponder\|NSObject
|
||||
ABPerson\|ABRecord\|NSObject
|
||||
ABRecord\|NSObject
|
||||
ABSearchElement\|NSObject
|
||||
CIColor\|NSObject
|
||||
CIImage\|NSObject
|
||||
DOMAbstractView\|DOMObject\|WebScriptObject\|NSObject
|
||||
DOMAttr\|DOMNode\|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
|
||||
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
|
||||
DOMHTMLIsIndexElement\|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
|
||||
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\|DOMUIEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
|
||||
DOMXPathExpression\|DOMObject\|WebScriptObject\|NSObject
|
||||
DOMXPathNSResolver
|
||||
DOMXPathResult\|DOMObject\|WebScriptObject\|NSObject
|
||||
GKPeerPickerController
|
||||
GKPeerPickerControllerDelegate
|
||||
GKSession
|
||||
GKSessionDelegate
|
||||
GKVoiceChatClient
|
||||
GKVoiceChatService
|
||||
ISyncChange\|NSObject
|
||||
ISyncClient\|NSObject
|
||||
ISyncFilter\|NSObject
|
||||
ISyncFiltering
|
||||
ISyncManager\|NSObject
|
||||
ISyncRecordReference\|NSObject
|
||||
ISyncRecordSnapshot\|NSObject
|
||||
ISyncSession\|NSObject
|
||||
ISyncSessionDriver\|NSObject
|
||||
ISyncSessionDriverDataSource
|
||||
NSATSTypesetter\|NSTypesetter\|NSObject
|
||||
NSActionCell\|NSCell\|NSObject
|
||||
NSAffineTransform\|NSObject
|
||||
NSAlert\|NSObject
|
||||
NSAnimatablePropertyContainer
|
||||
NSAnimation\|NSObject
|
||||
NSAnimationContext\|NSObject
|
||||
NSAppleEventDescriptor\|NSObject
|
||||
NSAppleEventManager\|NSObject
|
||||
NSAppleScript\|NSObject
|
||||
NSApplication\|NSResponder\|NSObject
|
||||
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
|
||||
NSBox\|NSView\|NSResponder\|NSObject
|
||||
NSBrowser\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSBrowserCell\|NSCell\|NSObject
|
||||
NSBundle\|NSObject
|
||||
NSButton\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSButtonCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSCIImageRep\|NSImageRep\|NSObject
|
||||
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
|
||||
NSCollectionViewItem\|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
|
||||
NSComparisonPredicate\|NSPredicate\|NSObject
|
||||
NSCompoundPredicate\|NSPredicate\|NSObject
|
||||
NSCondition\|NSObject
|
||||
NSConditionLock\|NSObject
|
||||
NSConnection\|NSObject
|
||||
NSConstantString\|NSSimpleCString\|NSString\|NSObject
|
||||
NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSController\|NSObject
|
||||
NSCopying
|
||||
NSCountCommand\|NSScriptCommand\|NSObject
|
||||
NSCountedSet\|NSMutableSet\|NSSet\|NSObject
|
||||
NSCreateCommand\|NSScriptCommand\|NSObject
|
||||
NSCursor\|NSObject
|
||||
NSCustomImageRep\|NSImageRep\|NSObject
|
||||
NSData\|NSObject
|
||||
NSDate\|NSObject
|
||||
NSDateComponents\|NSObject
|
||||
NSDateFormatter\|NSFormatter\|NSObject
|
||||
NSDatePicker\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSDatePickerCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSDecimalNumber\|NSNumber\|NSValue\|NSObject
|
||||
NSDecimalNumberBehaviors
|
||||
NSDecimalNumberHandler\|NSObject
|
||||
NSDeleteCommand\|NSScriptCommand\|NSObject
|
||||
NSDictionary\|NSObject
|
||||
NSDictionaryController\|NSArrayController\|NSObjectController\|NSController\|NSObject
|
||||
NSDirectoryEnumerator\|NSEnumerator\|NSObject
|
||||
NSDistantObject\|NSProxy
|
||||
NSDistantObjectRequest\|NSObject
|
||||
NSDistributedLock\|NSObject
|
||||
NSDistributedNotificationCenter\|NSNotificationCenter\|NSObject
|
||||
NSDockTile\|NSObject
|
||||
NSDocument\|NSObject
|
||||
NSDocumentController\|NSObject
|
||||
NSDraggingInfo
|
||||
NSDrawer\|NSResponder\|NSObject
|
||||
NSEPSImageRep\|NSImageRep\|NSObject
|
||||
NSEntityDescription\|NSObject
|
||||
NSEntityMapping\|NSObject
|
||||
NSEntityMigrationPolicy\|NSObject
|
||||
NSEnumerator\|NSObject
|
||||
NSError\|NSObject
|
||||
NSEvent\|NSObject
|
||||
NSException\|NSObject
|
||||
NSExistsCommand\|NSScriptCommand\|NSObject
|
||||
NSExpression\|NSObject
|
||||
NSFastEnumeration
|
||||
NSFetchRequest\|NSObject
|
||||
NSFetchRequestExpression\|NSExpression\|NSObject
|
||||
NSFetchedPropertyDescription\|NSPropertyDescription\|NSObject
|
||||
NSFileHandle\|NSObject
|
||||
NSFileManager\|NSObject
|
||||
NSFileWrapper\|NSObject
|
||||
NSFont\|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
|
||||
NSImageRep\|NSObject
|
||||
NSImageView\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSIndexPath\|NSObject
|
||||
NSIndexSet\|NSObject
|
||||
NSIndexSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSInputManager\|NSObject
|
||||
NSInputServer\|NSObject
|
||||
NSInputServerMouseTracker
|
||||
NSInputServiceProvider
|
||||
NSInputStream\|NSStream\|NSObject
|
||||
NSInvocation\|NSObject
|
||||
NSInvocationOperation\|NSOperation\|NSObject
|
||||
NSKeyedArchiver\|NSCoder\|NSObject
|
||||
NSKeyedUnarchiver\|NSCoder\|NSObject
|
||||
NSLayoutManager\|NSObject
|
||||
NSLevelIndicator\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSLevelIndicatorCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSLocale\|NSObject
|
||||
NSLock\|NSObject
|
||||
NSLocking
|
||||
NSLogicalTest\|NSScriptWhoseTest\|NSObject
|
||||
NSMachBootstrapServer\|NSPortNameServer\|NSObject
|
||||
NSMachPort\|NSPort\|NSObject
|
||||
NSManagedObject\|NSObject
|
||||
NSManagedObjectContext\|NSObject
|
||||
NSManagedObjectID\|NSObject
|
||||
NSManagedObjectModel\|NSObject
|
||||
NSMapTable\|NSObject
|
||||
NSMappingModel\|NSObject
|
||||
NSMatrix\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSMenu\|NSObject
|
||||
NSMenuItem\|NSObject
|
||||
NSMenuItemCell\|NSButtonCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSMenuView\|NSView\|NSResponder\|NSObject
|
||||
NSMessagePort\|NSPort\|NSObject
|
||||
NSMessagePortNameServer\|NSPortNameServer\|NSObject
|
||||
NSMetadataItem\|NSObject
|
||||
NSMetadataQuery\|NSObject
|
||||
NSMetadataQueryAttributeValueTuple\|NSObject
|
||||
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
|
||||
NSMutableIndexSet\|NSIndexSet\|NSObject
|
||||
NSMutableParagraphStyle\|NSParagraphStyle\|NSObject
|
||||
NSMutableSet\|NSSet\|NSObject
|
||||
NSMutableString\|NSString\|NSObject
|
||||
NSMutableURLRequest\|NSURLRequest\|NSObject
|
||||
NSNameSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSNetService\|NSObject
|
||||
NSNetServiceBrowser\|NSObject
|
||||
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
|
||||
NSOpenGLPixelBuffer\|NSObject
|
||||
NSOpenGLPixelFormat\|NSObject
|
||||
NSOpenGLView\|NSView\|NSResponder\|NSObject
|
||||
NSOpenPanel\|NSSavePanel\|NSPanel\|NSWindow\|NSResponder\|NSObject
|
||||
NSOperation\|NSObject
|
||||
NSOperationQueue\|NSObject
|
||||
NSOutlineView\|NSTableView\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSOutputStream\|NSStream\|NSObject
|
||||
NSPDFImageRep\|NSImageRep\|NSObject
|
||||
NSPICTImageRep\|NSImageRep\|NSObject
|
||||
NSPageLayout\|NSObject
|
||||
NSPanel\|NSWindow\|NSResponder\|NSObject
|
||||
NSParagraphStyle\|NSObject
|
||||
NSPasteboard\|NSObject
|
||||
NSPathCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSPathCellDelegate
|
||||
NSPathComponentCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSPathControl\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSPathControlDelegate
|
||||
NSPersistentDocument\|NSDocument\|NSObject
|
||||
NSPersistentStore\|NSObject
|
||||
NSPersistentStoreCoordinator\|NSObject
|
||||
NSPersistentStoreCoordinatorSyncing
|
||||
NSPipe\|NSObject
|
||||
NSPointerArray\|NSObject
|
||||
NSPointerFunctions\|NSObject
|
||||
NSPopUpButton\|NSButton\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSPopUpButtonCell\|NSMenuItemCell\|NSButtonCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSPort\|NSObject
|
||||
NSPortCoder\|NSCoder\|NSObject
|
||||
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
|
||||
NSProgressIndicator\|NSView\|NSResponder\|NSObject
|
||||
NSPropertyDescription\|NSObject
|
||||
NSPropertyListSerialization\|NSObject
|
||||
NSPropertyMapping\|NSObject
|
||||
NSPropertySpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSProtocolChecker\|NSProxy
|
||||
NSProxy
|
||||
NSQuickDrawView\|NSView\|NSResponder\|NSObject
|
||||
NSQuitCommand\|NSScriptCommand\|NSObject
|
||||
NSRandomSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSRangeSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSRecursiveLock\|NSObject
|
||||
NSRelationshipDescription\|NSPropertyDescription\|NSObject
|
||||
NSRelativeSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSResponder\|NSObject
|
||||
NSRuleEditor\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSRulerMarker\|NSObject
|
||||
NSRulerView\|NSView\|NSResponder\|NSObject
|
||||
NSRunLoop\|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
|
||||
NSSecureTextField\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSSecureTextFieldCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSSegmentedCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSSegmentedControl\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSSet\|NSObject
|
||||
NSSetCommand\|NSScriptCommand\|NSObject
|
||||
NSShadow\|NSObject
|
||||
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
|
||||
NSSpecifierTest\|NSScriptWhoseTest\|NSObject
|
||||
NSSpeechRecognizer\|NSObject
|
||||
NSSpeechSynthesizer\|NSObject
|
||||
NSSpellChecker\|NSObject
|
||||
NSSpellServer\|NSObject
|
||||
NSSplitView\|NSView\|NSResponder\|NSObject
|
||||
NSStatusBar\|NSObject
|
||||
NSStatusItem\|NSObject
|
||||
NSStepper\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSStepperCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSStream\|NSObject
|
||||
NSString\|NSObject
|
||||
NSTabView\|NSView\|NSResponder\|NSObject
|
||||
NSTabViewItem\|NSObject
|
||||
NSTableColumn\|NSObject
|
||||
NSTableHeaderCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSTableHeaderView\|NSView\|NSResponder\|NSObject
|
||||
NSTableView\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSTask\|NSObject
|
||||
NSText\|NSView\|NSResponder\|NSObject
|
||||
NSTextAttachment\|NSObject
|
||||
NSTextAttachmentCell\|NSCell\|NSObject
|
||||
NSTextBlock\|NSObject
|
||||
NSTextContainer\|NSObject
|
||||
NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSTextInput
|
||||
NSTextInputClient
|
||||
NSTextList\|NSObject
|
||||
NSTextStorage\|NSMutableAttributedString\|NSAttributedString\|NSObject
|
||||
NSTextTab\|NSObject
|
||||
NSTextTable\|NSTextBlock\|NSObject
|
||||
NSTextTableBlock\|NSTextBlock\|NSObject
|
||||
NSTextView\|NSText\|NSView\|NSResponder\|NSObject
|
||||
NSThread\|NSObject
|
||||
NSTimeZone\|NSObject
|
||||
NSTimer\|NSObject
|
||||
NSTokenField\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSTokenFieldCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSToolbar\|NSObject
|
||||
NSToolbarItem\|NSObject
|
||||
NSToolbarItemGroup\|NSToolbarItem\|NSObject
|
||||
NSToolbarItemValidations
|
||||
NSTrackingArea\|NSObject
|
||||
NSTreeController\|NSObjectController\|NSController\|NSObject
|
||||
NSTreeNode\|NSObject
|
||||
NSTypesetter\|NSObject
|
||||
NSURL\|NSObject
|
||||
NSURLAuthenticationChallenge\|NSObject
|
||||
NSURLAuthenticationChallengeSender
|
||||
NSURLCache\|NSObject
|
||||
NSURLConnection\|NSObject
|
||||
NSURLCredential\|NSObject
|
||||
NSURLCredentialStorage\|NSObject
|
||||
NSURLDownload\|NSObject
|
||||
NSURLDownloadDelegate
|
||||
NSURLHandle\|NSObject
|
||||
NSURLHandleClient
|
||||
NSURLProtectionSpace\|NSObject
|
||||
NSURLProtocol\|NSObject
|
||||
NSURLProtocolClient
|
||||
NSURLRequest\|NSObject
|
||||
NSURLResponse\|NSObject
|
||||
NSUnarchiver\|NSCoder\|NSObject
|
||||
NSUndoManager\|NSObject
|
||||
NSUniqueIDSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSUserDefaults\|NSObject
|
||||
NSUserDefaultsController\|NSController\|NSObject
|
||||
NSUserInterfaceValidations
|
||||
NSValidatedToobarItem
|
||||
NSValidatedUserInterfaceItem
|
||||
NSValue\|NSObject
|
||||
NSValueTransformer\|NSObject
|
||||
NSView\|NSResponder\|NSObject
|
||||
NSViewAnimation\|NSAnimation\|NSObject
|
||||
NSViewController\|NSResponder\|NSObject
|
||||
NSWhoseSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSWindow\|NSResponder\|NSObject
|
||||
NSWindowController\|NSResponder\|NSObject
|
||||
NSWorkspace\|NSObject
|
||||
NSXMLDTD\|NSXMLNode\|NSObject
|
||||
NSXMLDTDNode\|NSXMLNode\|NSObject
|
||||
NSXMLDocument\|NSXMLNode\|NSObject
|
||||
NSXMLElement\|NSXMLNode\|NSObject
|
||||
NSXMLNode\|NSObject
|
||||
NSXMLParser\|NSObject
|
||||
QTCaptureAudioPreviewOutput\|QTCaptureOutput\|NSObject
|
||||
QTCaptureConnection\|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
|
||||
QTFormatDescription\|NSObject
|
||||
QTMedia\|NSObject
|
||||
QTMovie\|NSObject
|
||||
QTMovieLayer\|CALayer\|NSObject
|
||||
QTMovieView\|NSView\|NSResponder\|NSObject
|
||||
QTSampleBuffer\|NSObject
|
||||
QTTrack\|NSObject
|
||||
ScreenSaverDefaults\|NSUserDefaults\|NSObject
|
||||
ScreenSaverView\|NSView\|NSResponder\|NSObject
|
||||
UIAcceleration
|
||||
UIAccelerometer
|
||||
UIAccelerometerDelegate
|
||||
UIAccessibilityElement
|
||||
UIActionSheet
|
||||
UIActionSheetDelegate
|
||||
UIActivityIndicatorView
|
||||
UIAlertView
|
||||
UIAlertViewDelegate
|
||||
UIApplication
|
||||
UIApplicationDelegate
|
||||
UIBarButtonItem
|
||||
UIBarItem
|
||||
UIButton
|
||||
UIColor
|
||||
UIControl
|
||||
UIDatePicker
|
||||
UIDevice
|
||||
UIEvent
|
||||
UIFont
|
||||
UIImage
|
||||
UIImagePickerController
|
||||
UIImagePickerControllerDelegate
|
||||
UIImageView
|
||||
UILabel
|
||||
UILocalizedIndexedCollation
|
||||
UIMenuController
|
||||
UINavigationBar
|
||||
UINavigationBarDelegate
|
||||
UINavigationController
|
||||
UINavigationControllerDelegate
|
||||
UINavigationItem
|
||||
UIPageControl
|
||||
UIPasteboard
|
||||
UIPickerView
|
||||
UIPickerViewDataSource
|
||||
UIPickerViewDelegate
|
||||
UIProgressView
|
||||
UIResponder
|
||||
UIScreen
|
||||
UIScrollView
|
||||
UIScrollViewDelegate
|
||||
UISearchBar
|
||||
UISearchBarDelegate
|
||||
UISearchDisplayController
|
||||
UISearchDisplayDelegate
|
||||
UISegmentedControl
|
||||
UISlider
|
||||
UISwitch
|
||||
UITabBar
|
||||
UITabBarController
|
||||
UITabBarControllerDelegate
|
||||
UITabBarDelegate
|
||||
UITabBarItem
|
||||
UITableView
|
||||
UITableViewCell
|
||||
UITableViewController
|
||||
UITableViewDataSource
|
||||
UITableViewDelegate
|
||||
UITextField
|
||||
UITextFieldDelegate
|
||||
UITextInputTraits
|
||||
UITextSelecting
|
||||
UITextView
|
||||
UITextViewDelegate
|
||||
UIToolbar
|
||||
UITouch
|
||||
UIView
|
||||
UIViewController
|
||||
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
@@ -1,330 +0,0 @@
|
||||
NSAccessibilityActionDescription
|
||||
NSAccessibilityPostNotification
|
||||
NSAccessibilityRaiseBadArgumentException
|
||||
NSAccessibilityRoleDescription
|
||||
NSAccessibilityRoleDescriptionForUIElement
|
||||
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
|
||||
NSDisableScreenUpdates
|
||||
NSDivideRect
|
||||
NSDottedFrameRect
|
||||
NSDrawBitmap
|
||||
NSDrawButton
|
||||
NSDrawColorTiledRects
|
||||
NSDrawDarkBezel
|
||||
NSDrawGrayBezel
|
||||
NSDrawGroove
|
||||
NSDrawLightBezel
|
||||
NSDrawNinePartImage
|
||||
NSDrawThreePartImage
|
||||
NSDrawTiledRects
|
||||
NSDrawWhiteBezel
|
||||
NSDrawWindowBackground
|
||||
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
|
||||
NSInterfaceStyleForKey
|
||||
NSIntersectionRange
|
||||
NSIntersectionRect
|
||||
NSIntersectsRect
|
||||
NSIsControllerMarker
|
||||
NSIsEmptyRect
|
||||
NSIsFreedObject
|
||||
NSJavaBundleCleanup
|
||||
NSJavaBundleSetup
|
||||
NSJavaClassesForBundle
|
||||
NSJavaClassesFromPath
|
||||
NSJavaNeedsToLoadClasses
|
||||
NSJavaNeedsVirtualMachine
|
||||
NSJavaObjectNamedInPath
|
||||
NSJavaProvidesClasses
|
||||
NSJavaSetup
|
||||
NSJavaSetupVirtualMachine
|
||||
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
|
||||
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
|
||||
NSStringFromClass
|
||||
NSStringFromHashTable
|
||||
NSStringFromMapTable
|
||||
NSStringFromPoint
|
||||
NSStringFromProtocol
|
||||
NSStringFromRange
|
||||
NSStringFromRect
|
||||
NSStringFromSelector
|
||||
NSStringFromSize
|
||||
NSStringFromUIEdgeInsets
|
||||
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
|
||||
NSUnionRange
|
||||
NSUnionRect
|
||||
NSUnregisterServicesProvider
|
||||
NSUpdateDynamicServices
|
||||
NSUserName
|
||||
NSValue
|
||||
NSWidth
|
||||
NSWindowList
|
||||
NSWindowListForContext
|
||||
NSZoneCalloc
|
||||
NSZoneFree
|
||||
NSZoneFromPointer
|
||||
NSZoneMalloc
|
||||
NSZoneName
|
||||
NSZoneRealloc
|
||||
UIAccessibilityPostNotification
|
||||
UIApplicationMain
|
||||
UIEdgeInsetsEqualToEdgeInsets
|
||||
UIEdgeInsetsFromString
|
||||
UIEdgeInsetsInsetRect
|
||||
UIEdgeInsetsMake
|
||||
UIGraphicsBeginImageContext
|
||||
UIGraphicsEndImageContext
|
||||
UIGraphicsGetCurrentContext
|
||||
UIGraphicsGetImageFromCurrentImageContext
|
||||
UIGraphicsPopContext
|
||||
UIGraphicsPushContext
|
||||
UIImageJPEGRepresentation
|
||||
UIImagePNGRepresentation
|
||||
UIImageWriteToSavedPhotosAlbum
|
||||
UIRectClip
|
||||
UIRectFill
|
||||
UIRectFillUsingBlendMode
|
||||
UIRectFrame
|
||||
UIRectFrameUsingBlendMode
|
||||
NSAssert
|
||||
NSAssert1
|
||||
NSAssert2
|
||||
NSAssert3
|
||||
NSAssert4
|
||||
NSAssert5
|
||||
NSCAssert
|
||||
NSCAssert1
|
||||
NSCAssert2
|
||||
NSCAssert3
|
||||
NSCAssert4
|
||||
NSCAssert5
|
||||
NSCParameterAssert
|
||||
NSDecimalMaxSize
|
||||
NSGlyphInfoAtIndex
|
||||
NSLocalizedString
|
||||
NSLocalizedStringFromTable
|
||||
NSLocalizedStringFromTableInBundle
|
||||
NSLocalizedStringWithDefaultValue
|
||||
NSParameterAssert
|
||||
NSURLResponseUnknownLength
|
||||
NS_VALUERETURN
|
||||
UIDeviceOrientationIsLandscape
|
||||
UIDeviceOrientationIsPortrait
|
||||
UIDeviceOrientationIsValidInterfaceOrientation
|
||||
UIInterfaceOrientationIsLandscape
|
||||
UIInterfaceOrientationIsPortrait
|
||||
Binary file not shown.
@@ -1,105 +0,0 @@
|
||||
NSAntialiasThresholdChangedNotification
|
||||
NSAppleEventManagerWillProcessFirstEventNotification
|
||||
NSApplicationDidBecomeActiveNotification
|
||||
NSApplicationDidChangeScreenParametersNotification
|
||||
NSApplicationDidFinishLaunchingNotification
|
||||
NSApplicationDidHideNotification
|
||||
NSApplicationDidResignActiveNotification
|
||||
NSApplicationDidUnhideNotification
|
||||
NSApplicationDidUpdateNotification
|
||||
NSApplicationWillBecomeActiveNotification
|
||||
NSApplicationWillFinishLaunchingNotification
|
||||
NSApplicationWillHideNotification
|
||||
NSApplicationWillResignActiveNotification
|
||||
NSApplicationWillTerminateNotification
|
||||
NSApplicationWillUnhideNotification
|
||||
NSApplicationWillUpdateNotification
|
||||
NSClassDescriptionNeededForClassNotification
|
||||
NSColorListDidChangeNotification
|
||||
NSColorPanelColorDidChangeNotification
|
||||
NSComboBoxSelectionDidChangeNotification
|
||||
NSComboBoxSelectionIsChangingNotification
|
||||
NSComboBoxWillDismissNotification
|
||||
NSComboBoxWillPopUpNotification
|
||||
NSContextHelpModeDidActivateNotification
|
||||
NSContextHelpModeDidDeactivateNotification
|
||||
NSControlTextDidBeginEditingNotification
|
||||
NSControlTextDidChangeNotification
|
||||
NSControlTextDidEndEditingNotification
|
||||
NSControlTintDidChangeNotification
|
||||
NSDrawerDidCloseNotification
|
||||
NSDrawerDidOpenNotification
|
||||
NSDrawerWillCloseNotification
|
||||
NSDrawerWillOpenNotification
|
||||
NSFontSetChangedNotification
|
||||
NSImageRepRegistryDidChangeNotification
|
||||
NSMenuDidAddItemNotification
|
||||
NSMenuDidBeginTrackingNotification
|
||||
NSMenuDidChangeItemNotification
|
||||
NSMenuDidEndTrackingNotification
|
||||
NSMenuDidRemoveItemNotification
|
||||
NSMenuDidSendActionNotification
|
||||
NSMenuWillSendActionNotification
|
||||
NSOutlineViewColumnDidMoveNotification
|
||||
NSOutlineViewColumnDidResizeNotification
|
||||
NSOutlineViewItemDidCollapseNotification
|
||||
NSOutlineViewItemDidExpandNotification
|
||||
NSOutlineViewItemWillCollapseNotification
|
||||
NSOutlineViewItemWillExpandNotification
|
||||
NSOutlineViewSelectionDidChangeNotification
|
||||
NSOutlineViewSelectionIsChangingNotification
|
||||
NSPopUpButtonCellWillPopUpNotification
|
||||
NSPopUpButtonWillPopUpNotification
|
||||
NSPreferencePaneCancelUnselectNotification
|
||||
NSPreferencePaneDoUnselectNotification
|
||||
NSSplitViewDidResizeSubviewsNotification
|
||||
NSSplitViewWillResizeSubviewsNotification
|
||||
NSSystemColorsDidChangeNotification
|
||||
NSTableViewColumnDidMoveNotification
|
||||
NSTableViewColumnDidResizeNotification
|
||||
NSTableViewSelectionDidChangeNotification
|
||||
NSTableViewSelectionIsChangingNotification
|
||||
NSTextDidBeginEditingNotification
|
||||
NSTextDidChangeNotification
|
||||
NSTextDidEndEditingNotification
|
||||
NSTextStorageDidProcessEditingNotification
|
||||
NSTextStorageWillProcessEditingNotification
|
||||
NSTextViewDidChangeSelectionNotification
|
||||
NSTextViewDidChangeTypingAttributesNotification
|
||||
NSTextViewWillChangeNotifyingTextViewNotification
|
||||
NSToolbarDidRemoveItemNotification
|
||||
NSToolbarWillAddItemNotification
|
||||
NSViewBoundsDidChangeNotification
|
||||
NSViewDidUpdateTrackingAreasNotification
|
||||
NSViewFocusDidChangeNotification
|
||||
NSViewFrameDidChangeNotification
|
||||
NSViewGlobalFrameDidChangeNotification
|
||||
NSWindowDidBecomeKeyNotification
|
||||
NSWindowDidBecomeMainNotification
|
||||
NSWindowDidChangeScreenNotification
|
||||
NSWindowDidChangeScreenProfileNotification
|
||||
NSWindowDidDeminiaturizeNotification
|
||||
NSWindowDidEndSheetNotification
|
||||
NSWindowDidExposeNotification
|
||||
NSWindowDidMiniaturizeNotification
|
||||
NSWindowDidMoveNotification
|
||||
NSWindowDidResignKeyNotification
|
||||
NSWindowDidResignMainNotification
|
||||
NSWindowDidResizeNotification
|
||||
NSWindowDidUpdateNotification
|
||||
NSWindowWillBeginSheetNotification
|
||||
NSWindowWillCloseNotification
|
||||
NSWindowWillMiniaturizeNotification
|
||||
NSWindowWillMoveNotification
|
||||
NSWorkspaceDidLaunchApplicationNotification
|
||||
NSWorkspaceDidMountNotification
|
||||
NSWorkspaceDidPerformFileOperationNotification
|
||||
NSWorkspaceDidTerminateApplicationNotification
|
||||
NSWorkspaceDidUnmountNotification
|
||||
NSWorkspaceDidWakeNotification
|
||||
NSWorkspaceSessionDidBecomeActiveNotification
|
||||
NSWorkspaceSessionDidResignActiveNotification
|
||||
NSWorkspaceWillLaunchApplicationNotification
|
||||
NSWorkspaceWillPowerOffNotification
|
||||
NSWorkspaceWillSleepNotification
|
||||
NSWorkspaceWillUnmountNotification
|
||||
@@ -1,222 +0,0 @@
|
||||
NSAlertStyle
|
||||
NSAnimationBlockingMode
|
||||
NSAnimationCurve
|
||||
NSAnimationEffect
|
||||
NSAnimationProgress
|
||||
NSAppleEventManagerSuspensionID
|
||||
NSApplicationDelegateReply
|
||||
NSApplicationPrintReply
|
||||
NSApplicationTerminateReply
|
||||
NSAttributeType
|
||||
NSBackgroundStyle
|
||||
NSBackingStoreType
|
||||
NSBezelStyle
|
||||
NSBezierPathElement
|
||||
NSBitmapFormat
|
||||
NSBitmapImageFileType
|
||||
NSBorderType
|
||||
NSBoxType
|
||||
NSBrowserColumnResizingType
|
||||
NSBrowserDropOperation
|
||||
NSButtonType
|
||||
NSCalculationError
|
||||
NSCalendarUnit
|
||||
NSCellAttribute
|
||||
NSCellImagePosition
|
||||
NSCellStateValue
|
||||
NSCellType
|
||||
NSCharacterCollection
|
||||
NSColorPanelMode
|
||||
NSColorRenderingIntent
|
||||
NSColorSpaceModel
|
||||
NSComparisonPredicateModifier
|
||||
NSComparisonResult
|
||||
NSCompositingOperation
|
||||
NSCompoundPredicateType
|
||||
NSControlSize
|
||||
NSControlTint
|
||||
NSDateFormatterBehavior
|
||||
NSDateFormatterStyle
|
||||
NSDatePickerElementFlags
|
||||
NSDatePickerMode
|
||||
NSDatePickerStyle
|
||||
NSDeleteRule
|
||||
NSDocumentChangeType
|
||||
NSDragOperation
|
||||
NSDrawerState
|
||||
NSEntityMappingType
|
||||
NSEventType
|
||||
NSExpressionType
|
||||
NSFetchRequestResultType
|
||||
NSFindPanelAction
|
||||
NSFindPanelSubstringMatchType
|
||||
NSFocusRingPlacement
|
||||
NSFocusRingType
|
||||
NSFontAction
|
||||
NSFontFamilyClass
|
||||
NSFontRenderingMode
|
||||
NSFontSymbolicTraits
|
||||
NSFontTraitMask
|
||||
NSGlyph
|
||||
NSGlyphInscription
|
||||
NSGlyphLayoutMode
|
||||
NSGlyphRelation
|
||||
NSGradientDrawingOptions
|
||||
NSGradientType
|
||||
NSHTTPCookieAcceptPolicy
|
||||
NSHashEnumerator
|
||||
NSHashTableOptions
|
||||
NSImageAlignment
|
||||
NSImageCacheMode
|
||||
NSImageFrameStyle
|
||||
NSImageInterpolation
|
||||
NSImageLoadStatus
|
||||
NSImageRepLoadStatus
|
||||
NSImageScaling
|
||||
NSInsertionPosition
|
||||
NSInteger
|
||||
NSInterfaceStyle
|
||||
NSKeyValueChange
|
||||
NSKeyValueObservingOptions
|
||||
NSKeyValueSetMutationKind
|
||||
NSLayoutDirection
|
||||
NSLayoutStatus
|
||||
NSLevelIndicatorStyle
|
||||
NSLineBreakMode
|
||||
NSLineCapStyle
|
||||
NSLineJoinStyle
|
||||
NSLineMovementDirection
|
||||
NSLineSweepDirection
|
||||
NSMapEnumerator
|
||||
NSMapTableOptions
|
||||
NSMatrixMode
|
||||
NSModalSession
|
||||
NSMultibyteGlyphPacking
|
||||
NSNetServiceOptions
|
||||
NSNetServicesError
|
||||
NSNotificationCoalescing
|
||||
NSNotificationSuspensionBehavior
|
||||
NSNumberFormatterBehavior
|
||||
NSNumberFormatterPadPosition
|
||||
NSNumberFormatterRoundingMode
|
||||
NSNumberFormatterStyle
|
||||
NSOpenGLContextAuxiliary
|
||||
NSOpenGLPixelFormatAttribute
|
||||
NSOpenGLPixelFormatAuxiliary
|
||||
NSOperationQueuePriority
|
||||
NSPathStyle
|
||||
NSPoint
|
||||
NSPointerFunctionsOptions
|
||||
NSPointingDeviceType
|
||||
NSPopUpArrowPosition
|
||||
NSPostingStyle
|
||||
NSPredicateOperatorType
|
||||
NSPrintPanelOptions
|
||||
NSPrinterTableStatus
|
||||
NSPrintingOrientation
|
||||
NSPrintingPageOrder
|
||||
NSPrintingPaginationMode
|
||||
NSProgressIndicatorStyle
|
||||
NSProgressIndicatorThickness
|
||||
NSProgressIndicatorThreadInfo
|
||||
NSPropertyListFormat
|
||||
NSPropertyListMutabilityOptions
|
||||
NSQTMovieLoopMode
|
||||
NSRange
|
||||
NSRect
|
||||
NSRectEdge
|
||||
NSRelativePosition
|
||||
NSRequestUserAttentionType
|
||||
NSRoundingMode
|
||||
NSRuleEditorNestingMode
|
||||
NSRuleEditorRowType
|
||||
NSRulerOrientation
|
||||
NSSaveOperationType
|
||||
NSSaveOptions
|
||||
NSScreenAuxiliaryOpaque
|
||||
NSScrollArrowPosition
|
||||
NSScrollerArrow
|
||||
NSScrollerPart
|
||||
NSSearchPathDirectory
|
||||
NSSearchPathDomainMask
|
||||
NSSegmentStyle
|
||||
NSSegmentSwitchTracking
|
||||
NSSelectionAffinity
|
||||
NSSelectionDirection
|
||||
NSSelectionGranularity
|
||||
NSSize
|
||||
NSSliderType
|
||||
NSSocketNativeHandle
|
||||
NSSpeechBoundary
|
||||
NSSplitViewDividerStyle
|
||||
NSStreamEvent
|
||||
NSStreamStatus
|
||||
NSStringCompareOptions
|
||||
NSStringDrawingOptions
|
||||
NSStringEncoding
|
||||
NSStringEncodingConversionOptions
|
||||
NSSwappedDouble
|
||||
NSSwappedFloat
|
||||
NSTIFFCompression
|
||||
NSTabState
|
||||
NSTabViewType
|
||||
NSTableViewColumnAutoresizingStyle
|
||||
NSTableViewDropOperation
|
||||
NSTableViewSelectionHighlightStyle
|
||||
NSTestComparisonOperation
|
||||
NSTextAlignment
|
||||
NSTextBlockDimension
|
||||
NSTextBlockLayer
|
||||
NSTextBlockValueType
|
||||
NSTextBlockVerticalAlignment
|
||||
NSTextFieldBezelStyle
|
||||
NSTextTabType
|
||||
NSTextTableLayoutAlgorithm
|
||||
NSThreadPrivate
|
||||
NSTickMarkPosition
|
||||
NSTimeInterval
|
||||
NSTimeZoneNameStyle
|
||||
NSTitlePosition
|
||||
NSTokenStyle
|
||||
NSToolTipTag
|
||||
NSToolbarDisplayMode
|
||||
NSToolbarSizeMode
|
||||
NSTrackingAreaOptions
|
||||
NSTrackingRectTag
|
||||
NSTypesetterBehavior
|
||||
NSTypesetterControlCharacterAction
|
||||
NSTypesetterGlyphInfo
|
||||
NSUInteger
|
||||
NSURLCacheStoragePolicy
|
||||
NSURLCredentialPersistence
|
||||
NSURLHandleStatus
|
||||
NSURLRequestCachePolicy
|
||||
NSUsableScrollerParts
|
||||
NSWhoseSubelementIdentifier
|
||||
NSWindingRule
|
||||
NSWindowBackingLocation
|
||||
NSWindowButton
|
||||
NSWindowCollectionBehavior
|
||||
NSWindowDepth
|
||||
NSWindowOrderingMode
|
||||
NSWindowSharingType
|
||||
NSWorkspaceIconCreationOptions
|
||||
NSWorkspaceLaunchOptions
|
||||
NSWritingDirection
|
||||
NSXMLDTDNodeKind
|
||||
NSXMLDocumentContentKind
|
||||
NSXMLNodeKind
|
||||
NSXMLParserError
|
||||
NSZone
|
||||
UIAccelerationValue
|
||||
UIAccessibilityNotifications
|
||||
UIAccessibilityTraits
|
||||
UIControlEvents
|
||||
UIControlState
|
||||
UIDataDetectorTypes
|
||||
UIEdgeInsets
|
||||
UIImagePickerControllerSourceType
|
||||
UITableViewCellStateMask
|
||||
UIViewAutoresizing
|
||||
UIWebViewNavigationType
|
||||
UIWindowLevel
|
||||
@@ -1,2 +0,0 @@
|
||||
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.
|
||||
@@ -1,2 +0,0 @@
|
||||
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 (like me).
|
||||
@@ -1,94 +0,0 @@
|
||||
#!/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)
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/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 = '/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.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)
|
||||
@@ -1,100 +0,0 @@
|
||||
#!/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 = '/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.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 .*\{/ {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"grep -h '\*\(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)
|
||||
@@ -1,637 +0,0 @@
|
||||
ABAddressBook\|NSObject
|
||||
ABGroup\|ABRecord\|NSObject
|
||||
ABImageClient
|
||||
ABMultiValue\|NSObject
|
||||
ABMutableMultiValue\|ABMultiValue\|NSObject
|
||||
ABPeoplePickerView\|NSView\|NSResponder\|NSObject
|
||||
ABPerson\|ABRecord\|NSObject
|
||||
ABRecord\|NSObject
|
||||
ABSearchElement\|NSObject
|
||||
CIColor\|NSObject
|
||||
CIImage\|NSObject
|
||||
DOMAbstractView\|DOMObject\|WebScriptObject\|NSObject
|
||||
DOMAttr\|DOMNode\|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
|
||||
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
|
||||
DOMHTMLIsIndexElement\|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
|
||||
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\|DOMUIEvent\|DOMEvent\|DOMObject\|WebScriptObject\|NSObject
|
||||
DOMXPathExpression\|DOMObject\|WebScriptObject\|NSObject
|
||||
DOMXPathNSResolver
|
||||
DOMXPathResult\|DOMObject\|WebScriptObject\|NSObject
|
||||
GKPeerPickerController
|
||||
GKPeerPickerControllerDelegate
|
||||
GKSession
|
||||
GKSessionDelegate
|
||||
GKVoiceChatClient
|
||||
GKVoiceChatService
|
||||
ISyncChange\|NSObject
|
||||
ISyncClient\|NSObject
|
||||
ISyncFilter\|NSObject
|
||||
ISyncFiltering
|
||||
ISyncManager\|NSObject
|
||||
ISyncRecordReference\|NSObject
|
||||
ISyncRecordSnapshot\|NSObject
|
||||
ISyncSession\|NSObject
|
||||
ISyncSessionDriver\|NSObject
|
||||
ISyncSessionDriverDataSource
|
||||
NSATSTypesetter\|NSTypesetter\|NSObject
|
||||
NSActionCell\|NSCell\|NSObject
|
||||
NSAffineTransform\|NSObject
|
||||
NSAlert\|NSObject
|
||||
NSAnimatablePropertyContainer
|
||||
NSAnimation\|NSObject
|
||||
NSAnimationContext\|NSObject
|
||||
NSAppleEventDescriptor\|NSObject
|
||||
NSAppleEventManager\|NSObject
|
||||
NSAppleScript\|NSObject
|
||||
NSApplication\|NSResponder\|NSObject
|
||||
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
|
||||
NSBox\|NSView\|NSResponder\|NSObject
|
||||
NSBrowser\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSBrowserCell\|NSCell\|NSObject
|
||||
NSBundle\|NSObject
|
||||
NSButton\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSButtonCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSCIImageRep\|NSImageRep\|NSObject
|
||||
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
|
||||
NSCollectionViewItem\|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
|
||||
NSComparisonPredicate\|NSPredicate\|NSObject
|
||||
NSCompoundPredicate\|NSPredicate\|NSObject
|
||||
NSCondition\|NSObject
|
||||
NSConditionLock\|NSObject
|
||||
NSConnection\|NSObject
|
||||
NSConstantString\|NSSimpleCString\|NSString\|NSObject
|
||||
NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSController\|NSObject
|
||||
NSCopying
|
||||
NSCountCommand\|NSScriptCommand\|NSObject
|
||||
NSCountedSet\|NSMutableSet\|NSSet\|NSObject
|
||||
NSCreateCommand\|NSScriptCommand\|NSObject
|
||||
NSCursor\|NSObject
|
||||
NSCustomImageRep\|NSImageRep\|NSObject
|
||||
NSData\|NSObject
|
||||
NSDate\|NSObject
|
||||
NSDateComponents\|NSObject
|
||||
NSDateFormatter\|NSFormatter\|NSObject
|
||||
NSDatePicker\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSDatePickerCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSDecimalNumber\|NSNumber\|NSValue\|NSObject
|
||||
NSDecimalNumberBehaviors
|
||||
NSDecimalNumberHandler\|NSObject
|
||||
NSDeleteCommand\|NSScriptCommand\|NSObject
|
||||
NSDictionary\|NSObject
|
||||
NSDictionaryController\|NSArrayController\|NSObjectController\|NSController\|NSObject
|
||||
NSDirectoryEnumerator\|NSEnumerator\|NSObject
|
||||
NSDistantObject\|NSProxy
|
||||
NSDistantObjectRequest\|NSObject
|
||||
NSDistributedLock\|NSObject
|
||||
NSDistributedNotificationCenter\|NSNotificationCenter\|NSObject
|
||||
NSDockTile\|NSObject
|
||||
NSDocument\|NSObject
|
||||
NSDocumentController\|NSObject
|
||||
NSDraggingInfo
|
||||
NSDrawer\|NSResponder\|NSObject
|
||||
NSEPSImageRep\|NSImageRep\|NSObject
|
||||
NSEntityDescription\|NSObject
|
||||
NSEntityMapping\|NSObject
|
||||
NSEntityMigrationPolicy\|NSObject
|
||||
NSEnumerator\|NSObject
|
||||
NSError\|NSObject
|
||||
NSEvent\|NSObject
|
||||
NSException\|NSObject
|
||||
NSExistsCommand\|NSScriptCommand\|NSObject
|
||||
NSExpression\|NSObject
|
||||
NSFastEnumeration
|
||||
NSFetchRequest\|NSObject
|
||||
NSFetchRequestExpression\|NSExpression\|NSObject
|
||||
NSFetchedPropertyDescription\|NSPropertyDescription\|NSObject
|
||||
NSFileHandle\|NSObject
|
||||
NSFileManager\|NSObject
|
||||
NSFileWrapper\|NSObject
|
||||
NSFont\|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
|
||||
NSImageRep\|NSObject
|
||||
NSImageView\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSIndexPath\|NSObject
|
||||
NSIndexSet\|NSObject
|
||||
NSIndexSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSInputManager\|NSObject
|
||||
NSInputServer\|NSObject
|
||||
NSInputServerMouseTracker
|
||||
NSInputServiceProvider
|
||||
NSInputStream\|NSStream\|NSObject
|
||||
NSInvocation\|NSObject
|
||||
NSInvocationOperation\|NSOperation\|NSObject
|
||||
NSKeyedArchiver\|NSCoder\|NSObject
|
||||
NSKeyedUnarchiver\|NSCoder\|NSObject
|
||||
NSLayoutManager\|NSObject
|
||||
NSLevelIndicator\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSLevelIndicatorCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSLocale\|NSObject
|
||||
NSLock\|NSObject
|
||||
NSLocking
|
||||
NSLogicalTest\|NSScriptWhoseTest\|NSObject
|
||||
NSMachBootstrapServer\|NSPortNameServer\|NSObject
|
||||
NSMachPort\|NSPort\|NSObject
|
||||
NSManagedObject\|NSObject
|
||||
NSManagedObjectContext\|NSObject
|
||||
NSManagedObjectID\|NSObject
|
||||
NSManagedObjectModel\|NSObject
|
||||
NSMapTable\|NSObject
|
||||
NSMappingModel\|NSObject
|
||||
NSMatrix\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSMenu\|NSObject
|
||||
NSMenuItem\|NSObject
|
||||
NSMenuItemCell\|NSButtonCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSMenuView\|NSView\|NSResponder\|NSObject
|
||||
NSMessagePort\|NSPort\|NSObject
|
||||
NSMessagePortNameServer\|NSPortNameServer\|NSObject
|
||||
NSMetadataItem\|NSObject
|
||||
NSMetadataQuery\|NSObject
|
||||
NSMetadataQueryAttributeValueTuple\|NSObject
|
||||
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
|
||||
NSMutableIndexSet\|NSIndexSet\|NSObject
|
||||
NSMutableParagraphStyle\|NSParagraphStyle\|NSObject
|
||||
NSMutableSet\|NSSet\|NSObject
|
||||
NSMutableString\|NSString\|NSObject
|
||||
NSMutableURLRequest\|NSURLRequest\|NSObject
|
||||
NSNameSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSNetService\|NSObject
|
||||
NSNetServiceBrowser\|NSObject
|
||||
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
|
||||
NSOpenGLPixelBuffer\|NSObject
|
||||
NSOpenGLPixelFormat\|NSObject
|
||||
NSOpenGLView\|NSView\|NSResponder\|NSObject
|
||||
NSOpenPanel\|NSSavePanel\|NSPanel\|NSWindow\|NSResponder\|NSObject
|
||||
NSOperation\|NSObject
|
||||
NSOperationQueue\|NSObject
|
||||
NSOutlineView\|NSTableView\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSOutputStream\|NSStream\|NSObject
|
||||
NSPDFImageRep\|NSImageRep\|NSObject
|
||||
NSPICTImageRep\|NSImageRep\|NSObject
|
||||
NSPageLayout\|NSObject
|
||||
NSPanel\|NSWindow\|NSResponder\|NSObject
|
||||
NSParagraphStyle\|NSObject
|
||||
NSPasteboard\|NSObject
|
||||
NSPathCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSPathCellDelegate
|
||||
NSPathComponentCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSPathControl\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSPathControlDelegate
|
||||
NSPersistentDocument\|NSDocument\|NSObject
|
||||
NSPersistentStore\|NSObject
|
||||
NSPersistentStoreCoordinator\|NSObject
|
||||
NSPersistentStoreCoordinatorSyncing
|
||||
NSPipe\|NSObject
|
||||
NSPointerArray\|NSObject
|
||||
NSPointerFunctions\|NSObject
|
||||
NSPopUpButton\|NSButton\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSPopUpButtonCell\|NSMenuItemCell\|NSButtonCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSPort\|NSObject
|
||||
NSPortCoder\|NSCoder\|NSObject
|
||||
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
|
||||
NSProgressIndicator\|NSView\|NSResponder\|NSObject
|
||||
NSPropertyDescription\|NSObject
|
||||
NSPropertyListSerialization\|NSObject
|
||||
NSPropertyMapping\|NSObject
|
||||
NSPropertySpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSProtocolChecker\|NSProxy
|
||||
NSProxy
|
||||
NSQuickDrawView\|NSView\|NSResponder\|NSObject
|
||||
NSQuitCommand\|NSScriptCommand\|NSObject
|
||||
NSRandomSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSRangeSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSRecursiveLock\|NSObject
|
||||
NSRelationshipDescription\|NSPropertyDescription\|NSObject
|
||||
NSRelativeSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSResponder\|NSObject
|
||||
NSRuleEditor\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSRulerMarker\|NSObject
|
||||
NSRulerView\|NSView\|NSResponder\|NSObject
|
||||
NSRunLoop\|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
|
||||
NSSecureTextField\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSSecureTextFieldCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSSegmentedCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSSegmentedControl\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSSet\|NSObject
|
||||
NSSetCommand\|NSScriptCommand\|NSObject
|
||||
NSShadow\|NSObject
|
||||
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
|
||||
NSSpecifierTest\|NSScriptWhoseTest\|NSObject
|
||||
NSSpeechRecognizer\|NSObject
|
||||
NSSpeechSynthesizer\|NSObject
|
||||
NSSpellChecker\|NSObject
|
||||
NSSpellServer\|NSObject
|
||||
NSSplitView\|NSView\|NSResponder\|NSObject
|
||||
NSStatusBar\|NSObject
|
||||
NSStatusItem\|NSObject
|
||||
NSStepper\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSStepperCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSStream\|NSObject
|
||||
NSString\|NSObject
|
||||
NSTabView\|NSView\|NSResponder\|NSObject
|
||||
NSTabViewItem\|NSObject
|
||||
NSTableColumn\|NSObject
|
||||
NSTableHeaderCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSTableHeaderView\|NSView\|NSResponder\|NSObject
|
||||
NSTableView\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSTask\|NSObject
|
||||
NSText\|NSView\|NSResponder\|NSObject
|
||||
NSTextAttachment\|NSObject
|
||||
NSTextAttachmentCell\|NSCell\|NSObject
|
||||
NSTextBlock\|NSObject
|
||||
NSTextContainer\|NSObject
|
||||
NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSTextInput
|
||||
NSTextInputClient
|
||||
NSTextList\|NSObject
|
||||
NSTextStorage\|NSMutableAttributedString\|NSAttributedString\|NSObject
|
||||
NSTextTab\|NSObject
|
||||
NSTextTable\|NSTextBlock\|NSObject
|
||||
NSTextTableBlock\|NSTextBlock\|NSObject
|
||||
NSTextView\|NSText\|NSView\|NSResponder\|NSObject
|
||||
NSThread\|NSObject
|
||||
NSTimeZone\|NSObject
|
||||
NSTimer\|NSObject
|
||||
NSTokenField\|NSTextField\|NSControl\|NSView\|NSResponder\|NSObject
|
||||
NSTokenFieldCell\|NSTextFieldCell\|NSActionCell\|NSCell\|NSObject
|
||||
NSToolbar\|NSObject
|
||||
NSToolbarItem\|NSObject
|
||||
NSToolbarItemGroup\|NSToolbarItem\|NSObject
|
||||
NSToolbarItemValidations
|
||||
NSTrackingArea\|NSObject
|
||||
NSTreeController\|NSObjectController\|NSController\|NSObject
|
||||
NSTreeNode\|NSObject
|
||||
NSTypesetter\|NSObject
|
||||
NSURL\|NSObject
|
||||
NSURLAuthenticationChallenge\|NSObject
|
||||
NSURLAuthenticationChallengeSender
|
||||
NSURLCache\|NSObject
|
||||
NSURLConnection\|NSObject
|
||||
NSURLCredential\|NSObject
|
||||
NSURLCredentialStorage\|NSObject
|
||||
NSURLDownload\|NSObject
|
||||
NSURLDownloadDelegate
|
||||
NSURLHandle\|NSObject
|
||||
NSURLHandleClient
|
||||
NSURLProtectionSpace\|NSObject
|
||||
NSURLProtocol\|NSObject
|
||||
NSURLProtocolClient
|
||||
NSURLRequest\|NSObject
|
||||
NSURLResponse\|NSObject
|
||||
NSUnarchiver\|NSCoder\|NSObject
|
||||
NSUndoManager\|NSObject
|
||||
NSUniqueIDSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSUserDefaults\|NSObject
|
||||
NSUserDefaultsController\|NSController\|NSObject
|
||||
NSUserInterfaceValidations
|
||||
NSValidatedToobarItem
|
||||
NSValidatedUserInterfaceItem
|
||||
NSValue\|NSObject
|
||||
NSValueTransformer\|NSObject
|
||||
NSView\|NSResponder\|NSObject
|
||||
NSViewAnimation\|NSAnimation\|NSObject
|
||||
NSViewController\|NSResponder\|NSObject
|
||||
NSWhoseSpecifier\|NSScriptObjectSpecifier\|NSObject
|
||||
NSWindow\|NSResponder\|NSObject
|
||||
NSWindowController\|NSResponder\|NSObject
|
||||
NSWorkspace\|NSObject
|
||||
NSXMLDTD\|NSXMLNode\|NSObject
|
||||
NSXMLDTDNode\|NSXMLNode\|NSObject
|
||||
NSXMLDocument\|NSXMLNode\|NSObject
|
||||
NSXMLElement\|NSXMLNode\|NSObject
|
||||
NSXMLNode\|NSObject
|
||||
NSXMLParser\|NSObject
|
||||
QTCaptureAudioPreviewOutput\|QTCaptureOutput\|NSObject
|
||||
QTCaptureConnection\|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
|
||||
QTFormatDescription\|NSObject
|
||||
QTMedia\|NSObject
|
||||
QTMovie\|NSObject
|
||||
QTMovieLayer\|CALayer\|NSObject
|
||||
QTMovieView\|NSView\|NSResponder\|NSObject
|
||||
QTSampleBuffer\|NSObject
|
||||
QTTrack\|NSObject
|
||||
ScreenSaverDefaults\|NSUserDefaults\|NSObject
|
||||
ScreenSaverView\|NSView\|NSResponder\|NSObject
|
||||
UIAcceleration
|
||||
UIAccelerometer
|
||||
UIAccelerometerDelegate
|
||||
UIAccessibilityElement
|
||||
UIActionSheet
|
||||
UIActionSheetDelegate
|
||||
UIActivityIndicatorView
|
||||
UIAlertView
|
||||
UIAlertViewDelegate
|
||||
UIApplication
|
||||
UIApplicationDelegate
|
||||
UIBarButtonItem
|
||||
UIBarItem
|
||||
UIButton
|
||||
UIColor
|
||||
UIControl
|
||||
UIDatePicker
|
||||
UIDevice
|
||||
UIEvent
|
||||
UIFont
|
||||
UIImage
|
||||
UIImagePickerController
|
||||
UIImagePickerControllerDelegate
|
||||
UIImageView
|
||||
UILabel
|
||||
UILocalizedIndexedCollation
|
||||
UIMenuController
|
||||
UINavigationBar
|
||||
UINavigationBarDelegate
|
||||
UINavigationController
|
||||
UINavigationControllerDelegate
|
||||
UINavigationItem
|
||||
UIPageControl
|
||||
UIPasteboard
|
||||
UIPickerView
|
||||
UIPickerViewDataSource
|
||||
UIPickerViewDelegate
|
||||
UIProgressView
|
||||
UIResponder
|
||||
UIScreen
|
||||
UIScrollView
|
||||
UIScrollViewDelegate
|
||||
UISearchBar
|
||||
UISearchBarDelegate
|
||||
UISearchDisplayController
|
||||
UISearchDisplayDelegate
|
||||
UISegmentedControl
|
||||
UISlider
|
||||
UISwitch
|
||||
UITabBar
|
||||
UITabBarController
|
||||
UITabBarControllerDelegate
|
||||
UITabBarDelegate
|
||||
UITabBarItem
|
||||
UITableView
|
||||
UITableViewCell
|
||||
UITableViewController
|
||||
UITableViewDataSource
|
||||
UITableViewDelegate
|
||||
UITextField
|
||||
UITextFieldDelegate
|
||||
UITextInputTraits
|
||||
UITextSelecting
|
||||
UITextView
|
||||
UITextViewDelegate
|
||||
UIToolbar
|
||||
UITouch
|
||||
UIView
|
||||
UIViewController
|
||||
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
@@ -1,330 +0,0 @@
|
||||
NSAccessibilityActionDescription
|
||||
NSAccessibilityPostNotification
|
||||
NSAccessibilityRaiseBadArgumentException
|
||||
NSAccessibilityRoleDescription
|
||||
NSAccessibilityRoleDescriptionForUIElement
|
||||
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
|
||||
NSDisableScreenUpdates
|
||||
NSDivideRect
|
||||
NSDottedFrameRect
|
||||
NSDrawBitmap
|
||||
NSDrawButton
|
||||
NSDrawColorTiledRects
|
||||
NSDrawDarkBezel
|
||||
NSDrawGrayBezel
|
||||
NSDrawGroove
|
||||
NSDrawLightBezel
|
||||
NSDrawNinePartImage
|
||||
NSDrawThreePartImage
|
||||
NSDrawTiledRects
|
||||
NSDrawWhiteBezel
|
||||
NSDrawWindowBackground
|
||||
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
|
||||
NSInterfaceStyleForKey
|
||||
NSIntersectionRange
|
||||
NSIntersectionRect
|
||||
NSIntersectsRect
|
||||
NSIsControllerMarker
|
||||
NSIsEmptyRect
|
||||
NSIsFreedObject
|
||||
NSJavaBundleCleanup
|
||||
NSJavaBundleSetup
|
||||
NSJavaClassesForBundle
|
||||
NSJavaClassesFromPath
|
||||
NSJavaNeedsToLoadClasses
|
||||
NSJavaNeedsVirtualMachine
|
||||
NSJavaObjectNamedInPath
|
||||
NSJavaProvidesClasses
|
||||
NSJavaSetup
|
||||
NSJavaSetupVirtualMachine
|
||||
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
|
||||
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
|
||||
NSStringFromClass
|
||||
NSStringFromHashTable
|
||||
NSStringFromMapTable
|
||||
NSStringFromPoint
|
||||
NSStringFromProtocol
|
||||
NSStringFromRange
|
||||
NSStringFromRect
|
||||
NSStringFromSelector
|
||||
NSStringFromSize
|
||||
NSStringFromUIEdgeInsets
|
||||
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
|
||||
NSUnionRange
|
||||
NSUnionRect
|
||||
NSUnregisterServicesProvider
|
||||
NSUpdateDynamicServices
|
||||
NSUserName
|
||||
NSValue
|
||||
NSWidth
|
||||
NSWindowList
|
||||
NSWindowListForContext
|
||||
NSZoneCalloc
|
||||
NSZoneFree
|
||||
NSZoneFromPointer
|
||||
NSZoneMalloc
|
||||
NSZoneName
|
||||
NSZoneRealloc
|
||||
UIAccessibilityPostNotification
|
||||
UIApplicationMain
|
||||
UIEdgeInsetsEqualToEdgeInsets
|
||||
UIEdgeInsetsFromString
|
||||
UIEdgeInsetsInsetRect
|
||||
UIEdgeInsetsMake
|
||||
UIGraphicsBeginImageContext
|
||||
UIGraphicsEndImageContext
|
||||
UIGraphicsGetCurrentContext
|
||||
UIGraphicsGetImageFromCurrentImageContext
|
||||
UIGraphicsPopContext
|
||||
UIGraphicsPushContext
|
||||
UIImageJPEGRepresentation
|
||||
UIImagePNGRepresentation
|
||||
UIImageWriteToSavedPhotosAlbum
|
||||
UIRectClip
|
||||
UIRectFill
|
||||
UIRectFillUsingBlendMode
|
||||
UIRectFrame
|
||||
UIRectFrameUsingBlendMode
|
||||
NSAssert
|
||||
NSAssert1
|
||||
NSAssert2
|
||||
NSAssert3
|
||||
NSAssert4
|
||||
NSAssert5
|
||||
NSCAssert
|
||||
NSCAssert1
|
||||
NSCAssert2
|
||||
NSCAssert3
|
||||
NSCAssert4
|
||||
NSCAssert5
|
||||
NSCParameterAssert
|
||||
NSDecimalMaxSize
|
||||
NSGlyphInfoAtIndex
|
||||
NSLocalizedString
|
||||
NSLocalizedStringFromTable
|
||||
NSLocalizedStringFromTableInBundle
|
||||
NSLocalizedStringWithDefaultValue
|
||||
NSParameterAssert
|
||||
NSURLResponseUnknownLength
|
||||
NS_VALUERETURN
|
||||
UIDeviceOrientationIsLandscape
|
||||
UIDeviceOrientationIsPortrait
|
||||
UIDeviceOrientationIsValidInterfaceOrientation
|
||||
UIInterfaceOrientationIsLandscape
|
||||
UIInterfaceOrientationIsPortrait
|
||||
Binary file not shown.
@@ -1,105 +0,0 @@
|
||||
NSAntialiasThresholdChangedNotification
|
||||
NSAppleEventManagerWillProcessFirstEventNotification
|
||||
NSApplicationDidBecomeActiveNotification
|
||||
NSApplicationDidChangeScreenParametersNotification
|
||||
NSApplicationDidFinishLaunchingNotification
|
||||
NSApplicationDidHideNotification
|
||||
NSApplicationDidResignActiveNotification
|
||||
NSApplicationDidUnhideNotification
|
||||
NSApplicationDidUpdateNotification
|
||||
NSApplicationWillBecomeActiveNotification
|
||||
NSApplicationWillFinishLaunchingNotification
|
||||
NSApplicationWillHideNotification
|
||||
NSApplicationWillResignActiveNotification
|
||||
NSApplicationWillTerminateNotification
|
||||
NSApplicationWillUnhideNotification
|
||||
NSApplicationWillUpdateNotification
|
||||
NSClassDescriptionNeededForClassNotification
|
||||
NSColorListDidChangeNotification
|
||||
NSColorPanelColorDidChangeNotification
|
||||
NSComboBoxSelectionDidChangeNotification
|
||||
NSComboBoxSelectionIsChangingNotification
|
||||
NSComboBoxWillDismissNotification
|
||||
NSComboBoxWillPopUpNotification
|
||||
NSContextHelpModeDidActivateNotification
|
||||
NSContextHelpModeDidDeactivateNotification
|
||||
NSControlTextDidBeginEditingNotification
|
||||
NSControlTextDidChangeNotification
|
||||
NSControlTextDidEndEditingNotification
|
||||
NSControlTintDidChangeNotification
|
||||
NSDrawerDidCloseNotification
|
||||
NSDrawerDidOpenNotification
|
||||
NSDrawerWillCloseNotification
|
||||
NSDrawerWillOpenNotification
|
||||
NSFontSetChangedNotification
|
||||
NSImageRepRegistryDidChangeNotification
|
||||
NSMenuDidAddItemNotification
|
||||
NSMenuDidBeginTrackingNotification
|
||||
NSMenuDidChangeItemNotification
|
||||
NSMenuDidEndTrackingNotification
|
||||
NSMenuDidRemoveItemNotification
|
||||
NSMenuDidSendActionNotification
|
||||
NSMenuWillSendActionNotification
|
||||
NSOutlineViewColumnDidMoveNotification
|
||||
NSOutlineViewColumnDidResizeNotification
|
||||
NSOutlineViewItemDidCollapseNotification
|
||||
NSOutlineViewItemDidExpandNotification
|
||||
NSOutlineViewItemWillCollapseNotification
|
||||
NSOutlineViewItemWillExpandNotification
|
||||
NSOutlineViewSelectionDidChangeNotification
|
||||
NSOutlineViewSelectionIsChangingNotification
|
||||
NSPopUpButtonCellWillPopUpNotification
|
||||
NSPopUpButtonWillPopUpNotification
|
||||
NSPreferencePaneCancelUnselectNotification
|
||||
NSPreferencePaneDoUnselectNotification
|
||||
NSSplitViewDidResizeSubviewsNotification
|
||||
NSSplitViewWillResizeSubviewsNotification
|
||||
NSSystemColorsDidChangeNotification
|
||||
NSTableViewColumnDidMoveNotification
|
||||
NSTableViewColumnDidResizeNotification
|
||||
NSTableViewSelectionDidChangeNotification
|
||||
NSTableViewSelectionIsChangingNotification
|
||||
NSTextDidBeginEditingNotification
|
||||
NSTextDidChangeNotification
|
||||
NSTextDidEndEditingNotification
|
||||
NSTextStorageDidProcessEditingNotification
|
||||
NSTextStorageWillProcessEditingNotification
|
||||
NSTextViewDidChangeSelectionNotification
|
||||
NSTextViewDidChangeTypingAttributesNotification
|
||||
NSTextViewWillChangeNotifyingTextViewNotification
|
||||
NSToolbarDidRemoveItemNotification
|
||||
NSToolbarWillAddItemNotification
|
||||
NSViewBoundsDidChangeNotification
|
||||
NSViewDidUpdateTrackingAreasNotification
|
||||
NSViewFocusDidChangeNotification
|
||||
NSViewFrameDidChangeNotification
|
||||
NSViewGlobalFrameDidChangeNotification
|
||||
NSWindowDidBecomeKeyNotification
|
||||
NSWindowDidBecomeMainNotification
|
||||
NSWindowDidChangeScreenNotification
|
||||
NSWindowDidChangeScreenProfileNotification
|
||||
NSWindowDidDeminiaturizeNotification
|
||||
NSWindowDidEndSheetNotification
|
||||
NSWindowDidExposeNotification
|
||||
NSWindowDidMiniaturizeNotification
|
||||
NSWindowDidMoveNotification
|
||||
NSWindowDidResignKeyNotification
|
||||
NSWindowDidResignMainNotification
|
||||
NSWindowDidResizeNotification
|
||||
NSWindowDidUpdateNotification
|
||||
NSWindowWillBeginSheetNotification
|
||||
NSWindowWillCloseNotification
|
||||
NSWindowWillMiniaturizeNotification
|
||||
NSWindowWillMoveNotification
|
||||
NSWorkspaceDidLaunchApplicationNotification
|
||||
NSWorkspaceDidMountNotification
|
||||
NSWorkspaceDidPerformFileOperationNotification
|
||||
NSWorkspaceDidTerminateApplicationNotification
|
||||
NSWorkspaceDidUnmountNotification
|
||||
NSWorkspaceDidWakeNotification
|
||||
NSWorkspaceSessionDidBecomeActiveNotification
|
||||
NSWorkspaceSessionDidResignActiveNotification
|
||||
NSWorkspaceWillLaunchApplicationNotification
|
||||
NSWorkspaceWillPowerOffNotification
|
||||
NSWorkspaceWillSleepNotification
|
||||
NSWorkspaceWillUnmountNotification
|
||||
@@ -1,222 +0,0 @@
|
||||
NSAlertStyle
|
||||
NSAnimationBlockingMode
|
||||
NSAnimationCurve
|
||||
NSAnimationEffect
|
||||
NSAnimationProgress
|
||||
NSAppleEventManagerSuspensionID
|
||||
NSApplicationDelegateReply
|
||||
NSApplicationPrintReply
|
||||
NSApplicationTerminateReply
|
||||
NSAttributeType
|
||||
NSBackgroundStyle
|
||||
NSBackingStoreType
|
||||
NSBezelStyle
|
||||
NSBezierPathElement
|
||||
NSBitmapFormat
|
||||
NSBitmapImageFileType
|
||||
NSBorderType
|
||||
NSBoxType
|
||||
NSBrowserColumnResizingType
|
||||
NSBrowserDropOperation
|
||||
NSButtonType
|
||||
NSCalculationError
|
||||
NSCalendarUnit
|
||||
NSCellAttribute
|
||||
NSCellImagePosition
|
||||
NSCellStateValue
|
||||
NSCellType
|
||||
NSCharacterCollection
|
||||
NSColorPanelMode
|
||||
NSColorRenderingIntent
|
||||
NSColorSpaceModel
|
||||
NSComparisonPredicateModifier
|
||||
NSComparisonResult
|
||||
NSCompositingOperation
|
||||
NSCompoundPredicateType
|
||||
NSControlSize
|
||||
NSControlTint
|
||||
NSDateFormatterBehavior
|
||||
NSDateFormatterStyle
|
||||
NSDatePickerElementFlags
|
||||
NSDatePickerMode
|
||||
NSDatePickerStyle
|
||||
NSDeleteRule
|
||||
NSDocumentChangeType
|
||||
NSDragOperation
|
||||
NSDrawerState
|
||||
NSEntityMappingType
|
||||
NSEventType
|
||||
NSExpressionType
|
||||
NSFetchRequestResultType
|
||||
NSFindPanelAction
|
||||
NSFindPanelSubstringMatchType
|
||||
NSFocusRingPlacement
|
||||
NSFocusRingType
|
||||
NSFontAction
|
||||
NSFontFamilyClass
|
||||
NSFontRenderingMode
|
||||
NSFontSymbolicTraits
|
||||
NSFontTraitMask
|
||||
NSGlyph
|
||||
NSGlyphInscription
|
||||
NSGlyphLayoutMode
|
||||
NSGlyphRelation
|
||||
NSGradientDrawingOptions
|
||||
NSGradientType
|
||||
NSHTTPCookieAcceptPolicy
|
||||
NSHashEnumerator
|
||||
NSHashTableOptions
|
||||
NSImageAlignment
|
||||
NSImageCacheMode
|
||||
NSImageFrameStyle
|
||||
NSImageInterpolation
|
||||
NSImageLoadStatus
|
||||
NSImageRepLoadStatus
|
||||
NSImageScaling
|
||||
NSInsertionPosition
|
||||
NSInteger
|
||||
NSInterfaceStyle
|
||||
NSKeyValueChange
|
||||
NSKeyValueObservingOptions
|
||||
NSKeyValueSetMutationKind
|
||||
NSLayoutDirection
|
||||
NSLayoutStatus
|
||||
NSLevelIndicatorStyle
|
||||
NSLineBreakMode
|
||||
NSLineCapStyle
|
||||
NSLineJoinStyle
|
||||
NSLineMovementDirection
|
||||
NSLineSweepDirection
|
||||
NSMapEnumerator
|
||||
NSMapTableOptions
|
||||
NSMatrixMode
|
||||
NSModalSession
|
||||
NSMultibyteGlyphPacking
|
||||
NSNetServiceOptions
|
||||
NSNetServicesError
|
||||
NSNotificationCoalescing
|
||||
NSNotificationSuspensionBehavior
|
||||
NSNumberFormatterBehavior
|
||||
NSNumberFormatterPadPosition
|
||||
NSNumberFormatterRoundingMode
|
||||
NSNumberFormatterStyle
|
||||
NSOpenGLContextAuxiliary
|
||||
NSOpenGLPixelFormatAttribute
|
||||
NSOpenGLPixelFormatAuxiliary
|
||||
NSOperationQueuePriority
|
||||
NSPathStyle
|
||||
NSPoint
|
||||
NSPointerFunctionsOptions
|
||||
NSPointingDeviceType
|
||||
NSPopUpArrowPosition
|
||||
NSPostingStyle
|
||||
NSPredicateOperatorType
|
||||
NSPrintPanelOptions
|
||||
NSPrinterTableStatus
|
||||
NSPrintingOrientation
|
||||
NSPrintingPageOrder
|
||||
NSPrintingPaginationMode
|
||||
NSProgressIndicatorStyle
|
||||
NSProgressIndicatorThickness
|
||||
NSProgressIndicatorThreadInfo
|
||||
NSPropertyListFormat
|
||||
NSPropertyListMutabilityOptions
|
||||
NSQTMovieLoopMode
|
||||
NSRange
|
||||
NSRect
|
||||
NSRectEdge
|
||||
NSRelativePosition
|
||||
NSRequestUserAttentionType
|
||||
NSRoundingMode
|
||||
NSRuleEditorNestingMode
|
||||
NSRuleEditorRowType
|
||||
NSRulerOrientation
|
||||
NSSaveOperationType
|
||||
NSSaveOptions
|
||||
NSScreenAuxiliaryOpaque
|
||||
NSScrollArrowPosition
|
||||
NSScrollerArrow
|
||||
NSScrollerPart
|
||||
NSSearchPathDirectory
|
||||
NSSearchPathDomainMask
|
||||
NSSegmentStyle
|
||||
NSSegmentSwitchTracking
|
||||
NSSelectionAffinity
|
||||
NSSelectionDirection
|
||||
NSSelectionGranularity
|
||||
NSSize
|
||||
NSSliderType
|
||||
NSSocketNativeHandle
|
||||
NSSpeechBoundary
|
||||
NSSplitViewDividerStyle
|
||||
NSStreamEvent
|
||||
NSStreamStatus
|
||||
NSStringCompareOptions
|
||||
NSStringDrawingOptions
|
||||
NSStringEncoding
|
||||
NSStringEncodingConversionOptions
|
||||
NSSwappedDouble
|
||||
NSSwappedFloat
|
||||
NSTIFFCompression
|
||||
NSTabState
|
||||
NSTabViewType
|
||||
NSTableViewColumnAutoresizingStyle
|
||||
NSTableViewDropOperation
|
||||
NSTableViewSelectionHighlightStyle
|
||||
NSTestComparisonOperation
|
||||
NSTextAlignment
|
||||
NSTextBlockDimension
|
||||
NSTextBlockLayer
|
||||
NSTextBlockValueType
|
||||
NSTextBlockVerticalAlignment
|
||||
NSTextFieldBezelStyle
|
||||
NSTextTabType
|
||||
NSTextTableLayoutAlgorithm
|
||||
NSThreadPrivate
|
||||
NSTickMarkPosition
|
||||
NSTimeInterval
|
||||
NSTimeZoneNameStyle
|
||||
NSTitlePosition
|
||||
NSTokenStyle
|
||||
NSToolTipTag
|
||||
NSToolbarDisplayMode
|
||||
NSToolbarSizeMode
|
||||
NSTrackingAreaOptions
|
||||
NSTrackingRectTag
|
||||
NSTypesetterBehavior
|
||||
NSTypesetterControlCharacterAction
|
||||
NSTypesetterGlyphInfo
|
||||
NSUInteger
|
||||
NSURLCacheStoragePolicy
|
||||
NSURLCredentialPersistence
|
||||
NSURLHandleStatus
|
||||
NSURLRequestCachePolicy
|
||||
NSUsableScrollerParts
|
||||
NSWhoseSubelementIdentifier
|
||||
NSWindingRule
|
||||
NSWindowBackingLocation
|
||||
NSWindowButton
|
||||
NSWindowCollectionBehavior
|
||||
NSWindowDepth
|
||||
NSWindowOrderingMode
|
||||
NSWindowSharingType
|
||||
NSWorkspaceIconCreationOptions
|
||||
NSWorkspaceLaunchOptions
|
||||
NSWritingDirection
|
||||
NSXMLDTDNodeKind
|
||||
NSXMLDocumentContentKind
|
||||
NSXMLNodeKind
|
||||
NSXMLParserError
|
||||
NSZone
|
||||
UIAccelerationValue
|
||||
UIAccessibilityNotifications
|
||||
UIAccessibilityTraits
|
||||
UIControlEvents
|
||||
UIControlState
|
||||
UIDataDetectorTypes
|
||||
UIEdgeInsets
|
||||
UIImagePickerControllerSourceType
|
||||
UITableViewCellStateMask
|
||||
UIViewAutoresizing
|
||||
UIWebViewNavigationType
|
||||
UIWindowLevel
|
||||
@@ -1,63 +0,0 @@
|
||||
#!/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.
@@ -1,47 +0,0 @@
|
||||
/* -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;
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
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/^[^ ]* //'
|
||||
@@ -1,18 +0,0 @@
|
||||
" File: cocoa.vim
|
||||
" Author: Michael Sanders msanders [at] gmail [dot] com
|
||||
" Version: 0.4
|
||||
|
||||
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
|
||||
@@ -1,43 +0,0 @@
|
||||
SCRIPT=$(wildcard plugin/*.vim)
|
||||
AUTOL =$(wildcard autoload/*.vim)
|
||||
DOC=$(wildcard doc/*.txt)
|
||||
PLUGIN=$(shell basename "$$PWD")
|
||||
VERSION=$(shell sed -n '/Version:/{s/^.*\(\S\.\S\+\)$$/\1/;p}' $(SCRIPT))
|
||||
|
||||
.PHONY: $(PLUGIN).vba README
|
||||
|
||||
all: uninstall vimball install README
|
||||
|
||||
vimball: $(PLUGIN).vba
|
||||
|
||||
clean:
|
||||
rm -f *.vba */*.orig *.~* .VimballRecord
|
||||
|
||||
dist-clean: clean
|
||||
|
||||
install:
|
||||
vim -N -c':so %' -c':q!' $(PLUGIN)-$(VERSION).vba
|
||||
|
||||
uninstall:
|
||||
vim -N -c':RmVimball' -c':q!' $(PLUGIN)-$(VERSION).vba
|
||||
|
||||
undo:
|
||||
for i in */*.orig; do mv -f "$$i" "$${i%.*}"; done
|
||||
|
||||
README:
|
||||
cp -f $(DOC) README
|
||||
|
||||
$(PLUGIN).vba:
|
||||
rm -f $(PLUGIN)-$(VERSION).vba
|
||||
vim -N -c 'ru! vimballPlugin.vim' -c ':call append("0", [ "$(SCRIPT)", "$(AUTOL)", "$(DOC)"])' -c '$$d' -c ":%MkVimball $(PLUGIN)-$(VERSION) ." -c':q!'
|
||||
ln -f $(PLUGIN)-$(VERSION).vba $(PLUGIN).vba
|
||||
|
||||
release: version all
|
||||
|
||||
version:
|
||||
perl -i.orig -pne 'if (/Version:/) {s/\.(\d*)/sprintf(".%d", 1+$$1)/e}' ${SCRIPT} ${AUTOL}
|
||||
perl -i -pne 'if (/GetLatestVimScripts:/) {s/(\d+)\s+:AutoInstall:/sprintf("%d :AutoInstall:", 1+$$1)/e}' ${SCRIPT} ${AUTOL}
|
||||
#perl -i -pne 'if (/Last Change:/) {s/\d+\.\d+\.\d\+$$/sprintf("%s", `date -R`)/e}' ${SCRIPT}
|
||||
perl -i -pne 'if (/Last Change:/) {s/(:\s+).*\n/sprintf(": %s", `date -R`)/e}' ${SCRIPT} ${AUTOL}
|
||||
perl -i.orig -pne 'if (/Version:/) {s/\.(\d+).*\n/sprintf(".%d %s", 1+$$1, `date -R`)/e}' ${DOC}
|
||||
VERSION=$(shell sed -n '/Version:/{s/^.*\(\S\.\S\+\)$$/\1/;p}' $(SCRIPT))
|
||||
@@ -1,277 +0,0 @@
|
||||
*histwin.txt* Plugin to browse the undo-tree
|
||||
|
||||
Version: 0.12 Tue, 04 May 2010 22:42:22 +0200
|
||||
Author: Christian Brabandt <cb@256bit.org>
|
||||
Copyright: (c) 2009, 2010 by Christian Brabandt *histwin-copyright*
|
||||
The VIM LICENSE applies to histwin.vim and histwin.txt
|
||||
(see |copyright|) except use histwin instead of "Vim".
|
||||
NO WARRANTY, EXPRESS OR IMPLIED. USE AT-YOUR-OWN-RISK.
|
||||
|
||||
==============================================================================
|
||||
1. Contents *histwin-contents*
|
||||
|
||||
1. Contents.................................................|histwin-contents|
|
||||
2. Functionality............................................|histwin-plugin|
|
||||
Opening the Undo-Tree Window.............................|histwin-browse|
|
||||
3. Keybindings..............................................|histwin-keys|
|
||||
4. Configuration............................................|histwin-config|
|
||||
Configuraion Variables...................................|histwin-var|
|
||||
Color Configuration......................................|histwin-color|
|
||||
5. Feedback.................................................|histwin-feedback|
|
||||
6. History..................................................|histwin-history|
|
||||
|
||||
==============================================================================
|
||||
*histwin-plugin*
|
||||
2. Functionality
|
||||
|
||||
This plugin was written to allow an easy way of browsing the |undo-tree|, that
|
||||
is available with Vim. This allows to go back to any change that has been made
|
||||
previously, because these states are remembered by Vim within a branch in the
|
||||
undo-history. You can use |g-| or |g+| to move in Vim within the different
|
||||
undo-branches.
|
||||
|
||||
Unfortunately, going back to any state isn't very comfortable and you always
|
||||
need to remember at what time you did that change. Therefore the histwin-Plugin
|
||||
allows to easily view the available states and branch back to any of these
|
||||
states. It opens a new window, which contains all available states and using
|
||||
this plugin allows you to tag a previous change or go back to a particular
|
||||
state.
|
||||
|
||||
*histwin-browse* *:UB*
|
||||
2.1 Opening the Undo-Tree Window
|
||||
|
||||
By default you can open the Undo-Tree Window by issuing :UB (Mnemonic:
|
||||
UndoBrowse). If you do this the first time, you will see a window that looks
|
||||
like this:
|
||||
|
||||
+------------------------------------------------------+
|
||||
|Undo-Tree: FILENAME |#!/bin/bash |
|
||||
|====================== | |
|
||||
| | |
|
||||
|" actv. keys in this window |if [ $# -ne 2 ]; the |
|
||||
|" I toggles help screen | echo "Name: $0: arg|
|
||||
|" <Enter> goto undo branch | echo |
|
||||
|" <C-L> Update view | exit 1 |
|
||||
|" T Tag sel. branch |fi |
|
||||
|" P Toggle view | |
|
||||
|" D Diff sel. branch |if true; then |
|
||||
|" R Replay sel. branch | dir="${1%/*}" |
|
||||
|" C Clear all tags | file="${1##*/}" |
|
||||
|" Q Quit window | target="${2}/${di |
|
||||
|" | if [ ! -e "${targ |
|
||||
|" Undo-Tree, v0.9 | mkdir -p "$ta |
|
||||
| | mv "$1" "$tar |
|
||||
|Nr Time Tag | |
|
||||
|1) 00:00:00 /Start Editing/ | |
|
||||
|2) 22:50:43 /First draft/ | |
|
||||
|3) 23:01:22 | |
|
||||
|4) 23:02:57 | |
|
||||
|5) 23:05:04 | |
|
||||
+------------------------------------------------------+
|
||||
|
||||
This shows an extract of a sample file on the right side. The window on the
|
||||
left side, contains an overview of all available states that are known for
|
||||
this buffer or that have been tagged to remember that change.
|
||||
|
||||
The first line contains 'Undo-Tree: filename' so that the user knows, for
|
||||
which file this window shows the available undo-branches. This is the heading.
|
||||
|
||||
Following the heading is a small information banner, that contains the most
|
||||
important key combinations, that are available in this window.
|
||||
|
||||
After that list, all available undo-changes are displayed. This is a list,
|
||||
that contains the number, the time this change was made, the change-number to
|
||||
use with the |:undo| command (this is by default not shown), and the tags,
|
||||
that have been entered. A bar shows the selected undo-branch that is active on
|
||||
the right side.
|
||||
|
||||
Please note, that the Time for start-editing will always be shown as 00:00:00,
|
||||
because currently there is no way to retrieve this time from within vim.
|
||||
|
||||
==============================================================================
|
||||
*histwin-keys*
|
||||
3. Keybindings
|
||||
|
||||
By default, the following keys are active in Normal mode in the Undo-Tree
|
||||
window:
|
||||
|
||||
'Enter' Go to the branch, on which is selected with the cursor. By default,
|
||||
if switching to an older branch, the buffer will be set to
|
||||
'nomodifiable'. If you don't want that, you need to set the
|
||||
g:undo_tree_nomod variable to off (see |histwin-var|).
|
||||
'<C-L>' Update the window
|
||||
'T' Tag the branch, that is selected. You'll be prompted for a tag.
|
||||
'P' Toggle view (the change-number will be displayed). You can use this
|
||||
number to go directly to that change (see |:undo|)
|
||||
'D' Start diff mode with the branch that is selected by the cursor.
|
||||
(see |08.7|)
|
||||
'R' Replay all changes, that have been made from the beginning.
|
||||
(see |histwin-config| for adjusting the speed)
|
||||
'C' Clear all tags.
|
||||
'Q' Quit window
|
||||
|
||||
==============================================================================
|
||||
*histwin-var* *histwin-config*
|
||||
4.1 Configuration variables
|
||||
|
||||
You can adjust several parameters for the Undo-Tree window, by setting some
|
||||
variables in your .vimrc file.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.1 Disable printing the help
|
||||
|
||||
To always show only a small information banner, set this in your .vimrc
|
||||
(by default this variable is 1) >
|
||||
|
||||
:let g:undo_tree_help = 0
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.2 Include the Changenr in the window
|
||||
|
||||
To have the Change number always included, set the g:undo_tree_dtl=0:
|
||||
(by default, this variable is 1) >
|
||||
|
||||
:let g:undo_tree_dtl = 0
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.3 Customize the replay speed
|
||||
|
||||
The speed with which to show each change, when replaying a undo-branch can be
|
||||
adjusted by setting to a value in milliseconds. If not specified, this is
|
||||
100ms. >
|
||||
|
||||
:let g:undo_tree_speed=200
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.4 Adjust the window size.
|
||||
|
||||
You can adjust the windows size by setting g:undo_tree_wdth to the number of
|
||||
columns you like. By default this is considered 30. When the change number is
|
||||
included in the list (see above), this value will increase by 10. >
|
||||
|
||||
:let g:undo_tree_wdth=40
|
||||
|
||||
This will change the width of the window to 40 or 50, if the change number
|
||||
is included.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.5 Read-only and writable buffer states
|
||||
|
||||
By default, old buffer states are set read only and you cannot modify these.
|
||||
This was done, since the author of the plugin started browsing the undo
|
||||
branches and started changing older versions over and over again. This is
|
||||
really confusing, since you start creating even more branches and you might
|
||||
end up fixing old bugs over and over.
|
||||
|
||||
This is what happened to the author of this plugin, so now there is a
|
||||
configuration available that will set old buffers to be only read-only.
|
||||
Currently, this works, by detecting, if the cursor was on the last branch in
|
||||
the histwin window, and if the cursor was not on the last branch, the buffer
|
||||
will be set 'nomodifiable'. You can always set the buffer to be modifiable by
|
||||
issuing: >
|
||||
:setl modifiable
|
||||
|
||||
The default is to set the buffer read only. To disable this, you can set the
|
||||
g:undo_tree_nomod variable in your |.vimrc| like this: >
|
||||
|
||||
:let g:undo_tree_nomod = 0
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
*histwin-color*
|
||||
4.2 Color configuration
|
||||
|
||||
If you want to customize the colors, you can simply change the following
|
||||
groups, that are defined by the Undo-Tree Browser:
|
||||
|
||||
UBTitle this defines the color of the title file-name. By default this links
|
||||
to Title (see |hl-Title|)
|
||||
UBInfo this defines how the information banner looks like. By default this
|
||||
links to Comment.
|
||||
UBList this group defines the List items at the start e.g. 1), 2), This
|
||||
links to Identifier.
|
||||
UBTime this defines, how the time is displayed. This links to Underlined.
|
||||
UBTag This defines, how the tag should be highlighted. By default this
|
||||
links to Special
|
||||
UBDelim This group defines the look of the delimiter for the tag. By default
|
||||
this links to Ignore
|
||||
UBActive This group defines how the active selection is displayed. By default
|
||||
this links to PmenuSel (see |hl-PmenuSel|)
|
||||
UBKey This group defines, how keys are displayed within the information
|
||||
banner. By default, this links to SpecialKey (see |hl-SpecialKey|)
|
||||
|
||||
Say you want to change the color for the Tag values and you think, it should
|
||||
look like |IncSerch|, so you can do this in your .vimrc file:
|
||||
|
||||
:hi link UBTag IncSearch
|
||||
|
||||
==============================================================================
|
||||
*histwin-feedback*
|
||||
5. Feedback
|
||||
|
||||
Feedback is always welcome. If you like the plugin, please rate it at the
|
||||
vim-page:
|
||||
http://www.vim.org/scripts/script.php?script_id=2932
|
||||
|
||||
You can also follow the development of the plugin at github:
|
||||
http://github.com/chrisbra/histwin.vim
|
||||
|
||||
Please don't hesitate to report any bugs to the maintainer, mentioned in the
|
||||
third line of this document.
|
||||
|
||||
==============================================================================
|
||||
*histwin-history*
|
||||
6. histwin History
|
||||
|
||||
0.12 - Small extension to the help file
|
||||
- generate help file with 'et' set, so the README at github looks
|
||||
better
|
||||
- Highlight the key binding using |hl-SpecialKey|
|
||||
- The help tag for the color configuration was wrong.
|
||||
0.11 - Set old buffers read only (disable the setting via the
|
||||
g:undo_tree_nomod variable
|
||||
- Make sure, Warning Messages are really displayed using :unsilent
|
||||
0.10 - Fixed annoying Resizing bug
|
||||
- linebreak tags, if they are too long
|
||||
- dynamically grow the histwin window, for longer tags (up
|
||||
to a maximum)
|
||||
- Bugfix: Always indicate the correct branch
|
||||
- Added a few try/catch statements and some error handling
|
||||
0.9 - Error handling for Replaying (it may not work always)
|
||||
- Documentation
|
||||
- Use syntax highlighting
|
||||
- Tagging finally works
|
||||
0.8 - code cleanup
|
||||
- make speed of the replay adjustable. Use g:undo_tree_speed to set
|
||||
time in milliseconds
|
||||
0.7.2 - make sure, when switching to a different undo-branch, the undo-tree will be reloaded
|
||||
- check 'undolevel' settings
|
||||
0.7.1 - fixed a problem with mapping the keys which broke the Undo-Tree keys
|
||||
(I guess I don't fully understand, when to use s: and <sid>)
|
||||
0.7 - created autoloadPlugin (patch by Charles Campbell) Thanks!
|
||||
- enabled GLVS (patch by Charles Campbell) Thanks!
|
||||
- cleaned up old comments
|
||||
- deleted :noautocmd which could cause trouble with other plugins
|
||||
- small changes in coding style (<sid> to s:, fun instead of fu)
|
||||
- made Plugin available as histwin.vba
|
||||
- Check for availability of :UB before defining it
|
||||
(could already by defined Blockquote.vim does for example)
|
||||
0.6 - fix missing bufname() when creating the undo_tree window
|
||||
- make undo_tree window a little bit smaller
|
||||
(size is adjustable via g:undo_tree_wdth variable)
|
||||
0.5 - add missing endif (which made version 0.4 unusuable)
|
||||
0.4 - Allow diffing with selected branch
|
||||
- highlight current version
|
||||
- Fix annoying bug, that displays
|
||||
--No lines in buffer--
|
||||
0.3 - Use changenr() to determine undobranch
|
||||
- <C-L> updates view
|
||||
- allow switching to initial load state, before
|
||||
buffer was edited
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:ft=help:et
|
||||
@@ -1,464 +0,0 @@
|
||||
" histwin.vim - Vim global plugin for browsing the undo tree
|
||||
" -------------------------------------------------------------
|
||||
" Last Change: Tue, 04 May 2010 22:42:22 +0200
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Version: 0.12
|
||||
" Copyright: (c) 2009, 2010 by Christian Brabandt
|
||||
" The VIM LICENSE applies to histwin.vim
|
||||
" (see |copyright|) except use "histwin.vim"
|
||||
" instead of "Vim".
|
||||
" No warranty, express or implied.
|
||||
" *** *** Use At-Your-Own-Risk! *** ***
|
||||
"
|
||||
|
||||
" Init: {{{1
|
||||
let s:cpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Show help banner?
|
||||
" per default enabled, you can change it,
|
||||
" if you set g:undobrowse_help to 0 e.g.
|
||||
" put in your .vimrc
|
||||
" :let g:undo_tree_help=0
|
||||
let s:undo_help=((exists("s:undo_help") ? s:undo_help : 1) )
|
||||
let s:undo_tree_dtl = (exists('g:undo_tree_dtl') ? g:undo_tree_dtl : (exists("s:undo_tree_dtl") ? s:undo_tree_dtl : 1))
|
||||
|
||||
|
||||
|
||||
" Functions:
|
||||
"
|
||||
fun! s:WarningMsg(msg)"{{{1
|
||||
echohl WarningMsg
|
||||
let msg = "histwin: " . a:msg
|
||||
if exists(":unsilent") == 2
|
||||
unsilent echomsg msg
|
||||
else
|
||||
echomsg msg
|
||||
endif
|
||||
echohl Normal
|
||||
let v:errmsg = msg
|
||||
endfun "}}}
|
||||
fun! s:Init()"{{{1
|
||||
if exists("g:undo_tree_help")
|
||||
let s:undo_help=g:undo_tree_help
|
||||
endif
|
||||
if !exists("s:undo_winname")
|
||||
let s:undo_winname='Undo_Tree'
|
||||
endif
|
||||
" speed, with which the replay will be played
|
||||
" (duration between each change in milliseconds)
|
||||
" set :let g:undo_tree_speed=250 in your .vimrc to override
|
||||
let s:undo_tree_speed = (exists('g:undo_tree_speed') ? g:undo_tree_speed : 100)
|
||||
" Set prefered width
|
||||
let s:undo_tree_wdth = (exists('g:undo_tree_wdth') ? g:undo_tree_wdth : 30)
|
||||
" Show detail with Change nr?
|
||||
let s:undo_tree_dtl = (exists('g:undo_tree_dtl') ? g:undo_tree_dtl : s:undo_tree_dtl)
|
||||
" Set old versions nomodifiable
|
||||
let s:undo_tree_nomod = (exists('g:undo_tree_nomod') ? g:undo_tree_nomod : 1)
|
||||
|
||||
if !exists("s:undo_tree_wdth_orig")
|
||||
let s:undo_tree_wdth_orig = s:undo_tree_wdth
|
||||
endif
|
||||
if !exists("s:undo_tree_wdth_max")
|
||||
let s:undo_tree_wdth_max = 50
|
||||
endif
|
||||
|
||||
if bufname('') != s:undo_winname
|
||||
let s:orig_buffer = bufnr('')
|
||||
endif
|
||||
|
||||
" Make sure we are in the right buffer
|
||||
" and this window still exists
|
||||
if bufwinnr(s:orig_buffer) == -1
|
||||
wincmd p
|
||||
let s:orig_buffer=bufnr('')
|
||||
endif
|
||||
|
||||
" Move to the buffer, we are monitoring
|
||||
exe bufwinnr(s:orig_buffer) . 'wincmd w'
|
||||
if !exists("b:undo_customtags")
|
||||
let b:undo_customtags={}
|
||||
endif
|
||||
if !exists("b:undo_dict")
|
||||
let b:undo_dict={}
|
||||
endif
|
||||
endfun "}}}
|
||||
fun! s:ReturnHistList(winnr)"{{{1
|
||||
redir => a
|
||||
sil :undol
|
||||
redir end
|
||||
" First item contains the header
|
||||
let templist=split(a, '\n')[1:]
|
||||
let customtags=copy(b:undo_customtags)
|
||||
let histdict={}
|
||||
" include the starting point as the first change.
|
||||
" unfortunately, there does not seem to exist an
|
||||
" easy way to obtain the state of the first change,
|
||||
" so we will be inserting a dummy entry and need to
|
||||
" check later, if this is called.
|
||||
"if exists("b:undo_dict") && !empty(get(b:undo_dict,0,''))
|
||||
"call add(histdict, b:undo_dict[0])
|
||||
" else
|
||||
" if !has_key(b:undo_tagdict, '0')
|
||||
"let b:undo_customtags['0'] = {'number': 0, 'change': 0, 'time': '00:00:00', 'tag': 'Start Editing'}
|
||||
let histdict[0] = {'number': 0, 'change': 0, 'time': '00:00:00', 'tag': 'Start Editing'}
|
||||
" endif
|
||||
|
||||
let i=1
|
||||
for item in templist
|
||||
let change = matchstr(item, '^\s\+\zs\d\+') + 0
|
||||
let nr = matchstr(item, '^\s\+\d\+\s\+\zs\d\+') + 0
|
||||
let time = matchstr(item, '^\%(\s\+\d\+\)\{2}\s\+\zs.*$')
|
||||
if time !~ '\d\d:\d\d:\d\d'
|
||||
let time=matchstr(time, '^\d\+')
|
||||
let time=strftime('%H:%M:%S', localtime()-time)
|
||||
endif
|
||||
if has_key(customtags, change)
|
||||
let tag=customtags[change].tag
|
||||
call remove(customtags,change)
|
||||
else
|
||||
let tag=''
|
||||
endif
|
||||
let histdict[change]={'change': change, 'number': nr, 'time': time, 'tag': tag}
|
||||
let i+=1
|
||||
endfor
|
||||
return extend(histdict,customtags,"force")
|
||||
endfun "}}}
|
||||
fun! s:SortValues(a,b)"{{{1
|
||||
return (a:a.change+0)==(a:b.change+0) ? 0 : (a:a.change+0) > (a:b.change+0) ? 1 : -1
|
||||
endfun"}}}
|
||||
fun! s:MaxTagsLen()"{{{1
|
||||
let tags = getbufvar(s:orig_buffer, 'undo_customtags')
|
||||
let d=[]
|
||||
" return a list of all tags
|
||||
let d=values(map(copy(tags), 'v:val["tag"]'))
|
||||
let d+= ["Start Editing"]
|
||||
"call map(d, 'strlen(substitute(v:val, ".", "x", "g"))')
|
||||
call map(d, 'strlen(v:val)')
|
||||
return max(d)
|
||||
endfu "}}}
|
||||
fun! s:HistWin()"{{{1
|
||||
let undo_buf=bufwinnr('^'.s:undo_winname.'$')
|
||||
" Adjust size so that each tag will fit on the screen
|
||||
" 16 is just the default length, that should fit within 30 chars
|
||||
"let maxlen=s:MaxTagsLen() % (s:undo_tree_wdth_max)
|
||||
let maxlen=s:MaxTagsLen()
|
||||
" if !s:undo_tree_dtl
|
||||
" let maxlen+=20 " detailed pane
|
||||
" else
|
||||
" let maxlen+=13 " short pane
|
||||
" endif
|
||||
let rd = (!s:undo_tree_dtl ? 20 : 13)
|
||||
|
||||
if maxlen > 16
|
||||
let s:undo_tree_wdth = (s:undo_tree_wdth + maxlen - rd) % s:undo_tree_wdth_max
|
||||
let s:undo_tree_wdth = (s:undo_tree_wdth < s:undo_tree_wdth_orig ? s:undo_tree_wdth_orig : s:undo_tree_wdth)
|
||||
endif
|
||||
" for the detail view, we need more space
|
||||
if (!s:undo_tree_dtl)
|
||||
let s:undo_tree_wdth = s:undo_tree_wdth_orig + 6
|
||||
else
|
||||
let s:undo_tree_wdth = s:undo_tree_wdth_orig
|
||||
endif
|
||||
"if (maxlen + (!s:undo_tree_dtl*7)) > 13 + (!s:undo_tree_dtl*7)
|
||||
" let s:undo_tree_wdth+=(s:undo_tree_wdth + maxlen) % s:undo_tree_wdth_max
|
||||
"endif
|
||||
if undo_buf != -1
|
||||
exe undo_buf . 'wincmd w'
|
||||
if winwidth(0) != s:undo_tree_wdth
|
||||
exe "vert res " . s:undo_tree_wdth
|
||||
endif
|
||||
else
|
||||
execute s:undo_tree_wdth . "vsp " . s:undo_winname
|
||||
setl noswapfile buftype=nowrite bufhidden=delete foldcolumn=0 nobuflisted winfixwidth
|
||||
let undo_buf=bufwinnr("")
|
||||
endif
|
||||
exe bufwinnr(s:orig_buffer) . ' wincmd w'
|
||||
return undo_buf
|
||||
endfun "}}}
|
||||
fun! s:PrintUndoTree(winnr)"{{{1
|
||||
let bufname = (empty(bufname(s:orig_buffer)) ? '[No Name]' : fnamemodify(bufname(s:orig_buffer),':t'))
|
||||
let changenr = changenr()
|
||||
let histdict = b:undo_tagdict
|
||||
exe a:winnr . 'wincmd w'
|
||||
let save_cursor=getpos('.')
|
||||
setl modifiable
|
||||
" silent because :%d outputs this message:
|
||||
" --No lines in buffer--
|
||||
silent %d _
|
||||
call setline(1,'Undo-Tree: '.bufname)
|
||||
put =repeat('=', strlen(getline(1)))
|
||||
put =''
|
||||
call s:PrintHelp(s:undo_help)
|
||||
if s:undo_tree_dtl
|
||||
call append('$', printf("%-*s %-9s %s", strlen(len(histdict)), "Nr", " Time", "Tag"))
|
||||
else
|
||||
call append('$', printf("%-*s %-9s %-6s %s", strlen(len(histdict)), "Nr", " Time", "Change", "Tag"))
|
||||
endif
|
||||
|
||||
let i=1
|
||||
"for line in histdict+values(tagdict)
|
||||
let list=sort(values(histdict), 's:SortValues')
|
||||
for line in list
|
||||
let tag=line.tag
|
||||
" this is only an educated guess.
|
||||
" This should be calculated
|
||||
let width=winwidth(0) - (!s:undo_tree_dtl ? 22 : 14)
|
||||
if strlen(tag) > width
|
||||
let tag=substitute(tag, '.\{'.width.'}', '&\r', 'g')
|
||||
endif
|
||||
let tag = (empty(tag) ? tag : '/'.tag.'/')
|
||||
if !s:undo_tree_dtl
|
||||
call append('$',
|
||||
\ printf("%0*d) %8s %6d %s",
|
||||
\ strlen(len(histdict)), i, line['time'], line['change'],
|
||||
\ tag))
|
||||
else
|
||||
call append('$',
|
||||
\ printf("%0*d) %8s %s",
|
||||
\ strlen(len(histdict)), i, line['time'],
|
||||
\ tag))
|
||||
endif
|
||||
let i+=1
|
||||
endfor
|
||||
%s/\r/\=submatch(0).repeat(' ', match(getline('.'), '\/')+1)/eg
|
||||
call s:MapKeys()
|
||||
call s:HilightLines(s:GetLineNr(changenr,list)+1)
|
||||
setl nomodifiable
|
||||
call setpos('.', save_cursor)
|
||||
endfun "}}}
|
||||
fun! s:HilightLines(changenr)"{{{1
|
||||
syn match UBTitle '^\%1lUndo-Tree: \zs.*$'
|
||||
syn match UBInfo '^".*$' contains=UBKEY
|
||||
syn match UBKey '^"\s\zs\%(\(<[^>]*>\)\|\u\)\ze\s'
|
||||
syn match UBList '^\d\+\ze'
|
||||
syn match UBTime '\d\d:\d\d:\d\d' "nextgroup=UBDelimStart
|
||||
syn region UBTag matchgroup=UBDelim start='/' end='/$' keepend
|
||||
if a:changenr
|
||||
exe 'syn match UBActive "^0*'.a:changenr.')[^/]*"'
|
||||
endif
|
||||
|
||||
hi def link UBTitle Title
|
||||
hi def link UBInfo Comment
|
||||
hi def link UBList Identifier
|
||||
hi def link UBTag Special
|
||||
hi def link UBTime Underlined
|
||||
hi def link UBDelim Ignore
|
||||
hi def link UBActive PmenuSel
|
||||
hi def link UBKey SpecialKey
|
||||
endfun "}}}
|
||||
fun! s:PrintHelp(...)"{{{1
|
||||
let mess=['" actv. keys in this window']
|
||||
call add(mess, '" I toggles help screen')
|
||||
if a:1
|
||||
call add(mess, "\" <Enter> goto undo branch")
|
||||
call add(mess, "\" <C-L>\t Update view")
|
||||
call add(mess, "\" T\t Tag sel. branch")
|
||||
call add(mess, "\" P\t Toggle view")
|
||||
call add(mess, "\" D\t Diff sel. branch")
|
||||
call add(mess, "\" R\t Replay sel. branch")
|
||||
call add(mess, "\" C\t Clear all tags")
|
||||
call add(mess, "\" Q\t Quit window")
|
||||
call add(mess, '"')
|
||||
call add(mess, "\" Undo-Tree, v" . printf("%.02f",g:loaded_undo_browse))
|
||||
endif
|
||||
call add(mess, '')
|
||||
call append('$', mess)
|
||||
endfun "}}}
|
||||
fun! s:DiffUndoBranch(change)"{{{1
|
||||
let prevchangenr=<sid>UndoBranch()
|
||||
if empty(prevchangenr)
|
||||
return ''
|
||||
endif
|
||||
let cur_ft = &ft
|
||||
let buffer=getline(1,'$')
|
||||
try
|
||||
exe ':u ' . prevchangenr
|
||||
catch /Vim(undo):Undo number \d\+ not found/
|
||||
call s:WarningMsg("Undo Change not found!")
|
||||
"echohl WarningMsg | unsilent echo "Undo Change not found." |echohl Normal
|
||||
return ''
|
||||
endtry
|
||||
exe ':botright vsp '.tempname()
|
||||
call setline(1, bufname(s:orig_buffer) . ' undo-branch: ' . a:change)
|
||||
call append('$',buffer)
|
||||
exe "setl ft=".cur_ft
|
||||
silent w!
|
||||
diffthis
|
||||
exe bufwinnr(s:orig_buffer) . 'wincmd w'
|
||||
diffthis
|
||||
endfun "}}}
|
||||
fun! s:ReturnTime()"{{{1
|
||||
let a=matchstr(getline('.'),'^\d\+)\s\+\zs\d\d:\d\d:\d\d\ze\s')
|
||||
if a == -1
|
||||
call search('^\d\+)', 'b')
|
||||
let a=matchstr(getline('.'),'^\d\+)\s\+\zs\d\d:\d\d:\d\d\ze\s')
|
||||
endif
|
||||
return a
|
||||
endfun"}}}
|
||||
fun! s:ReturnItem(time, histdict)"{{{1
|
||||
for [key, item] in items(a:histdict)
|
||||
if item['time'] == a:time
|
||||
return key
|
||||
endif
|
||||
endfor
|
||||
return ''
|
||||
endfun"}}}
|
||||
fun! s:GetLineNr(changenr,list)"{{{1
|
||||
let i=0
|
||||
for item in a:list
|
||||
if item['change'] >= a:changenr
|
||||
return i
|
||||
endif
|
||||
let i+=1
|
||||
endfor
|
||||
return -1
|
||||
endfun!"}}}
|
||||
fun! s:ReplayUndoBranch()"{{{1
|
||||
let time = s:ReturnTime()
|
||||
exe bufwinnr(s:orig_buffer) . ' wincmd w'
|
||||
let change_old = changenr()
|
||||
let key = s:ReturnItem(time, b:undo_tagdict)
|
||||
if empty(key) || !time
|
||||
echo "Nothing to do"
|
||||
return
|
||||
endif
|
||||
try
|
||||
exe ':u ' . b:undo_tagdict[key]['change']
|
||||
exe 'earlier 99999999'
|
||||
redraw
|
||||
while changenr() < b:undo_tagdict[key]['change']
|
||||
red
|
||||
redraw
|
||||
exe ':sleep ' . s:undo_tree_speed . 'm'
|
||||
endw
|
||||
"catch /Undo number \d\+ not found/
|
||||
catch /Vim(undo):Undo number 0 not found/
|
||||
exe ':u ' . change_old
|
||||
call s:WarningMsg("Replay not possible for initial state")
|
||||
"echohl WarningMsg | echo "Replay not possible for initial state" |echohl Normal
|
||||
catch /Vim(undo):Undo number \d\+ not found/
|
||||
exe ':u ' . change_old
|
||||
call s:WarningMsg("Replay not possible\nDid you reload the file?")
|
||||
"echohl WarningMsg | echo "Replay not possible\nDid you reload the file?" |echohl Normal
|
||||
endtry
|
||||
endfun "}}}
|
||||
fun! s:ReturnBranch()"{{{1
|
||||
let a=matchstr(getline('.'), '^\d\+\ze')+0
|
||||
if a == -1
|
||||
call search('^\d\+)', 'b')
|
||||
let a=matchstr(getline('.'), '^\d\+\ze')+0
|
||||
endif
|
||||
return a
|
||||
endfun "}}}
|
||||
fun! s:ToggleHelpScreen()"{{{1
|
||||
let s:undo_help=!s:undo_help
|
||||
exe bufwinnr(s:orig_buffer) . ' wincmd w'
|
||||
call s:PrintUndoTree(s:HistWin())
|
||||
endfun "}}}
|
||||
fun! s:ToggleDetail()"{{{1
|
||||
let s:undo_tree_dtl=!s:undo_tree_dtl
|
||||
call s:PrintUndoTree(s:HistWin())
|
||||
endfun "}}}
|
||||
fun! s:UndoBranchTag(change, time)"{{{1
|
||||
"" exe bufwinnr(s:orig_buffer) . 'wincmd w'
|
||||
" let changenr=changenr()
|
||||
" exe b:undo_win . 'wincmd w'
|
||||
|
||||
let tags = getbufvar(s:orig_buffer, 'undo_tagdict')
|
||||
let cdict = getbufvar(s:orig_buffer, 'undo_customtags')
|
||||
let key = s:ReturnItem(a:time, tags)
|
||||
if empty(key)
|
||||
return
|
||||
endif
|
||||
call inputsave()
|
||||
let tag=input("Tagname " . a:change . ": ", tags[key]['tag'])
|
||||
call inputrestore()
|
||||
|
||||
let cdict[key] = {'tag': tag, 'number': 0, 'time': strftime('%H:%M:%S'), 'change': key}
|
||||
"let tags[changenr] = {'tag': cdict[changenr][tag], 'change': changenr, 'number': tags[key]['number'], 'time': tags[key]['time']}
|
||||
let tags[key]['tag'] = tag
|
||||
call setbufvar(s:orig_buffer, 'undo_tagdict', tags)
|
||||
call setbufvar(s:orig_buffer, 'undo_customtags', cdict)
|
||||
call s:PrintUndoTree(s:HistWin())
|
||||
endfun "}}}
|
||||
fun! s:UndoBranch()"{{{1
|
||||
let dict = getbufvar(s:orig_buffer, 'undo_tagdict')
|
||||
let key=s:ReturnItem(s:ReturnTime(),dict)
|
||||
if empty(key)
|
||||
echo "Nothing to do"
|
||||
endif
|
||||
" Last line?
|
||||
if line('.') == line('$')
|
||||
let tmod = 0
|
||||
else
|
||||
let tmod = 1
|
||||
endif
|
||||
exe bufwinnr(s:orig_buffer) . 'wincmd w'
|
||||
" Save cursor pos
|
||||
let cpos = getpos('.')
|
||||
let cmd=''
|
||||
let cur_changenr=changenr()
|
||||
"let list=sort(values(b:undo_tagdict), 's:SortValues')
|
||||
"let len = len(b:undo_tagdict)
|
||||
" if len==1, then there is no
|
||||
" undo branch available, which means
|
||||
" we can't undo anyway
|
||||
try
|
||||
if key==0
|
||||
" Jump back to initial state
|
||||
"let cmd=':earlier 9999999'
|
||||
:u1
|
||||
if !&modifiable
|
||||
setl modifiable
|
||||
endif
|
||||
:norm 1u
|
||||
else
|
||||
exe ':u '.dict[key]['change']
|
||||
endif
|
||||
if s:undo_tree_nomod && tmod
|
||||
setl nomodifiable
|
||||
else
|
||||
setl modifiable
|
||||
endif
|
||||
catch /Vim(undo):Undo number \d\+ not found/
|
||||
exe ':u ' . cur_changenr
|
||||
call s:WarningMsg("Undo Change not found.")
|
||||
"echohl WarningMsg | echomsg "Undo Change not found." |echohl Normal
|
||||
return
|
||||
endtry
|
||||
" this might have changed, so we return to the old cursor
|
||||
" position. This could still be wrong, so
|
||||
" So this is our best effort approach.
|
||||
call setpos('.', cpos)
|
||||
return cur_changenr
|
||||
endfun "}}}
|
||||
fun! s:MapKeys()"{{{1
|
||||
nnoremap <script> <silent> <buffer> I :<C-U>silent :call <sid>ToggleHelpScreen()<CR>
|
||||
nnoremap <script> <silent> <buffer> <C-L> :<C-U>silent :call histwin#UndoBrowse()<CR>
|
||||
nnoremap <script> <silent> <buffer> <CR> :<C-U>silent :call <sid>UndoBranch()<CR>:call histwin#UndoBrowse()<CR>
|
||||
nnoremap <script> <silent> <buffer> D :<C-U>silent :call <sid>DiffUndoBranch(<sid>ReturnBranch())<CR>
|
||||
nnoremap <script> <silent> <buffer> R :<C-U>call <sid>ReplayUndoBranch()<CR>:silent! :call histwin#UndoBrowse()<CR>
|
||||
nnoremap <script> <silent> <buffer> Q :<C-U>q<CR>
|
||||
nmap <script> <silent> <buffer> P :<C-U>silent :call <sid>ToggleDetail()<CR><C-L>
|
||||
nmap <script> <silent> <buffer> T :call <sid>UndoBranchTag(<sid>ReturnBranch(),<sid>ReturnTime())<CR>:<C-U>silent :call histwin#UndoBrowse()<CR>
|
||||
nmap <script> <silent> <buffer> C :call <sid>ClearTags()<CR><C-L>
|
||||
endfun "}}}
|
||||
fun! s:ClearTags()"{{{1
|
||||
exe bufwinnr(s:orig_buffer) . 'wincmd w'
|
||||
let b:undo_customtags={}
|
||||
endfun"}}}
|
||||
fun! histwin#UndoBrowse()"{{{1
|
||||
if &ul != -1
|
||||
call s:Init()
|
||||
let b:undo_win = s:HistWin()
|
||||
let b:undo_tagdict=s:ReturnHistList(bufwinnr(s:orig_buffer))
|
||||
call s:PrintUndoTree(b:undo_win)
|
||||
else
|
||||
echoerr "Histwin: Undo has been disabled. Check your undolevel setting!"
|
||||
endif
|
||||
endfun "}}}
|
||||
" Restore: {{{1
|
||||
let &cpo=s:cpo
|
||||
unlet s:cpo
|
||||
" vim: ts=4 sts=4 fdm=marker com+=l\:\"
|
||||
@@ -1,277 +0,0 @@
|
||||
*histwin.txt* Plugin to browse the undo-tree
|
||||
|
||||
Version: 0.12 Tue, 04 May 2010 22:42:22 +0200
|
||||
Author: Christian Brabandt <cb@256bit.org>
|
||||
Copyright: (c) 2009, 2010 by Christian Brabandt *histwin-copyright*
|
||||
The VIM LICENSE applies to histwin.vim and histwin.txt
|
||||
(see |copyright|) except use histwin instead of "Vim".
|
||||
NO WARRANTY, EXPRESS OR IMPLIED. USE AT-YOUR-OWN-RISK.
|
||||
|
||||
==============================================================================
|
||||
1. Contents *histwin-contents*
|
||||
|
||||
1. Contents.................................................|histwin-contents|
|
||||
2. Functionality............................................|histwin-plugin|
|
||||
Opening the Undo-Tree Window.............................|histwin-browse|
|
||||
3. Keybindings..............................................|histwin-keys|
|
||||
4. Configuration............................................|histwin-config|
|
||||
Configuraion Variables...................................|histwin-var|
|
||||
Color Configuration......................................|histwin-color|
|
||||
5. Feedback.................................................|histwin-feedback|
|
||||
6. History..................................................|histwin-history|
|
||||
|
||||
==============================================================================
|
||||
*histwin-plugin*
|
||||
2. Functionality
|
||||
|
||||
This plugin was written to allow an easy way of browsing the |undo-tree|, that
|
||||
is available with Vim. This allows to go back to any change that has been made
|
||||
previously, because these states are remembered by Vim within a branch in the
|
||||
undo-history. You can use |g-| or |g+| to move in Vim within the different
|
||||
undo-branches.
|
||||
|
||||
Unfortunately, going back to any state isn't very comfortable and you always
|
||||
need to remember at what time you did that change. Therefore the histwin-Plugin
|
||||
allows to easily view the available states and branch back to any of these
|
||||
states. It opens a new window, which contains all available states and using
|
||||
this plugin allows you to tag a previous change or go back to a particular
|
||||
state.
|
||||
|
||||
*histwin-browse* *:UB*
|
||||
2.1 Opening the Undo-Tree Window
|
||||
|
||||
By default you can open the Undo-Tree Window by issuing :UB (Mnemonic:
|
||||
UndoBrowse). If you do this the first time, you will see a window that looks
|
||||
like this:
|
||||
|
||||
+------------------------------------------------------+
|
||||
|Undo-Tree: FILENAME |#!/bin/bash |
|
||||
|====================== | |
|
||||
| | |
|
||||
|" actv. keys in this window |if [ $# -ne 2 ]; the |
|
||||
|" I toggles help screen | echo "Name: $0: arg|
|
||||
|" <Enter> goto undo branch | echo |
|
||||
|" <C-L> Update view | exit 1 |
|
||||
|" T Tag sel. branch |fi |
|
||||
|" P Toggle view | |
|
||||
|" D Diff sel. branch |if true; then |
|
||||
|" R Replay sel. branch | dir="${1%/*}" |
|
||||
|" C Clear all tags | file="${1##*/}" |
|
||||
|" Q Quit window | target="${2}/${di |
|
||||
|" | if [ ! -e "${targ |
|
||||
|" Undo-Tree, v0.9 | mkdir -p "$ta |
|
||||
| | mv "$1" "$tar |
|
||||
|Nr Time Tag | |
|
||||
|1) 00:00:00 /Start Editing/ | |
|
||||
|2) 22:50:43 /First draft/ | |
|
||||
|3) 23:01:22 | |
|
||||
|4) 23:02:57 | |
|
||||
|5) 23:05:04 | |
|
||||
+------------------------------------------------------+
|
||||
|
||||
This shows an extract of a sample file on the right side. The window on the
|
||||
left side, contains an overview of all available states that are known for
|
||||
this buffer or that have been tagged to remember that change.
|
||||
|
||||
The first line contains 'Undo-Tree: filename' so that the user knows, for
|
||||
which file this window shows the available undo-branches. This is the heading.
|
||||
|
||||
Following the heading is a small information banner, that contains the most
|
||||
important key combinations, that are available in this window.
|
||||
|
||||
After that list, all available undo-changes are displayed. This is a list,
|
||||
that contains the number, the time this change was made, the change-number to
|
||||
use with the |:undo| command (this is by default not shown), and the tags,
|
||||
that have been entered. A bar shows the selected undo-branch that is active on
|
||||
the right side.
|
||||
|
||||
Please note, that the Time for start-editing will always be shown as 00:00:00,
|
||||
because currently there is no way to retrieve this time from within vim.
|
||||
|
||||
==============================================================================
|
||||
*histwin-keys*
|
||||
3. Keybindings
|
||||
|
||||
By default, the following keys are active in Normal mode in the Undo-Tree
|
||||
window:
|
||||
|
||||
'Enter' Go to the branch, on which is selected with the cursor. By default,
|
||||
if switching to an older branch, the buffer will be set to
|
||||
'nomodifiable'. If you don't want that, you need to set the
|
||||
g:undo_tree_nomod variable to off (see |histwin-var|).
|
||||
'<C-L>' Update the window
|
||||
'T' Tag the branch, that is selected. You'll be prompted for a tag.
|
||||
'P' Toggle view (the change-number will be displayed). You can use this
|
||||
number to go directly to that change (see |:undo|)
|
||||
'D' Start diff mode with the branch that is selected by the cursor.
|
||||
(see |08.7|)
|
||||
'R' Replay all changes, that have been made from the beginning.
|
||||
(see |histwin-config| for adjusting the speed)
|
||||
'C' Clear all tags.
|
||||
'Q' Quit window
|
||||
|
||||
==============================================================================
|
||||
*histwin-var* *histwin-config*
|
||||
4.1 Configuration variables
|
||||
|
||||
You can adjust several parameters for the Undo-Tree window, by setting some
|
||||
variables in your .vimrc file.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.1 Disable printing the help
|
||||
|
||||
To always show only a small information banner, set this in your .vimrc
|
||||
(by default this variable is 1) >
|
||||
|
||||
:let g:undo_tree_help = 0
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.2 Include the Changenr in the window
|
||||
|
||||
To have the Change number always included, set the g:undo_tree_dtl=0:
|
||||
(by default, this variable is 1) >
|
||||
|
||||
:let g:undo_tree_dtl = 0
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.3 Customize the replay speed
|
||||
|
||||
The speed with which to show each change, when replaying a undo-branch can be
|
||||
adjusted by setting to a value in milliseconds. If not specified, this is
|
||||
100ms. >
|
||||
|
||||
:let g:undo_tree_speed=200
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.4 Adjust the window size.
|
||||
|
||||
You can adjust the windows size by setting g:undo_tree_wdth to the number of
|
||||
columns you like. By default this is considered 30. When the change number is
|
||||
included in the list (see above), this value will increase by 10. >
|
||||
|
||||
:let g:undo_tree_wdth=40
|
||||
|
||||
This will change the width of the window to 40 or 50, if the change number
|
||||
is included.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.5 Read-only and writable buffer states
|
||||
|
||||
By default, old buffer states are set read only and you cannot modify these.
|
||||
This was done, since the author of the plugin started browsing the undo
|
||||
branches and started changing older versions over and over again. This is
|
||||
really confusing, since you start creating even more branches and you might
|
||||
end up fixing old bugs over and over.
|
||||
|
||||
This is what happened to the author of this plugin, so now there is a
|
||||
configuration available that will set old buffers to be only read-only.
|
||||
Currently, this works, by detecting, if the cursor was on the last branch in
|
||||
the histwin window, and if the cursor was not on the last branch, the buffer
|
||||
will be set 'nomodifiable'. You can always set the buffer to be modifiable by
|
||||
issuing: >
|
||||
:setl modifiable
|
||||
|
||||
The default is to set the buffer read only. To disable this, you can set the
|
||||
g:undo_tree_nomod variable in your |.vimrc| like this: >
|
||||
|
||||
:let g:undo_tree_nomod = 0
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
*histwin-color*
|
||||
4.2 Color configuration
|
||||
|
||||
If you want to customize the colors, you can simply change the following
|
||||
groups, that are defined by the Undo-Tree Browser:
|
||||
|
||||
UBTitle this defines the color of the title file-name. By default this links
|
||||
to Title (see |hl-Title|)
|
||||
UBInfo this defines how the information banner looks like. By default this
|
||||
links to Comment.
|
||||
UBList this group defines the List items at the start e.g. 1), 2), This
|
||||
links to Identifier.
|
||||
UBTime this defines, how the time is displayed. This links to Underlined.
|
||||
UBTag This defines, how the tag should be highlighted. By default this
|
||||
links to Special
|
||||
UBDelim This group defines the look of the delimiter for the tag. By default
|
||||
this links to Ignore
|
||||
UBActive This group defines how the active selection is displayed. By default
|
||||
this links to PmenuSel (see |hl-PmenuSel|)
|
||||
UBKey This group defines, how keys are displayed within the information
|
||||
banner. By default, this links to SpecialKey (see |hl-SpecialKey|)
|
||||
|
||||
Say you want to change the color for the Tag values and you think, it should
|
||||
look like |IncSerch|, so you can do this in your .vimrc file:
|
||||
|
||||
:hi link UBTag IncSearch
|
||||
|
||||
==============================================================================
|
||||
*histwin-feedback*
|
||||
5. Feedback
|
||||
|
||||
Feedback is always welcome. If you like the plugin, please rate it at the
|
||||
vim-page:
|
||||
http://www.vim.org/scripts/script.php?script_id=2932
|
||||
|
||||
You can also follow the development of the plugin at github:
|
||||
http://github.com/chrisbra/histwin.vim
|
||||
|
||||
Please don't hesitate to report any bugs to the maintainer, mentioned in the
|
||||
third line of this document.
|
||||
|
||||
==============================================================================
|
||||
*histwin-history*
|
||||
6. histwin History
|
||||
|
||||
0.12 - Small extension to the help file
|
||||
- generate help file with 'et' set, so the README at github looks
|
||||
better
|
||||
- Highlight the key binding using |hl-SpecialKey|
|
||||
- The help tag for the color configuration was wrong.
|
||||
0.11 - Set old buffers read only (disable the setting via the
|
||||
g:undo_tree_nomod variable
|
||||
- Make sure, Warning Messages are really displayed using :unsilent
|
||||
0.10 - Fixed annoying Resizing bug
|
||||
- linebreak tags, if they are too long
|
||||
- dynamically grow the histwin window, for longer tags (up
|
||||
to a maximum)
|
||||
- Bugfix: Always indicate the correct branch
|
||||
- Added a few try/catch statements and some error handling
|
||||
0.9 - Error handling for Replaying (it may not work always)
|
||||
- Documentation
|
||||
- Use syntax highlighting
|
||||
- Tagging finally works
|
||||
0.8 - code cleanup
|
||||
- make speed of the replay adjustable. Use g:undo_tree_speed to set
|
||||
time in milliseconds
|
||||
0.7.2 - make sure, when switching to a different undo-branch, the undo-tree will be reloaded
|
||||
- check 'undolevel' settings
|
||||
0.7.1 - fixed a problem with mapping the keys which broke the Undo-Tree keys
|
||||
(I guess I don't fully understand, when to use s: and <sid>)
|
||||
0.7 - created autoloadPlugin (patch by Charles Campbell) Thanks!
|
||||
- enabled GLVS (patch by Charles Campbell) Thanks!
|
||||
- cleaned up old comments
|
||||
- deleted :noautocmd which could cause trouble with other plugins
|
||||
- small changes in coding style (<sid> to s:, fun instead of fu)
|
||||
- made Plugin available as histwin.vba
|
||||
- Check for availability of :UB before defining it
|
||||
(could already by defined Blockquote.vim does for example)
|
||||
0.6 - fix missing bufname() when creating the undo_tree window
|
||||
- make undo_tree window a little bit smaller
|
||||
(size is adjustable via g:undo_tree_wdth variable)
|
||||
0.5 - add missing endif (which made version 0.4 unusuable)
|
||||
0.4 - Allow diffing with selected branch
|
||||
- highlight current version
|
||||
- Fix annoying bug, that displays
|
||||
--No lines in buffer--
|
||||
0.3 - Use changenr() to determine undobranch
|
||||
- <C-L> updates view
|
||||
- allow switching to initial load state, before
|
||||
buffer was edited
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:ft=help:et
|
||||
@@ -1,790 +0,0 @@
|
||||
" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.
|
||||
UseVimball
|
||||
finish
|
||||
plugin/histwinPlugin.vim [[[1
|
||||
40
|
||||
" histwin.vim - Vim global plugin for browsing the undo tree
|
||||
" -------------------------------------------------------------
|
||||
" Last Change: Tue, 04 May 2010 22:42:22 +0200
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Version: 0.12
|
||||
" Copyright: (c) 2009 by Christian Brabandt
|
||||
" The VIM LICENSE applies to histwin.vim
|
||||
" (see |copyright|) except use "histwin.vim"
|
||||
" instead of "Vim".
|
||||
" No warranty, express or implied.
|
||||
" *** *** Use At-Your-Own-Risk! *** ***
|
||||
"
|
||||
" GetLatestVimScripts: 2932 6 :AutoInstall: histwin.vim
|
||||
" TODO: - write documentation
|
||||
" - don't use matchadd for syntax highlighting but use
|
||||
" appropriate syntax highlighting rules
|
||||
|
||||
" Init:
|
||||
if exists("g:loaded_undo_browse") || &cp || &ul == -1
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_undo_browse = 0.11
|
||||
let s:cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" User_Command:
|
||||
if exists(":UB") != 2
|
||||
com -nargs=0 UB :call histwin#UndoBrowse()
|
||||
else
|
||||
echoerr "histwin: UB is already defined. May be by another Plugin?"
|
||||
endif
|
||||
|
||||
" ChangeLog:
|
||||
" see :h histwin-history
|
||||
|
||||
" Restore:
|
||||
let &cpo=s:cpo
|
||||
unlet s:cpo
|
||||
" vim: ts=4 sts=4 fdm=marker com+=l\:\" fdm=syntax
|
||||
autoload/histwin.vim [[[1
|
||||
464
|
||||
" histwin.vim - Vim global plugin for browsing the undo tree
|
||||
" -------------------------------------------------------------
|
||||
" Last Change: Tue, 04 May 2010 22:42:22 +0200
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Version: 0.12
|
||||
" Copyright: (c) 2009, 2010 by Christian Brabandt
|
||||
" The VIM LICENSE applies to histwin.vim
|
||||
" (see |copyright|) except use "histwin.vim"
|
||||
" instead of "Vim".
|
||||
" No warranty, express or implied.
|
||||
" *** *** Use At-Your-Own-Risk! *** ***
|
||||
"
|
||||
|
||||
" Init: {{{1
|
||||
let s:cpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Show help banner?
|
||||
" per default enabled, you can change it,
|
||||
" if you set g:undobrowse_help to 0 e.g.
|
||||
" put in your .vimrc
|
||||
" :let g:undo_tree_help=0
|
||||
let s:undo_help=((exists("s:undo_help") ? s:undo_help : 1) )
|
||||
let s:undo_tree_dtl = (exists('g:undo_tree_dtl') ? g:undo_tree_dtl : (exists("s:undo_tree_dtl") ? s:undo_tree_dtl : 1))
|
||||
|
||||
|
||||
|
||||
" Functions:
|
||||
"
|
||||
fun! s:WarningMsg(msg)"{{{1
|
||||
echohl WarningMsg
|
||||
let msg = "histwin: " . a:msg
|
||||
if exists(":unsilent") == 2
|
||||
unsilent echomsg msg
|
||||
else
|
||||
echomsg msg
|
||||
endif
|
||||
echohl Normal
|
||||
let v:errmsg = msg
|
||||
endfun "}}}
|
||||
fun! s:Init()"{{{1
|
||||
if exists("g:undo_tree_help")
|
||||
let s:undo_help=g:undo_tree_help
|
||||
endif
|
||||
if !exists("s:undo_winname")
|
||||
let s:undo_winname='Undo_Tree'
|
||||
endif
|
||||
" speed, with which the replay will be played
|
||||
" (duration between each change in milliseconds)
|
||||
" set :let g:undo_tree_speed=250 in your .vimrc to override
|
||||
let s:undo_tree_speed = (exists('g:undo_tree_speed') ? g:undo_tree_speed : 100)
|
||||
" Set prefered width
|
||||
let s:undo_tree_wdth = (exists('g:undo_tree_wdth') ? g:undo_tree_wdth : 30)
|
||||
" Show detail with Change nr?
|
||||
let s:undo_tree_dtl = (exists('g:undo_tree_dtl') ? g:undo_tree_dtl : s:undo_tree_dtl)
|
||||
" Set old versions nomodifiable
|
||||
let s:undo_tree_nomod = (exists('g:undo_tree_nomod') ? g:undo_tree_nomod : 1)
|
||||
|
||||
if !exists("s:undo_tree_wdth_orig")
|
||||
let s:undo_tree_wdth_orig = s:undo_tree_wdth
|
||||
endif
|
||||
if !exists("s:undo_tree_wdth_max")
|
||||
let s:undo_tree_wdth_max = 50
|
||||
endif
|
||||
|
||||
if bufname('') != s:undo_winname
|
||||
let s:orig_buffer = bufnr('')
|
||||
endif
|
||||
|
||||
" Make sure we are in the right buffer
|
||||
" and this window still exists
|
||||
if bufwinnr(s:orig_buffer) == -1
|
||||
wincmd p
|
||||
let s:orig_buffer=bufnr('')
|
||||
endif
|
||||
|
||||
" Move to the buffer, we are monitoring
|
||||
exe bufwinnr(s:orig_buffer) . 'wincmd w'
|
||||
if !exists("b:undo_customtags")
|
||||
let b:undo_customtags={}
|
||||
endif
|
||||
if !exists("b:undo_dict")
|
||||
let b:undo_dict={}
|
||||
endif
|
||||
endfun "}}}
|
||||
fun! s:ReturnHistList(winnr)"{{{1
|
||||
redir => a
|
||||
sil :undol
|
||||
redir end
|
||||
" First item contains the header
|
||||
let templist=split(a, '\n')[1:]
|
||||
let customtags=copy(b:undo_customtags)
|
||||
let histdict={}
|
||||
" include the starting point as the first change.
|
||||
" unfortunately, there does not seem to exist an
|
||||
" easy way to obtain the state of the first change,
|
||||
" so we will be inserting a dummy entry and need to
|
||||
" check later, if this is called.
|
||||
"if exists("b:undo_dict") && !empty(get(b:undo_dict,0,''))
|
||||
"call add(histdict, b:undo_dict[0])
|
||||
" else
|
||||
" if !has_key(b:undo_tagdict, '0')
|
||||
"let b:undo_customtags['0'] = {'number': 0, 'change': 0, 'time': '00:00:00', 'tag': 'Start Editing'}
|
||||
let histdict[0] = {'number': 0, 'change': 0, 'time': '00:00:00', 'tag': 'Start Editing'}
|
||||
" endif
|
||||
|
||||
let i=1
|
||||
for item in templist
|
||||
let change = matchstr(item, '^\s\+\zs\d\+') + 0
|
||||
let nr = matchstr(item, '^\s\+\d\+\s\+\zs\d\+') + 0
|
||||
let time = matchstr(item, '^\%(\s\+\d\+\)\{2}\s\+\zs.*$')
|
||||
if time !~ '\d\d:\d\d:\d\d'
|
||||
let time=matchstr(time, '^\d\+')
|
||||
let time=strftime('%H:%M:%S', localtime()-time)
|
||||
endif
|
||||
if has_key(customtags, change)
|
||||
let tag=customtags[change].tag
|
||||
call remove(customtags,change)
|
||||
else
|
||||
let tag=''
|
||||
endif
|
||||
let histdict[change]={'change': change, 'number': nr, 'time': time, 'tag': tag}
|
||||
let i+=1
|
||||
endfor
|
||||
return extend(histdict,customtags,"force")
|
||||
endfun "}}}
|
||||
fun! s:SortValues(a,b)"{{{1
|
||||
return (a:a.change+0)==(a:b.change+0) ? 0 : (a:a.change+0) > (a:b.change+0) ? 1 : -1
|
||||
endfun"}}}
|
||||
fun! s:MaxTagsLen()"{{{1
|
||||
let tags = getbufvar(s:orig_buffer, 'undo_customtags')
|
||||
let d=[]
|
||||
" return a list of all tags
|
||||
let d=values(map(copy(tags), 'v:val["tag"]'))
|
||||
let d+= ["Start Editing"]
|
||||
"call map(d, 'strlen(substitute(v:val, ".", "x", "g"))')
|
||||
call map(d, 'strlen(v:val)')
|
||||
return max(d)
|
||||
endfu "}}}
|
||||
fun! s:HistWin()"{{{1
|
||||
let undo_buf=bufwinnr('^'.s:undo_winname.'$')
|
||||
" Adjust size so that each tag will fit on the screen
|
||||
" 16 is just the default length, that should fit within 30 chars
|
||||
"let maxlen=s:MaxTagsLen() % (s:undo_tree_wdth_max)
|
||||
let maxlen=s:MaxTagsLen()
|
||||
" if !s:undo_tree_dtl
|
||||
" let maxlen+=20 " detailed pane
|
||||
" else
|
||||
" let maxlen+=13 " short pane
|
||||
" endif
|
||||
let rd = (!s:undo_tree_dtl ? 20 : 13)
|
||||
|
||||
if maxlen > 16
|
||||
let s:undo_tree_wdth = (s:undo_tree_wdth + maxlen - rd) % s:undo_tree_wdth_max
|
||||
let s:undo_tree_wdth = (s:undo_tree_wdth < s:undo_tree_wdth_orig ? s:undo_tree_wdth_orig : s:undo_tree_wdth)
|
||||
endif
|
||||
" for the detail view, we need more space
|
||||
if (!s:undo_tree_dtl)
|
||||
let s:undo_tree_wdth = s:undo_tree_wdth_orig + 6
|
||||
else
|
||||
let s:undo_tree_wdth = s:undo_tree_wdth_orig
|
||||
endif
|
||||
"if (maxlen + (!s:undo_tree_dtl*7)) > 13 + (!s:undo_tree_dtl*7)
|
||||
" let s:undo_tree_wdth+=(s:undo_tree_wdth + maxlen) % s:undo_tree_wdth_max
|
||||
"endif
|
||||
if undo_buf != -1
|
||||
exe undo_buf . 'wincmd w'
|
||||
if winwidth(0) != s:undo_tree_wdth
|
||||
exe "vert res " . s:undo_tree_wdth
|
||||
endif
|
||||
else
|
||||
execute s:undo_tree_wdth . "vsp " . s:undo_winname
|
||||
setl noswapfile buftype=nowrite bufhidden=delete foldcolumn=0 nobuflisted winfixwidth
|
||||
let undo_buf=bufwinnr("")
|
||||
endif
|
||||
exe bufwinnr(s:orig_buffer) . ' wincmd w'
|
||||
return undo_buf
|
||||
endfun "}}}
|
||||
fun! s:PrintUndoTree(winnr)"{{{1
|
||||
let bufname = (empty(bufname(s:orig_buffer)) ? '[No Name]' : fnamemodify(bufname(s:orig_buffer),':t'))
|
||||
let changenr = changenr()
|
||||
let histdict = b:undo_tagdict
|
||||
exe a:winnr . 'wincmd w'
|
||||
let save_cursor=getpos('.')
|
||||
setl modifiable
|
||||
" silent because :%d outputs this message:
|
||||
" --No lines in buffer--
|
||||
silent %d _
|
||||
call setline(1,'Undo-Tree: '.bufname)
|
||||
put =repeat('=', strlen(getline(1)))
|
||||
put =''
|
||||
call s:PrintHelp(s:undo_help)
|
||||
if s:undo_tree_dtl
|
||||
call append('$', printf("%-*s %-9s %s", strlen(len(histdict)), "Nr", " Time", "Tag"))
|
||||
else
|
||||
call append('$', printf("%-*s %-9s %-6s %s", strlen(len(histdict)), "Nr", " Time", "Change", "Tag"))
|
||||
endif
|
||||
|
||||
let i=1
|
||||
"for line in histdict+values(tagdict)
|
||||
let list=sort(values(histdict), 's:SortValues')
|
||||
for line in list
|
||||
let tag=line.tag
|
||||
" this is only an educated guess.
|
||||
" This should be calculated
|
||||
let width=winwidth(0) - (!s:undo_tree_dtl ? 22 : 14)
|
||||
if strlen(tag) > width
|
||||
let tag=substitute(tag, '.\{'.width.'}', '&\r', 'g')
|
||||
endif
|
||||
let tag = (empty(tag) ? tag : '/'.tag.'/')
|
||||
if !s:undo_tree_dtl
|
||||
call append('$',
|
||||
\ printf("%0*d) %8s %6d %s",
|
||||
\ strlen(len(histdict)), i, line['time'], line['change'],
|
||||
\ tag))
|
||||
else
|
||||
call append('$',
|
||||
\ printf("%0*d) %8s %s",
|
||||
\ strlen(len(histdict)), i, line['time'],
|
||||
\ tag))
|
||||
endif
|
||||
let i+=1
|
||||
endfor
|
||||
%s/\r/\=submatch(0).repeat(' ', match(getline('.'), '\/')+1)/eg
|
||||
call s:MapKeys()
|
||||
call s:HilightLines(s:GetLineNr(changenr,list)+1)
|
||||
setl nomodifiable
|
||||
call setpos('.', save_cursor)
|
||||
endfun "}}}
|
||||
fun! s:HilightLines(changenr)"{{{1
|
||||
syn match UBTitle '^\%1lUndo-Tree: \zs.*$'
|
||||
syn match UBInfo '^".*$' contains=UBKEY
|
||||
syn match UBKey '^"\s\zs\%(\(<[^>]*>\)\|\u\)\ze\s'
|
||||
syn match UBList '^\d\+\ze'
|
||||
syn match UBTime '\d\d:\d\d:\d\d' "nextgroup=UBDelimStart
|
||||
syn region UBTag matchgroup=UBDelim start='/' end='/$' keepend
|
||||
if a:changenr
|
||||
exe 'syn match UBActive "^0*'.a:changenr.')[^/]*"'
|
||||
endif
|
||||
|
||||
hi def link UBTitle Title
|
||||
hi def link UBInfo Comment
|
||||
hi def link UBList Identifier
|
||||
hi def link UBTag Special
|
||||
hi def link UBTime Underlined
|
||||
hi def link UBDelim Ignore
|
||||
hi def link UBActive PmenuSel
|
||||
hi def link UBKey SpecialKey
|
||||
endfun "}}}
|
||||
fun! s:PrintHelp(...)"{{{1
|
||||
let mess=['" actv. keys in this window']
|
||||
call add(mess, '" I toggles help screen')
|
||||
if a:1
|
||||
call add(mess, "\" <Enter> goto undo branch")
|
||||
call add(mess, "\" <C-L>\t Update view")
|
||||
call add(mess, "\" T\t Tag sel. branch")
|
||||
call add(mess, "\" P\t Toggle view")
|
||||
call add(mess, "\" D\t Diff sel. branch")
|
||||
call add(mess, "\" R\t Replay sel. branch")
|
||||
call add(mess, "\" C\t Clear all tags")
|
||||
call add(mess, "\" Q\t Quit window")
|
||||
call add(mess, '"')
|
||||
call add(mess, "\" Undo-Tree, v" . printf("%.02f",g:loaded_undo_browse))
|
||||
endif
|
||||
call add(mess, '')
|
||||
call append('$', mess)
|
||||
endfun "}}}
|
||||
fun! s:DiffUndoBranch(change)"{{{1
|
||||
let prevchangenr=<sid>UndoBranch()
|
||||
if empty(prevchangenr)
|
||||
return ''
|
||||
endif
|
||||
let cur_ft = &ft
|
||||
let buffer=getline(1,'$')
|
||||
try
|
||||
exe ':u ' . prevchangenr
|
||||
catch /Vim(undo):Undo number \d\+ not found/
|
||||
call s:WarningMsg("Undo Change not found!")
|
||||
"echohl WarningMsg | unsilent echo "Undo Change not found." |echohl Normal
|
||||
return ''
|
||||
endtry
|
||||
exe ':botright vsp '.tempname()
|
||||
call setline(1, bufname(s:orig_buffer) . ' undo-branch: ' . a:change)
|
||||
call append('$',buffer)
|
||||
exe "setl ft=".cur_ft
|
||||
silent w!
|
||||
diffthis
|
||||
exe bufwinnr(s:orig_buffer) . 'wincmd w'
|
||||
diffthis
|
||||
endfun "}}}
|
||||
fun! s:ReturnTime()"{{{1
|
||||
let a=matchstr(getline('.'),'^\d\+)\s\+\zs\d\d:\d\d:\d\d\ze\s')
|
||||
if a == -1
|
||||
call search('^\d\+)', 'b')
|
||||
let a=matchstr(getline('.'),'^\d\+)\s\+\zs\d\d:\d\d:\d\d\ze\s')
|
||||
endif
|
||||
return a
|
||||
endfun"}}}
|
||||
fun! s:ReturnItem(time, histdict)"{{{1
|
||||
for [key, item] in items(a:histdict)
|
||||
if item['time'] == a:time
|
||||
return key
|
||||
endif
|
||||
endfor
|
||||
return ''
|
||||
endfun"}}}
|
||||
fun! s:GetLineNr(changenr,list)"{{{1
|
||||
let i=0
|
||||
for item in a:list
|
||||
if item['change'] >= a:changenr
|
||||
return i
|
||||
endif
|
||||
let i+=1
|
||||
endfor
|
||||
return -1
|
||||
endfun!"}}}
|
||||
fun! s:ReplayUndoBranch()"{{{1
|
||||
let time = s:ReturnTime()
|
||||
exe bufwinnr(s:orig_buffer) . ' wincmd w'
|
||||
let change_old = changenr()
|
||||
let key = s:ReturnItem(time, b:undo_tagdict)
|
||||
if empty(key) || !time
|
||||
echo "Nothing to do"
|
||||
return
|
||||
endif
|
||||
try
|
||||
exe ':u ' . b:undo_tagdict[key]['change']
|
||||
exe 'earlier 99999999'
|
||||
redraw
|
||||
while changenr() < b:undo_tagdict[key]['change']
|
||||
red
|
||||
redraw
|
||||
exe ':sleep ' . s:undo_tree_speed . 'm'
|
||||
endw
|
||||
"catch /Undo number \d\+ not found/
|
||||
catch /Vim(undo):Undo number 0 not found/
|
||||
exe ':u ' . change_old
|
||||
call s:WarningMsg("Replay not possible for initial state")
|
||||
"echohl WarningMsg | echo "Replay not possible for initial state" |echohl Normal
|
||||
catch /Vim(undo):Undo number \d\+ not found/
|
||||
exe ':u ' . change_old
|
||||
call s:WarningMsg("Replay not possible\nDid you reload the file?")
|
||||
"echohl WarningMsg | echo "Replay not possible\nDid you reload the file?" |echohl Normal
|
||||
endtry
|
||||
endfun "}}}
|
||||
fun! s:ReturnBranch()"{{{1
|
||||
let a=matchstr(getline('.'), '^\d\+\ze')+0
|
||||
if a == -1
|
||||
call search('^\d\+)', 'b')
|
||||
let a=matchstr(getline('.'), '^\d\+\ze')+0
|
||||
endif
|
||||
return a
|
||||
endfun "}}}
|
||||
fun! s:ToggleHelpScreen()"{{{1
|
||||
let s:undo_help=!s:undo_help
|
||||
exe bufwinnr(s:orig_buffer) . ' wincmd w'
|
||||
call s:PrintUndoTree(s:HistWin())
|
||||
endfun "}}}
|
||||
fun! s:ToggleDetail()"{{{1
|
||||
let s:undo_tree_dtl=!s:undo_tree_dtl
|
||||
call s:PrintUndoTree(s:HistWin())
|
||||
endfun "}}}
|
||||
fun! s:UndoBranchTag(change, time)"{{{1
|
||||
"" exe bufwinnr(s:orig_buffer) . 'wincmd w'
|
||||
" let changenr=changenr()
|
||||
" exe b:undo_win . 'wincmd w'
|
||||
|
||||
let tags = getbufvar(s:orig_buffer, 'undo_tagdict')
|
||||
let cdict = getbufvar(s:orig_buffer, 'undo_customtags')
|
||||
let key = s:ReturnItem(a:time, tags)
|
||||
if empty(key)
|
||||
return
|
||||
endif
|
||||
call inputsave()
|
||||
let tag=input("Tagname " . a:change . ": ", tags[key]['tag'])
|
||||
call inputrestore()
|
||||
|
||||
let cdict[key] = {'tag': tag, 'number': 0, 'time': strftime('%H:%M:%S'), 'change': key}
|
||||
"let tags[changenr] = {'tag': cdict[changenr][tag], 'change': changenr, 'number': tags[key]['number'], 'time': tags[key]['time']}
|
||||
let tags[key]['tag'] = tag
|
||||
call setbufvar(s:orig_buffer, 'undo_tagdict', tags)
|
||||
call setbufvar(s:orig_buffer, 'undo_customtags', cdict)
|
||||
call s:PrintUndoTree(s:HistWin())
|
||||
endfun "}}}
|
||||
fun! s:UndoBranch()"{{{1
|
||||
let dict = getbufvar(s:orig_buffer, 'undo_tagdict')
|
||||
let key=s:ReturnItem(s:ReturnTime(),dict)
|
||||
if empty(key)
|
||||
echo "Nothing to do"
|
||||
endif
|
||||
" Last line?
|
||||
if line('.') == line('$')
|
||||
let tmod = 0
|
||||
else
|
||||
let tmod = 1
|
||||
endif
|
||||
exe bufwinnr(s:orig_buffer) . 'wincmd w'
|
||||
" Save cursor pos
|
||||
let cpos = getpos('.')
|
||||
let cmd=''
|
||||
let cur_changenr=changenr()
|
||||
"let list=sort(values(b:undo_tagdict), 's:SortValues')
|
||||
"let len = len(b:undo_tagdict)
|
||||
" if len==1, then there is no
|
||||
" undo branch available, which means
|
||||
" we can't undo anyway
|
||||
try
|
||||
if key==0
|
||||
" Jump back to initial state
|
||||
"let cmd=':earlier 9999999'
|
||||
:u1
|
||||
if !&modifiable
|
||||
setl modifiable
|
||||
endif
|
||||
:norm 1u
|
||||
else
|
||||
exe ':u '.dict[key]['change']
|
||||
endif
|
||||
if s:undo_tree_nomod && tmod
|
||||
setl nomodifiable
|
||||
else
|
||||
setl modifiable
|
||||
endif
|
||||
catch /Vim(undo):Undo number \d\+ not found/
|
||||
exe ':u ' . cur_changenr
|
||||
call s:WarningMsg("Undo Change not found.")
|
||||
"echohl WarningMsg | echomsg "Undo Change not found." |echohl Normal
|
||||
return
|
||||
endtry
|
||||
" this might have changed, so we return to the old cursor
|
||||
" position. This could still be wrong, so
|
||||
" So this is our best effort approach.
|
||||
call setpos('.', cpos)
|
||||
return cur_changenr
|
||||
endfun "}}}
|
||||
fun! s:MapKeys()"{{{1
|
||||
nnoremap <script> <silent> <buffer> I :<C-U>silent :call <sid>ToggleHelpScreen()<CR>
|
||||
nnoremap <script> <silent> <buffer> <C-L> :<C-U>silent :call histwin#UndoBrowse()<CR>
|
||||
nnoremap <script> <silent> <buffer> <CR> :<C-U>silent :call <sid>UndoBranch()<CR>:call histwin#UndoBrowse()<CR>
|
||||
nnoremap <script> <silent> <buffer> D :<C-U>silent :call <sid>DiffUndoBranch(<sid>ReturnBranch())<CR>
|
||||
nnoremap <script> <silent> <buffer> R :<C-U>call <sid>ReplayUndoBranch()<CR>:silent! :call histwin#UndoBrowse()<CR>
|
||||
nnoremap <script> <silent> <buffer> Q :<C-U>q<CR>
|
||||
nmap <script> <silent> <buffer> P :<C-U>silent :call <sid>ToggleDetail()<CR><C-L>
|
||||
nmap <script> <silent> <buffer> T :call <sid>UndoBranchTag(<sid>ReturnBranch(),<sid>ReturnTime())<CR>:<C-U>silent :call histwin#UndoBrowse()<CR>
|
||||
nmap <script> <silent> <buffer> C :call <sid>ClearTags()<CR><C-L>
|
||||
endfun "}}}
|
||||
fun! s:ClearTags()"{{{1
|
||||
exe bufwinnr(s:orig_buffer) . 'wincmd w'
|
||||
let b:undo_customtags={}
|
||||
endfun"}}}
|
||||
fun! histwin#UndoBrowse()"{{{1
|
||||
if &ul != -1
|
||||
call s:Init()
|
||||
let b:undo_win = s:HistWin()
|
||||
let b:undo_tagdict=s:ReturnHistList(bufwinnr(s:orig_buffer))
|
||||
call s:PrintUndoTree(b:undo_win)
|
||||
else
|
||||
echoerr "Histwin: Undo has been disabled. Check your undolevel setting!"
|
||||
endif
|
||||
endfun "}}}
|
||||
" Restore: {{{1
|
||||
let &cpo=s:cpo
|
||||
unlet s:cpo
|
||||
" vim: ts=4 sts=4 fdm=marker com+=l\:\"
|
||||
doc/histwin.txt [[[1
|
||||
277
|
||||
*histwin.txt* Plugin to browse the undo-tree
|
||||
|
||||
Version: 0.12 Tue, 04 May 2010 22:42:22 +0200
|
||||
Author: Christian Brabandt <cb@256bit.org>
|
||||
Copyright: (c) 2009, 2010 by Christian Brabandt *histwin-copyright*
|
||||
The VIM LICENSE applies to histwin.vim and histwin.txt
|
||||
(see |copyright|) except use histwin instead of "Vim".
|
||||
NO WARRANTY, EXPRESS OR IMPLIED. USE AT-YOUR-OWN-RISK.
|
||||
|
||||
==============================================================================
|
||||
1. Contents *histwin-contents*
|
||||
|
||||
1. Contents.................................................|histwin-contents|
|
||||
2. Functionality............................................|histwin-plugin|
|
||||
Opening the Undo-Tree Window.............................|histwin-browse|
|
||||
3. Keybindings..............................................|histwin-keys|
|
||||
4. Configuration............................................|histwin-config|
|
||||
Configuraion Variables...................................|histwin-var|
|
||||
Color Configuration......................................|histwin-color|
|
||||
5. Feedback.................................................|histwin-feedback|
|
||||
6. History..................................................|histwin-history|
|
||||
|
||||
==============================================================================
|
||||
*histwin-plugin*
|
||||
2. Functionality
|
||||
|
||||
This plugin was written to allow an easy way of browsing the |undo-tree|, that
|
||||
is available with Vim. This allows to go back to any change that has been made
|
||||
previously, because these states are remembered by Vim within a branch in the
|
||||
undo-history. You can use |g-| or |g+| to move in Vim within the different
|
||||
undo-branches.
|
||||
|
||||
Unfortunately, going back to any state isn't very comfortable and you always
|
||||
need to remember at what time you did that change. Therefore the histwin-Plugin
|
||||
allows to easily view the available states and branch back to any of these
|
||||
states. It opens a new window, which contains all available states and using
|
||||
this plugin allows you to tag a previous change or go back to a particular
|
||||
state.
|
||||
|
||||
*histwin-browse* *:UB*
|
||||
2.1 Opening the Undo-Tree Window
|
||||
|
||||
By default you can open the Undo-Tree Window by issuing :UB (Mnemonic:
|
||||
UndoBrowse). If you do this the first time, you will see a window that looks
|
||||
like this:
|
||||
|
||||
+------------------------------------------------------+
|
||||
|Undo-Tree: FILENAME |#!/bin/bash |
|
||||
|====================== | |
|
||||
| | |
|
||||
|" actv. keys in this window |if [ $# -ne 2 ]; the |
|
||||
|" I toggles help screen | echo "Name: $0: arg|
|
||||
|" <Enter> goto undo branch | echo |
|
||||
|" <C-L> Update view | exit 1 |
|
||||
|" T Tag sel. branch |fi |
|
||||
|" P Toggle view | |
|
||||
|" D Diff sel. branch |if true; then |
|
||||
|" R Replay sel. branch | dir="${1%/*}" |
|
||||
|" C Clear all tags | file="${1##*/}" |
|
||||
|" Q Quit window | target="${2}/${di |
|
||||
|" | if [ ! -e "${targ |
|
||||
|" Undo-Tree, v0.9 | mkdir -p "$ta |
|
||||
| | mv "$1" "$tar |
|
||||
|Nr Time Tag | |
|
||||
|1) 00:00:00 /Start Editing/ | |
|
||||
|2) 22:50:43 /First draft/ | |
|
||||
|3) 23:01:22 | |
|
||||
|4) 23:02:57 | |
|
||||
|5) 23:05:04 | |
|
||||
+------------------------------------------------------+
|
||||
|
||||
This shows an extract of a sample file on the right side. The window on the
|
||||
left side, contains an overview of all available states that are known for
|
||||
this buffer or that have been tagged to remember that change.
|
||||
|
||||
The first line contains 'Undo-Tree: filename' so that the user knows, for
|
||||
which file this window shows the available undo-branches. This is the heading.
|
||||
|
||||
Following the heading is a small information banner, that contains the most
|
||||
important key combinations, that are available in this window.
|
||||
|
||||
After that list, all available undo-changes are displayed. This is a list,
|
||||
that contains the number, the time this change was made, the change-number to
|
||||
use with the |:undo| command (this is by default not shown), and the tags,
|
||||
that have been entered. A bar shows the selected undo-branch that is active on
|
||||
the right side.
|
||||
|
||||
Please note, that the Time for start-editing will always be shown as 00:00:00,
|
||||
because currently there is no way to retrieve this time from within vim.
|
||||
|
||||
==============================================================================
|
||||
*histwin-keys*
|
||||
3. Keybindings
|
||||
|
||||
By default, the following keys are active in Normal mode in the Undo-Tree
|
||||
window:
|
||||
|
||||
'Enter' Go to the branch, on which is selected with the cursor. By default,
|
||||
if switching to an older branch, the buffer will be set to
|
||||
'nomodifiable'. If you don't want that, you need to set the
|
||||
g:undo_tree_nomod variable to off (see |histwin-var|).
|
||||
'<C-L>' Update the window
|
||||
'T' Tag the branch, that is selected. You'll be prompted for a tag.
|
||||
'P' Toggle view (the change-number will be displayed). You can use this
|
||||
number to go directly to that change (see |:undo|)
|
||||
'D' Start diff mode with the branch that is selected by the cursor.
|
||||
(see |08.7|)
|
||||
'R' Replay all changes, that have been made from the beginning.
|
||||
(see |histwin-config| for adjusting the speed)
|
||||
'C' Clear all tags.
|
||||
'Q' Quit window
|
||||
|
||||
==============================================================================
|
||||
*histwin-var* *histwin-config*
|
||||
4.1 Configuration variables
|
||||
|
||||
You can adjust several parameters for the Undo-Tree window, by setting some
|
||||
variables in your .vimrc file.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.1 Disable printing the help
|
||||
|
||||
To always show only a small information banner, set this in your .vimrc
|
||||
(by default this variable is 1) >
|
||||
|
||||
:let g:undo_tree_help = 0
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.2 Include the Changenr in the window
|
||||
|
||||
To have the Change number always included, set the g:undo_tree_dtl=0:
|
||||
(by default, this variable is 1) >
|
||||
|
||||
:let g:undo_tree_dtl = 0
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.3 Customize the replay speed
|
||||
|
||||
The speed with which to show each change, when replaying a undo-branch can be
|
||||
adjusted by setting to a value in milliseconds. If not specified, this is
|
||||
100ms. >
|
||||
|
||||
:let g:undo_tree_speed=200
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.4 Adjust the window size.
|
||||
|
||||
You can adjust the windows size by setting g:undo_tree_wdth to the number of
|
||||
columns you like. By default this is considered 30. When the change number is
|
||||
included in the list (see above), this value will increase by 10. >
|
||||
|
||||
:let g:undo_tree_wdth=40
|
||||
|
||||
This will change the width of the window to 40 or 50, if the change number
|
||||
is included.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
4.1.5 Read-only and writable buffer states
|
||||
|
||||
By default, old buffer states are set read only and you cannot modify these.
|
||||
This was done, since the author of the plugin started browsing the undo
|
||||
branches and started changing older versions over and over again. This is
|
||||
really confusing, since you start creating even more branches and you might
|
||||
end up fixing old bugs over and over.
|
||||
|
||||
This is what happened to the author of this plugin, so now there is a
|
||||
configuration available that will set old buffers to be only read-only.
|
||||
Currently, this works, by detecting, if the cursor was on the last branch in
|
||||
the histwin window, and if the cursor was not on the last branch, the buffer
|
||||
will be set 'nomodifiable'. You can always set the buffer to be modifiable by
|
||||
issuing: >
|
||||
:setl modifiable
|
||||
|
||||
The default is to set the buffer read only. To disable this, you can set the
|
||||
g:undo_tree_nomod variable in your |.vimrc| like this: >
|
||||
|
||||
:let g:undo_tree_nomod = 0
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
*histwin-color*
|
||||
4.2 Color configuration
|
||||
|
||||
If you want to customize the colors, you can simply change the following
|
||||
groups, that are defined by the Undo-Tree Browser:
|
||||
|
||||
UBTitle this defines the color of the title file-name. By default this links
|
||||
to Title (see |hl-Title|)
|
||||
UBInfo this defines how the information banner looks like. By default this
|
||||
links to Comment.
|
||||
UBList this group defines the List items at the start e.g. 1), 2), This
|
||||
links to Identifier.
|
||||
UBTime this defines, how the time is displayed. This links to Underlined.
|
||||
UBTag This defines, how the tag should be highlighted. By default this
|
||||
links to Special
|
||||
UBDelim This group defines the look of the delimiter for the tag. By default
|
||||
this links to Ignore
|
||||
UBActive This group defines how the active selection is displayed. By default
|
||||
this links to PmenuSel (see |hl-PmenuSel|)
|
||||
UBKey This group defines, how keys are displayed within the information
|
||||
banner. By default, this links to SpecialKey (see |hl-SpecialKey|)
|
||||
|
||||
Say you want to change the color for the Tag values and you think, it should
|
||||
look like |IncSerch|, so you can do this in your .vimrc file:
|
||||
|
||||
:hi link UBTag IncSearch
|
||||
|
||||
==============================================================================
|
||||
*histwin-feedback*
|
||||
5. Feedback
|
||||
|
||||
Feedback is always welcome. If you like the plugin, please rate it at the
|
||||
vim-page:
|
||||
http://www.vim.org/scripts/script.php?script_id=2932
|
||||
|
||||
You can also follow the development of the plugin at github:
|
||||
http://github.com/chrisbra/histwin.vim
|
||||
|
||||
Please don't hesitate to report any bugs to the maintainer, mentioned in the
|
||||
third line of this document.
|
||||
|
||||
==============================================================================
|
||||
*histwin-history*
|
||||
6. histwin History
|
||||
|
||||
0.12 - Small extension to the help file
|
||||
- generate help file with 'et' set, so the README at github looks
|
||||
better
|
||||
- Highlight the key binding using |hl-SpecialKey|
|
||||
- The help tag for the color configuration was wrong.
|
||||
0.11 - Set old buffers read only (disable the setting via the
|
||||
g:undo_tree_nomod variable
|
||||
- Make sure, Warning Messages are really displayed using :unsilent
|
||||
0.10 - Fixed annoying Resizing bug
|
||||
- linebreak tags, if they are too long
|
||||
- dynamically grow the histwin window, for longer tags (up
|
||||
to a maximum)
|
||||
- Bugfix: Always indicate the correct branch
|
||||
- Added a few try/catch statements and some error handling
|
||||
0.9 - Error handling for Replaying (it may not work always)
|
||||
- Documentation
|
||||
- Use syntax highlighting
|
||||
- Tagging finally works
|
||||
0.8 - code cleanup
|
||||
- make speed of the replay adjustable. Use g:undo_tree_speed to set
|
||||
time in milliseconds
|
||||
0.7.2 - make sure, when switching to a different undo-branch, the undo-tree will be reloaded
|
||||
- check 'undolevel' settings
|
||||
0.7.1 - fixed a problem with mapping the keys which broke the Undo-Tree keys
|
||||
(I guess I don't fully understand, when to use s: and <sid>)
|
||||
0.7 - created autoloadPlugin (patch by Charles Campbell) Thanks!
|
||||
- enabled GLVS (patch by Charles Campbell) Thanks!
|
||||
- cleaned up old comments
|
||||
- deleted :noautocmd which could cause trouble with other plugins
|
||||
- small changes in coding style (<sid> to s:, fun instead of fu)
|
||||
- made Plugin available as histwin.vba
|
||||
- Check for availability of :UB before defining it
|
||||
(could already by defined Blockquote.vim does for example)
|
||||
0.6 - fix missing bufname() when creating the undo_tree window
|
||||
- make undo_tree window a little bit smaller
|
||||
(size is adjustable via g:undo_tree_wdth variable)
|
||||
0.5 - add missing endif (which made version 0.4 unusuable)
|
||||
0.4 - Allow diffing with selected branch
|
||||
- highlight current version
|
||||
- Fix annoying bug, that displays
|
||||
--No lines in buffer--
|
||||
0.3 - Use changenr() to determine undobranch
|
||||
- <C-L> updates view
|
||||
- allow switching to initial load state, before
|
||||
buffer was edited
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:ft=help:et
|
||||
@@ -1,40 +0,0 @@
|
||||
" histwin.vim - Vim global plugin for browsing the undo tree
|
||||
" -------------------------------------------------------------
|
||||
" Last Change: Tue, 04 May 2010 22:42:22 +0200
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Version: 0.12
|
||||
" Copyright: (c) 2009 by Christian Brabandt
|
||||
" The VIM LICENSE applies to histwin.vim
|
||||
" (see |copyright|) except use "histwin.vim"
|
||||
" instead of "Vim".
|
||||
" No warranty, express or implied.
|
||||
" *** *** Use At-Your-Own-Risk! *** ***
|
||||
"
|
||||
" GetLatestVimScripts: 2932 6 :AutoInstall: histwin.vim
|
||||
" TODO: - write documentation
|
||||
" - don't use matchadd for syntax highlighting but use
|
||||
" appropriate syntax highlighting rules
|
||||
|
||||
" Init:
|
||||
if exists("g:loaded_undo_browse") || &cp || &ul == -1
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_undo_browse = 0.11
|
||||
let s:cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" User_Command:
|
||||
if exists(":UB") != 2
|
||||
com -nargs=0 UB :call histwin#UndoBrowse()
|
||||
else
|
||||
echoerr "histwin: UB is already defined. May be by another Plugin?"
|
||||
endif
|
||||
|
||||
" ChangeLog:
|
||||
" see :h histwin-history
|
||||
|
||||
" Restore:
|
||||
let &cpo=s:cpo
|
||||
unlet s:cpo
|
||||
" vim: ts=4 sts=4 fdm=marker com+=l\:\" fdm=syntax
|
||||
@@ -1,64 +0,0 @@
|
||||
*pastie.txt* Interface for pastie.org
|
||||
|
||||
Author: Tim Pope <vimNOSPAM@tpope.org> *pastie-author*
|
||||
License: Same terms as Vim itself (see |license|)
|
||||
|
||||
This plugin is only available if 'compatible' is not set.
|
||||
|
||||
A working Ruby install is required (a Vim compiled with |if_ruby| support is
|
||||
not necessary).
|
||||
|
||||
*pastie-:Pastie*
|
||||
:Pastie creates a new paste (example arguments shown below). Use :w to save
|
||||
it by posting it to the server (the parser used is derived from the Vim
|
||||
filetype). This updates the filename and stores the new url in the primary
|
||||
selection/clipboard when successful. :Pastie! creates a paste, saves, and
|
||||
closes the buffer, except when loading an existing paste.
|
||||
|
||||
:Pastie Create a paste from all open windows
|
||||
:Pastie! Create a paste from all open windows and paste it
|
||||
:1,10Pastie Create a paste from the specified range
|
||||
:%Pastie Use the entire current file to create a new paste
|
||||
:Pastie foo.txt bar.txt Create a paste from foo.txt and bar.txt
|
||||
:Pastie! foo.txt Paste directly from foo.txt
|
||||
:Pastie a Create a paste from the "a register
|
||||
:Pastie @ Create a paste from the default (unnamed) register
|
||||
:Pastie * Create a paste from the primary selection/clipboard
|
||||
:Pastie _ Create a new, blank paste
|
||||
:768Pastie Load existing paste 768
|
||||
:0Pastie Load the newest paste
|
||||
:Pastie http://pastie.org/768 Load existing paste 768
|
||||
:Pastie http://pastie.org/123456?key=... Use login from pastie bot
|
||||
|
||||
Regardless of the command used, on the first write, this script will create a
|
||||
new paste, and on subsequent writes, it will update the existing paste. If a
|
||||
bang is passed to a command that load an existing paste (:768), the first
|
||||
write will update as well. If the loaded paste was not created in the same
|
||||
vim session, or with an account extracted from your Firefox cookies, updates
|
||||
will almost certainly silently fail. (Advanced users can muck around with
|
||||
g:pastie_session_id if desired).
|
||||
|
||||
As hinted at earlier, pastie.vim will snoop around in your Firefox cookies,
|
||||
and use an account cookie if one is found. The only way to create one of
|
||||
these account cookies is by talking to pastie on IRC.
|
||||
|
||||
At the shell you can directly create a new pastie with a command like >
|
||||
$ vim +Pastie
|
||||
or, assuming no other plugins conflict >
|
||||
$ vim +Pa
|
||||
And, to read an existing paste >
|
||||
$ vim +768Pa
|
||||
You could even paste a file directly >
|
||||
$ vim '+Pa!~/.irbrc' +q
|
||||
You can even edit a pastie URL directly, but this is not recommended because
|
||||
netrw can sometimes interfere.
|
||||
|
||||
Lines ending in #!! will be sent as lines beginning with !!. This alternate
|
||||
format is easier to read and is less likely to interfere with code execution.
|
||||
In Vim 7 highlighting is done with :2match (use ":2match none" to disable it)
|
||||
and in previous versions, :match (use ":match none" to disable).
|
||||
|
||||
The URL sometimes disappears with the bang (:Pastie!) variant. You can still
|
||||
retrieve it from the clipboard.
|
||||
|
||||
vim:tw=78:et:ft=help:norl:
|
||||
@@ -1,486 +0,0 @@
|
||||
" pastie.vim - Interface for pastie.org
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" URL: http://www.vim.org/scripts/script.php?script_id=1624
|
||||
" GetLatestVimScripts: 1624 1 :AutoInstall: pastie.vim
|
||||
|
||||
if exists("g:loaded_pastie") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_pastie = 1
|
||||
|
||||
augroup pastie
|
||||
autocmd!
|
||||
autocmd BufReadPre http://pastie.org/*[0-9]?key=* call s:extractcookies(expand("<amatch>"))
|
||||
autocmd BufReadPost http://pastie.org/*[0-9]?key=* call s:PastieSwapout(expand("<amatch>"))
|
||||
autocmd BufReadPost http://pastie.org/*[0-9] call s:PastieSwapout(expand("<amatch>"))
|
||||
autocmd BufReadPost http://pastie.org/pastes/*[0-9]/download call s:PastieRead(expand("<amatch>"))
|
||||
autocmd BufReadPost http://pastie.org/*[0-9].* call s:PastieRead(expand("<amatch>"))
|
||||
autocmd BufWriteCmd http://pastie.org/pastes/*[0-9]/download call s:PastieWrite(expand("<amatch>"))
|
||||
autocmd BufWriteCmd http://pastie.org/*[0-9].* call s:PastieWrite(expand("<amatch>"))
|
||||
autocmd BufWriteCmd http://pastie.org/pastes/ call s:PastieWrite(expand("<amatch>"))
|
||||
|
||||
autocmd BufReadPre http://pastie.caboo.se/*[0-9]?key=* call s:extractcookies(expand("<amatch>"))
|
||||
autocmd BufReadPost http://pastie.caboo.se/*[0-9]?key=* call s:PastieSwapout(expand("<amatch>"))
|
||||
autocmd BufReadPost http://pastie.caboo.se/*[0-9] call s:PastieSwapout(expand("<amatch>"))
|
||||
autocmd BufReadPost http://pastie.caboo.se/pastes/*[0-9]/download call s:PastieRead(expand("<amatch>"))
|
||||
autocmd BufReadPost http://pastie.caboo.se/*[0-9].* call s:PastieRead(expand("<amatch>"))
|
||||
autocmd BufWriteCmd http://pastie.caboo.se/pastes/*[0-9]/download call s:PastieWrite(expand("<amatch>"))
|
||||
autocmd BufWriteCmd http://pastie.caboo.se/*[0-9].* call s:PastieWrite(expand("<amatch>"))
|
||||
autocmd BufWriteCmd http://pastie.caboo.se/pastes/ call s:PastieWrite(expand("<amatch>"))
|
||||
augroup END
|
||||
|
||||
let s:domain = "pastie.org"
|
||||
|
||||
let s:dl_suffix = ".txt" " Used only for :file
|
||||
|
||||
if !exists("g:pastie_destination")
|
||||
if version >= 700
|
||||
let g:pastie_destination = 'tab'
|
||||
else
|
||||
let g:pastie_destination = 'window'
|
||||
endif
|
||||
"let g:pastie_destination = 'buffer'
|
||||
endif
|
||||
|
||||
command! -bar -bang -nargs=* -range=0 -complete=file Pastie :call s:Pastie(<bang>0,<line1>,<line2>,<count>,<f-args>)
|
||||
|
||||
function! s:Pastie(bang,line1,line2,count,...)
|
||||
if exists(":tab")
|
||||
let tabnr = tabpagenr()
|
||||
endif
|
||||
let newfile = "http://".s:domain."/pastes/"
|
||||
let loggedin = 0
|
||||
let ft = &ft
|
||||
let num = 0
|
||||
if a:0 == 0 && a:count == a:line1 && a:count > line('$')
|
||||
let num = a:count
|
||||
elseif a:0 == 0 && a:line1 == 0 && a:line2 == 0
|
||||
let num = s:latestid()
|
||||
if num == 0
|
||||
return s:error("Could not determine latest paste")
|
||||
endif
|
||||
elseif !a:count && a:0 == 1
|
||||
if a:1 == '*'
|
||||
let numcheck = @*
|
||||
elseif a:1 == '+'
|
||||
let numcheck = @+
|
||||
elseif a:1 == '@'
|
||||
let numcheck = @@
|
||||
else
|
||||
let numcheck = a:1
|
||||
endif
|
||||
let numcheck = substitute(numcheck,'\n\+$','','')
|
||||
let numcheck = substitute(numcheck,'^\n\+','','g')
|
||||
if numcheck =~ '\n'
|
||||
let numcheck = ''
|
||||
endif
|
||||
if numcheck =~ '^\d\d+$'
|
||||
let num = numcheck
|
||||
elseif numcheck =~ '\%(^\|/\)\d\+?key=\x\{8,\}'
|
||||
if exists("b:pastie_fake_login")
|
||||
unlet b:pastie_fake_login
|
||||
else
|
||||
call s:extractcookies('/'.matchstr(numcheck,'\%(^\|/\)\zs\d\+?.*'))
|
||||
endif
|
||||
if exists("g:pastie_account")
|
||||
let loggedin = 1
|
||||
endif
|
||||
let num = matchstr(numcheck,'\%(^\|/\)\zs\d\+\ze?')
|
||||
elseif numcheck =~ '\%(^\|^/\|^http://.*\)\d\+\%([/?]\|$\)'
|
||||
let num = matchstr(numcheck,'\%(^\|/\)\zs\d\+')
|
||||
endif
|
||||
endif
|
||||
if num
|
||||
call s:newwindow()
|
||||
let file = "http://".s:domain."/".num.s:dl_suffix
|
||||
silent exe 'doautocmd BufReadPre '.file
|
||||
silent exe 'read !ruby -rnet/http -e "r = Net::HTTP.get_response(\%{'.s:domain.'}, \%{/pastes/'.num.'/download}); if r.code == \%{200} then print r.body else exit 10+r.code.to_i/100 end"'
|
||||
if v:shell_error && v:shell_error != 14 && v:shell_error !=15
|
||||
return s:error("Something went wrong: shell returned ".v:shell_error)
|
||||
else
|
||||
let err = v:shell_error
|
||||
silent exe "file ".file
|
||||
1d_
|
||||
set nomodified
|
||||
call s:dobufreadpost()
|
||||
if err
|
||||
if loggedin
|
||||
let b:pastie_update = 1
|
||||
else
|
||||
echohl WarningMsg
|
||||
echo "Warning: Failed to retrieve existing paste"
|
||||
echohl None
|
||||
endif
|
||||
endif
|
||||
"call s:PastieRead(file)
|
||||
if a:bang
|
||||
" Instead of saving an identical paste, take ! to mean "do not
|
||||
" create a new paste on first save"
|
||||
let b:pastie_update = 1
|
||||
endif
|
||||
return
|
||||
endif
|
||||
elseif a:0 == 0 && !a:count && a:bang && expand("%") =~ '^http://'.s:domain.'/\d\+'
|
||||
" If the :Pastie! form is used in an existing paste, switch to
|
||||
" updating instead of creating.
|
||||
"echohl Question
|
||||
echo "Will update, not create"
|
||||
echohl None
|
||||
let b:pastie_update = 1
|
||||
return
|
||||
elseif a:0 == 1 && !a:count && a:1 =~ '^[&?]\x\{32,\}'
|
||||
" Set session id with :Pastie&deadbeefcafebabe
|
||||
let g:pastie_session_id = strpart(a:1,1)
|
||||
elseif a:0 == 1 && !a:count && (a:1 == '&' || a:1 == '?')
|
||||
" Extract session id with :Pastie&
|
||||
call s:cookies()
|
||||
if exists("g:pastie_session_id")
|
||||
echo g:pastie_session_id
|
||||
"silent! let @* = g:pastie_session_id
|
||||
endif
|
||||
elseif a:0 == 0 && !a:count && a:line1
|
||||
let ft = 'conf'
|
||||
let sum = ""
|
||||
let cnt = 0
|
||||
let keep = @"
|
||||
windo let tmp = s:grabwin() | if tmp != "" | let cnt = cnt + 1 | let sum = sum . tmp | end
|
||||
let sum = substitute(sum,'\n\+$',"\n",'')
|
||||
if cnt == 1
|
||||
let ft = matchstr(sum,'^##.\{-\} \[\zs\w*\ze\]')
|
||||
if ft != ""
|
||||
let sum = substitute(sum,'^##.\{-\} \[\w*\]\n','','')
|
||||
endif
|
||||
endif
|
||||
call s:newwindow()
|
||||
silent exe "file ".newfile
|
||||
"silent exe "doautocmd BufReadPre ".newfile
|
||||
if sum != ""
|
||||
let @" = sum
|
||||
silent $put
|
||||
1d _
|
||||
endif
|
||||
if ft == 'plaintext' || ft == 'plain_text'
|
||||
"set ft=conf
|
||||
elseif ft != '' && sum != ""
|
||||
let &ft = ft
|
||||
endif
|
||||
let @" = keep
|
||||
call s:dobufreadpost()
|
||||
else
|
||||
let keep = @"
|
||||
let args = ""
|
||||
if a:0 > 0 && a:1 =~ '^[-"@0-9a-zA-Z:.%#*+~_/]$'
|
||||
let i = 1
|
||||
let register = a:1
|
||||
else
|
||||
let i = 0
|
||||
let register = ""
|
||||
endif
|
||||
while i < a:0
|
||||
let i = i+1
|
||||
if strlen(a:{i})
|
||||
let file = fnamemodify(expand(a:{i}),':~:.')
|
||||
let args = args . file . "\n"
|
||||
endif
|
||||
endwhile
|
||||
let range = ""
|
||||
if a:count
|
||||
silent exe a:line1.",".a:line2."yank"
|
||||
let range = @"
|
||||
let @" = keep
|
||||
endif
|
||||
call s:newwindow()
|
||||
silent exe "file ".newfile
|
||||
"silent exe "doautocmd BufReadPre ".newfile
|
||||
if range != ""
|
||||
let &ft = ft
|
||||
let @" = range
|
||||
silent $put
|
||||
endif
|
||||
if register != '' && register != '_'
|
||||
"exe "let regvalue = @".register
|
||||
silent exe "$put ".(register =~ '^[@"]$' ? '' : register)
|
||||
endif
|
||||
while args != ''
|
||||
let file = matchstr(args,'^.\{-\}\ze\n')
|
||||
let args = substitute(args,'^.\{-\}\n','','')
|
||||
let @" = "## ".file." [".s:parser(file)."]\n"
|
||||
if a:0 != 1 || a:count
|
||||
silent $put
|
||||
else
|
||||
let &ft = s:filetype(file)
|
||||
endif
|
||||
silent exe "$read ".substitute(file,' ','\ ','g')
|
||||
endwhile
|
||||
let @" = keep
|
||||
1d_
|
||||
call s:dobufreadpost()
|
||||
if (a:0 + (a:count > 0)) > 1
|
||||
set ft=conf
|
||||
endif
|
||||
endif
|
||||
1
|
||||
call s:afterload()
|
||||
if a:bang
|
||||
write
|
||||
let name = bufname('%')
|
||||
" TODO: re-echo the URL in a way that doesn't disappear. Stupid Vim.
|
||||
silent! bdel
|
||||
if exists("tabnr")
|
||||
silent exe "norm! ".tabnr."gt"
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:dobufreadpost()
|
||||
if expand("%") =~ '/\d\+\.\@!'
|
||||
silent exe "doautocmd BufReadPost ".expand("%")
|
||||
else
|
||||
silent exe "doautocmd BufNewFile ".expand("%")
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:PastieSwapout(file)
|
||||
if a:file =~ '?key='
|
||||
let b:pastie_fake_login = 1
|
||||
endif
|
||||
exe "Pastie ".a:file
|
||||
endfunction
|
||||
|
||||
function! s:PastieRead(file)
|
||||
let lnum = line(".")
|
||||
silent %s/^!!\(.*\)/\1 #!!/e
|
||||
exe lnum
|
||||
set nomodified
|
||||
let num = matchstr(a:file,'/\@<!/\zs\d\+')
|
||||
let url = "http://".s:domain."/pastes/".num
|
||||
"let url = substitute(a:file,'\c/\%(download/\=\|text/\=\)\=$','','')
|
||||
let url = url."/download"
|
||||
let result = system('ruby -rnet/http -e "puts Net::HTTP.get_response(URI.parse(%{'.url.'}))[%{Content-Disposition}]"')
|
||||
let fn = matchstr(result,'filename="\zs.*\ze"')
|
||||
let &ft = s:filetype(fn)
|
||||
if &ft =~ '^\%(html\|ruby\)$' && getline(1).getline(2).getline(3) =~ '<%'
|
||||
set ft=eruby
|
||||
endif
|
||||
call s:afterload()
|
||||
endfunction
|
||||
|
||||
function! s:afterload()
|
||||
set commentstring=%s\ #!! "
|
||||
hi def link pastieIgnore Ignore
|
||||
hi def link pastieNonText NonText
|
||||
if exists(":match")
|
||||
hi def link pastieHighlight MatchParen
|
||||
if version >= 700
|
||||
2match pastieHighlight /^!!\s*.*\|^.\{-\}\ze\s*#!!\s*$/
|
||||
else
|
||||
match pastieHighlight /^!!\s*.*\|^.\{-\}\ze\s*#!!\s*$/
|
||||
endif
|
||||
else
|
||||
hi def link pastieHighlight Search
|
||||
syn match pastieHighlight '^.\{-\}\ze\s*#!!\s*$' nextgroup=pastieIgnore skipwhite
|
||||
syn region pastieHighlight start='^!!\s*' end='$' contains=pastieNonText
|
||||
endif
|
||||
syn match pastieIgnore '#!!\ze\s*$' containedin=rubyComment,rubyString
|
||||
syn match pastieNonText '^!!' containedin=rubyString
|
||||
endfunction
|
||||
|
||||
function! s:PastieWrite(file)
|
||||
let parser = s:parser(&ft)
|
||||
let tmp = tempname()
|
||||
let num = matchstr(a:file,'/\@<!/\zs\d\+')
|
||||
if num == ''
|
||||
let num = 'pastes'
|
||||
endif
|
||||
if exists("b:pastie_update") && s:cookies() != '' && num != ""
|
||||
let url = "/pastes/".num
|
||||
let method = "_method=put&"
|
||||
else
|
||||
let url = "/pastes"
|
||||
let method = ""
|
||||
endif
|
||||
if exists("b:pastie_display_name")
|
||||
let pdn = "&paste[display_name]=".s:urlencode(b:pastie_display_name)
|
||||
elseif exists("g:pastie_display_name")
|
||||
let pdn = "&paste[display_name]=".s:urlencode(g:pastie_display_name)
|
||||
else
|
||||
let pdn = ""
|
||||
endif
|
||||
silent exe "write ".tmp
|
||||
let result = ""
|
||||
let rubycmd = 'obj = Net::HTTP.start(%{'.s:domain.'}){|h|h.post(%{'.url.'}, %q{'.method.'paste[parser]='.parser.pdn.'&paste[authorization]=burger&paste[key]=&paste[body]=} + File.read(%q{'.tmp.'}).gsub(/^(.*?) *#\!\! *#{36.chr}/,%{!\!}+92.chr+%{1}).gsub(/[^a-zA-Z0-9_.-]/n) {|s| %{%%%02x} % s[0]},{%{Cookie} => %{'.s:cookies().'}})}; print obj[%{Location}].to_s+%{ }+obj[%{Set-Cookie}].to_s'
|
||||
let result = system('ruby -rnet/http -e "'.rubycmd.'"')
|
||||
let redirect = matchstr(result,'^[^ ]*')
|
||||
let cookies = matchstr(result,'^[^ ]* \zs.*')
|
||||
call s:extractcookiesfromheader(cookies)
|
||||
call delete(tmp)
|
||||
if redirect =~ '^\w\+://'
|
||||
set nomodified
|
||||
let b:pastie_update = 1
|
||||
"silent! let @+ = result
|
||||
silent! let @* = redirect
|
||||
silent exe "file ".redirect.s:dl_suffix
|
||||
" TODO: make a proper status message
|
||||
echo '"'.redirect.'" written'
|
||||
silent exe "doautocmd BufWritePost ".redirect.s:dl_suffix
|
||||
else
|
||||
if redirect == ''
|
||||
let redirect = "Could not post to ".url
|
||||
endif
|
||||
let redirect = substitute(redirect,'^-e:1:\s*','','')
|
||||
call s:error(redirect)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:error(msg)
|
||||
echohl Error
|
||||
echo a:msg
|
||||
echohl NONE
|
||||
let v:errmsg = a:msg
|
||||
endfunction
|
||||
|
||||
function! s:filetype(type)
|
||||
" Accepts a filename, extension, pastie parser, or vim filetype
|
||||
let type = tolower(substitute(a:type,'.*\.','',''))
|
||||
if type =~ '^\%(x\=html\|asp\w*\)$'
|
||||
return 'html'
|
||||
elseif type =~ '^\%(eruby\|erb\|rhtml\)$'
|
||||
return 'eruby'
|
||||
elseif type =~ '^\%(ruby\|ruby_on_rails\|rb\|rake\|builder\|rjs\|irbrc\)'
|
||||
return 'ruby'
|
||||
elseif type == 'js' || type == 'javascript'
|
||||
return 'javascript'
|
||||
elseif type == 'c' || type == 'cpp' || type == 'c++'
|
||||
return 'cpp'
|
||||
elseif type =~ '^\%(css\|diff\|java\|php\|python\|sql\|sh\|shell-unix-generic\)$'
|
||||
return type
|
||||
else
|
||||
return ''
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:parser(type)
|
||||
let type = s:filetype(a:type)
|
||||
if type == 'text' || type == ''
|
||||
return 'plain_text'
|
||||
elseif type == 'eruby'
|
||||
return 'html_rails'
|
||||
elseif type == 'ruby'
|
||||
return 'ruby_on_rails'
|
||||
elseif type == 'sh'
|
||||
return 'shell-unix-generic'
|
||||
elseif type == 'cpp'
|
||||
return 'c++'
|
||||
else
|
||||
return type
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:grabwin()
|
||||
let ft = (&ft == '' ? expand("%:e") : &ft)
|
||||
let top = "## ".expand("%:~:.")." [".s:parser(ft)."]\n"
|
||||
let keep = @"
|
||||
silent %yank
|
||||
let file = @"
|
||||
let @" = keep
|
||||
if file == "" || file == "\n"
|
||||
return ""
|
||||
else
|
||||
return top.file."\n"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:cookies()
|
||||
if exists("g:pastie_session_id")
|
||||
let cookies = "_pastie_session_id=".g:pastie_session_id
|
||||
else
|
||||
call s:extractcookies('/')
|
||||
if !exists("g:pastie_session_id")
|
||||
if !exists("s:session_warning")
|
||||
echohl WarningMsg
|
||||
echo "Warning: could not extract session id"
|
||||
let s:session_warning = 1
|
||||
echohl NONE
|
||||
endif
|
||||
let cookies = ""
|
||||
else
|
||||
let cookies = "_pastie_session_id=".g:pastie_session_id
|
||||
endif
|
||||
endif
|
||||
if !exists("g:pastie_account")
|
||||
let rubycmd = '%w(~/.mozilla/firefox ~/.firefox/default ~/.phoenix/default ~/Application\ Data/Mozilla/Firefox/Profiles ~/Library/Application\ Support/Firefox/Profiles)'
|
||||
let rubycmd = rubycmd . '.each {|dir| Dir[File.join(File.expand_path(dir),%{*})].select {|p| File.exists?(File.join(p,%{cookies.txt}))}.each {|p| File.open(File.join(p,%{cookies.txt})).each_line { |l| a=l.split(9.chr); puts [a[4],a[6]].join(%{ }) if a[0] =~ /pastie\.caboo\.se#{36.chr}/ && Time.now.to_i < a[4].to_i && a[5] == %{account} }}}'
|
||||
let output = ''
|
||||
let output = system('ruby -e "'.rubycmd.'"')
|
||||
if output =~ '\n' && output !~ '-e:'
|
||||
let output = substitute(output,'\n.*','','')
|
||||
let g:pastie_account = matchstr(output,' \zs.*')
|
||||
let g:pastie_account_expires = matchstr(output,'.\{-\}\ze ')
|
||||
else
|
||||
let g:pastie_account = ''
|
||||
endif
|
||||
endif
|
||||
if exists("g:pastie_account") && g:pastie_account != ""
|
||||
" You cannot set this arbitrarily, it must be a valid cookie
|
||||
let cookies = cookies . (cookies == "" ? "" : "; ")
|
||||
let cookies = cookies . 'account='.substitute(g:pastie_account,':','%3A','g')
|
||||
endif
|
||||
return cookies
|
||||
endfunction
|
||||
|
||||
function! s:extractcookies(path)
|
||||
let path = substitute(a:path,'\c^http://'.s:domain,'','')
|
||||
if path !~ '^/'
|
||||
let path = '/'.path
|
||||
endif
|
||||
let cookie = system('ruby -rnet/http -e "print Net::HTTP.get_response(%{'.s:domain.'},%{'.path.'})[%{Set-Cookie}]"')
|
||||
if exists("g:pastie_debug")
|
||||
let g:pastie_cookies_path = path
|
||||
let g:pastie_cookies = cookie
|
||||
endif
|
||||
return s:extractcookiesfromheader(cookie)
|
||||
endfunction
|
||||
|
||||
function! s:extractcookiesfromheader(cookie)
|
||||
let cookie = a:cookie
|
||||
if cookie !~ '-e:'
|
||||
let session_id = matchstr(cookie,'\<_pastie_session_id=\zs.\{-\}\ze\%([;,]\|$\)')
|
||||
let account = matchstr(cookie,'\<account=\zs.\{-\}\ze\%([;,]\|$\)')
|
||||
if session_id != ""
|
||||
let g:pastie_session_id = session_id
|
||||
endif
|
||||
if account != ""
|
||||
let g:pastie_account = account
|
||||
let time = matchstr(cookie,'\<[Ee]xpires=\zs\w\w\w,.\{-\}\ze\%([;,]\|$\)')
|
||||
if time != ""
|
||||
let g:pastie_account_expires = system('ruby -e "print Time.parse(%{'.time.'}).to_i"')
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:latestid()
|
||||
return system('ruby -rnet/http -e "print Net::HTTP.get_response(URI.parse(%{http://'.s:domain.'/all})).body.match(%r{<a href=.http://'.s:domain.'/(\d+).>View})[1]"')
|
||||
endfunction
|
||||
|
||||
function! s:urlencode(str)
|
||||
" Vim 6.2, how did we ever live with you?
|
||||
return substitute(substitute(a:str,"[\001-\037%&?=\\\\]",'\="%".printf("%02X",char2nr(submatch(0)))','g'),' ','%20','g')
|
||||
endfunction
|
||||
|
||||
function! s:newwindow()
|
||||
if !(&modified) && (expand("%") == '' || (version >= 700 && winnr("$") == 1 && tabpagenr("$") == 1))
|
||||
enew
|
||||
else
|
||||
if g:pastie_destination == 'tab'
|
||||
tabnew
|
||||
elseif g:pastie_destination == 'window'
|
||||
new
|
||||
else
|
||||
enew
|
||||
endif
|
||||
endif
|
||||
setlocal noswapfile
|
||||
endfunction
|
||||
|
||||
" vim:set sw=4 sts=4 et:
|
||||
@@ -1,504 +0,0 @@
|
||||
" _ _ _ __
|
||||
" | |__ __ _ __| | __ _____ | |/ _|
|
||||
" | '_ \ / _` |/ _` | \ \ /\ / / _ \| | |_
|
||||
" | |_) | (_| | (_| | \ V V / (_) | | _|
|
||||
" |_.__/ \__,_|\__,_| \_/\_/ \___/|_|_|
|
||||
"
|
||||
" I am the Bad Wolf. I create myself.
|
||||
" I take the words. I scatter them in time and space.
|
||||
" A message to lead myself here.
|
||||
"
|
||||
" A Vim colorscheme pieced together by Steve Losh.
|
||||
" Available at http://stevelosh.com/projects/badwolf/
|
||||
"
|
||||
" Why? {{{
|
||||
"
|
||||
" After using Molokai for quite a long time, I started longing for
|
||||
" a replacement.
|
||||
"
|
||||
" I love Molokai's high contrast and gooey, saturated tones, but it can be
|
||||
" a little inconsistent at times.
|
||||
"
|
||||
" Also it's winter here in Rochester, so I wanted a color scheme that's a bit
|
||||
" warmer. A little less blue and a bit more red.
|
||||
"
|
||||
" And so Bad Wolf was born. I'm no designer, but designers have been scattering
|
||||
" beautiful colors through time and space long before I came along. I took
|
||||
" advantage of that and reused some of my favorites to lead me to this scheme.
|
||||
"
|
||||
" }}}
|
||||
|
||||
" Supporting code -------------------------------------------------------------
|
||||
" Preamble {{{
|
||||
|
||||
set background=dark
|
||||
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
|
||||
let colors_name = "badwolf"
|
||||
|
||||
" }}}
|
||||
" Palette {{{
|
||||
|
||||
let s:bwc = {}
|
||||
|
||||
" The most basic of all our colors is a slightly tweaked version of the Molokai
|
||||
" Normal text.
|
||||
let s:bwc.plain = ['f8f6f2', 15]
|
||||
|
||||
" Pure and simple.
|
||||
let s:bwc.snow = ['ffffff', 15]
|
||||
let s:bwc.coal = ['000000', 0]
|
||||
|
||||
" All of the Gravel colors are based on a brown from Clouds Midnight.
|
||||
let s:bwc.brightgravel = ['d9cec3', 252]
|
||||
let s:bwc.lightgravel = ['998f84', 245]
|
||||
let s:bwc.gravel = ['857f78', 243]
|
||||
let s:bwc.mediumgravel = ['666462', 241]
|
||||
let s:bwc.deepgravel = ['45413b', 238]
|
||||
let s:bwc.deepergravel = ['35322d', 236]
|
||||
let s:bwc.darkgravel = ['242321', 235]
|
||||
let s:bwc.blackgravel = ['1c1b1a', 233]
|
||||
let s:bwc.blackestgravel = ['141413', 232]
|
||||
|
||||
" A color sampled from a highlight in a photo of a glass of Dale's Pale Ale on
|
||||
" my desk.
|
||||
let s:bwc.dalespale = ['fade3e', 221]
|
||||
|
||||
" A beautiful tan from Tomorrow Night.
|
||||
let s:bwc.dirtyblonde = ['f4cf86', 222]
|
||||
|
||||
" Delicious, chewy red from Made of Code for the poppiest highlights.
|
||||
let s:bwc.taffy = ['ff2c4b', 197]
|
||||
|
||||
" The star of the show comes straight from Made of Code.
|
||||
let s:bwc.tardis = ['0a9dff', 39]
|
||||
|
||||
" This one's from Mustang, not Florida!
|
||||
let s:bwc.orange = ['ffa724', 214]
|
||||
|
||||
" A limier green from Getafe.
|
||||
let s:bwc.lime = ['aeee00', 148]
|
||||
|
||||
" Rose's dress in The Idiot's Lantern.
|
||||
let s:bwc.dress = ['ff9eb8', 211]
|
||||
|
||||
" Another play on the brown from Clouds Midnight. I love that color.
|
||||
let s:bwc.toffee = ['b88853', 137]
|
||||
|
||||
" Also based on that Clouds Midnight brown.
|
||||
let s:bwc.coffee = ['c7915b', 173]
|
||||
let s:bwc.darkroast = ['88633f', 95]
|
||||
|
||||
" }}}
|
||||
" Highlighting Function {{{
|
||||
function! HL(group, fg, ...)
|
||||
" Arguments: group, guifg, guibg, gui, guisp
|
||||
|
||||
let histring = 'hi ' . a:group . ' '
|
||||
|
||||
if strlen(a:fg)
|
||||
if a:fg == 'fg'
|
||||
let histring .= 'guifg=fg ctermfg=fg '
|
||||
else
|
||||
let c = get(s:bwc, a:fg)
|
||||
let histring .= 'guifg=#' . c[0] . ' ctermfg=' . c[1] . ' '
|
||||
endif
|
||||
endif
|
||||
|
||||
if a:0 >= 1 && strlen(a:1)
|
||||
if a:1 == 'bg'
|
||||
let histring .= 'guibg=bg ctermbg=bg '
|
||||
else
|
||||
let c = get(s:bwc, a:1)
|
||||
let histring .= 'guibg=#' . c[0] . ' ctermbg=' . c[1] . ' '
|
||||
endif
|
||||
endif
|
||||
|
||||
if a:0 >= 2 && strlen(a:2)
|
||||
let histring .= 'gui=' . a:2 . ' cterm=' . a:2 . ' '
|
||||
endif
|
||||
|
||||
if a:0 >= 3 && strlen(a:3)
|
||||
let c = get(s:bwc, a:3)
|
||||
let histring .= 'guisp=#' . c[0] . ' '
|
||||
endif
|
||||
|
||||
" echom histring
|
||||
|
||||
execute histring
|
||||
endfunction
|
||||
" }}}
|
||||
" Configuration Options {{{
|
||||
|
||||
if exists('g:badwolf_darkgutter') && g:badwolf_darkgutter
|
||||
let s:gutter = 'blackestgravel'
|
||||
else
|
||||
let s:gutter = 'blackgravel'
|
||||
endif
|
||||
|
||||
" }}}
|
||||
|
||||
" Actual colorscheme ----------------------------------------------------------
|
||||
" Vanilla Vim {{{
|
||||
|
||||
" General/UI {{{
|
||||
|
||||
call HL('Normal', 'plain', 'blackgravel')
|
||||
|
||||
call HL('Folded', 'mediumgravel', 'bg', 'none')
|
||||
|
||||
call HL('VertSplit', 'lightgravel', 'bg', 'none')
|
||||
|
||||
call HL('CursorLine', '', 'darkgravel', 'none')
|
||||
call HL('CursorColumn', '', 'darkgravel')
|
||||
call HL('ColorColumn', '', 'darkgravel')
|
||||
|
||||
call HL('MatchParen', 'dalespale', 'darkgravel', 'bold')
|
||||
|
||||
call HL('NonText', 'deepgravel', 'bg')
|
||||
call HL('SpecialKey', 'deepgravel', 'bg')
|
||||
|
||||
call HL('Visual', '', 'deepgravel')
|
||||
call HL('VisualNOS', '', 'deepgravel')
|
||||
|
||||
call HL('Search', 'coal', 'dalespale', 'bold')
|
||||
call HL('IncSearch', 'coal', 'tardis', 'bold')
|
||||
|
||||
call HL('Underlined', 'fg', '', 'underline')
|
||||
|
||||
call HL('StatusLine', 'coal', 'tardis', 'bold')
|
||||
call HL('StatusLineNC', 'snow', 'deepgravel', 'bold')
|
||||
|
||||
call HL('Directory', 'dirtyblonde', '', 'bold')
|
||||
|
||||
call HL('Title', 'lime')
|
||||
|
||||
call HL('ErrorMsg', 'taffy', 'bg', 'bold')
|
||||
call HL('MoreMsg', 'dalespale', '', 'bold')
|
||||
call HL('ModeMsg', 'dirtyblonde', '', 'bold')
|
||||
call HL('Question', 'dirtyblonde', '', 'bold')
|
||||
call HL('WarningMsg', 'dress', '', 'bold')
|
||||
|
||||
" This is a ctags tag, not an HTML one. 'Something you can use c-] on'.
|
||||
call HL('Tag', '', '', 'bold')
|
||||
|
||||
" hi IndentGuides guibg=#373737
|
||||
" hi WildMenu guifg=#66D9EF guibg=#000000
|
||||
|
||||
" }}}
|
||||
" Gutter {{{
|
||||
|
||||
call HL('LineNr', 'mediumgravel', s:gutter)
|
||||
call HL('SignColumn', '', s:gutter)
|
||||
call HL('FoldColumn', 'mediumgravel', s:gutter)
|
||||
|
||||
" }}}
|
||||
" Cursor {{{
|
||||
|
||||
call HL('Cursor', 'coal', 'tardis', 'bold')
|
||||
call HL('vCursor', 'coal', 'tardis', 'bold')
|
||||
call HL('iCursor', 'coal', 'tardis', 'none')
|
||||
|
||||
" }}}
|
||||
" Syntax highlighting {{{
|
||||
|
||||
" Start with a simple base.
|
||||
call HL('Special', 'plain')
|
||||
|
||||
" Comments are slightly brighter than folds, to make 'headers' easier to see.
|
||||
call HL('Comment', 'gravel')
|
||||
call HL('Todo', 'snow', 'bg', 'bold')
|
||||
call HL('SpecialComment', 'snow', 'bg', 'bold')
|
||||
|
||||
" Strings are a nice, pale straw color. Nothing too fancy.
|
||||
call HL('String', 'dirtyblonde')
|
||||
|
||||
" Control flow stuff is taffy.
|
||||
call HL('Statement', 'taffy', '', 'bold')
|
||||
call HL('Keyword', 'taffy', '', 'bold')
|
||||
call HL('Conditional', 'taffy', '', 'bold')
|
||||
call HL('Operator', 'taffy', '', 'none')
|
||||
call HL('Label', 'taffy', '', 'none')
|
||||
call HL('Repeat', 'taffy', '', 'none')
|
||||
|
||||
" Functions and variable declarations are orange, because plain looks weird.
|
||||
call HL('Identifier', 'orange', '', 'none')
|
||||
call HL('Function', 'orange', '', 'none')
|
||||
|
||||
" Preprocessor stuff is lime, to make it pop.
|
||||
"
|
||||
" This includes imports in any given language, because they should usually be
|
||||
" grouped together at the beginning of a file. If they're in the middle of some
|
||||
" other code they should stand out, because something tricky is
|
||||
" probably going on.
|
||||
call HL('PreProc', 'lime', '', 'none')
|
||||
call HL('Macro', 'lime', '', 'none')
|
||||
call HL('Define', 'lime', '', 'none')
|
||||
call HL('PreCondit', 'lime', '', 'bold')
|
||||
|
||||
" Constants of all kinds are colored together.
|
||||
" I'm not really happy with the color yet...
|
||||
call HL('Constant', 'toffee', '', 'bold')
|
||||
call HL('Character', 'toffee', '', 'bold')
|
||||
call HL('Boolean', 'toffee', '', 'bold')
|
||||
|
||||
call HL('Number', 'toffee', '', 'bold')
|
||||
call HL('Float', 'toffee', '', 'bold')
|
||||
|
||||
" Not sure what 'special character in a constant' means, but let's make it pop.
|
||||
call HL('SpecialChar', 'dress', '', 'bold')
|
||||
|
||||
call HL('Type', 'dress', '', 'none')
|
||||
call HL('StorageClass', 'taffy', '', 'none')
|
||||
call HL('Structure', 'taffy', '', 'none')
|
||||
call HL('Typedef', 'taffy', '', 'bold')
|
||||
|
||||
" Make try/catch blocks stand out.
|
||||
call HL('Exception', 'lime', '', 'bold')
|
||||
|
||||
" Misc
|
||||
call HL('Error', 'snow', 'taffy', 'bold')
|
||||
call HL('Debug', 'snow', '', 'bold')
|
||||
call HL('Ignore', 'gravel', '', '')
|
||||
|
||||
" }}}
|
||||
" Completion Menu {{{
|
||||
|
||||
call HL('Pmenu', 'plain', 'deepergravel')
|
||||
call HL('PmenuSel', 'coal', 'tardis', 'bold')
|
||||
call HL('PmenuSbar', '', 'deepergravel')
|
||||
call HL('PmenuThumb', 'brightgravel')
|
||||
|
||||
" }}}
|
||||
" Diffs {{{
|
||||
|
||||
call HL('DiffDelete', 'coal', 'coal')
|
||||
call HL('DiffAdd', '', 'deepergravel')
|
||||
call HL('DiffChange', '', 'darkgravel')
|
||||
call HL('DiffText', 'snow', 'deepergravel', 'bold')
|
||||
|
||||
" }}}
|
||||
" Spelling {{{
|
||||
|
||||
if has("spell")
|
||||
call HL('SpellCap', 'dalespale', '', 'undercurl,bold', 'dalespale')
|
||||
call HL('SpellBad', '', '', 'undercurl', 'dalespale')
|
||||
call HL('SpellLocal', '', '', 'undercurl', 'dalespale')
|
||||
call HL('SpellRare', '', '', 'undercurl', 'dalespale')
|
||||
endif
|
||||
|
||||
" }}}
|
||||
|
||||
" }}}
|
||||
" Plugins {{{
|
||||
|
||||
" CtrlP {{{
|
||||
|
||||
" the message when no match is found
|
||||
call HL('CtrlPNoEntries', 'snow', 'taffy', 'bold')
|
||||
|
||||
" the matched pattern
|
||||
call HL('CtrlPMatch', 'orange', 'bg', 'none')
|
||||
|
||||
" the line prefix '>' in the match window
|
||||
call HL('CtrlPLinePre', 'deepgravel', 'bg', 'none')
|
||||
|
||||
" the prompt’s base
|
||||
call HL('CtrlPPrtBase', 'deepgravel', 'bg', 'none')
|
||||
|
||||
" the prompt’s text
|
||||
call HL('CtrlPPrtText', 'plain', 'bg', 'none')
|
||||
|
||||
" the prompt’s cursor when moving over the text
|
||||
call HL('CtrlPPrtCursor', 'coal', 'tardis', 'bold')
|
||||
|
||||
" 'prt' or 'win', also for 'regex'
|
||||
call HL('CtrlPMode1', 'coal', 'tardis', 'bold')
|
||||
|
||||
" 'file' or 'path', also for the local working dir
|
||||
call HL('CtrlPMode2', 'coal', 'tardis', 'bold')
|
||||
|
||||
" the scanning status
|
||||
call HL('CtrlPStats', 'coal', 'tardis', 'bold')
|
||||
|
||||
" TODO: CtrlP extensions.
|
||||
" CtrlPTabExtra : the part of each line that’s not matched against (Comment)
|
||||
" CtrlPqfLineCol : the line and column numbers in quickfix mode (|hl-Search|)
|
||||
" CtrlPUndoT : the elapsed time in undo mode (|hl-Directory|)
|
||||
" CtrlPUndoBr : the square brackets [] in undo mode (Comment)
|
||||
" CtrlPUndoNr : the undo number inside [] in undo mode (String)
|
||||
|
||||
" }}}
|
||||
" EasyMotion {{{
|
||||
|
||||
call HL('EasyMotionTarget', 'tardis', 'bg', 'bold')
|
||||
call HL('EasyMotionShade', 'deepgravel', 'bg')
|
||||
|
||||
" }}}
|
||||
" Interesting Words {{{
|
||||
|
||||
" These are only used if you're me or have copied the <leader>hNUM mappings
|
||||
" from my Vimrc.
|
||||
call HL('InterestingWord1', 'coal', 'orange')
|
||||
call HL('InterestingWord2', 'coal', 'lime')
|
||||
call HL('InterestingWord3', 'coal', 'taffy')
|
||||
|
||||
" }}}
|
||||
" Makegreen {{{
|
||||
|
||||
" hi GreenBar term=reverse ctermfg=white ctermbg=green guifg=coal guibg=#9edf1c
|
||||
" hi RedBar term=reverse ctermfg=white ctermbg=red guifg=white guibg=#C50048
|
||||
|
||||
" }}}
|
||||
" ShowMarks {{{
|
||||
|
||||
call HL('ShowMarksHLl', 'tardis', 'blackgravel')
|
||||
call HL('ShowMarksHLu', 'tardis', 'blackgravel')
|
||||
call HL('ShowMarksHLo', 'tardis', 'blackgravel')
|
||||
call HL('ShowMarksHLm', 'tardis', 'blackgravel')
|
||||
|
||||
" }}}
|
||||
|
||||
" }}}
|
||||
" Filetype-specific {{{
|
||||
|
||||
" Clojure {{{
|
||||
|
||||
call HL('clojureSpecial', 'taffy', '', '')
|
||||
call HL('clojureDefn', 'taffy', '', '')
|
||||
call HL('clojureDefMacro', 'taffy', '', '')
|
||||
call HL('clojureDefine', 'taffy', '', '')
|
||||
call HL('clojureMacro', 'taffy', '', '')
|
||||
call HL('clojureCond', 'taffy', '', '')
|
||||
|
||||
call HL('clojureKeyword', 'orange', '', 'none')
|
||||
|
||||
call HL('clojureFunc', 'dress', '', 'none')
|
||||
call HL('clojureRepeat', 'dress', '', 'none')
|
||||
|
||||
call HL('clojureParen0', 'lightgravel', '', 'none')
|
||||
|
||||
call HL('clojureAnonArg', 'snow', '', 'bold')
|
||||
|
||||
" }}}
|
||||
" CSS {{{
|
||||
|
||||
call HL('cssColorProp', 'fg', '', 'none')
|
||||
call HL('cssBoxProp', 'fg', '', 'none')
|
||||
call HL('cssTextProp', 'fg', '', 'none')
|
||||
call HL('cssRenderProp', 'fg', '', 'none')
|
||||
call HL('cssGeneratedContentProp', 'fg', '', 'none')
|
||||
|
||||
call HL('cssValueLength', 'toffee', '', 'bold')
|
||||
call HL('cssColor', 'toffee', '', 'bold')
|
||||
call HL('cssBraces', 'lightgravel', '', 'none')
|
||||
call HL('cssIdentifier', 'orange', '', 'bold')
|
||||
call HL('cssClassName', 'orange', '', 'none')
|
||||
|
||||
" }}}
|
||||
" Django Templates {{{
|
||||
|
||||
call HL('djangoArgument', 'dirtyblonde', '',)
|
||||
call HL('djangoTagBlock', 'orange', '')
|
||||
call HL('djangoVarBlock', 'orange', '')
|
||||
" hi djangoStatement guifg=#ff3853 gui=bold
|
||||
" hi djangoVarBlock guifg=#f4cf86
|
||||
|
||||
" }}}
|
||||
" HTML {{{
|
||||
|
||||
" Punctuation
|
||||
call HL('htmlTag', 'darkroast', 'bg', 'none')
|
||||
call HL('htmlEndTag', 'darkroast', 'bg', 'none')
|
||||
|
||||
" Tag names
|
||||
call HL('htmlTagName', 'coffee', '', 'bold')
|
||||
call HL('htmlSpecialTagName', 'coffee', '', 'bold')
|
||||
|
||||
" Attributes
|
||||
call HL('htmlArg', 'coffee', '', 'none')
|
||||
|
||||
" Stuff inside an <a> tag
|
||||
call HL('htmlLink', 'lightgravel', '', 'underline')
|
||||
|
||||
" }}}
|
||||
" Java {{{
|
||||
|
||||
call HL('javaClassDecl', 'taffy', '', 'bold')
|
||||
call HL('javaScopeDecl', 'taffy', '', 'bold')
|
||||
call HL('javaCommentTitle', 'gravel', '')
|
||||
call HL('javaDocTags', 'snow', '', 'none')
|
||||
call HL('javaDocParam', 'dalespale', '', '')
|
||||
|
||||
" }}}
|
||||
" LessCSS {{{
|
||||
|
||||
call HL('lessVariable', 'lime', '', 'none')
|
||||
|
||||
" }}}
|
||||
" Mail {{{
|
||||
|
||||
call HL('mailSubject', 'orange', '', 'bold')
|
||||
call HL('mailHeader', 'lightgravel', '', '')
|
||||
call HL('mailHeaderKey', 'lightgravel', '', '')
|
||||
call HL('mailHeaderEmail', 'snow', '', '')
|
||||
call HL('mailURL', 'toffee', '', 'underline')
|
||||
call HL('mailSignature', 'gravel', '', 'none')
|
||||
|
||||
call HL('mailQuoted1', 'gravel', '', 'none')
|
||||
call HL('mailQuoted2', 'dress', '', 'none')
|
||||
call HL('mailQuoted3', 'dirtyblonde', '', 'none')
|
||||
call HL('mailQuoted4', 'orange', '', 'none')
|
||||
call HL('mailQuoted5', 'lime', '', 'none')
|
||||
|
||||
" }}}
|
||||
" Markdown {{{
|
||||
|
||||
call HL('markdownHeadingRule', 'lightgravel', '', 'bold')
|
||||
call HL('markdownHeadingDelimiter', 'lightgravel', '', 'bold')
|
||||
call HL('markdownOrderedListMarker', 'lightgravel', '', 'bold')
|
||||
call HL('markdownListMarker', 'lightgravel', '', 'bold')
|
||||
call HL('markdownH1', 'orange', '', 'bold')
|
||||
call HL('markdownH2', 'lime', '', 'bold')
|
||||
call HL('markdownH3', 'lime', '', 'none')
|
||||
call HL('markdownH4', 'lime', '', 'none')
|
||||
call HL('markdownH5', 'lime', '', 'none')
|
||||
call HL('markdownH6', 'lime', '', 'none')
|
||||
call HL('markdownLinkText', 'toffee', '', 'underline')
|
||||
call HL('markdownIdDeclaration', 'toffee')
|
||||
call HL('markdownAutomaticLink', 'toffee', '', 'bold')
|
||||
call HL('markdownUrl', 'toffee', '', 'bold')
|
||||
call HL('markdownUrldelimiter', 'lightgravel', '', 'bold')
|
||||
call HL('markdownLinkDelimiter', 'lightgravel', '', 'bold')
|
||||
call HL('markdownLinkTextDelimiter', 'lightgravel', '', 'bold')
|
||||
call HL('markdownCodeDelimiter', 'dirtyblonde', '', 'bold')
|
||||
call HL('markdownCode', 'dirtyblonde', '', 'none')
|
||||
call HL('markdownCodeBlock', 'dirtyblonde', '', 'none')
|
||||
|
||||
" }}}
|
||||
" Python {{{
|
||||
|
||||
hi def link pythonOperator Operator
|
||||
call HL('pythonBuiltin', 'dress')
|
||||
call HL('pythonEscape', 'dress')
|
||||
call HL('pythonException', 'lime', '', 'bold')
|
||||
call HL('pythonExceptions', 'lime', '', 'none')
|
||||
call HL('pythonDecorator', 'taffy', '', 'none')
|
||||
|
||||
" }}}
|
||||
" Vim {{{
|
||||
|
||||
call HL('VimCommentTitle', 'lightgravel', '', 'bold')
|
||||
|
||||
call HL('VimMapMod', 'dress', '', 'none')
|
||||
call HL('VimMapModKey', 'dress', '', 'none')
|
||||
call HL('VimNotation', 'dress', '', 'none')
|
||||
call HL('VimBracket', 'dress', '', 'none')
|
||||
|
||||
" }}}
|
||||
|
||||
" }}}
|
||||
|
||||
@@ -1,300 +0,0 @@
|
||||
"=============================================================================
|
||||
" Vim color file
|
||||
" File: darkburn.vim
|
||||
" Maintainer: Taurus Olson <taurusolson@gmail.com>
|
||||
" License: GPL
|
||||
" Created: 2009-03-27 20:25:21 CET
|
||||
" Modified: 2009-06-06 21:18:55 CET
|
||||
" Version: 1.2
|
||||
|
||||
" Modified version of zenburn originally created by:
|
||||
" Maintainer: Jani Nurminen <slinky@iki.fi>
|
||||
" Last Change: $Id: zenburn.vim,v 2.4 2008/11/18 20:43:18 slinky Exp $
|
||||
" URL: http://slinky.imukuppi.org/zenburnpage/
|
||||
" License: GPL
|
||||
"=============================================================================
|
||||
"
|
||||
" Credits:
|
||||
" - Jani Nurminen - original Zenburn
|
||||
" - Steve Hall & Cream posse - higher-contrast Visual selection
|
||||
" - Kurt Maier - 256 color console coloring, low and high contrast toggle,
|
||||
" bug fixing
|
||||
" - Charlie - spotted too bright StatusLine in non-high contrast mode
|
||||
" - Pablo Castellazzi - CursorLine fix for 256 color mode
|
||||
" - Tim Smith - force dark background
|
||||
"
|
||||
" CONFIGURABLE PARAMETERS:
|
||||
"
|
||||
" You can use the default (don't set any parameters), or you can
|
||||
" set some parameters to tweak the Zenburn colours.
|
||||
"
|
||||
" * You can now set a darker background for bright environments. To activate, use:
|
||||
" contrast Zenburn, use:
|
||||
"
|
||||
let g:darkburn_high_Contrast = 1
|
||||
"
|
||||
" * To get more contrast to the Visual selection, use
|
||||
"
|
||||
" let g:darkburn_alternate_Visual = 1
|
||||
"
|
||||
" * To use alternate colouring for Error message, use
|
||||
"
|
||||
let g:darkburn_alternate_Error = 1
|
||||
"
|
||||
" * The new default for Include is a duller orange. To use the original
|
||||
" colouring for Include, use
|
||||
"
|
||||
let g:darkburn_alternate_Include = 1
|
||||
"
|
||||
" * Work-around to a Vim bug, it seems to misinterpret ctermfg and 234 and 237
|
||||
" as light values, and sets background to light for some people. If you have
|
||||
" this problem, use:
|
||||
"
|
||||
let g:darkburn_force_dark_Background = 1
|
||||
"
|
||||
" * To turn the parameter(s) back to defaults, use UNLET:
|
||||
"
|
||||
" unlet g:darkburn_alternate_Include
|
||||
"
|
||||
" Setting to 0 won't work!
|
||||
"
|
||||
" That's it, enjoy!
|
||||
"
|
||||
" TODO
|
||||
" - Visual alternate color is broken? Try GVim >= 7.0.66 if you have trouble
|
||||
" - IME colouring (CursorIM)
|
||||
|
||||
set background=dark
|
||||
hi clear
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
let g:colors_name="darkburn"
|
||||
|
||||
hi Boolean guifg=#dca3a3
|
||||
hi Character guifg=#dca3a3 gui=bold
|
||||
hi Comment guifg=#7f9f7f gui=italic
|
||||
hi Conditional guifg=#f0dfaf gui=bold
|
||||
hi Constant guifg=#dca3a3 gui=bold
|
||||
hi Cursor guifg=#000d18 guibg=#8faf9f gui=bold
|
||||
hi Debug guifg=#bca3a3 gui=bold
|
||||
hi Define guifg=#ffcfaf gui=bold
|
||||
hi Delimiter guifg=#8f8f8f
|
||||
hi DiffAdd guifg=#709080 guibg=#313c36 gui=bold
|
||||
hi DiffChange guibg=#333333
|
||||
hi DiffDelete guifg=#333333 guibg=#464646
|
||||
hi DiffText guifg=#ecbcbc guibg=#41363c gui=bold
|
||||
hi Directory guifg=#dcdccc gui=bold
|
||||
hi ErrorMsg guifg=#80d4aa guibg=#2f2f2f gui=bold
|
||||
hi Exception guifg=#c3bf9f gui=bold
|
||||
hi Float guifg=#c0bed1
|
||||
hi FoldColumn guifg=#93b3a3 guibg=#3f4040
|
||||
hi Folded guifg=#93b3a3 guibg=#3f4040
|
||||
hi Function guifg=#efef8f
|
||||
hi Identifier guifg=#dcdcdc
|
||||
hi IncSearch guibg=#f8f893 guifg=#385f38
|
||||
hi Keyword guifg=#f0dfaf gui=bold
|
||||
hi Label guifg=#dfcfaf gui=underline
|
||||
hi LineNr guifg=#9fafaf guibg=#262626
|
||||
hi Macro guifg=#ffcfaf gui=bold
|
||||
hi ModeMsg guifg=#6fb86f gui=none
|
||||
hi MoreMsg guifg=#ffffff gui=bold
|
||||
hi NonText guifg=#404040
|
||||
hi Number guifg=#8cd0d3
|
||||
hi Operator guifg=#f0efd0
|
||||
hi PreCondit guifg=#dfaf8f gui=bold
|
||||
hi PreProc guifg=#ffb23f gui=bold
|
||||
hi Question guifg=#ffffff gui=bold
|
||||
hi Repeat guifg=#ffd7a7 gui=bold
|
||||
hi Search guifg=#ffffe0 guibg=#284f28
|
||||
hi SpecialChar guifg=#9fbfd6 gui=bold
|
||||
hi SpecialComment guifg=#82a282 gui=bold
|
||||
hi Special guifg=#9fbfd6
|
||||
hi SpecialKey guifg=#9ece9e
|
||||
hi Statement guifg=#6fb86f gui=none
|
||||
hi StatusLine guifg=#313633 guibg=#ccdc90
|
||||
hi StatusLineNC guifg=#2e3330 guibg=#88b090
|
||||
hi StorageClass guifg=#c3bf9f gui=bold
|
||||
hi String guifg=#b75151
|
||||
hi Structure guifg=#efefaf gui=bold
|
||||
hi Tag guifg=#e89393 gui=bold
|
||||
hi Title guifg=#efefef gui=bold
|
||||
hi Todo guifg=#dfdfdf guibg=bg gui=bold
|
||||
hi Typedef guifg=#dfe4cf gui=bold
|
||||
hi Type guifg=#dfdfbf gui=bold
|
||||
hi Underlined guifg=#dcdccc gui=underline
|
||||
hi VertSplit guifg=#2e3330 guibg=#688060
|
||||
hi VisualNOS guifg=#333333 guibg=#f18c96 gui=bold,underline
|
||||
hi WarningMsg guifg=#ffffff guibg=#333333 gui=bold
|
||||
hi WildMenu guibg=#2c302d guifg=#cbecd0 gui=underline
|
||||
|
||||
hi SpellBad guisp=#bc6c4c guifg=#dc8c6c
|
||||
hi SpellCap guisp=#6c6c9c guifg=#8c8cbc
|
||||
hi SpellRare guisp=#bc6c9c guifg=#bc8cbc
|
||||
hi SpellLocal guisp=#7cac7c guifg=#9ccc9c
|
||||
|
||||
" Entering Kurt zone
|
||||
if &t_Co > 255
|
||||
hi Boolean ctermfg=181
|
||||
hi Character ctermfg=181 cterm=bold
|
||||
hi Comment ctermfg=108
|
||||
hi Conditional ctermfg=223 cterm=bold
|
||||
hi Constant ctermfg=181 cterm=bold
|
||||
hi Cursor ctermfg=233 ctermbg=109 cterm=bold
|
||||
hi Debug ctermfg=181 cterm=bold
|
||||
hi Define ctermfg=223 cterm=bold
|
||||
hi Delimiter ctermfg=245
|
||||
hi DiffAdd ctermfg=66 ctermbg=237 cterm=bold
|
||||
hi DiffChange ctermbg=236
|
||||
hi DiffDelete ctermfg=236 ctermbg=238
|
||||
hi DiffText ctermfg=217 ctermbg=237 cterm=bold
|
||||
hi Directory ctermfg=188 cterm=bold
|
||||
hi ErrorMsg ctermfg=115 ctermbg=236 cterm=bold
|
||||
hi Exception ctermfg=249 cterm=bold
|
||||
hi Float ctermfg=251
|
||||
hi FoldColumn ctermfg=109 ctermbg=238
|
||||
hi Folded ctermfg=109 ctermbg=238
|
||||
hi Function ctermfg=228
|
||||
hi Identifier ctermfg=223
|
||||
hi IncSearch ctermbg=228 ctermfg=238
|
||||
hi Keyword ctermfg=223 cterm=bold
|
||||
hi Label ctermfg=187 cterm=underline
|
||||
hi LineNr ctermfg=248 ctermbg=235
|
||||
hi Macro ctermfg=223 cterm=bold
|
||||
hi ModeMsg ctermfg=223 cterm=none
|
||||
hi MoreMsg ctermfg=15 cterm=bold
|
||||
hi NonText ctermfg=238
|
||||
hi Number ctermfg=116
|
||||
hi Operator ctermfg=230
|
||||
hi PreCondit ctermfg=180 cterm=bold
|
||||
hi PreProc ctermfg=223 cterm=bold
|
||||
hi Question ctermfg=15 cterm=bold
|
||||
hi Repeat ctermfg=223 cterm=bold
|
||||
hi Search ctermfg=230 ctermbg=236
|
||||
hi SpecialChar ctermfg=181 cterm=bold
|
||||
hi SpecialComment ctermfg=108 cterm=bold
|
||||
hi Special ctermfg=181
|
||||
hi SpecialKey ctermfg=151
|
||||
hi Statement ctermfg=187 ctermbg=234 cterm=none
|
||||
hi StatusLine ctermfg=236 ctermbg=186
|
||||
hi StatusLineNC ctermfg=235 ctermbg=108
|
||||
hi StorageClass ctermfg=249 cterm=bold
|
||||
hi String ctermfg=174
|
||||
hi Structure ctermfg=229 cterm=bold
|
||||
hi Tag ctermfg=181 cterm=bold
|
||||
hi Title ctermfg=7 ctermbg=234 cterm=bold
|
||||
hi Todo ctermfg=108 ctermbg=234 cterm=bold
|
||||
hi Typedef ctermfg=253 cterm=bold
|
||||
hi Type ctermfg=187 cterm=bold
|
||||
hi Underlined ctermfg=188 ctermbg=234 cterm=bold
|
||||
hi VertSplit ctermfg=236 ctermbg=65
|
||||
hi VisualNOS ctermfg=236 ctermbg=210 cterm=bold
|
||||
hi WarningMsg ctermfg=15 ctermbg=236 cterm=bold
|
||||
hi WildMenu ctermbg=236 ctermfg=194 cterm=bold
|
||||
hi CursorLine ctermbg=236 cterm=none
|
||||
|
||||
" spellchecking, always "bright" background
|
||||
hi SpellLocal ctermfg=14 ctermbg=237
|
||||
hi SpellBad ctermfg=9 ctermbg=237
|
||||
hi SpellCap ctermfg=12 ctermbg=237
|
||||
hi SpellRare ctermfg=13 ctermbg=237
|
||||
|
||||
" pmenu
|
||||
hi PMenu ctermfg=248 ctermbg=0
|
||||
hi PMenuSel ctermfg=223 ctermbg=235
|
||||
|
||||
if exists("g:darkburn_high_Contrast")
|
||||
hi Normal ctermfg=188 ctermbg=234
|
||||
else
|
||||
hi Normal ctermfg=188 ctermbg=237
|
||||
hi Cursor ctermbg=109
|
||||
hi diffadd ctermbg=237
|
||||
hi diffdelete ctermbg=238
|
||||
hi difftext ctermbg=237
|
||||
hi errormsg ctermbg=237
|
||||
hi foldcolumn ctermbg=238
|
||||
hi folded ctermbg=238
|
||||
hi incsearch ctermbg=228
|
||||
hi linenr ctermbg=238
|
||||
hi search ctermbg=238
|
||||
hi statement ctermbg=237
|
||||
hi statusline ctermbg=144
|
||||
hi statuslinenc ctermbg=108
|
||||
hi title ctermbg=237
|
||||
hi todo ctermbg=237
|
||||
hi underlined ctermbg=237
|
||||
hi vertsplit ctermbg=65
|
||||
hi visualnos ctermbg=210
|
||||
hi warningmsg ctermbg=236
|
||||
hi wildmenu ctermbg=236
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists("g:darkburn_force_dark_Background")
|
||||
" Force dark background, because of a bug in VIM: VIM sets background
|
||||
" automatically during "hi Normal ctermfg=X"; it misinterprets the high
|
||||
" value (234 or 237 above) as a light color, and wrongly sets background to
|
||||
" light. See ":help highlight" for details.
|
||||
set background=dark
|
||||
endif
|
||||
|
||||
if exists("g:darkburn_high_Contrast")
|
||||
" use new darker background
|
||||
hi Normal guifg=#ffffff guibg=#1f1f1f
|
||||
hi CursorLine guibg=#121212 gui=bold
|
||||
hi Pmenu guibg=#242424 guifg=#ccccbc
|
||||
hi PMenuSel guibg=#353a37 guifg=#ccdc90 gui=bold
|
||||
hi PmenuSbar guibg=#2e3330 guifg=#000000
|
||||
hi PMenuThumb guibg=#a0afa0 guifg=#040404
|
||||
hi MatchParen guifg=#f0f0c0 guibg=#383838 gui=bold
|
||||
hi SignColumn guifg=#9fafaf guibg=#181818 gui=bold
|
||||
hi TabLineFill guifg=#cfcfaf guibg=#181818 gui=bold
|
||||
hi TabLineSel guifg=#efefef guibg=#1c1c1b gui=bold
|
||||
hi TabLine guifg=#b6bf98 guibg=#181818 gui=bold
|
||||
hi CursorColumn guifg=#dcdccc guibg=#2b2b2b
|
||||
else
|
||||
" Original, lighter background
|
||||
hi Normal guifg=#dcdccc guibg=#3f3f3f
|
||||
hi CursorLine guibg=#434443
|
||||
hi Pmenu guibg=#2c2e2e guifg=#9f9f9f
|
||||
hi PMenuSel guibg=#242424 guifg=#d0d0a0 gui=bold
|
||||
hi PmenuSbar guibg=#2e3330 guifg=#000000
|
||||
hi PMenuThumb guibg=#a0afa0 guifg=#040404
|
||||
hi MatchParen guifg=#b2b2a0 guibg=#2e2e2e gui=bold
|
||||
hi SignColumn guifg=#9fafaf guibg=#343434 gui=bold
|
||||
hi TabLineFill guifg=#cfcfaf guibg=#353535 gui=bold
|
||||
hi TabLineSel guifg=#efefef guibg=#3a3a39 gui=bold
|
||||
hi TabLine guifg=#b6bf98 guibg=#353535 gui=bold
|
||||
hi CursorColumn guifg=#dcdccc guibg=#4f4f4f
|
||||
endif
|
||||
|
||||
|
||||
if exists("g:darkburn_alternate_Visual")
|
||||
" Visual with more contrast, thanks to Steve Hall & Cream posse
|
||||
" gui=none fixes weird highlight problem in at least GVim 7.0.66, thanks to Kurt Maier
|
||||
hi Visual guifg=#000000 guibg=#71d3b4 gui=none
|
||||
hi VisualNOS guifg=#000000 guibg=#71d3b4 gui=none
|
||||
else
|
||||
" use default visual
|
||||
hi Visual guifg=#71d3b4 guibg=#233323 gui=none
|
||||
hi VisualNOS guifg=#71d3b4 guibg=#233323 gui=none
|
||||
endif
|
||||
|
||||
if exists("g:darkburn_alternate_Error")
|
||||
" use a bit different Error
|
||||
hi Error guifg=#ef9f9f guibg=#201010 gui=bold
|
||||
else
|
||||
" default
|
||||
hi Error guifg=#e37170 guibg=#332323 gui=none
|
||||
endif
|
||||
|
||||
if exists("g:darkburn_alternate_Include")
|
||||
" original setting
|
||||
hi Include guifg=#ffcfaf gui=bold
|
||||
else
|
||||
" new, less contrasted one
|
||||
hi Include guifg=#dfaf8f gui=bold
|
||||
endif
|
||||
" TODO check for more obscure syntax groups that they're ok
|
||||
|
||||
" vim: :
|
||||
@@ -1,211 +0,0 @@
|
||||
" Vim color file
|
||||
"
|
||||
" Author: Tomas Restrepo <tomas@winterdom.com>
|
||||
"
|
||||
" Note: Based on the monokai theme for textmate
|
||||
" by Wimer Hazenberg and its darker variant
|
||||
" by Hamish Stuart Macpherson
|
||||
"
|
||||
|
||||
hi clear
|
||||
|
||||
set background=dark
|
||||
if version > 580
|
||||
" no guarantees for version 5.8 and below, but this makes it stop
|
||||
" complaining
|
||||
hi clear
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
endif
|
||||
let g:colors_name="molokai"
|
||||
|
||||
if exists("g:molokai_original")
|
||||
let s:molokai_original = g:molokai_original
|
||||
else
|
||||
let s:molokai_original = 0
|
||||
endif
|
||||
|
||||
|
||||
hi Boolean guifg=#AE81FF
|
||||
hi Character guifg=#E6DB74
|
||||
hi Number guifg=#AE81FF
|
||||
hi String guifg=#E6DB74
|
||||
hi Conditional guifg=#F92672 gui=bold
|
||||
hi Constant guifg=#AE81FF gui=bold
|
||||
hi Cursor guifg=#000000 guibg=#F8F8F0
|
||||
hi Debug guifg=#BCA3A3 gui=bold
|
||||
hi Define guifg=#66D9EF
|
||||
hi Delimiter guifg=#8F8F8F
|
||||
hi DiffAdd guibg=#13354A
|
||||
hi DiffChange guifg=#89807D guibg=#4C4745
|
||||
hi DiffDelete guifg=#960050 guibg=#1E0010
|
||||
hi DiffText guibg=#4C4745 gui=italic,bold
|
||||
|
||||
hi Directory guifg=#A6E22E gui=bold
|
||||
hi Error guifg=#960050 guibg=#1E0010
|
||||
hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold
|
||||
hi Exception guifg=#A6E22E gui=bold
|
||||
hi Float guifg=#AE81FF
|
||||
hi FoldColumn guifg=#465457 guibg=#000000
|
||||
hi Folded guifg=#465457 guibg=#000000
|
||||
hi Function guifg=#A6E22E
|
||||
hi Identifier guifg=#FD971F
|
||||
hi Ignore guifg=#808080 guibg=bg
|
||||
hi IncSearch guifg=#C4BE89 guibg=#000000
|
||||
|
||||
hi Keyword guifg=#F92672 gui=bold
|
||||
hi Label guifg=#E6DB74 gui=none
|
||||
hi Macro guifg=#C4BE89 gui=italic
|
||||
hi SpecialKey guifg=#66D9EF gui=italic
|
||||
|
||||
hi MatchParen guifg=#000000 guibg=#FD971F gui=bold
|
||||
hi ModeMsg guifg=#E6DB74
|
||||
hi MoreMsg guifg=#E6DB74
|
||||
hi Operator guifg=#F92672
|
||||
|
||||
" complete menu
|
||||
hi Pmenu guifg=#66D9EF guibg=#000000
|
||||
hi PmenuSel guibg=#808080
|
||||
hi PmenuSbar guibg=#080808
|
||||
hi PmenuThumb guifg=#66D9EF
|
||||
|
||||
hi PreCondit guifg=#A6E22E gui=bold
|
||||
hi PreProc guifg=#A6E22E
|
||||
hi Question guifg=#66D9EF
|
||||
hi Repeat guifg=#F92672 gui=bold
|
||||
hi Search guifg=#FFFFFF guibg=#455354
|
||||
" marks column
|
||||
hi SignColumn guifg=#A6E22E guibg=#232526
|
||||
hi SpecialChar guifg=#F92672 gui=bold
|
||||
hi SpecialComment guifg=#465457 gui=bold
|
||||
hi Special guifg=#66D9EF guibg=bg gui=italic
|
||||
hi SpecialKey guifg=#888A85 gui=italic
|
||||
if has("spell")
|
||||
hi SpellBad guisp=#FF0000 gui=undercurl
|
||||
hi SpellCap guisp=#7070F0 gui=undercurl
|
||||
hi SpellLocal guisp=#70F0F0 gui=undercurl
|
||||
hi SpellRare guisp=#FFFFFF gui=undercurl
|
||||
endif
|
||||
hi Statement guifg=#F92672 gui=bold
|
||||
hi StatusLine guifg=#455354 guibg=fg
|
||||
hi StatusLineNC guifg=#808080 guibg=#080808
|
||||
hi StorageClass guifg=#FD971F gui=italic
|
||||
hi Structure guifg=#66D9EF
|
||||
hi Tag guifg=#F92672 gui=italic
|
||||
hi Title guifg=#ef5939
|
||||
hi Todo guifg=#FFFFFF guibg=bg gui=bold
|
||||
|
||||
hi Typedef guifg=#66D9EF
|
||||
hi Type guifg=#66D9EF gui=none
|
||||
hi Underlined guifg=#808080 gui=underline
|
||||
|
||||
hi VertSplit guifg=#808080 guibg=#080808 gui=bold
|
||||
hi VisualNOS guibg=#403D3D
|
||||
hi Visual guibg=#403D3D
|
||||
hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold
|
||||
hi WildMenu guifg=#66D9EF guibg=#000000
|
||||
|
||||
if s:molokai_original == 1
|
||||
hi Normal guifg=#F8F8F2 guibg=#272822
|
||||
hi Comment guifg=#75715E
|
||||
hi CursorLine guibg=#3E3D32
|
||||
hi CursorColumn guibg=#3E3D32
|
||||
hi LineNr guifg=#BCBCBC guibg=#3B3A32
|
||||
hi NonText guifg=#BCBCBC guibg=#3B3A32
|
||||
else
|
||||
hi Normal guifg=#F8F8F2 guibg=#1B1D1E
|
||||
hi Comment guifg=#465457
|
||||
hi CursorLine guibg=#293739
|
||||
hi CursorColumn guibg=#293739
|
||||
hi LineNr guifg=#BCBCBC guibg=#232526
|
||||
hi NonText guifg=#BCBCBC guibg=#232526
|
||||
end
|
||||
|
||||
"
|
||||
" Support for 256-color terminal
|
||||
"
|
||||
if &t_Co > 255
|
||||
hi Boolean ctermfg=135
|
||||
hi Character ctermfg=144
|
||||
hi Number ctermfg=135
|
||||
hi String ctermfg=144
|
||||
hi Conditional ctermfg=161 cterm=bold
|
||||
hi Constant ctermfg=135 cterm=bold
|
||||
hi Cursor ctermfg=16 ctermbg=253
|
||||
hi Debug ctermfg=225 cterm=bold
|
||||
hi Define ctermfg=81
|
||||
hi Delimiter ctermfg=241
|
||||
|
||||
hi DiffAdd ctermbg=24
|
||||
hi DiffChange ctermfg=181 ctermbg=239
|
||||
hi DiffDelete ctermfg=162 ctermbg=53
|
||||
hi DiffText ctermbg=102 cterm=bold
|
||||
|
||||
hi Directory ctermfg=118 cterm=bold
|
||||
hi Error ctermfg=219 ctermbg=89
|
||||
hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold
|
||||
hi Exception ctermfg=118 cterm=bold
|
||||
hi Float ctermfg=135
|
||||
hi FoldColumn ctermfg=67 ctermbg=16
|
||||
hi Folded ctermfg=67 ctermbg=16
|
||||
hi Function ctermfg=118
|
||||
hi Identifier ctermfg=208
|
||||
hi Ignore ctermfg=244 ctermbg=232
|
||||
hi IncSearch ctermfg=193 ctermbg=16
|
||||
|
||||
hi Keyword ctermfg=161 cterm=bold
|
||||
hi Label ctermfg=229 cterm=none
|
||||
hi Macro ctermfg=193
|
||||
hi SpecialKey ctermfg=81
|
||||
|
||||
hi MatchParen ctermfg=16 ctermbg=208 cterm=bold
|
||||
hi ModeMsg ctermfg=229
|
||||
hi MoreMsg ctermfg=229
|
||||
hi Operator ctermfg=161
|
||||
|
||||
" complete menu
|
||||
hi Pmenu ctermfg=81 ctermbg=16
|
||||
hi PmenuSel ctermbg=244
|
||||
hi PmenuSbar ctermbg=232
|
||||
hi PmenuThumb ctermfg=81
|
||||
|
||||
hi PreCondit ctermfg=118 cterm=bold
|
||||
hi PreProc ctermfg=118
|
||||
hi Question ctermfg=81
|
||||
hi Repeat ctermfg=161 cterm=bold
|
||||
hi Search ctermfg=253 ctermbg=66
|
||||
|
||||
" marks column
|
||||
hi SignColumn ctermfg=118 ctermbg=235
|
||||
hi SpecialChar ctermfg=161 cterm=bold
|
||||
hi SpecialComment ctermfg=245 cterm=bold
|
||||
hi Special ctermfg=81 ctermbg=232
|
||||
hi SpecialKey ctermfg=245
|
||||
|
||||
hi Statement ctermfg=161 cterm=bold
|
||||
hi StatusLine ctermfg=238 ctermbg=253
|
||||
hi StatusLineNC ctermfg=244 ctermbg=232
|
||||
hi StorageClass ctermfg=208
|
||||
hi Structure ctermfg=81
|
||||
hi Tag ctermfg=161
|
||||
hi Title ctermfg=166
|
||||
hi Todo ctermfg=231 ctermbg=232 cterm=bold
|
||||
|
||||
hi Typedef ctermfg=81
|
||||
hi Type ctermfg=81 cterm=none
|
||||
hi Underlined ctermfg=244 cterm=underline
|
||||
|
||||
hi VertSplit ctermfg=244 ctermbg=232 cterm=bold
|
||||
hi VisualNOS ctermbg=238
|
||||
hi Visual ctermbg=235
|
||||
hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold
|
||||
hi WildMenu ctermfg=81 ctermbg=16
|
||||
|
||||
hi Normal ctermfg=252 ctermbg=233
|
||||
hi Comment ctermfg=59
|
||||
hi CursorLine ctermbg=234 cterm=none
|
||||
hi CursorColumn ctermbg=234
|
||||
hi LineNr ctermfg=250 ctermbg=234
|
||||
hi NonText ctermfg=250 ctermbg=234
|
||||
end
|
||||
@@ -1,225 +0,0 @@
|
||||
*ri.txt* by Jonas Fonseca <fonseca@diku.dk> Last change: Nov 27th 2002
|
||||
|
||||
|
||||
RI INTERFACE REFERENCE
|
||||
|
||||
Ri Interface *ri-interface* *ri-browser*
|
||||
|
||||
1. Installation |ri-installation|
|
||||
2. Terms |ri-terms|
|
||||
3. Options |ri-options|
|
||||
4. Events |ri-events|
|
||||
5. Mappings |ri-mappings|
|
||||
5.1 Prompting |ri-prompting|
|
||||
5.2 Cursorwords |ri-cursorwords|
|
||||
6. Bugs |ri-bugs|
|
||||
7. Todo |ri-todo|
|
||||
8. Credits |ri-credits|
|
||||
|
||||
==============================================================================
|
||||
1. Installation *ri-installation*
|
||||
|
||||
For instructions on installing this file, type >
|
||||
|
||||
:help add-local-help
|
||||
|
||||
inside Vim.
|
||||
|
||||
The Ri interface consists of 3 files: >
|
||||
|
||||
ftplugin/ri.vim
|
||||
syntax/ri.vim
|
||||
doc/ri.txt
|
||||
|
||||
With those in you vim directory add something like >
|
||||
|
||||
" Load ri interface
|
||||
source path/to/ftplugin/ri.vim
|
||||
|
||||
to your ftplugin/ruby.vim to load it when editing ruby files.
|
||||
|
||||
==============================================================================
|
||||
2. Terms *ri-terms*
|
||||
|
||||
|ri-class-buffer| *ri-class-buffer*
|
||||
|
||||
A Ri class/module buffer is a buffer showing all the methods belonging
|
||||
to a class or modul. Example: typing >
|
||||
|
||||
:Ri Hash
|
||||
|
||||
< followed by enter in normal mode will open the 'Hash' class buffer.
|
||||
|
||||
==============================================================================
|
||||
3. Options *ri-options*
|
||||
|
||||
To set an option simply put >
|
||||
|
||||
let <option> = <value>
|
||||
|
||||
in your vimrc file. Example: to turn on unfolding when lookups return
|
||||
multiple matches put >
|
||||
|
||||
let ri_unfold_nonunique = 'on'
|
||||
|
||||
in your vimrc file.
|
||||
|
||||
Note: For all string/bool options goes that setting them to anything different
|
||||
from the default will result in the opposite behaviour.
|
||||
|
||||
*ri_split_orientation*
|
||||
|ri_split_orientation| (type: string/bool) (default: 'horizontal')
|
||||
|
||||
Controls the split orientation when creating the Ri buffer.
|
||||
|
||||
*ri_nonprompt_history*
|
||||
|ri_nonprompt_history| (type: string/bool) (default: 'add')
|
||||
|
||||
Controls wether lookups derived from word under the cursor should be
|
||||
added to the input history so it is available in later when doing a
|
||||
prompting lookup.
|
||||
|
||||
*ri_unfold_nonunique*
|
||||
|ri_unfold_nonunique| (type: string/bool) (default: 'off')
|
||||
|
||||
Controls wether to unfold and thereby vertically line up all
|
||||
possibilities when doing non-unique method lookups. This can make it
|
||||
easier to locate methods.
|
||||
|
||||
*ri_add_foldmarkers*
|
||||
|ri_add_foldmarkers| (type: string/bool) (default: 'on')
|
||||
|
||||
Will add foldmarkers to a buffer containing the result from doing a
|
||||
non-unique method lookup. This option is only available when
|
||||
ri_unfold_nonunique_matches is set to 'on'.
|
||||
|
||||
Note: Syntax coloring may not work optimal for big searches.
|
||||
|
||||
*ri_check_expansion*
|
||||
|ri_check_expansion| (type: string/bool) (default: 'on')
|
||||
|
||||
Controls wether to abandon expansion when the search term's first
|
||||
character is uppercase (In Ruby this indicates a class or module name)
|
||||
to avoid bogus lookups like 'Array#Hash'. Only affects lookups done in
|
||||
a Ri class/module buffer (|ri-class-buffer|).
|
||||
|
||||
Provided as an option since lookups like 'Kernel#Array' are valid
|
||||
although this should not be important since this will result in the
|
||||
same lookup as with checking enabled. (see also impact on <M-[>
|
||||
mapping below)
|
||||
|
||||
*ri_prompt_complete*
|
||||
|ri_prompt_complete| (type: string/bool) (default: 'off')
|
||||
|
||||
With this option enabled extra attempts will be made to try and find a
|
||||
class or module name to completion. First the <cWORD> under the cursor
|
||||
is tested, then the first line of the buffer (where ri titles the
|
||||
current lookup) and finally the current line is searched.
|
||||
|
||||
NOTE: This is kind of hacked - but could be useful.
|
||||
|
||||
==============================================================================
|
||||
4. Events *ri-events*
|
||||
|
||||
It's possible to define autocommands to be run when a Ri buffer has
|
||||
been created. For instance, the following could be added to vimrc
|
||||
to provide a 'q' mapping to quit a Ri buffer: >
|
||||
|
||||
augroup Ri
|
||||
au Ri RiBufferCreated silent! nmap <unique> <buffer> q:bwipeout<cr>
|
||||
augroup END
|
||||
|
||||
==============================================================================
|
||||
5. Mappings *ri-mappings*
|
||||
|
||||
Below are a description of the default mappings that are defined.
|
||||
User-defined mappings can be used instead by mapping to <Plug>CommandName,
|
||||
for instance: >
|
||||
|
||||
nnoremap ,ri <Plug>Ri
|
||||
|
||||
The following command names are available:
|
||||
|
||||
*ri-commands* *:Ri* *:RiExpand*
|
||||
:Ri Takes the word to look up as argument. Example: >
|
||||
|
||||
:Ri Array#each
|
||||
|
||||
:RiExpand Takes the word to look up as argument but also prepends
|
||||
class/module if invoked in |ri-class-buffer| before promption
|
||||
for word. Example: in the Array class buffer 'Array#' will be
|
||||
prepended to the given word so invoking >
|
||||
|
||||
:RiExpand each
|
||||
|
||||
< would lookup 'Array#each'.
|
||||
|
||||
|
||||
4.1 Prompting *ri-prompting*
|
||||
|
||||
<M-i> Clean prompting for lookup word.
|
||||
<M-I> Initializes the prompting word to the class or module name if
|
||||
invoked in |ri-class-buffer| (ex: to 'Array#' when in Array
|
||||
class buffer)
|
||||
|
||||
<Leader>ri Same as <M-i>
|
||||
<Leader>rx Same as <M-I>
|
||||
|
||||
4.2 Cursorwords *ri-cursorwords*
|
||||
|
||||
When using the words under the cursor |WUC| trailing characters like
|
||||
punctuation dots, commas and parenthesis are removed before Ri is called.
|
||||
|
||||
<M-]> Gready expansion of WUC. This will work for both the
|
||||
'Array.new', 'Hash#each' and 'Kernel::block_given?' way of
|
||||
specifying a method.
|
||||
|
||||
<M-[> Not so gready expansion of WUC. This will try to extract the
|
||||
exact keyword under the cursor. Example: when the cursor is
|
||||
positioned on 'new' on the sequence 'Array.new.first' the
|
||||
keyword 'new' will be matched. After a match has been found
|
||||
the class or module name will be completed but only when in a
|
||||
|ri-class-buffer|. This makes it possible to lookup
|
||||
'Array#each' by placing cursor on 'each' in the 'Array' class
|
||||
buffer.
|
||||
|
||||
Note that when the option |ri_check_expansion| is not 'on'
|
||||
('on' being the default) this can result in bogus lookups like
|
||||
'Float#Marshall'.
|
||||
|
||||
==============================================================================
|
||||
6. Bugs *ri-bugs*
|
||||
|
||||
The following bugs are currently featured. ;)
|
||||
|
||||
* Frases containing the characters ~ and ' cases error when setting up the ri
|
||||
buffer.
|
||||
|
||||
==============================================================================
|
||||
7. Todo *ri-todo*
|
||||
|
||||
Still some rough edges to work on but quite usefull already. This is my first
|
||||
plugin so please send comments. Anyway here some possible futuristic
|
||||
improvements:
|
||||
|
||||
* Present multiple choices when prompting like: >
|
||||
|
||||
[1] Array | [2] Array#each | [3] each : Choose [1/2/3]
|
||||
|
||||
[1: Array / 2: Array#each / 3: each] : Choose [1/2/3]
|
||||
|
||||
* History: Could be buffer history but also class/module buffer history.
|
||||
Maybe use the preview window instead.
|
||||
Luckily Vim takes care of prompting history. :)
|
||||
|
||||
==============================================================================
|
||||
8. Credits *ri-credits*
|
||||
|
||||
The ri plugin is inspired by the ri stuff at RubyGarden's VimExtension page
|
||||
<URL:http://www.rubygarden.org/ruby?VimExtensions>
|
||||
|
||||
Credits to vimscript #90 <URL:http://www.vim.org/script.php?script_id=90>
|
||||
for much of the lovely code.
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
@@ -1,262 +0,0 @@
|
||||
'NERDChristmasTree' NERD_tree.txt /*'NERDChristmasTree'*
|
||||
'NERDTreeAutoCenter' NERD_tree.txt /*'NERDTreeAutoCenter'*
|
||||
'NERDTreeAutoCenterThreshold' NERD_tree.txt /*'NERDTreeAutoCenterThreshold'*
|
||||
'NERDTreeBookmarksFile' NERD_tree.txt /*'NERDTreeBookmarksFile'*
|
||||
'NERDTreeCaseSensitiveSort' NERD_tree.txt /*'NERDTreeCaseSensitiveSort'*
|
||||
'NERDTreeChDirMode' NERD_tree.txt /*'NERDTreeChDirMode'*
|
||||
'NERDTreeHighlightCursorline' NERD_tree.txt /*'NERDTreeHighlightCursorline'*
|
||||
'NERDTreeHijackNetrw' NERD_tree.txt /*'NERDTreeHijackNetrw'*
|
||||
'NERDTreeIgnore' NERD_tree.txt /*'NERDTreeIgnore'*
|
||||
'NERDTreeMouseMode' NERD_tree.txt /*'NERDTreeMouseMode'*
|
||||
'NERDTreeQuitOnOpen' NERD_tree.txt /*'NERDTreeQuitOnOpen'*
|
||||
'NERDTreeShowBookmarks' NERD_tree.txt /*'NERDTreeShowBookmarks'*
|
||||
'NERDTreeShowFiles' NERD_tree.txt /*'NERDTreeShowFiles'*
|
||||
'NERDTreeShowHidden' NERD_tree.txt /*'NERDTreeShowHidden'*
|
||||
'NERDTreeShowLineNumbers' NERD_tree.txt /*'NERDTreeShowLineNumbers'*
|
||||
'NERDTreeSortOrder' NERD_tree.txt /*'NERDTreeSortOrder'*
|
||||
'NERDTreeStatusline' NERD_tree.txt /*'NERDTreeStatusline'*
|
||||
'NERDTreeWinPos' NERD_tree.txt /*'NERDTreeWinPos'*
|
||||
'NERDTreeWinSize' NERD_tree.txt /*'NERDTreeWinSize'*
|
||||
'loaded_nerd_tree' NERD_tree.txt /*'loaded_nerd_tree'*
|
||||
'snippets' snipMate.txt /*'snippets'*
|
||||
.snippet snipMate.txt /*.snippet*
|
||||
.snippets snipMate.txt /*.snippets*
|
||||
:FufAddBookmark fuf.txt /*:FufAddBookmark*
|
||||
:FufAddBookmarkAsSelectedText fuf.txt /*:FufAddBookmarkAsSelectedText*
|
||||
:FufBookmark fuf.txt /*:FufBookmark*
|
||||
:FufBuffer fuf.txt /*:FufBuffer*
|
||||
:FufChangeList fuf.txt /*:FufChangeList*
|
||||
:FufDir fuf.txt /*:FufDir*
|
||||
:FufDirWithCurrentBufferDir fuf.txt /*:FufDirWithCurrentBufferDir*
|
||||
:FufDirWithFullCwd fuf.txt /*:FufDirWithFullCwd*
|
||||
:FufEditInfo fuf.txt /*:FufEditInfo*
|
||||
:FufFile fuf.txt /*:FufFile*
|
||||
:FufFileWithCurrentBufferDir fuf.txt /*:FufFileWithCurrentBufferDir*
|
||||
:FufFileWithFullCwd fuf.txt /*:FufFileWithFullCwd*
|
||||
:FufHelp fuf.txt /*:FufHelp*
|
||||
:FufJumpList fuf.txt /*:FufJumpList*
|
||||
:FufLine fuf.txt /*:FufLine*
|
||||
:FufMruCmd fuf.txt /*:FufMruCmd*
|
||||
:FufMruFile fuf.txt /*:FufMruFile*
|
||||
:FufQuickfix fuf.txt /*:FufQuickfix*
|
||||
:FufRenewCache fuf.txt /*:FufRenewCache*
|
||||
:FufTag fuf.txt /*:FufTag*
|
||||
:FufTagWithCursorWord fuf.txt /*:FufTagWithCursorWord*
|
||||
:FufTaggedFile fuf.txt /*:FufTaggedFile*
|
||||
:NERDTree NERD_tree.txt /*:NERDTree*
|
||||
:NERDTreeClose NERD_tree.txt /*:NERDTreeClose*
|
||||
:NERDTreeFind NERD_tree.txt /*:NERDTreeFind*
|
||||
:NERDTreeFromBookmark NERD_tree.txt /*:NERDTreeFromBookmark*
|
||||
:NERDTreeMirror NERD_tree.txt /*:NERDTreeMirror*
|
||||
:NERDTreeToggle NERD_tree.txt /*:NERDTreeToggle*
|
||||
ExtractSnips() snipMate.txt /*ExtractSnips()*
|
||||
ExtractSnipsFile() snipMate.txt /*ExtractSnipsFile()*
|
||||
Filename() snipMate.txt /*Filename()*
|
||||
NERDTree NERD_tree.txt /*NERDTree*
|
||||
NERDTree-? NERD_tree.txt /*NERDTree-?*
|
||||
NERDTree-A NERD_tree.txt /*NERDTree-A*
|
||||
NERDTree-B NERD_tree.txt /*NERDTree-B*
|
||||
NERDTree-C NERD_tree.txt /*NERDTree-C*
|
||||
NERDTree-C-J NERD_tree.txt /*NERDTree-C-J*
|
||||
NERDTree-C-K NERD_tree.txt /*NERDTree-C-K*
|
||||
NERDTree-D NERD_tree.txt /*NERDTree-D*
|
||||
NERDTree-F NERD_tree.txt /*NERDTree-F*
|
||||
NERDTree-I NERD_tree.txt /*NERDTree-I*
|
||||
NERDTree-J NERD_tree.txt /*NERDTree-J*
|
||||
NERDTree-K NERD_tree.txt /*NERDTree-K*
|
||||
NERDTree-O NERD_tree.txt /*NERDTree-O*
|
||||
NERDTree-P NERD_tree.txt /*NERDTree-P*
|
||||
NERDTree-R NERD_tree.txt /*NERDTree-R*
|
||||
NERDTree-T NERD_tree.txt /*NERDTree-T*
|
||||
NERDTree-U NERD_tree.txt /*NERDTree-U*
|
||||
NERDTree-X NERD_tree.txt /*NERDTree-X*
|
||||
NERDTree-cd NERD_tree.txt /*NERDTree-cd*
|
||||
NERDTree-contents NERD_tree.txt /*NERDTree-contents*
|
||||
NERDTree-e NERD_tree.txt /*NERDTree-e*
|
||||
NERDTree-f NERD_tree.txt /*NERDTree-f*
|
||||
NERDTree-gi NERD_tree.txt /*NERDTree-gi*
|
||||
NERDTree-go NERD_tree.txt /*NERDTree-go*
|
||||
NERDTree-gs NERD_tree.txt /*NERDTree-gs*
|
||||
NERDTree-i NERD_tree.txt /*NERDTree-i*
|
||||
NERDTree-m NERD_tree.txt /*NERDTree-m*
|
||||
NERDTree-o NERD_tree.txt /*NERDTree-o*
|
||||
NERDTree-p NERD_tree.txt /*NERDTree-p*
|
||||
NERDTree-q NERD_tree.txt /*NERDTree-q*
|
||||
NERDTree-r NERD_tree.txt /*NERDTree-r*
|
||||
NERDTree-s NERD_tree.txt /*NERDTree-s*
|
||||
NERDTree-t NERD_tree.txt /*NERDTree-t*
|
||||
NERDTree-u NERD_tree.txt /*NERDTree-u*
|
||||
NERDTree-x NERD_tree.txt /*NERDTree-x*
|
||||
NERDTreeAPI NERD_tree.txt /*NERDTreeAPI*
|
||||
NERDTreeAbout NERD_tree.txt /*NERDTreeAbout*
|
||||
NERDTreeAddKeyMap() NERD_tree.txt /*NERDTreeAddKeyMap()*
|
||||
NERDTreeAddMenuItem() NERD_tree.txt /*NERDTreeAddMenuItem()*
|
||||
NERDTreeAddMenuSeparator() NERD_tree.txt /*NERDTreeAddMenuSeparator()*
|
||||
NERDTreeAddSubmenu() NERD_tree.txt /*NERDTreeAddSubmenu()*
|
||||
NERDTreeBookmarkCommands NERD_tree.txt /*NERDTreeBookmarkCommands*
|
||||
NERDTreeBookmarkTable NERD_tree.txt /*NERDTreeBookmarkTable*
|
||||
NERDTreeBookmarks NERD_tree.txt /*NERDTreeBookmarks*
|
||||
NERDTreeChangelog NERD_tree.txt /*NERDTreeChangelog*
|
||||
NERDTreeCredits NERD_tree.txt /*NERDTreeCredits*
|
||||
NERDTreeFunctionality NERD_tree.txt /*NERDTreeFunctionality*
|
||||
NERDTreeGlobalCommands NERD_tree.txt /*NERDTreeGlobalCommands*
|
||||
NERDTreeInvalidBookmarks NERD_tree.txt /*NERDTreeInvalidBookmarks*
|
||||
NERDTreeKeymapAPI NERD_tree.txt /*NERDTreeKeymapAPI*
|
||||
NERDTreeLicense NERD_tree.txt /*NERDTreeLicense*
|
||||
NERDTreeMappings NERD_tree.txt /*NERDTreeMappings*
|
||||
NERDTreeMenu NERD_tree.txt /*NERDTreeMenu*
|
||||
NERDTreeMenuAPI NERD_tree.txt /*NERDTreeMenuAPI*
|
||||
NERDTreeOptionDetails NERD_tree.txt /*NERDTreeOptionDetails*
|
||||
NERDTreeOptionSummary NERD_tree.txt /*NERDTreeOptionSummary*
|
||||
NERDTreeOptions NERD_tree.txt /*NERDTreeOptions*
|
||||
NERDTreeRender() NERD_tree.txt /*NERDTreeRender()*
|
||||
NERD_tree.txt NERD_tree.txt /*NERD_tree.txt*
|
||||
ResetSnippets() snipMate.txt /*ResetSnippets()*
|
||||
abc fuf.txt /*abc*
|
||||
fuf fuf.txt /*fuf*
|
||||
fuf-abbreviation fuf.txt /*fuf-abbreviation*
|
||||
fuf-about fuf.txt /*fuf-about*
|
||||
fuf-author fuf.txt /*fuf-author*
|
||||
fuf-bookmark-mode fuf.txt /*fuf-bookmark-mode*
|
||||
fuf-buffer-mode fuf.txt /*fuf-buffer-mode*
|
||||
fuf-cache fuf.txt /*fuf-cache*
|
||||
fuf-callbackfile-mode fuf.txt /*fuf-callbackfile-mode*
|
||||
fuf-callbackitem-mode fuf.txt /*fuf-callbackitem-mode*
|
||||
fuf-changelist-mode fuf.txt /*fuf-changelist-mode*
|
||||
fuf-changelog fuf.txt /*fuf-changelog*
|
||||
fuf-commands fuf.txt /*fuf-commands*
|
||||
fuf-contact fuf.txt /*fuf-contact*
|
||||
fuf-detailed-topics fuf.txt /*fuf-detailed-topics*
|
||||
fuf-dir-mode fuf.txt /*fuf-dir-mode*
|
||||
fuf-dot-sequence fuf.txt /*fuf-dot-sequence*
|
||||
fuf-file-mode fuf.txt /*fuf-file-mode*
|
||||
fuf-givencmd-mode fuf.txt /*fuf-givencmd-mode*
|
||||
fuf-givendir-mode fuf.txt /*fuf-givendir-mode*
|
||||
fuf-givenfile-mode fuf.txt /*fuf-givenfile-mode*
|
||||
fuf-help-mode fuf.txt /*fuf-help-mode*
|
||||
fuf-hiding-menu fuf.txt /*fuf-hiding-menu*
|
||||
fuf-information-file fuf.txt /*fuf-information-file*
|
||||
fuf-installation fuf.txt /*fuf-installation*
|
||||
fuf-introduction fuf.txt /*fuf-introduction*
|
||||
fuf-jumplist-mode fuf.txt /*fuf-jumplist-mode*
|
||||
fuf-line-mode fuf.txt /*fuf-line-mode*
|
||||
fuf-migemo fuf.txt /*fuf-migemo*
|
||||
fuf-modes fuf.txt /*fuf-modes*
|
||||
fuf-mrucmd-mode fuf.txt /*fuf-mrucmd-mode*
|
||||
fuf-mrufile-mode fuf.txt /*fuf-mrufile-mode*
|
||||
fuf-multiple-search fuf.txt /*fuf-multiple-search*
|
||||
fuf-options fuf.txt /*fuf-options*
|
||||
fuf-options-for-Bookmark-mode fuf.txt /*fuf-options-for-Bookmark-mode*
|
||||
fuf-options-for-all-modes fuf.txt /*fuf-options-for-all-modes*
|
||||
fuf-options-for-buffer-mode fuf.txt /*fuf-options-for-buffer-mode*
|
||||
fuf-options-for-changelist-mode fuf.txt /*fuf-options-for-changelist-mode*
|
||||
fuf-options-for-dir-mode fuf.txt /*fuf-options-for-dir-mode*
|
||||
fuf-options-for-file-mode fuf.txt /*fuf-options-for-file-mode*
|
||||
fuf-options-for-help-mode fuf.txt /*fuf-options-for-help-mode*
|
||||
fuf-options-for-jumplist-mode fuf.txt /*fuf-options-for-jumplist-mode*
|
||||
fuf-options-for-line-mode fuf.txt /*fuf-options-for-line-mode*
|
||||
fuf-options-for-mrucmd-mode fuf.txt /*fuf-options-for-mrucmd-mode*
|
||||
fuf-options-for-mrufile-mode fuf.txt /*fuf-options-for-mrufile-mode*
|
||||
fuf-options-for-quickfix-mode fuf.txt /*fuf-options-for-quickfix-mode*
|
||||
fuf-options-for-tag-mode fuf.txt /*fuf-options-for-tag-mode*
|
||||
fuf-options-for-taggedfile-mode fuf.txt /*fuf-options-for-taggedfile-mode*
|
||||
fuf-quickfix-mode fuf.txt /*fuf-quickfix-mode*
|
||||
fuf-reusing-window fuf.txt /*fuf-reusing-window*
|
||||
fuf-search-patterns fuf.txt /*fuf-search-patterns*
|
||||
fuf-sorting-of-completion-items fuf.txt /*fuf-sorting-of-completion-items*
|
||||
fuf-tag-mode fuf.txt /*fuf-tag-mode*
|
||||
fuf-taggedfile-mode fuf.txt /*fuf-taggedfile-mode*
|
||||
fuf-thanks fuf.txt /*fuf-thanks*
|
||||
fuf-usage fuf.txt /*fuf-usage*
|
||||
fuf-vimrc-example fuf.txt /*fuf-vimrc-example*
|
||||
fuf.txt fuf.txt /*fuf.txt*
|
||||
fuzzyfinder fuf.txt /*fuzzyfinder*
|
||||
g:fuf_abbrevMap fuf.txt /*g:fuf_abbrevMap*
|
||||
g:fuf_bookmark_keyDelete fuf.txt /*g:fuf_bookmark_keyDelete*
|
||||
g:fuf_bookmark_prompt fuf.txt /*g:fuf_bookmark_prompt*
|
||||
g:fuf_bookmark_searchRange fuf.txt /*g:fuf_bookmark_searchRange*
|
||||
g:fuf_bookmark_switchOrder fuf.txt /*g:fuf_bookmark_switchOrder*
|
||||
g:fuf_buffer_mruOrder fuf.txt /*g:fuf_buffer_mruOrder*
|
||||
g:fuf_buffer_prompt fuf.txt /*g:fuf_buffer_prompt*
|
||||
g:fuf_buffer_switchOrder fuf.txt /*g:fuf_buffer_switchOrder*
|
||||
g:fuf_changelist_prompt fuf.txt /*g:fuf_changelist_prompt*
|
||||
g:fuf_changelist_switchOrder fuf.txt /*g:fuf_changelist_switchOrder*
|
||||
g:fuf_dir_exclude fuf.txt /*g:fuf_dir_exclude*
|
||||
g:fuf_dir_prompt fuf.txt /*g:fuf_dir_prompt*
|
||||
g:fuf_dir_switchOrder fuf.txt /*g:fuf_dir_switchOrder*
|
||||
g:fuf_enumeratingLimit fuf.txt /*g:fuf_enumeratingLimit*
|
||||
g:fuf_file_exclude fuf.txt /*g:fuf_file_exclude*
|
||||
g:fuf_file_prompt fuf.txt /*g:fuf_file_prompt*
|
||||
g:fuf_file_switchOrder fuf.txt /*g:fuf_file_switchOrder*
|
||||
g:fuf_help_cache_dir fuf.txt /*g:fuf_help_cache_dir*
|
||||
g:fuf_help_prompt fuf.txt /*g:fuf_help_prompt*
|
||||
g:fuf_help_switchOrder fuf.txt /*g:fuf_help_switchOrder*
|
||||
g:fuf_ignoreCase fuf.txt /*g:fuf_ignoreCase*
|
||||
g:fuf_infoFile fuf.txt /*g:fuf_infoFile*
|
||||
g:fuf_jumplist_prompt fuf.txt /*g:fuf_jumplist_prompt*
|
||||
g:fuf_jumplist_switchOrder fuf.txt /*g:fuf_jumplist_switchOrder*
|
||||
g:fuf_keyNextMode fuf.txt /*g:fuf_keyNextMode*
|
||||
g:fuf_keyNextPattern fuf.txt /*g:fuf_keyNextPattern*
|
||||
g:fuf_keyOpen fuf.txt /*g:fuf_keyOpen*
|
||||
g:fuf_keyOpenSplit fuf.txt /*g:fuf_keyOpenSplit*
|
||||
g:fuf_keyOpenTabpage fuf.txt /*g:fuf_keyOpenTabpage*
|
||||
g:fuf_keyOpenVsplit fuf.txt /*g:fuf_keyOpenVsplit*
|
||||
g:fuf_keyPrevMode fuf.txt /*g:fuf_keyPrevMode*
|
||||
g:fuf_keyPrevPattern fuf.txt /*g:fuf_keyPrevPattern*
|
||||
g:fuf_keyPreview fuf.txt /*g:fuf_keyPreview*
|
||||
g:fuf_keySwitchMatching fuf.txt /*g:fuf_keySwitchMatching*
|
||||
g:fuf_learningLimit fuf.txt /*g:fuf_learningLimit*
|
||||
g:fuf_line_prompt fuf.txt /*g:fuf_line_prompt*
|
||||
g:fuf_line_switchOrder fuf.txt /*g:fuf_line_switchOrder*
|
||||
g:fuf_maxMenuWidth fuf.txt /*g:fuf_maxMenuWidth*
|
||||
g:fuf_modesDisable fuf.txt /*g:fuf_modesDisable*
|
||||
g:fuf_mrucmd_exclude fuf.txt /*g:fuf_mrucmd_exclude*
|
||||
g:fuf_mrucmd_maxItem fuf.txt /*g:fuf_mrucmd_maxItem*
|
||||
g:fuf_mrucmd_prompt fuf.txt /*g:fuf_mrucmd_prompt*
|
||||
g:fuf_mrucmd_switchOrder fuf.txt /*g:fuf_mrucmd_switchOrder*
|
||||
g:fuf_mrufile_exclude fuf.txt /*g:fuf_mrufile_exclude*
|
||||
g:fuf_mrufile_maxItem fuf.txt /*g:fuf_mrufile_maxItem*
|
||||
g:fuf_mrufile_prompt fuf.txt /*g:fuf_mrufile_prompt*
|
||||
g:fuf_mrufile_switchOrder fuf.txt /*g:fuf_mrufile_switchOrder*
|
||||
g:fuf_patternSeparator fuf.txt /*g:fuf_patternSeparator*
|
||||
g:fuf_previewHeight fuf.txt /*g:fuf_previewHeight*
|
||||
g:fuf_promptHighlight fuf.txt /*g:fuf_promptHighlight*
|
||||
g:fuf_quickfix_prompt fuf.txt /*g:fuf_quickfix_prompt*
|
||||
g:fuf_quickfix_switchOrder fuf.txt /*g:fuf_quickfix_switchOrder*
|
||||
g:fuf_reuseWindow fuf.txt /*g:fuf_reuseWindow*
|
||||
g:fuf_smartBs fuf.txt /*g:fuf_smartBs*
|
||||
g:fuf_splitPathMatching fuf.txt /*g:fuf_splitPathMatching*
|
||||
g:fuf_tag_cache_dir fuf.txt /*g:fuf_tag_cache_dir*
|
||||
g:fuf_tag_prompt fuf.txt /*g:fuf_tag_prompt*
|
||||
g:fuf_tag_switchOrder fuf.txt /*g:fuf_tag_switchOrder*
|
||||
g:fuf_taggedfile_cache_dir fuf.txt /*g:fuf_taggedfile_cache_dir*
|
||||
g:fuf_taggedfile_prompt fuf.txt /*g:fuf_taggedfile_prompt*
|
||||
g:fuf_taggedfile_switchOrder fuf.txt /*g:fuf_taggedfile_switchOrder*
|
||||
g:fuf_timeFormat fuf.txt /*g:fuf_timeFormat*
|
||||
g:fuf_useMigemo fuf.txt /*g:fuf_useMigemo*
|
||||
g:snippets_dir snipMate.txt /*g:snippets_dir*
|
||||
g:snips_author snipMate.txt /*g:snips_author*
|
||||
i_CTRL-R_<Tab> snipMate.txt /*i_CTRL-R_<Tab>*
|
||||
list-snippets snipMate.txt /*list-snippets*
|
||||
multi_snip snipMate.txt /*multi_snip*
|
||||
snipMate snipMate.txt /*snipMate*
|
||||
snipMate-$# snipMate.txt /*snipMate-$#*
|
||||
snipMate-${#:} snipMate.txt /*snipMate-${#:}*
|
||||
snipMate-${#} snipMate.txt /*snipMate-${#}*
|
||||
snipMate-author snipMate.txt /*snipMate-author*
|
||||
snipMate-commands snipMate.txt /*snipMate-commands*
|
||||
snipMate-contact snipMate.txt /*snipMate-contact*
|
||||
snipMate-description snipMate.txt /*snipMate-description*
|
||||
snipMate-disadvantages snipMate.txt /*snipMate-disadvantages*
|
||||
snipMate-expandtab snipMate.txt /*snipMate-expandtab*
|
||||
snipMate-features snipMate.txt /*snipMate-features*
|
||||
snipMate-filename snipMate.txt /*snipMate-filename*
|
||||
snipMate-indenting snipMate.txt /*snipMate-indenting*
|
||||
snipMate-placeholders snipMate.txt /*snipMate-placeholders*
|
||||
snipMate-remap snipMate.txt /*snipMate-remap*
|
||||
snipMate-settings snipMate.txt /*snipMate-settings*
|
||||
snipMate-usage snipMate.txt /*snipMate-usage*
|
||||
snipMate.txt snipMate.txt /*snipMate.txt*
|
||||
snippet snipMate.txt /*snippet*
|
||||
snippet-syntax snipMate.txt /*snippet-syntax*
|
||||
snippets snipMate.txt /*snippets*
|
||||
@@ -1,143 +0,0 @@
|
||||
!_TAG_FILE_ENCODING utf-8 //
|
||||
:FufAddBookmark fuf.jax /*:FufAddBookmark*
|
||||
:FufAddBookmarkAsSelectedText fuf.jax /*:FufAddBookmarkAsSelectedText*
|
||||
:FufBookmark fuf.jax /*:FufBookmark*
|
||||
:FufBuffer fuf.jax /*:FufBuffer*
|
||||
:FufChangeList fuf.jax /*:FufChangeList*
|
||||
:FufDir fuf.jax /*:FufDir*
|
||||
:FufDirWithCurrentBufferDir fuf.jax /*:FufDirWithCurrentBufferDir*
|
||||
:FufDirWithFullCwd fuf.jax /*:FufDirWithFullCwd*
|
||||
:FufEditInfo fuf.jax /*:FufEditInfo*
|
||||
:FufFile fuf.jax /*:FufFile*
|
||||
:FufFileWithCurrentBufferDir fuf.jax /*:FufFileWithCurrentBufferDir*
|
||||
:FufFileWithFullCwd fuf.jax /*:FufFileWithFullCwd*
|
||||
:FufHelp fuf.jax /*:FufHelp*
|
||||
:FufJumpList fuf.jax /*:FufJumpList*
|
||||
:FufLine fuf.jax /*:FufLine*
|
||||
:FufMruCmd fuf.jax /*:FufMruCmd*
|
||||
:FufMruFile fuf.jax /*:FufMruFile*
|
||||
:FufQuickfix fuf.jax /*:FufQuickfix*
|
||||
:FufRenewCache fuf.jax /*:FufRenewCache*
|
||||
:FufTag fuf.jax /*:FufTag*
|
||||
:FufTagWithCursorWord fuf.jax /*:FufTagWithCursorWord*
|
||||
:FufTaggedFile fuf.jax /*:FufTaggedFile*
|
||||
abc fuf.jax /*abc*
|
||||
fuf fuf.jax /*fuf*
|
||||
fuf-abbreviation fuf.jax /*fuf-abbreviation*
|
||||
fuf-about fuf.jax /*fuf-about*
|
||||
fuf-author fuf.jax /*fuf-author*
|
||||
fuf-bookmark-mode fuf.jax /*fuf-bookmark-mode*
|
||||
fuf-buffer-mode fuf.jax /*fuf-buffer-mode*
|
||||
fuf-cache fuf.jax /*fuf-cache*
|
||||
fuf-callbackfile-mode fuf.jax /*fuf-callbackfile-mode*
|
||||
fuf-callbackitem-mode fuf.jax /*fuf-callbackitem-mode*
|
||||
fuf-changelist-mode fuf.jax /*fuf-changelist-mode*
|
||||
fuf-commands fuf.jax /*fuf-commands*
|
||||
fuf-contact fuf.jax /*fuf-contact*
|
||||
fuf-detailed-topics fuf.jax /*fuf-detailed-topics*
|
||||
fuf-dir-mode fuf.jax /*fuf-dir-mode*
|
||||
fuf-dot-sequence fuf.jax /*fuf-dot-sequence*
|
||||
fuf-file-mode fuf.jax /*fuf-file-mode*
|
||||
fuf-givencmd-mode fuf.jax /*fuf-givencmd-mode*
|
||||
fuf-givendir-mode fuf.jax /*fuf-givendir-mode*
|
||||
fuf-givenfile-mode fuf.jax /*fuf-givenfile-mode*
|
||||
fuf-help-mode fuf.jax /*fuf-help-mode*
|
||||
fuf-hiding-menu fuf.jax /*fuf-hiding-menu*
|
||||
fuf-information-file fuf.jax /*fuf-information-file*
|
||||
fuf-installation fuf.jax /*fuf-installation*
|
||||
fuf-introduction fuf.jax /*fuf-introduction*
|
||||
fuf-jumplist-mode fuf.jax /*fuf-jumplist-mode*
|
||||
fuf-line-mode fuf.jax /*fuf-line-mode*
|
||||
fuf-migemo fuf.jax /*fuf-migemo*
|
||||
fuf-modes fuf.jax /*fuf-modes*
|
||||
fuf-mrucmd-mode fuf.jax /*fuf-mrucmd-mode*
|
||||
fuf-mrufile-mode fuf.jax /*fuf-mrufile-mode*
|
||||
fuf-multiple-search fuf.jax /*fuf-multiple-search*
|
||||
fuf-options fuf.jax /*fuf-options*
|
||||
fuf-options-for-Bookmark-mode fuf.jax /*fuf-options-for-Bookmark-mode*
|
||||
fuf-options-for-all-modes fuf.jax /*fuf-options-for-all-modes*
|
||||
fuf-options-for-buffer-mode fuf.jax /*fuf-options-for-buffer-mode*
|
||||
fuf-options-for-changelist-mode fuf.jax /*fuf-options-for-changelist-mode*
|
||||
fuf-options-for-dir-mode fuf.jax /*fuf-options-for-dir-mode*
|
||||
fuf-options-for-file-mode fuf.jax /*fuf-options-for-file-mode*
|
||||
fuf-options-for-help-mode fuf.jax /*fuf-options-for-help-mode*
|
||||
fuf-options-for-jumplist-mode fuf.jax /*fuf-options-for-jumplist-mode*
|
||||
fuf-options-for-line-mode fuf.jax /*fuf-options-for-line-mode*
|
||||
fuf-options-for-mrucmd-mode fuf.jax /*fuf-options-for-mrucmd-mode*
|
||||
fuf-options-for-mrufile-mode fuf.jax /*fuf-options-for-mrufile-mode*
|
||||
fuf-options-for-quickfix-mode fuf.jax /*fuf-options-for-quickfix-mode*
|
||||
fuf-options-for-tag-mode fuf.jax /*fuf-options-for-tag-mode*
|
||||
fuf-options-for-taggedfile-mode fuf.jax /*fuf-options-for-taggedfile-mode*
|
||||
fuf-quickfix-mode fuf.jax /*fuf-quickfix-mode*
|
||||
fuf-reusing-window fuf.jax /*fuf-reusing-window*
|
||||
fuf-search-patterns fuf.jax /*fuf-search-patterns*
|
||||
fuf-sorting-of-completion-items fuf.jax /*fuf-sorting-of-completion-items*
|
||||
fuf-tag-mode fuf.jax /*fuf-tag-mode*
|
||||
fuf-taggedfile-mode fuf.jax /*fuf-taggedfile-mode*
|
||||
fuf-usage fuf.jax /*fuf-usage*
|
||||
fuf-vimrc-example fuf.jax /*fuf-vimrc-example*
|
||||
fuf.jax fuf.jax /*fuf.jax*
|
||||
fuzzyfinder fuf.jax /*fuzzyfinder*
|
||||
g:fuf_abbrevMap fuf.jax /*g:fuf_abbrevMap*
|
||||
g:fuf_bookmark_keyDelete fuf.jax /*g:fuf_bookmark_keyDelete*
|
||||
g:fuf_bookmark_prompt fuf.jax /*g:fuf_bookmark_prompt*
|
||||
g:fuf_bookmark_searchRange fuf.jax /*g:fuf_bookmark_searchRange*
|
||||
g:fuf_bookmark_switchOrder fuf.jax /*g:fuf_bookmark_switchOrder*
|
||||
g:fuf_buffer_mruOrder fuf.jax /*g:fuf_buffer_mruOrder*
|
||||
g:fuf_buffer_prompt fuf.jax /*g:fuf_buffer_prompt*
|
||||
g:fuf_buffer_switchOrder fuf.jax /*g:fuf_buffer_switchOrder*
|
||||
g:fuf_changelist_prompt fuf.jax /*g:fuf_changelist_prompt*
|
||||
g:fuf_changelist_switchOrder fuf.jax /*g:fuf_changelist_switchOrder*
|
||||
g:fuf_dir_exclude fuf.jax /*g:fuf_dir_exclude*
|
||||
g:fuf_dir_prompt fuf.jax /*g:fuf_dir_prompt*
|
||||
g:fuf_dir_switchOrder fuf.jax /*g:fuf_dir_switchOrder*
|
||||
g:fuf_enumeratingLimit fuf.jax /*g:fuf_enumeratingLimit*
|
||||
g:fuf_file_exclude fuf.jax /*g:fuf_file_exclude*
|
||||
g:fuf_file_prompt fuf.jax /*g:fuf_file_prompt*
|
||||
g:fuf_file_switchOrder fuf.jax /*g:fuf_file_switchOrder*
|
||||
g:fuf_help_cache_dir fuf.jax /*g:fuf_help_cache_dir*
|
||||
g:fuf_help_prompt fuf.jax /*g:fuf_help_prompt*
|
||||
g:fuf_help_switchOrder fuf.jax /*g:fuf_help_switchOrder*
|
||||
g:fuf_ignoreCase fuf.jax /*g:fuf_ignoreCase*
|
||||
g:fuf_infoFile fuf.jax /*g:fuf_infoFile*
|
||||
g:fuf_jumplist_prompt fuf.jax /*g:fuf_jumplist_prompt*
|
||||
g:fuf_jumplist_switchOrder fuf.jax /*g:fuf_jumplist_switchOrder*
|
||||
g:fuf_keyNextMode fuf.jax /*g:fuf_keyNextMode*
|
||||
g:fuf_keyNextPattern fuf.jax /*g:fuf_keyNextPattern*
|
||||
g:fuf_keyOpen fuf.jax /*g:fuf_keyOpen*
|
||||
g:fuf_keyOpenSplit fuf.jax /*g:fuf_keyOpenSplit*
|
||||
g:fuf_keyOpenTabpage fuf.jax /*g:fuf_keyOpenTabpage*
|
||||
g:fuf_keyOpenVsplit fuf.jax /*g:fuf_keyOpenVsplit*
|
||||
g:fuf_keyPrevMode fuf.jax /*g:fuf_keyPrevMode*
|
||||
g:fuf_keyPrevPattern fuf.jax /*g:fuf_keyPrevPattern*
|
||||
g:fuf_keyPreview fuf.jax /*g:fuf_keyPreview*
|
||||
g:fuf_keySwitchMatching fuf.jax /*g:fuf_keySwitchMatching*
|
||||
g:fuf_learningLimit fuf.jax /*g:fuf_learningLimit*
|
||||
g:fuf_line_prompt fuf.jax /*g:fuf_line_prompt*
|
||||
g:fuf_line_switchOrder fuf.jax /*g:fuf_line_switchOrder*
|
||||
g:fuf_maxMenuWidth fuf.jax /*g:fuf_maxMenuWidth*
|
||||
g:fuf_modesDisable fuf.jax /*g:fuf_modesDisable*
|
||||
g:fuf_mrucmd_exclude fuf.jax /*g:fuf_mrucmd_exclude*
|
||||
g:fuf_mrucmd_maxItem fuf.jax /*g:fuf_mrucmd_maxItem*
|
||||
g:fuf_mrucmd_prompt fuf.jax /*g:fuf_mrucmd_prompt*
|
||||
g:fuf_mrucmd_switchOrder fuf.jax /*g:fuf_mrucmd_switchOrder*
|
||||
g:fuf_mrufile_exclude fuf.jax /*g:fuf_mrufile_exclude*
|
||||
g:fuf_mrufile_maxItem fuf.jax /*g:fuf_mrufile_maxItem*
|
||||
g:fuf_mrufile_prompt fuf.jax /*g:fuf_mrufile_prompt*
|
||||
g:fuf_mrufile_switchOrder fuf.jax /*g:fuf_mrufile_switchOrder*
|
||||
g:fuf_patternSeparator fuf.jax /*g:fuf_patternSeparator*
|
||||
g:fuf_previewHeight fuf.jax /*g:fuf_previewHeight*
|
||||
g:fuf_promptHighlight fuf.jax /*g:fuf_promptHighlight*
|
||||
g:fuf_quickfix_prompt fuf.jax /*g:fuf_quickfix_prompt*
|
||||
g:fuf_quickfix_switchOrder fuf.jax /*g:fuf_quickfix_switchOrder*
|
||||
g:fuf_reuseWindow fuf.jax /*g:fuf_reuseWindow*
|
||||
g:fuf_smartBs fuf.jax /*g:fuf_smartBs*
|
||||
g:fuf_splitPathMatching fuf.jax /*g:fuf_splitPathMatching*
|
||||
g:fuf_tag_cache_dir fuf.jax /*g:fuf_tag_cache_dir*
|
||||
g:fuf_tag_prompt fuf.jax /*g:fuf_tag_prompt*
|
||||
g:fuf_tag_switchOrder fuf.jax /*g:fuf_tag_switchOrder*
|
||||
g:fuf_taggedfile_cache_dir fuf.jax /*g:fuf_taggedfile_cache_dir*
|
||||
g:fuf_taggedfile_prompt fuf.jax /*g:fuf_taggedfile_prompt*
|
||||
g:fuf_taggedfile_switchOrder fuf.jax /*g:fuf_taggedfile_switchOrder*
|
||||
g:fuf_timeFormat fuf.jax /*g:fuf_timeFormat*
|
||||
g:fuf_useMigemo fuf.jax /*g:fuf_useMigemo*
|
||||
@@ -1,21 +0,0 @@
|
||||
" Ruby
|
||||
au BufNewFile,BufRead *.rb,*.rbw,*.gem,*.gemspec set filetype=ruby
|
||||
|
||||
" Ruby on Rails
|
||||
au BufNewFile,BufRead *.builder,*.rxml,*.rjs set filetype=ruby
|
||||
|
||||
" Rakefile
|
||||
au BufNewFile,BufRead [rR]akefile,*.rake set filetype=ruby
|
||||
|
||||
" Rantfile
|
||||
au BufNewFile,BufRead [rR]antfile,*.rant set filetype=ruby
|
||||
|
||||
" IRB config
|
||||
au BufNewFile,BufRead .irbrc,irbrc set filetype=ruby
|
||||
|
||||
" eRuby
|
||||
au BufNewFile,BufRead *.erb,*.rhtml set filetype=eruby
|
||||
|
||||
" Thorfile
|
||||
au BufNewFile,BufRead [tT]horfile,*.thor set filetype=ruby
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
au BufRead,BufNewFile *.zsh-theme set filetype=zsh
|
||||
@@ -1,292 +0,0 @@
|
||||
" Vim filetype plugin
|
||||
" Language: ri / Ruby Information
|
||||
" Description: Interface for browsing ri/ruby documentation.
|
||||
" Maintainer: Jonas Fonseca <fonseca@diku.dk>
|
||||
" Last Change: Nov 26th 2002
|
||||
" CVS Tag: $Id: ri.vim,v 1.7 2002/11/27 03:39:26 fonseca Exp $
|
||||
" License: This file is placed in the public domain.
|
||||
" Credits: Thanks to Bob Hiestand <bob@hiestandfamily.org> for making
|
||||
" the cvscommand.vim plugin from which much of the code
|
||||
" derives. <URL:http://www.vim.org/script.php?script_id=90>
|
||||
"
|
||||
" Section: Documentation {{{1
|
||||
"
|
||||
" Below is just a description of the basic installation. For futher
|
||||
" documentation on usage and configuration take a look at the file doc/ri.txt
|
||||
"
|
||||
" Installation: {{{2
|
||||
"
|
||||
" The Ri interface consists of 3 files:
|
||||
"
|
||||
" ftplugin/ri.vim
|
||||
" syntax/ri.vim
|
||||
" doc/ri.txt
|
||||
"
|
||||
" With those in you vim directory add something like
|
||||
"
|
||||
" " Load ri interface
|
||||
" source path/to/ftplugin/ri.vim
|
||||
"
|
||||
" to your ftplugin/ruby.vim to load it when editing ruby files.
|
||||
"
|
||||
" Section: Initialization {{{1
|
||||
" Only do this when not done yet for this buffer
|
||||
|
||||
if exists("g:did_ri_interface")
|
||||
finish
|
||||
else
|
||||
" Don't load another plugin for this buffer
|
||||
let g:did_ri_interface = 1
|
||||
endif
|
||||
|
||||
" Section: Event group setup {{{1
|
||||
|
||||
augroup Ri
|
||||
augroup END
|
||||
|
||||
" Function: s:RiGetOption(name, default) {{{1
|
||||
" Grab a user-specified option to override the default provided.
|
||||
" Options are searched in the window, buffer, then global spaces.
|
||||
|
||||
function! s:RiGetOption(name, default)
|
||||
if exists("w:" . a:name)
|
||||
execute "return w:".a:name
|
||||
elseif exists("b:" . a:name)
|
||||
execute "return b:".a:name
|
||||
elseif exists("g:" . a:name)
|
||||
execute "return g:".a:name
|
||||
else
|
||||
return a:default
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Function: s:RiGetClassOrModule() {{{1
|
||||
" Returns the class/module name when in a class/module ri buffer
|
||||
|
||||
function! s:RiGetClassOrModule()
|
||||
" Try (big) word under cursor
|
||||
let text = expand('<cWORD>')
|
||||
let class = substitute(text, '\(\u\+\w*\(::\u\w*\)*\)([.#]|).*', '\1', '')
|
||||
if text != class
|
||||
return class
|
||||
endif
|
||||
let class = substitute(text, '\(\u\+\w*\(::\u\w*\)*\).*', '\1', '')
|
||||
if text != class
|
||||
return class
|
||||
endif
|
||||
|
||||
" Try first line where ri titles the current lookup.
|
||||
let text = getline(1)
|
||||
let class = substitute(text, '\(^\|.*\s\)\(\u\+\w*\(::\u\w*\)*\)([.#]|).*', '\2', '')
|
||||
if text != class
|
||||
return class
|
||||
endif
|
||||
let class = substitute(text, '\(^\|.*\s\)\(\u\+\w*\(::\u\w*\)*\).*', '\2', '')
|
||||
if text != class
|
||||
return class
|
||||
endif
|
||||
|
||||
" Try the line of the cursor
|
||||
let text = getline(line('.'))
|
||||
let class = substitute(text, '\(^\|.*\s\)\(\u\+\w*\(::\u\w*\)*\)([.#]|).*', '\2', '')
|
||||
if text != class
|
||||
return class
|
||||
endif
|
||||
let class = substitute(text, '\(^\|.*\s\)\(\u\+\w*\(::\u\w*\)*\).*', '\2', '')
|
||||
if text != class
|
||||
return class
|
||||
endif
|
||||
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
" Function: s:RiSetupBuffer() {{{1
|
||||
" Attempts to switch to the LRU Ri buffer else creates a new buffer.
|
||||
|
||||
function! s:RiSetupBuffer(name)
|
||||
let v:errmsg = ""
|
||||
if exists("s:ri_buffer") && bufwinnr(s:ri_buffer) != -1
|
||||
" The Ri buffer is still open so switch to it
|
||||
let s:switchbuf_save = &switchbuf
|
||||
set switchbuf=useopen
|
||||
execute 'sbuffer' s:ri_buffer
|
||||
let &switchbuf = s:switchbuf_save
|
||||
let edit_cmd = 'edit'
|
||||
else
|
||||
" Original buffer no longer exists.
|
||||
if s:RiGetOption('ri_split_orientation', 'horizontal') == 'horizontal'
|
||||
let edit_cmd = 'rightbelow split'
|
||||
else
|
||||
let edit_cmd = 'vert rightbelow split'
|
||||
endif
|
||||
end
|
||||
|
||||
silent execute edit_cmd a:name
|
||||
|
||||
if v:errmsg != ""
|
||||
if &modified && !&hidden
|
||||
echoerr "Unable to open command buffer: 'nohidden' is set and the current buffer is modified (see :help 'hidden')."
|
||||
else
|
||||
echoerr "Unable to open command buffer:" v:errmsg
|
||||
endif
|
||||
return -1
|
||||
endif
|
||||
|
||||
" Define the environment and execute user-defined hooks.
|
||||
silent do Ri User RiBufferCreated
|
||||
let s:ri_buffer = bufnr("%")
|
||||
setlocal buftype=nofile
|
||||
" Maybe ugly hack but it makes <cword> useful for ruby methodnames
|
||||
setlocal iskeyword=42,94,48-57,-,_,A-Z,a-z,,,+,%,<,>,[,],\?,\&,!,~,=,`,|
|
||||
setlocal foldmethod=marker " No syntax folding
|
||||
setlocal noswapfile
|
||||
setlocal filetype=ri
|
||||
setlocal bufhidden=delete " Delete buffer on hide
|
||||
|
||||
return s:ri_buffer
|
||||
endfunction
|
||||
|
||||
" Function: s:RiExecute(term) {{{1
|
||||
" Sets up the Ri buffer and executes the Ri lookup
|
||||
|
||||
function! s:RiExecute(term)
|
||||
let command = '0r!ri "' . escape(a:term, '!') . '"'
|
||||
let buffername = 'Ri browser [' . escape(a:term, ' |*\') . ']'
|
||||
if s:RiSetupBuffer(buffername) == -1
|
||||
return -1
|
||||
endif
|
||||
silent execute command
|
||||
1
|
||||
|
||||
endfunction
|
||||
" Function: s:RiAddFoldMarkers() {{{1
|
||||
" Insert fold markers. Only possible on an unfolded buffer
|
||||
|
||||
function! s:RiAddFoldMarkers()
|
||||
let last_line = line('.')
|
||||
let line = 2
|
||||
let cur_ident = ''
|
||||
while line <= last_line
|
||||
execute line
|
||||
let ident = substitute(getline(line), '\s*\(\u\w*\(::\u\w*\)*\).*', '\1', '')
|
||||
if ident != cur_ident
|
||||
let cur_ident = ident
|
||||
let ident = ' ' . ident . ' {' . '{{1'
|
||||
call append(line - 1, ident)
|
||||
call append(line - 1, '')
|
||||
let line = line + 2
|
||||
else
|
||||
let line = line + 1
|
||||
endif
|
||||
endwhile
|
||||
endfunction
|
||||
|
||||
" Function: s:RiExpandClass() {{{1
|
||||
" Handles both expansion for prompt and <cwords>.
|
||||
|
||||
function! s:RiExpandClass(term)
|
||||
if s:RiGetOption('ri_check_expansion', 'on') == 'on'
|
||||
" No expansion when term's first char is uppercase
|
||||
if match(a:term, '^[A-Z]') == '0'
|
||||
return ''
|
||||
endif
|
||||
end
|
||||
let text = getline(2)
|
||||
let class = substitute(text, '^\s\{5}\(class\|module\): \(\u\+\w*\(::\u\w*\)*\).*', '\2', '')
|
||||
if text == class " No match
|
||||
let class = ''
|
||||
endif
|
||||
|
||||
" Try to find a class to complete.
|
||||
if s:RiGetOption('ri_prompt_complete', 'off') != 'off'
|
||||
if a:term == '' && class == ''
|
||||
let class = s:RiGetClassOrModule()
|
||||
endif
|
||||
endif
|
||||
|
||||
if class != ''
|
||||
return class . '#'
|
||||
endif
|
||||
return class
|
||||
endfunction
|
||||
|
||||
" Function: Ri(term) {{{1
|
||||
" Handles class/module expansion and initial escaping of search term.
|
||||
" <expand> is a bool [0|1].
|
||||
" <term> is a string. Prompting is done when it's empty.
|
||||
|
||||
function! Ri(term, expand)
|
||||
" Remove trailing bogus characters like punctuation dots.
|
||||
let term = substitute(a:term, '\(,[^<>]\?\|[()]\)*\.\?$', '', '')
|
||||
|
||||
let class = ''
|
||||
if a:expand == 1
|
||||
let class = s:RiExpandClass(term)
|
||||
endif
|
||||
|
||||
if term == ''
|
||||
let term = input('Ri search term: ', class)
|
||||
elseif a:expand == 1 && class != ''
|
||||
let term = class . term
|
||||
endif
|
||||
|
||||
" Remove bogus stuff ('.first' from 'Array.new.first' and '#' from '#each')
|
||||
let term = substitute(term, '^[.#:]*', '', '')
|
||||
let term = substitute(term, '\([^.#:]\+\([.#]\|::\)[^.]*\).*', '\1', '')
|
||||
|
||||
if s:RiGetOption('ri_nonprompt_history', 'add') == 'add'
|
||||
call histadd('input', term)
|
||||
endif
|
||||
|
||||
" Escape so Vim don't substitute with buffer name.
|
||||
call s:RiExecute(escape(term, '"%#`'))
|
||||
|
||||
" Unfold if there more than one match
|
||||
if s:RiGetOption('ri_unfold_nonunique', 'off') != 'off'
|
||||
if getline(1) =~ 'is not unique'
|
||||
2
|
||||
" < and > used by module inheritence
|
||||
silent %substitute/,[^<>$]/\r /g
|
||||
silent %substitute/,\?$//g
|
||||
endif
|
||||
if s:RiGetOption('ri_add_foldmarkers', 'on') == 'on'
|
||||
call s:RiAddFoldMarkers()
|
||||
endif
|
||||
1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
command! -nargs=1 Ri :call Ri('<args>', 0)
|
||||
command! -nargs=1 RiExpand :call Ri('<args>', 1)
|
||||
|
||||
" Section: Setup mappings {{{1
|
||||
" Prompt for search term
|
||||
|
||||
nnoremap <unique> <Plug>Ri :call Ri('', 0)<CR>
|
||||
if !hasmapto('<Plug>Ri')
|
||||
nmap <unique> <Leader>ri <Plug>Ri
|
||||
endif
|
||||
|
||||
if !hasmapto('<M-i>')
|
||||
noremap <M-i> :call Ri('', 0)<CR>
|
||||
endif
|
||||
|
||||
" Expand class/module if possible and prompt
|
||||
nnoremap <unique> <Plug>Rx :call Ri('', 1)<CR>
|
||||
if !hasmapto('<Plug>Rx')
|
||||
nmap <unique> <Leader>rx <Plug>Rx
|
||||
endif
|
||||
|
||||
if !hasmapto('<M-I>')
|
||||
noremap <M-I> :call Ri('', 1)<CR>
|
||||
endif
|
||||
|
||||
" Tag-like greedy invoking
|
||||
if !hasmapto('<M-]>')
|
||||
noremap <M-]> :call Ri(expand('<cWORD>'), 0)<cr>
|
||||
endif
|
||||
|
||||
" Not so greedy invoking.
|
||||
if !hasmapto('<M-[>')
|
||||
noremap <M-[> :call Ri(expand('<cword>'), 1)<cr>
|
||||
endif
|
||||
@@ -1,8 +0,0 @@
|
||||
# Global Snippets
|
||||
|
||||
# Right Arrow
|
||||
snippet ->
|
||||
→
|
||||
# Left Arrow
|
||||
snippet <-
|
||||
←
|
||||
@@ -1,30 +0,0 @@
|
||||
# CSS Site Header
|
||||
snippet css
|
||||
/*
|
||||
Site: ${1:Title}
|
||||
Date: `system("date '+%B %d, %Y'")`
|
||||
Author: Gianni Chiappetta
|
||||
Description: Base style sheet for $1
|
||||
Author Notes: ${2:Notes}
|
||||
|
||||
WEB COLOURS USED FOR THIS SITE
|
||||
---------------------------------------------------------------------
|
||||
#000000 Colour Used for:
|
||||
#000000 Colour Used for:
|
||||
#000000 Colour Used for:
|
||||
---------------------------------------------------------------------
|
||||
*/
|
||||
${3}
|
||||
# CSS Comment
|
||||
snippet com
|
||||
/* ------------------------------ ${1:Title} ------------------------------ */
|
||||
# Border radius
|
||||
snippet radius
|
||||
-moz-border-radius: ${1:Amount};
|
||||
-webkit-border-radius: $1;
|
||||
border-radius: $1;${2}
|
||||
# Box Shadow
|
||||
snippet shadow
|
||||
-moz-box-shadow: ${1:inset} ${2:X} ${3:Y} ${4:Blur} ${5:rgba(0,0,0, .6)}; /* FF3.5+ */
|
||||
-webkit-box-shadow: $1 $2 $3 $4 $5; /* Saf3.0+, Chrome */
|
||||
box-shadow: $1 $2 $3 $4 $5; /* Opera 10.5, IE 9.0 */
|
||||
@@ -1,3 +0,0 @@
|
||||
# HTML Comment
|
||||
snippet com
|
||||
<!-- ${1:Title} -->
|
||||
@@ -1,35 +0,0 @@
|
||||
# Add Comment
|
||||
snippet com
|
||||
/* ------------------------------ ${1:Title} ------------------------------ */$2
|
||||
snippet comm
|
||||
/*------------------------------------*\
|
||||
${1:Title}
|
||||
\*------------------------------------*/$2
|
||||
# jQuery
|
||||
snippet jq
|
||||
jQuery${1:()}
|
||||
# jQuery Ready
|
||||
snippet jqr
|
||||
jQuery(function() {
|
||||
${1:codes}
|
||||
});
|
||||
# Prototype DOM loaded
|
||||
snippet pdl
|
||||
document.observe("dom:loaded", function(${1:event}) {
|
||||
${2:codes}
|
||||
});
|
||||
# Function
|
||||
snippet fn
|
||||
function(${1:param}) { ${2:codes}}
|
||||
# PDoc
|
||||
snippet pdoc
|
||||
/**
|
||||
* ${1:Class#method(param) -> Return}
|
||||
* ${2:- param (Type): Description}
|
||||
*
|
||||
* ${3:Method description.}
|
||||
*
|
||||
* ### Examples
|
||||
*
|
||||
* ${4:irc_instance.raw(":YourNick TOPIC #channel :LOL This is awesome!"); // Set a channel topic}
|
||||
**/
|
||||
@@ -1,4 +0,0 @@
|
||||
# CSS Comment
|
||||
snippet com
|
||||
/* ------------------------------ ${1:Title} ------------------------------
|
||||
${2}
|
||||
@@ -1,5 +0,0 @@
|
||||
giannichiappetta
|
||||
haha
|
||||
Dubstep
|
||||
techno
|
||||
SRSLY
|
||||
Binary file not shown.
0
home/.vim/swaps/.gitignore
vendored
0
home/.vim/swaps/.gitignore
vendored
@@ -1,9 +0,0 @@
|
||||
runtime syntax/diff.vim
|
||||
|
||||
syntax match gitDiffStatLine /^ .\{-}\zs[+-]\+$/ contains=gitDiffStatAdd,gitDiffStatDelete
|
||||
syntax match gitDiffStatAdd /+/ contained
|
||||
syntax match gitDiffStatDelete /-/ contained
|
||||
|
||||
highlight gitDiffStatAdd ctermfg=2
|
||||
highlight gitDiffStatDelete ctermfg=5
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user