" Tests for 'lispwords' settings being global-local

set nocompatible viminfo+=nviminfo

func Test_global_local_lispwords()
  setglobal lispwords=foo,bar,baz
  setlocal lispwords-=foo | setlocal lispwords+=quux
  call assert_equal('foo,bar,baz', &g:lispwords)
  call assert_equal('bar,baz,quux', &l:lispwords)
  call assert_equal('bar,baz,quux', &lispwords)

  setlocal lispwords<
  call assert_equal('foo,bar,baz', &g:lispwords)
  call assert_equal('foo,bar,baz', &l:lispwords)
  call assert_equal('foo,bar,baz', &lispwords)
endfunc

func Test_lisp_indent()
  enew!

  call append(0, [
	      \ '(defun html-file (base)',
	      \ '(format nil "~(~A~).html" base))',
	      \ '',
	      \ '(defmacro page (name title &rest body)',
	      \ '(let ((ti (gensym)))',
	      \ '`(with-open-file (*standard-output*',
	      \ '(html-file ,name)',
	      \ ':direction :output',
	      \ ':if-exists :supersede)',
	      \ '(let ((,ti ,title))',
	      \ '(as title ,ti)',
	      \ '(with center ',
	      \ '(as h2 (string-upcase ,ti)))',
	      \ '(brs 3)',
	      \ ',@body))))',
	      \ '',
	      \ ';;; Utilities for generating links',
	      \ '',
	      \ '(defmacro with-link (dest &rest body)',
	      \ '`(progn',
	      \ '(format t "<a href=\"~A\">" (html-file ,dest))',
	      \ ',@body',
	      \ '(princ "</a>")))'
	      \ ])
  call assert_equal(7, lispindent(2))
  call assert_equal(5, 6->lispindent())

  set lisp
  set lispwords&
  let save_copt = &cpoptions
  set cpoptions+=p
  normal 1G=G

  call assert_equal([
	      \ '(defun html-file (base)',
	      \ '  (format nil "~(~A~).html" base))',
	      \ '',
	      \ '(defmacro page (name title &rest body)',
	      \ '  (let ((ti (gensym)))',
	      \ '       `(with-open-file (*standard-output*',
	      \ '			 (html-file ,name)',
	      \ '			 :direction :output',
	      \ '			 :if-exists :supersede)',
	      \ '			(let ((,ti ,title))',
	      \ '			     (as title ,ti)',
	      \ '			     (with center ',
	      \ '				   (as h2 (string-upcase ,ti)))',
	      \ '			     (brs 3)',
	      \ '			     ,@body))))',
	      \ '',
	      \ ';;; Utilities for generating links',
	      \ '',
	      \ '(defmacro with-link (dest &rest body)',
	      \ '  `(progn',
	      \ '    (format t "<a href=\"~A\">" (html-file ,dest))',
	      \ '    ,@body',
	      \ '    (princ "</a>")))',
	      \ ''
	      \ ], getline(1, "$"))

  enew!
  let &cpoptions=save_copt
  set nolisp
endfunc
