Removed homesick stuff

This commit is contained in:
Fergal Moran
2014-01-10 20:08:30 +00:00
parent 1355010e22
commit 78b8cf8289
118 changed files with 1 additions and 16620 deletions

View File

@@ -1 +1 @@
My dotfiles - use homesick to clone
My unix dotfiles (check vimfiles for my vim config)

View File

@@ -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 doesnt cut it
alias plistbuddy="/usr/libexec/PlistBuddy"
# One of @janmoesens 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'"

View File

@@ -1,23 +0,0 @@
# Load ~/.extra, ~/.bash_prompt, ~/.exports, ~/.aliases and ~/.functions
# ~/.extra can be used for settings you dont 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

View File

@@ -1,66 +0,0 @@
# @gf3s 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\]"

View File

@@ -1 +0,0 @@
[ -n "$PS1" ] && source ~/.bash_profile

View File

@@ -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\)\)\>"

View File

@@ -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_]\+"

View File

@@ -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:

View File

File diff suppressed because it is too large Load Diff

View File

@@ -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

View File

@@ -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} "$@"

View File

@@ -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

View File

@@ -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}\""

View File

@@ -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 "$@"

View File

@@ -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

View File

@@ -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 :

View File

@@ -1 +0,0 @@
au BufNewFile,BufRead *.clj set filetype=clojure

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,2 +0,0 @@
*open-url-script*
browse-url

View File

@@ -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

View File

@@ -1,8 +0,0 @@
*core-java-api*
*feeling-lucky*
*feeling-lucky-url*
*local-javadocs*
*remote-javadocs*
add-local-javadoc
add-remote-javadoc
javadoc

View File

@@ -1,4 +0,0 @@
*sh-dir*
*sh-env*
with-sh-dir
with-sh-env

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,12 +0,0 @@
difference
index
intersection
join
map-invert
project
rename
rename-keys
select
subset?
superset?
union

View File

@@ -1,5 +0,0 @@
print-cause-trace
print-stack-trace
print-throwable
print-trace-element
root-cause

View File

@@ -1,15 +0,0 @@
blank?
capitalize
escape
join
lower-case
replace
replace-first
reverse
split
split-lines
trim
trim-newline
triml
trimr
upper-case

View File

@@ -1,2 +0,0 @@
apply-template
do-template

View File

@@ -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

View File

@@ -1,6 +0,0 @@
print-tap-diagnostic
print-tap-fail
print-tap-pass
print-tap-plan
tap-report
with-tap-output

View File

@@ -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

View File

@@ -1,10 +0,0 @@
keywordize-keys
macroexpand-all
postwalk
postwalk-demo
postwalk-replace
prewalk
prewalk-demo
prewalk-replace
stringify-keys
walk

View File

@@ -1,13 +0,0 @@
*current*
*sb*
*stack*
*state*
attrs
content
content-handler
element
emit
emit-element
parse
startparse-sax
tag

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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).

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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/^[^ ]* //'

View File

@@ -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

View File

@@ -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))

View File

@@ -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

View File

@@ -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\:\"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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 prompts base
call HL('CtrlPPrtBase', 'deepgravel', 'bg', 'none')
" the prompts text
call HL('CtrlPPrtText', 'plain', 'bg', 'none')
" the prompts 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 thats 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')
" }}}
" }}}

View File

@@ -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: :

View File

@@ -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

View File

@@ -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:

View File

@@ -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*

View File

@@ -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*

View File

@@ -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

View File

@@ -1 +0,0 @@
au BufRead,BufNewFile *.zsh-theme set filetype=zsh

View File

@@ -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

View File

@@ -1,8 +0,0 @@
# Global Snippets
# Right Arrow
snippet ->
# Left Arrow
snippet <-

View File

@@ -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 */

View File

@@ -1,3 +0,0 @@
# HTML Comment
snippet com
<!-- ${1:Title} -->

View File

@@ -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}
**/

View File

@@ -1,4 +0,0 @@
# CSS Comment
snippet com
/* ------------------------------ ${1:Title} ------------------------------
${2}

View File

@@ -1,5 +0,0 @@
giannichiappetta
haha
Dubstep
techno
SRSLY

Binary file not shown.

View File

View File

@@ -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