summaryrefslogtreecommitdiffstats
path: root/runtime/ftplugin/scheme.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ftplugin/scheme.vim')
-rw-r--r--runtime/ftplugin/scheme.vim58
1 files changed, 58 insertions, 0 deletions
diff --git a/runtime/ftplugin/scheme.vim b/runtime/ftplugin/scheme.vim
new file mode 100644
index 0000000..04655bc
--- /dev/null
+++ b/runtime/ftplugin/scheme.vim
@@ -0,0 +1,58 @@
+" Vim filetype plugin file
+" Language: Scheme (R7RS)
+" Last Change: 2019-11-19
+" Author: Evan Hanson <evhan@foldling.org>
+" Maintainer: Evan Hanson <evhan@foldling.org>
+" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
+" Repository: https://git.foldling.org/vim-scheme.git
+" URL: https://foldling.org/vim/ftplugin/scheme.vim
+
+if exists('b:did_ftplugin')
+ finish
+endif
+
+let s:cpo = &cpo
+set cpo&vim
+
+setl lisp
+setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,mb:\|,ex:\|#
+setl commentstring=;%s
+setl define=^\\s*(def\\k*
+setl iskeyword=33,35-39,42-43,45-58,60-90,94,95,97-122,126
+
+let b:undo_ftplugin = 'setl lisp< comments< commentstring< define< iskeyword<'
+
+setl lispwords+=case
+setl lispwords+=define
+setl lispwords+=define-record-type
+setl lispwords+=define-syntax
+setl lispwords+=define-values
+setl lispwords+=do
+setl lispwords+=guard
+setl lispwords+=lambda
+setl lispwords+=let
+setl lispwords+=let*
+setl lispwords+=let*-values
+setl lispwords+=let-syntax
+setl lispwords+=let-values
+setl lispwords+=letrec
+setl lispwords+=letrec*
+setl lispwords+=letrec-syntax
+setl lispwords+=parameterize
+setl lispwords+=set!
+setl lispwords+=syntax-rules
+setl lispwords+=unless
+setl lispwords+=when
+
+let b:undo_ftplugin = b:undo_ftplugin . ' lispwords<'
+
+let b:did_scheme_ftplugin = 1
+
+if exists('b:is_chicken') || exists('g:is_chicken')
+ runtime! ftplugin/chicken.vim
+endif
+
+unlet b:did_scheme_ftplugin
+let b:did_ftplugin = 1
+let &cpo = s:cpo
+unlet s:cpo