Commit baaf446a authored by Murukesh Mohanan's avatar Murukesh Mohanan

Initialized vim

parents
.VimballRecord
.netrwhist
[submodule "bundle/diffchar.vim"]
path = bundle/diffchar.vim
url = https://github.com/vim-scripts/diffchar.vim
[submodule "bundle/eregex.vim"]
path = bundle/eregex.vim
url = https://github.com/othree/eregex.vim.git
[submodule "bundle/nerdtree"]
path = bundle/nerdtree
url = https://github.com/scrooloose/nerdtree.git
[submodule "bundle/supertab"]
path = bundle/supertab
url = git@github.com:ervandew/supertab.git
[submodule "bundle/syntastic"]
path = bundle/syntastic
url = https://github.com/scrooloose/syntastic.git
[submodule "bundle/vim2hs"]
path = bundle/vim2hs
url = https://github.com/dag/vim2hs
[submodule "bundle/vim-surround"]
path = bundle/vim-surround
url = https://github.com/tpope/vim-surround.git
" Vim autoload file for browsing debian package.
" copyright (C) 2007-2008, arno renevier <arenevier@fdn.fr>
" Distributed under the GNU General Public License (version 2 or above)
" Last Change: 2008 april 1
"
" Inspired by autoload/tar.vim by Charles E Campbell
"
" Latest version of that file can be found at
" http://www.fdn.fr/~arenevier/vim/autoload/deb.vim
" It should also be available at
" http://www.vim.org/scripts/script.php?script_id=1970
if &cp || exists("g:loaded_deb") || v:version < 700
finish
endif
let g:loaded_deb= "v1.4"
fun! deb#read(debfile, member)
" checks if ar and tar are installed
if !s:hascmd("ar") || !s:hascmd("tar")
return
endif
let l:target = a:member
let l:archmember = s:dataFileName(a:debfile) " default archive member to extract
if l:archmember == ""
echohl WarningMsg | echo "***error*** (deb#read) no valid data file found in debian archive"
return
elseif l:archmember == "data.tar.gz"
let l:unpcmp = "tar zxfO "
elseif l:archmember == "data.tar.bz2"
let l:unpcmp = "tar jxfO "
elseif l:archmember == "data.tar.lzma"
if !s:hascmd("lzma")
return
endif
let l:unpcmp = "lzma -d | tar xfO "
elseif l:archmember == "data.tar"
let l:unpcmp = "tar xfO "
endif
if a:member =~ '^\* ' " information control file
let l:archmember = "control.tar.gz"
let l:target = substitute(l:target, "^\* ", "", "")
let l:unpcmp = "tar zxfO "
elseif a:member =~ ' -> ' " symbolic link
let l:target = split(a:member,' -> ')[0]
let l:linkname = split(a:member,' -> ')[1]
if l:linkname =~ "^\/" " direct symlink: path is already absolute
let l:target = ".".l:linkname
else
" transform relative path to absolute path
" first, get basename for target
let l:target = substitute(l:target, "\/[^/]*$", "", "")
" while it begins with ../
while l:linkname =~ "^\.\.\/"
" removes one level of ../ in linkname
let l:linkname = substitute(l:linkname, "^\.\.\/", "", "")
" go one directory up in target
let l:target = substitute(l:target, "\/[^/]*$", "", "")
endwhile
let l:target = l:target."/".l:linkname
endif
endif
" we may preprocess some files (such as man pages, or changelogs)
let l:preproccmd = ""
"
" unzip man pages
"
if l:target =~ "\.\/usr\/share\/man\/.*\.gz$"
" try to fail gracefully if a command is not available
if !s:hascmd("gzip")
return
elseif !s:hascmd("nroff")
let l:preproccmd = "| gzip -cd"
elseif !s:hascmd("col")
let l:preproccmd = "| gzip -cd | nroff -mandoc"
else
let l:preproccmd = "| gzip -cd | nroff -mandoc | col -b"
endif
"
" unzip other .gz files
"
elseif l:target =~ '.*\.gz$'
if !s:hascmd("gzip")
return
endif
let l:preproccmd = "| gzip -cd"
endif
" read content
exe "silent r! ar p " . s:QuoteFile(a:debfile) . " " . s:QuoteFile(l:archmember) . " | " . l:unpcmp . " - " . s:QuoteFile(l:target) . l:preproccmd
" error will be treated in calling function
if v:shell_error != 0
return
endif
exe "file deb:".l:target
0d
setlocal nomodifiable nomodified readonly
endfun
fun! deb#browse(file)
" checks if necessary utils are installed
if !s:hascmd("dpkg") || !s:hascmd("ar") || !s:hascmd("tar")
return
endif
" checks if file is readable
if !filereadable(a:file)
return
endif
if a:file =~ "'"
echohl WarningMsg | echo "***error*** (deb#Browse) filename cannot contain quote character (" . a:file . ")"
return
endif
let keepmagic = &magic
set magic
" set filetype to "deb"
set ft=deb
setlocal modifiable noreadonly
" set header
exe "$put ='".'\"'." deb.vim version ".g:loaded_deb."'"
exe "$put ='".'\"'." Browsing debian package ".a:file."'"
$put=''
" package info
"exe "silent read! dpkg -I ".a:file
"$put=''
" display information control files
let l:infopos = line(".")
exe "silent read! ar p " . s:QuoteFile(a:file) . " control.tar.gz | tar zt"
$put=''
" display data files
let l:listpos = line(".")
exe "silent read! dpkg -c ". s:QuoteFile(a:file)
" format information control list
" removes '* ./' line
exe (l:infopos + 1). 'd'
" add a star before each line
exe "silent " . (l:infopos + 1). ',' . (l:listpos - 2) . 's/^/\* /'
" format data list
exe "silent " . l:listpos . ',$s/^.*\s\(\.\/\(\S\|\).*\)$/\1/'
if v:shell_error != 0
echohl WarningMsg | echo "***warning*** (deb#Browse) error when listing content of " . a:file
let &magic = keepmagic
return
endif
0d
setlocal nomodifiable readonly
noremap <silent> <buffer> <cr> :call <SID>DebBrowseSelect()<cr>
let &magic = keepmagic
endfun
fun! s:DebBrowseSelect()
let l:fname= getline(".")
" sanity check
if (l:fname !~ '^\.\/') && (l:fname !~ '^\* \.\/')
return
endif
if l:fname =~ "'"
echohl WarningMsg | echo "***error*** (DebBrowseSelect) filename cannot contain quote character (" . l:fname . ")"
return
endif
" do nothing on directories
" TODO: find a way to detect symlinks to directories, to be able not to
" open them
if (l:fname =~ '\/$')
return
endif
" need to get it now since a new window will open
let l:curfile= expand("%")
" open new window
new
wincmd _
call deb#read(l:curfile, l:fname)
if v:shell_error != 0
echohl WarningMsg | echo "***warning*** (DebBrowseSelect) error when reading " . l:fname
return
endif
filetype detect
" zipped files, are unziped in deb#read, but filetype may not
" automatically work.
if l:fname =~ "\.\/usr\/share\/man\/.*\.gz$"
set filetype=man
elseif l:fname =~ "\.\/usr\/share\/doc\/.*\/changelog.Debian.gz$"
set filetype=debchangelog
endif
endfun
" return data file name for debian package. This can be either data.tar.gz,
" data.tar.bz2 or data.tar.lzma
fun s:dataFileName(deb)
for fn in ["data.tar.gz", "data.tar.bz2", "data.tar.lzma", "data.tar"]
" [0:-2] is to remove trailing null character from command output
if (system("ar t " . "'" . a:deb . "'" . " " . fn))[0:-2] == fn
return fn
endif
endfor
return "" " no debian data format in this archive
endfun
fun s:QuoteFile(file)
" we need to escape %, #, <, and >
" see :help cmdline-specialk
return "'" . substitute(a:file, '\([%#<>]\)', '\\\1', 'g') . "'"
endfun
" return 1 if cmd exists
" display error message and return 0 otherwise
fun s:hascmd(cmd)
if executable(a:cmd)
return 1
else
echohl Error | echo "***error*** " . a:cmd . " not available on your system"
return 0
else
endfu
"
" utility functions for haskellmode plugins
"
" (Claus Reinke; last modified: 22/06/2010)
"
" part of haskell plugins: http://projects.haskell.org/haskellmode-vim
" please send patches to <claus.reinke@talk21.com>
" find start/extent of name/symbol under cursor;
" return start, symbolic flag, qualifier, unqualified id
" (this is used in both haskell_doc.vim and in GHC.vim)
function! haskellmode#GetNameSymbol(line,col,off)
let name = "[a-zA-Z0-9_']"
let symbol = "[-!#$%&\*\+/<=>\?@\\^|~:.]"
"let [line] = getbufline(a:buf,a:lnum)
let line = a:line
" find the beginning of unqualified id or qualified id component
let start = (a:col - 1) + a:off
if line[start] =~ name
let pattern = name
elseif line[start] =~ symbol
let pattern = symbol
else
return []
endif
while start > 0 && line[start - 1] =~ pattern
let start -= 1
endwhile
let id = matchstr(line[start :],pattern.'*')
" call confirm(id)
" expand id to left and right, to get full id
let idPos = id[0] == '.' ? start+2 : start+1
let posA = match(line,'\<\(\([A-Z]'.name.'*\.\)\+\)\%'.idPos.'c')
let start = posA>-1 ? posA+1 : idPos
let posB = matchend(line,'\%'.idPos.'c\(\([A-Z]'.name.'*\.\)*\)\('.name.'\+\|'.symbol.'\+\)')
let end = posB>-1 ? posB : idPos
" special case: symbolic ids starting with .
if id[0]=='.' && posA==-1
let start = idPos-1
let end = posB==-1 ? start : end
endif
" classify full id and split into qualifier and unqualified id
let fullid = line[ (start>1 ? start-1 : 0) : (end-1) ]
let symbolic = fullid[-1:-1] =~ symbol " might also be incomplete qualified id ending in .
let qualPos = matchend(fullid, '\([A-Z]'.name.'*\.\)\+')
let qualifier = qualPos>-1 ? fullid[ 0 : (qualPos-2) ] : ''
let unqualId = qualPos>-1 ? fullid[ qualPos : -1 ] : fullid
" call confirm(start.'/'.end.'['.symbolic.']:'.qualifier.' '.unqualId)
return [start,symbolic,qualifier,unqualId]
endfunction
function! haskellmode#GatherImports()
let imports={0:{},1:{}}
let i=1
while i<=line('$')
let res = haskellmode#GatherImport(i)
if !empty(res)
let [i,import] = res
let prefixPat = '^import\s*\%({-#\s*SOURCE\s*#-}\)\?\(qualified\)\?\s\+'
let modulePat = '\([A-Z][a-zA-Z0-9_''.]*\)'
let asPat = '\(\s\+as\s\+'.modulePat.'\)\?'
let hidingPat = '\(\s\+hiding\s*\((.*)\)\)\?'
let listPat = '\(\s*\((.*)\)\)\?'
let importPat = prefixPat.modulePat.asPat.hidingPat.listPat ".'\s*$'
let ml = matchlist(import,importPat)
if ml!=[]
let [_,qualified,module,_,as,_,hiding,_,explicit;x] = ml
let what = as=='' ? module : as
let hidings = split(hiding[1:-2],',')
let explicits = split(explicit[1:-2],',')
let empty = {'lines':[],'hiding':hidings,'explicit':[],'modules':[]}
let entry = has_key(imports[1],what) ? imports[1][what] : deepcopy(empty)
let imports[1][what] = haskellmode#MergeImport(deepcopy(entry),i,hidings,explicits,module)
if !(qualified=='qualified')
let imports[0][what] = haskellmode#MergeImport(deepcopy(entry),i,hidings,explicits,module)
endif
else
echoerr "haskellmode#GatherImports doesn't understand: ".import
endif
endif
let i+=1
endwhile
if !has_key(imports[1],'Prelude')
let imports[0]['Prelude'] = {'lines':[],'hiding':[],'explicit':[],'modules':[]}
let imports[1]['Prelude'] = {'lines':[],'hiding':[],'explicit':[],'modules':[]}
endif
return imports
endfunction
function! haskellmode#ListElem(list,elem)
for e in a:list | if e==a:elem | return 1 | endif | endfor
return 0
endfunction
function! haskellmode#ListIntersect(list1,list2)
let l = []
for e in a:list1 | if index(a:list2,e)!=-1 | let l += [e] | endif | endfor
return l
endfunction
function! haskellmode#ListUnion(list1,list2)
let l = []
for e in a:list2 | if index(a:list1,e)==-1 | let l += [e] | endif | endfor
return a:list1 + l
endfunction
function! haskellmode#ListWithout(list1,list2)
let l = []
for e in a:list1 | if index(a:list2,e)==-1 | let l += [e] | endif | endfor
return l
endfunction
function! haskellmode#MergeImport(entry,line,hiding,explicit,module)
let lines = a:entry['lines'] + [ a:line ]
let hiding = a:explicit==[] ? haskellmode#ListIntersect(a:entry['hiding'], a:hiding)
\ : haskellmode#ListWithout(a:entry['hiding'],a:explicit)
let explicit = haskellmode#ListUnion(a:entry['explicit'], a:explicit)
let modules = haskellmode#ListUnion(a:entry['modules'], [ a:module ])
return {'lines':lines,'hiding':hiding,'explicit':explicit,'modules':modules}
endfunction
" collect lines belonging to a single import statement;
" return number of last line and collected import statement
" (assume opening parenthesis, if any, is on the first line)
function! haskellmode#GatherImport(lineno)
let lineno = a:lineno
let import = getline(lineno)
if !(import=~'^import\s') | return [] | endif
let open = strlen(substitute(import,'[^(]','','g'))
let close = strlen(substitute(import,'[^)]','','g'))
while open!=close
let lineno += 1
let linecont = getline(lineno)
let open += strlen(substitute(linecont,'[^(]','','g'))
let close += strlen(substitute(linecont,'[^)]','','g'))
let import .= linecont
endwhile
return [lineno,import]
endfunction
function! haskellmode#UrlEncode(string)
let pat = '\([^[:alnum:]]\)'
let code = '\=printf("%%%02X",char2nr(submatch(1)))'
let url = substitute(a:string,pat,code,'g')
return url
endfunction
" TODO: we could have buffer-local settings, at the expense of
" reconfiguring for every new buffer.. do we want to?
function! haskellmode#GHC()
if (!exists("g:ghc") || !executable(g:ghc))
if !executable('ghc')
echoerr s:scriptname.": can't find ghc. please set g:ghc, or extend $PATH"
return 0
else
let g:ghc = 'ghc'
endif
endif
return 1
endfunction
function! haskellmode#GHC_Version()
if !exists("g:ghc_version")
let g:ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','')
endif
return g:ghc_version
endfunction
function! haskellmode#GHC_VersionGE(target)
let current = split(haskellmode#GHC_Version(), '\.' )
let target = a:target
for i in current
if ((target==[]) || (i>target[0]))
return 1
elseif (i==target[0])
let target = target[1:]
else
return 0
endif
endfor
return 1
endfunction
This diff is collapsed.
diffchar.vim @ 8bbc4b17
Subproject commit 8bbc4b17331e0cec40e1c1d7a9b39493ef90a612
eregex.vim @ 64c2e53a
Subproject commit 64c2e53af2715311e8d76f548aa3435c26adc76e
nerdtree @ 3b98a7fc
Subproject commit 3b98a7fcae8f9fff356907171f0406ff8cd28921
supertab @ 454c06e2
Subproject commit 454c06e25680799b6f408622d6bfbaf920ace825
syntastic @ 7d9aec0b
Subproject commit 7d9aec0bee91be677c38b94ff222d02aa732fe52
vim-surround @ fa433e0b
Subproject commit fa433e0b7330753688f715f3be5d10dc480f20e5
vim2hs @ f2afd557
Subproject commit f2afd55704bfe0a2d66e6b270d247e9b8a7b1664
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
:Align Align.txt /*:Align*
:AlignCtrl Align.txt /*:AlignCtrl*
:AlignMapsClean Align.txt /*:AlignMapsClean*
:DocIndex haskellmode.txt /*:DocIndex*
:DocSettings haskellmode.txt /*:DocSettings*
:ExportDocIndex haskellmode.txt /*:ExportDocIndex*
:FlagReference haskellmode.txt /*:FlagReference*
:GHCReload haskellmode.txt /*:GHCReload*
:GHCStaticOptions haskellmode.txt /*:GHCStaticOptions*
:GHCi haskellmode.txt /*:GHCi*
:HpasteIndex haskellmode.txt /*:HpasteIndex*
:HpastePostNew haskellmode.txt /*:HpastePostNew*
:IDoc haskellmode.txt /*:IDoc*
:MDoc haskellmode.txt /*:MDoc*
Align-copyright Align.txt /*Align-copyright*
_. haskellmode.txt /*_.*
_? haskellmode.txt /*_?*
_?1 haskellmode.txt /*_?1*
_?2 haskellmode.txt /*_?2*
_T haskellmode.txt /*_T*
_ct haskellmode.txt /*_ct*
_i haskellmode.txt /*_i*
_ie haskellmode.txt /*_ie*
_im haskellmode.txt /*_im*
_iq haskellmode.txt /*_iq*
_iqm haskellmode.txt /*_iqm*
_lang haskellmode.txt /*_lang*
_opt haskellmode.txt /*_opt*
_si haskellmode.txt /*_si*
_t haskellmode.txt /*_t*
align Align.txt /*align*
align-align Align.txt /*align-align*
align-codepoint Align.txt /*align-codepoint*
align-command Align.txt /*align-command*
align-commands Align.txt /*align-commands*
align-concept Align.txt /*align-concept*
align-concepts Align.txt /*align-concepts*
align-contents Align.txt /*align-contents*
align-control Align.txt /*align-control*
align-history Align.txt /*align-history*
align-manual Align.txt /*align-manual*
align-maps Align.txt /*align-maps*
align-multibyte Align.txt /*align-multibyte*
align-option Align.txt /*align-option*
align-options Align.txt /*align-options*
align-strlen Align.txt /*align-strlen*
align-usage Align.txt /*align-usage*
align-userguide Align.txt /*align-userguide*
align-utf Align.txt /*align-utf*
align-utf8 Align.txt /*align-utf8*
align-xstrlen Align.txt /*align-xstrlen*
align.txt Align.txt /*align.txt*
alignctrl Align.txt /*alignctrl*
alignctrl- Align.txt /*alignctrl-*
alignctrl-+ Align.txt /*alignctrl-+*
alignctrl-- Align.txt /*alignctrl--*
alignctrl-: Align.txt /*alignctrl-:*
alignctrl-< Align.txt /*alignctrl-<*
alignctrl-= Align.txt /*alignctrl-=*
alignctrl-> Align.txt /*alignctrl->*
alignctrl-C Align.txt /*alignctrl-C*
alignctrl-I Align.txt /*alignctrl-I*
alignctrl-P Align.txt /*alignctrl-P*
alignctrl-W Align.txt /*alignctrl-W*
alignctrl-alignskip Align.txt /*alignctrl-alignskip*
alignctrl-c Align.txt /*alignctrl-c*
alignctrl-g Align.txt /*alignctrl-g*
alignctrl-init Align.txt /*alignctrl-init*
alignctrl-initialization Align.txt /*alignctrl-initialization*
alignctrl-l Align.txt /*alignctrl-l*
alignctrl-m Align.txt /*alignctrl-m*
alignctrl-no-option Align.txt /*alignctrl-no-option*
alignctrl-p Align.txt /*alignctrl-p*
alignctrl-r Align.txt /*alignctrl-r*
alignctrl-separators Align.txt /*alignctrl-separators*
alignctrl-settings Align.txt /*alignctrl-settings*
alignctrl-star Align.txt /*alignctrl-star*
alignctrl-v Align.txt /*alignctrl-v*
alignctrl-w Align.txt /*alignctrl-w*
alignman Align.txt /*alignman*
alignmanual Align.txt /*alignmanual*
alignmap-Htd Align.txt /*alignmap-Htd*
alignmap-T= Align.txt /*alignmap-T=*
alignmap-Tsp Align.txt /*alignmap-Tsp*
alignmap-a( Align.txt /*alignmap-a(*
alignmap-a, Align.txt /*alignmap-a,*
alignmap-a< Align.txt /*alignmap-a<*
alignmap-a= Align.txt /*alignmap-a=*
alignmap-a? Align.txt /*alignmap-a?*
alignmap-abox Align.txt /*alignmap-abox*
alignmap-acom Align.txt /*alignmap-acom*
alignmap-adcom Align.txt /*alignmap-adcom*
alignmap-adec Align.txt /*alignmap-adec*
alignmap-adef Align.txt /*alignmap-adef*
alignmap-afnc Align.txt /*alignmap-afnc*
alignmap-anum Align.txt /*alignmap-anum*
alignmap-aocom Align.txt /*alignmap-aocom*
alignmap-ascom Align.txt /*alignmap-ascom*
alignmap-history Align.txt /*alignmap-history*
alignmap-m= Align.txt /*alignmap-m=*
alignmap-t# Align.txt /*alignmap-t#*
alignmap-t, Align.txt /*alignmap-t,*
alignmap-t: Align.txt /*alignmap-t:*
alignmap-t; Align.txt /*alignmap-t;*
alignmap-t< Align.txt /*alignmap-t<*
alignmap-t= Align.txt /*alignmap-t=*
alignmap-t? Align.txt /*alignmap-t?*
alignmap-tab Align.txt /*alignmap-tab*
alignmap-tml Align.txt /*alignmap-tml*
alignmap-ts, Align.txt /*alignmap-ts,*
alignmap-ts: Align.txt /*alignmap-ts:*
alignmap-ts< Align.txt /*alignmap-ts<*
alignmap-ts= Align.txt /*alignmap-ts=*
alignmap-tsp Align.txt /*alignmap-tsp*
alignmap-tsq Align.txt /*alignmap-tsq*
alignmap-tt Align.txt /*alignmap-tt*
alignmap-t~ Align.txt /*alignmap-t~*
alignmaps Align.txt /*alignmaps*
alignusage Align.txt /*alignusage*
autoalign AutoAlign.txt /*autoalign*
autoalign-contents AutoAlign.txt /*autoalign-contents*
autoalign-copyright AutoAlign.txt /*autoalign-copyright*
autoalign-history AutoAlign.txt /*autoalign-history*
autoalign-install AutoAlign.txt /*autoalign-install*
autoalign-internals AutoAlign.txt /*autoalign-internals*
autoalign-man AutoAlign.txt /*autoalign-man*
autoalign.txt AutoAlign.txt /*autoalign.txt*
compiler-ghc haskellmode.txt /*compiler-ghc*
g:AlignSkip Align.txt /*g:AlignSkip*
g:SuperTabClosePreviewOnPopupClose supertab.txt /*g:SuperTabClosePreviewOnPopupClose*
g:SuperTabCompletionContexts supertab.txt /*g:SuperTabCompletionContexts*
g:SuperTabContextDefaultCompletionType supertab.txt /*g:SuperTabContextDefaultCompletionType*
g:SuperTabCrMapping supertab.txt /*g:SuperTabCrMapping*
g:SuperTabDefaultCompletionType supertab.txt /*g:SuperTabDefaultCompletionType*
g:SuperTabLongestEnhanced supertab.txt /*g:SuperTabLongestEnhanced*
g:SuperTabLongestHighlight supertab.txt /*g:SuperTabLongestHighlight*
g:SuperTabMappingBackward supertab.txt /*g:SuperTabMappingBackward*
g:SuperTabMappingForward supertab.txt /*g:SuperTabMappingForward*
g:SuperTabMappingTabLiteral supertab.txt /*g:SuperTabMappingTabLiteral*
g:SuperTabNoCompleteAfter supertab.txt /*g:SuperTabNoCompleteAfter*
g:SuperTabNoCompleteBefore supertab.txt /*g:SuperTabNoCompleteBefore*
g:SuperTabRetainCompletionDuration supertab.txt /*g:SuperTabRetainCompletionDuration*
g:alignmaps_euronumber Align.txt /*g:alignmaps_euronumber*
g:alignmaps_usanumber Align.txt /*g:alignmaps_usanumber*
g:ghc haskellmode.txt /*g:ghc*
g:haddock_browser haskellmode.txt /*g:haddock_browser*
g:haddock_browser_callformat haskellmode.txt /*g:haddock_browser_callformat*
g:haddock_docdir haskellmode.txt /*g:haddock_docdir*
g:haddock_indexfiledir haskellmode.txt /*g:haddock_indexfiledir*
g:wget haskellmode.txt /*g:wget*
ghc haskellmode.txt /*ghc*
ghc-compiler haskellmode.txt /*ghc-compiler*
haddock haskellmode.txt /*haddock*
haskellmode haskellmode.txt /*haskellmode*
haskellmode-XO haskellmode.txt /*haskellmode-XO*
haskellmode-XU haskellmode.txt /*haskellmode-XU*
haskellmode-compiler haskellmode.txt /*haskellmode-compiler*
haskellmode-editing haskellmode.txt /*haskellmode-editing*
haskellmode-haddock haskellmode.txt /*haskellmode-haddock*
haskellmode-hpaste haskellmode.txt /*haskellmode-hpaste*
haskellmode-indexing haskellmode.txt /*haskellmode-indexing*
haskellmode-lookup haskellmode.txt /*haskellmode-lookup*
haskellmode-omni-completion haskellmode.txt /*haskellmode-omni-completion*
haskellmode-overview haskellmode.txt /*haskellmode-overview*
haskellmode-quickref haskellmode.txt /*haskellmode-quickref*
haskellmode-requirements haskellmode.txt /*haskellmode-requirements*
haskellmode-resources haskellmode.txt /*haskellmode-resources*
haskellmode-settings haskellmode.txt /*haskellmode-settings*
haskellmode-settings-fine haskellmode.txt /*haskellmode-settings-fine*
haskellmode-settings-main haskellmode.txt /*haskellmode-settings-main*
haskellmode-user-completion haskellmode.txt /*haskellmode-user-completion*
haskellmode.txt haskellmode.txt /*haskellmode.txt*
hpaste haskellmode.txt /*hpaste*
supertab supertab.txt /*supertab*
supertab-closepreviewonpopupclose supertab.txt /*supertab-closepreviewonpopupclose*
supertab-completionchaining supertab.txt /*supertab-completionchaining*
supertab-completioncontexts supertab.txt /*supertab-completioncontexts*
supertab-contextdefault supertab.txt /*supertab-contextdefault*
supertab-contextdiscover supertab.txt /*supertab-contextdiscover*
supertab-contextexample supertab.txt /*supertab-contextexample*
supertab-contexttext supertab.txt /*supertab-contexttext*
supertab-crmapping supertab.txt /*supertab-crmapping*
supertab-defaultcompletion supertab.txt /*supertab-defaultcompletion*
supertab-duration supertab.txt /*supertab-duration*
supertab-forwardbackward supertab.txt /*supertab-forwardbackward*
supertab-intro supertab.txt /*supertab-intro*
supertab-longestenhanced supertab.txt /*supertab-longestenhanced*
supertab-longesthighlight supertab.txt /*supertab-longesthighlight*
supertab-mappingtabliteral supertab.txt /*supertab-mappingtabliteral*
supertab-options supertab.txt /*supertab-options*
supertab-preventcomplete supertab.txt /*supertab-preventcomplete*
supertab-usage supertab.txt /*supertab-usage*
supertab.txt supertab.txt /*supertab.txt*
"
" general Haskell source settings
" (shared functions are in autoload/haskellmode.vim)
"
" (Claus Reinke, last modified: 28/04/2009)
"
" part of haskell plugins: http://projects.haskell.org/haskellmode-vim
" please send patches to <claus.reinke@talk21.com>
" try gf on import line, or ctrl-x ctrl-i, or [I, [i, ..
setlocal include=^import\\s*\\(qualified\\)\\?\\s*
setlocal includeexpr=substitute(v:fname,'\\.','/','g').'.'
setlocal suffixesadd=hs,lhs,hsc
" Haskell Cuteness for Vim.
" Inspired by emacs-haskell-cuteness.
" Based on unilatex.vim by Jos van den Oever <oever@fenk.wau.nl>
"
" Changelog
" 0.1.3 - added more mappings and fixed bug in HaskellSrcToUTF8, thanks
" to edwardkmett at Reddit
" 0.1.2 - added syntax highlighting as suggested by sfvisser at Reddit
" 0.1.1 - fixed stupid bug with haskell lambda expression
" 0.1 - initial release
"
" Version: 0.1.2
" Last Changed: 7 April 2009
" Maintainer: Andrey Popp <andrey.popp@braintrace.ru>
" Map to unicode symbols
imap <buffer> \ λ
imap <buffer> <-
imap <buffer> ->
imap <buffer> <=
imap <buffer> >=
imap <buffer> ==
imap <buffer> /=
imap <buffer> =>
imap <buffer> >> »
imap <buffer> .<space><space>
imap <buffer> forall<space>
" Turn syntax highlight on for new symbols
syn match hsVarSym "(\|λ\|←\|→\|≲\|≳\|≡\|≠\| )"
if exists("s:loaded_unihaskell")
finish
endif
let s:loaded_unihaskell = 1
augroup HaskellC
autocmd BufReadPost *.hs cal s:HaskellSrcToUTF8()
autocmd BufWritePre *.hs cal s:UTF8ToHaskellSrc()
autocmd BufWritePost *.hs cal s:HaskellSrcToUTF8()
augroup END
" function to convert ''fancy haskell source'' to haskell source
function s:UTF8ToHaskellSrc()
let s:line = line(".")
let s:column = col(".")
silent %s/λ/\\/eg
silent %s/←/<-/eg
silent %s/→/->/eg
silent %s/≲/<=/eg
silent %s/≳/>=/eg
silent %s/≡/==/eg
silent %s/≠/\/=/eg
silent %s/⇒/=>/eg
silent %s/»/>>/eg
silent %s/∙ /. /eg
silent %s/∀/forall /eg
let &l:fileencoding = s:oldencoding
call cursor(s:line,s:column)
endfunction
" function to convert haskell source to ''fancy haskell source''
function s:HaskellSrcToUTF8()
let s:line = line(".")
let s:column = col(".")
let s:oldencoding = &l:fileencoding
set fileencoding=utf-8
silent %s/[^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>?@\^|~.]\@<=\\\([^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>\?@\^|~.]\)/λ\1/eg
silent %s/[^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>?@\^|~.]\@<=->\([^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>\?@\^|~.]\)/→\1/eg
silent %s/[^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>?@\^|~.]\@<=<-\([^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>\?@\^|~.]\)/←\1/eg
silent %s/[^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>?@\^|~.]\@<=<=\([^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>\?@\^|~.]\)/≲\1/eg
silent %s/[^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>?@\^|~.]\@<=>=\([^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>\?@\^|~.]\)/≳\1/eg
silent %s/[^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>?@\^|~.]\@<===\([^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>\?@\^|~.]\)/≡\1/eg
silent %s/[^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>?@\^|~.]\@<=\/=\([^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>\?@\^|~.]\)/≠\1/eg
silent %s/[^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>?@\^|~.]\@<==>\([^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>\?@\^|~.]\)/⇒\1/eg
silent %s/[^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>?@\^|~.]\@<=>>\([^λ←→≲≳≡≠⇒»∙∀\\\-!#$%&*+/<=>\?@\^|~.]\)/»\1/eg
silent %s/forall /∀/eg
silent %s/ \@<=\. /∙ /eg
let &l:fileencoding = s:oldencoding
call cursor(s:line,s:column)
endfunction
do HaskellC BufRead
This diff is collapsed.
" rudimentary hpaste support for vim
" (using netrw for reading, wget for posting/annotating)
"
" claus reinke, last modified: 07/04/2009
"
" part of haskell plugins: http://projects.haskell.org/haskellmode-vim
" unless wget is in your PATH, you need to set g:wget
" before loading this script. windows users are out of
" luck, unless they have wget installed (such as the
" cygwin one looked for here), or adapt this script to
" whatever alternative they have at hand (perhaps using
" vim's perl/python bindings?)
if !exists("g:wget")
if executable("wget")
let g:wget = "!wget -q"
else
let g:wget = "!c:\\cygwin\\bin\\wget -q"
endif
endif
" read (recent) hpaste files
" show index in new buffer, where ,r will open current entry
" and ,p will annotate current entry with current buffer
command! HpasteIndex call HpasteIndex()
function! HpasteIndex()
new
read http://hpaste.org
%s/\_$\_.//g
%s/<tr[^>]*>//g
%s/<\/tr>/ /g
g/<\/table>/d
g/DOCTYPE/d
%s/<td>\([^<]*\)<\/td><td><a href="\/fastcgi\/hpaste\.fcgi\/view?id=\([0-9]*\)">\([^<]*\)<\/a><\/td><td>\([^<]*\)<\/td><td>\([^<]*\)<\/td><td>\([^<]*\)<\/td>/\2 [\1] "\3" \4 \5 \6/
map <buffer> ,r 0yE:noh<cr>:call HpasteEditEntry('"')<cr>
endfunction
" load an existing entry for editing
command! -nargs=1 HpasteEditEntry call HpasteEditEntry(<f-args>)
function! HpasteEditEntry(entry)
new
exe 'Nread http://hpaste.org/fastcgi/hpaste.fcgi/raw?id='.a:entry
"exe 'map <buffer> ,p :call HpasteAnnotate('''.a:entry.''')<cr>'
endfunction
" " posting temporarily disabled -- needs someone to look into new
" " hpaste.org structure
" " annotate existing entry (only to be called via ,p in HpasteIndex)
" function! HpasteAnnotate(entry)
" let nick = input("nick? ")
" let title = input("title? ")
" if nick=='' || title==''
" echo "nick or title missing. aborting annotation"
" return
" endif
" call HpastePost('annotate/'.a:entry,nick,title)
" endfunction
"
" " post new hpaste entry
" " using 'wget --post-data' and url-encoded content
" command! HpastePostNew call HpastePost('new',<args>)
" function! HpastePost(mode,nick,title,...)
" let lines = getbufline("%",1,"$")
" let pat = '\([^[:alnum:]]\)'
" let code = '\=printf("%%%02X",char2nr(submatch(1)))'
" let lines = map(lines,'substitute(v:val."\r\n",'''.pat.''','''.code.''',''g'')')
"
" let url = 'http://hpaste.org/' . a:mode
" let nick = substitute(a:nick,pat,code,'g')
" let title = substitute(a:title,pat,code,'g')
" if a:0==0
" let announce = 'false'
" else
" let announce = a:1
" endif
" let cmd = g:wget.' --post-data="content='.join(lines,'').'&nick='.nick.'&title='.title.'&announce='.announce.'" '.url
" exe escape(cmd,'%')
" endfunction
-- 7.6.3
AlternativeLayoutRule
AlternativeLayoutRuleTransitional
Arrows
BangPatterns
CApiFFI
CPP
ConstrainedClassMethods
ConstraintKinds
DataKinds
DatatypeContexts
DefaultSignatures
DeriveDataTypeable
DeriveFoldable
DeriveFunctor
DeriveGeneric
DeriveTraversable
DisambiguateRecordFields
DoAndIfThenElse
DoRec
EmptyDataDecls
ExistentialQuantification
ExplicitForAll
ExplicitNamespaces
ExtendedDefaultRules
FlexibleContexts
FlexibleInstances
ForeignFunctionInterface
FunctionalDependencies
GADTSyntax
GADTs
GHCForeignImportPrim
GeneralizedNewtypeDeriving
Haskell2010
Haskell98
ImplicitParams
ImplicitPrelude
ImpredicativeTypes
IncoherentInstances
InstanceSigs
InterruptibleFFI
KindSignatures
LambdaCase
LiberalTypeSynonyms
MagicHash
MonadComprehensions
MonoLocalBinds
MonoPatBinds
MonomorphismRestriction
MultiParamTypeClasses
MultiWayIf
NPlusKPatterns
NamedFieldPuns
NoAlternativeLayoutRule
NoAlternativeLayoutRuleTransitional
NoArrows
NoBangPatterns
NoCApiFFI
NoCPP
NoConstrainedClassMethods
NoConstraintKinds
NoDataKinds
NoDatatypeContexts
NoDefaultSignatures
NoDeriveDataTypeable
NoDeriveFoldable
NoDeriveFunctor
NoDeriveGeneric
NoDeriveTraversable
NoDisambiguateRecordFields
NoDoAndIfThenElse
NoDoRec
NoEmptyDataDecls
NoExistentialQuantification
NoExplicitForAll
NoExplicitNamespaces
NoExtendedDefaultRules
NoFlexibleContexts
NoFlexibleInstances
NoForeignFunctionInterface
NoFunctionalDependencies
NoGADTSyntax
NoGADTs
NoGHCForeignImportPrim
NoGeneralizedNewtypeDeriving
NoImplicitParams
NoImplicitPrelude
NoImpredicativeTypes
NoIncoherentInstances
NoInstanceSigs
NoInterruptibleFFI
NoKindSignatures
NoLambdaCase
NoLiberalTypeSynonyms
NoMagicHash
NoMonadComprehensions
NoMonoLocalBinds
NoMonoPatBinds
NoMonomorphismRestriction
NoMultiParamTypeClasses
NoMultiWayIf
NoNPlusKPatterns
NoNamedFieldPuns
NoNondecreasingIndentation
NoOverlappingInstances
NoOverloadedStrings
NoPackageImports
NoParallelArrays
NoParallelListComp
NoPatternGuards
NoPatternSignatures
NoPolyKinds
NoPolymorphicComponents
NoPostfixOperators
NoQuasiQuotes
NoRank2Types
NoRankNTypes
NoRebindableSyntax
NoRecordPuns
NoRecordWildCards
NoRecursiveDo
NoRelaxedLayout
NoRelaxedPolyRec
NoScopedTypeVariables
NoStandaloneDeriving
NoTemplateHaskell
NoTraditionalRecordSyntax
NoTransformListComp
NoTupleSections
NoTypeFamilies
NoTypeOperators
NoTypeSynonymInstances
NoUnboxedTuples
NoUndecidableInstances
NoUnicodeSyntax
NoUnliftedFFITypes
NoViewPatterns
NondecreasingIndentation
OverlappingInstances
OverloadedStrings
PackageImports
ParallelArrays
ParallelListComp
PatternGuards
PatternSignatures
PolyKinds
PolymorphicComponents
PostfixOperators
QuasiQuotes
Rank2Types
RankNTypes
RebindableSyntax
RecordPuns
RecordWildCards
RecursiveDo
RelaxedLayout
RelaxedPolyRec
Safe
ScopedTypeVariables
StandaloneDeriving
TemplateHaskell
TraditionalRecordSyntax
TransformListComp
Trustworthy
TupleSections
TypeFamilies
TypeOperators
TypeSynonymInstances
UnboxedTuples
UndecidableInstances
UnicodeSyntax
UnliftedFFITypes
Unsafe
ViewPatterns
--
-fimplicit-import-qualified
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
" $Id: eregex_e.vim,v 1.40 2003-06-03 18:25:59+09 ta Exp ta $
" An evaluater for eregex.vim
if exists('g:eregex_evaluater_cmd') && exists('g:eregex_evaluater_how_exe')
if g:eregex_evaluater_how_exe==0
" :s silently exec, handle errmsg
silent! exec g:eregex_evaluater_cmd
elseif g:eregex_evaluater_how_exe==1
" :s invoked by :g and
" :s with confirm option
exec g:eregex_evaluater_cmd
elseif g:eregex_evaluater_how_exe==2
":g
redraw
exec g:eregex_evaluater_cmd
endif
endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment