Mercurial > vim
view src/testdir/test_lispwords.vim @ 30166:d1c04b4dc60d v9.0.0419
patch 9.0.0419: the :defer command does not check the function arguments
Commit: https://github.com/vim/vim/commit/169003289fb4b2ad18fd7f5807e0d05efff0be85
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Sep 8 19:51:45 2022 +0100
patch 9.0.0419: the :defer command does not check the function arguments
Problem: The :defer command does not check the function argument count and
types.
Solution: Check the function arguments when adding a deferred function.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 08 Sep 2022 21:00:04 +0200 |
parents | 9bc63b4f9c33 |
children |
line wrap: on
line source
" Tests for 'lispwords' settings being global-local. " And other lisp indent stuff. 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()) call assert_equal(-1, lispindent(-1)) 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 func Test_lisp_indent_works() " This was reading beyond the end of the line new exe "norm a\tü(\<CR>=" set lisp norm == bwipe! endfunc " vim: shiftwidth=2 sts=2 expandtab