xref: /vim-8.2.3635/runtime/ftplugin/scheme.vim (revision dee2e315)
1" Vim filetype plugin
2" Language:      Scheme
3" Maintainer:    Sergey Khorev <[email protected]>
4" URL:		 http://sites.google.com/site/khorser/opensource/vim
5" Original author:    Dorai Sitaram <[email protected]>
6" Original URL:		 http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
7" Last Change:   Feb 12, 2013
8
9" Only do this when not done yet for this buffer
10if exists("b:did_ftplugin")
11  finish
12endif
13
14" Don't load another plugin for this buffer
15let b:did_ftplugin = 1
16
17" Copy-paste from ftplugin/lisp.vim
18setl comments=:;
19setl define=^\\s*(def\\k*
20setl formatoptions-=t
21setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
22setl lisp
23setl commentstring=;%s
24
25" make comments behaviour like in c.vim
26" e.g. insertion of ;;; and ;; on normal "O" or "o" when staying in comment
27setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
28setl formatoptions+=croql
29
30" Scheme-specific settings
31if exists("b:is_mzscheme") || exists("is_mzscheme")
32    " improve indenting
33    setl iskeyword+=#,%,^
34    setl lispwords+=module,parameterize,let-values,let*-values,letrec-values
35    setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
36    setl lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig
37endif
38
39if exists("b:is_chicken") || exists("is_chicken")
40    " improve indenting
41    setl iskeyword+=#,%,^
42    setl lispwords+=let-optionals,let-optionals*,declare
43    setl lispwords+=let-values,let*-values,letrec-values
44    setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
45    setl lispwords+=cond-expand,and-let*,foreign-lambda,foreign-lambda*
46endif
47
48let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lispwords< lisp< commentstring<"
49