16cd13453SBram Moolenaar" Tests for 'lispwords' settings being global-local
26cd13453SBram Moolenaar
36cd13453SBram Moolenaarset nocompatible viminfo+=nviminfo
46cd13453SBram Moolenaar
56cd13453SBram Moolenaarfunc Test_global_local_lispwords()
66cd13453SBram Moolenaar  setglobal lispwords=foo,bar,baz
76cd13453SBram Moolenaar  setlocal lispwords-=foo | setlocal lispwords+=quux
86cd13453SBram Moolenaar  call assert_equal('foo,bar,baz', &g:lispwords)
96cd13453SBram Moolenaar  call assert_equal('bar,baz,quux', &l:lispwords)
106cd13453SBram Moolenaar  call assert_equal('bar,baz,quux', &lispwords)
116cd13453SBram Moolenaar
126cd13453SBram Moolenaar  setlocal lispwords<
136cd13453SBram Moolenaar  call assert_equal('foo,bar,baz', &g:lispwords)
146cd13453SBram Moolenaar  call assert_equal('foo,bar,baz', &l:lispwords)
156cd13453SBram Moolenaar  call assert_equal('foo,bar,baz', &lispwords)
166cd13453SBram Moolenaarendfunc
17db510071SBram Moolenaar
18db510071SBram Moolenaarfunc Test_lisp_indent()
19db510071SBram Moolenaar  enew!
20db510071SBram Moolenaar
21db510071SBram Moolenaar  call append(0, [
22db510071SBram Moolenaar	      \ '(defun html-file (base)',
23db510071SBram Moolenaar	      \ '(format nil "~(~A~).html" base))',
24db510071SBram Moolenaar	      \ '',
25db510071SBram Moolenaar	      \ '(defmacro page (name title &rest body)',
26db510071SBram Moolenaar	      \ '(let ((ti (gensym)))',
27db510071SBram Moolenaar	      \ '`(with-open-file (*standard-output*',
28db510071SBram Moolenaar	      \ '(html-file ,name)',
29db510071SBram Moolenaar	      \ ':direction :output',
30db510071SBram Moolenaar	      \ ':if-exists :supersede)',
31db510071SBram Moolenaar	      \ '(let ((,ti ,title))',
32db510071SBram Moolenaar	      \ '(as title ,ti)',
33db510071SBram Moolenaar	      \ '(with center ',
34db510071SBram Moolenaar	      \ '(as h2 (string-upcase ,ti)))',
35db510071SBram Moolenaar	      \ '(brs 3)',
36db510071SBram Moolenaar	      \ ',@body))))',
37db510071SBram Moolenaar	      \ '',
38db510071SBram Moolenaar	      \ ';;; Utilities for generating links',
39db510071SBram Moolenaar	      \ '',
40db510071SBram Moolenaar	      \ '(defmacro with-link (dest &rest body)',
41db510071SBram Moolenaar	      \ '`(progn',
42db510071SBram Moolenaar	      \ '(format t "<a href=\"~A\">" (html-file ,dest))',
43db510071SBram Moolenaar	      \ ',@body',
44db510071SBram Moolenaar	      \ '(princ "</a>")))'
45db510071SBram Moolenaar	      \ ])
4602b31110SBram Moolenaar  call assert_equal(7, lispindent(2))
4702b31110SBram Moolenaar  call assert_equal(5, 6->lispindent())
48*bd7206e0SBram Moolenaar  call assert_equal(-1, lispindent(-1))
4902b31110SBram Moolenaar
50db510071SBram Moolenaar  set lisp
51db510071SBram Moolenaar  set lispwords&
52db510071SBram Moolenaar  let save_copt = &cpoptions
53db510071SBram Moolenaar  set cpoptions+=p
54db510071SBram Moolenaar  normal 1G=G
55db510071SBram Moolenaar
56db510071SBram Moolenaar  call assert_equal([
57db510071SBram Moolenaar	      \ '(defun html-file (base)',
58db510071SBram Moolenaar	      \ '  (format nil "~(~A~).html" base))',
59db510071SBram Moolenaar	      \ '',
60db510071SBram Moolenaar	      \ '(defmacro page (name title &rest body)',
61db510071SBram Moolenaar	      \ '  (let ((ti (gensym)))',
62db510071SBram Moolenaar	      \ '       `(with-open-file (*standard-output*',
63db510071SBram Moolenaar	      \ '			 (html-file ,name)',
64db510071SBram Moolenaar	      \ '			 :direction :output',
65db510071SBram Moolenaar	      \ '			 :if-exists :supersede)',
66db510071SBram Moolenaar	      \ '			(let ((,ti ,title))',
67db510071SBram Moolenaar	      \ '			     (as title ,ti)',
68db510071SBram Moolenaar	      \ '			     (with center ',
69db510071SBram Moolenaar	      \ '				   (as h2 (string-upcase ,ti)))',
70db510071SBram Moolenaar	      \ '			     (brs 3)',
71db510071SBram Moolenaar	      \ '			     ,@body))))',
72db510071SBram Moolenaar	      \ '',
73db510071SBram Moolenaar	      \ ';;; Utilities for generating links',
74db510071SBram Moolenaar	      \ '',
75db510071SBram Moolenaar	      \ '(defmacro with-link (dest &rest body)',
76db510071SBram Moolenaar	      \ '  `(progn',
77db510071SBram Moolenaar	      \ '    (format t "<a href=\"~A\">" (html-file ,dest))',
78db510071SBram Moolenaar	      \ '    ,@body',
79db510071SBram Moolenaar	      \ '    (princ "</a>")))',
80db510071SBram Moolenaar	      \ ''
81db510071SBram Moolenaar	      \ ], getline(1, "$"))
82db510071SBram Moolenaar
83db510071SBram Moolenaar  enew!
84db510071SBram Moolenaar  let &cpoptions=save_copt
85ce11de87SBram Moolenaar  set nolisp
86db510071SBram Moolenaarendfunc
87*bd7206e0SBram Moolenaar
88*bd7206e0SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
89