50 lines
1.7 KiB
VimL
50 lines
1.7 KiB
VimL
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
|
|
|
|
" Vim filetype plugin
|
|
" Language: Scheme
|
|
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
|
" URL: http://sites.google.com/site/khorser/opensource/vim
|
|
" Original author: Dorai Sitaram <ds26@gte.com>
|
|
" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
|
|
" Last Change: Oct 23, 2013
|
|
|
|
" Only do this when not done yet for this buffer
|
|
if exists("b:did_ftplugin")
|
|
finish
|
|
endif
|
|
|
|
" Don't load another plugin for this buffer
|
|
let b:did_ftplugin = 1
|
|
|
|
" Copy-paste from ftplugin/lisp.vim
|
|
setl comments=:;
|
|
setl define=^\\s*(def\\k*
|
|
setl formatoptions-=t
|
|
setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
|
|
setl lisp
|
|
setl commentstring=;%s
|
|
|
|
setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
|
|
|
|
" Scheme-specific settings
|
|
if exists("b:is_mzscheme") || exists("is_mzscheme")
|
|
" improve indenting
|
|
setl iskeyword+=#,%,^
|
|
setl lispwords+=module,parameterize,let-values,let*-values,letrec-values
|
|
setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
|
|
setl lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig
|
|
endif
|
|
|
|
if exists("b:is_chicken") || exists("is_chicken")
|
|
" improve indenting
|
|
setl iskeyword+=#,%,^
|
|
setl lispwords+=let-optionals,let-optionals*,declare
|
|
setl lispwords+=let-values,let*-values,letrec-values
|
|
setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
|
|
setl lispwords+=cond-expand,and-let*,foreign-lambda,foreign-lambda*
|
|
endif
|
|
|
|
let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lispwords< lisp< commentstring<"
|
|
|
|
endif
|