63 lines
2.1 KiB
EmacsLisp
63 lines
2.1 KiB
EmacsLisp
(require 'slime-parse)
|
|
(require 'slime-tests)
|
|
|
|
(defun slime-check-buffer-form (result-form)
|
|
(slime-test-expect
|
|
(format "Buffer form correct in `%s' (at %d)" (buffer-string) (point))
|
|
result-form
|
|
(slime-parse-form-upto-point 10)))
|
|
|
|
(def-slime-test form-up-to-point.1
|
|
(buffer-sexpr result-form &optional skip-trailing-test-p)
|
|
""
|
|
`(("(char= #\\(*HERE*"
|
|
("char=" "#\\(" ,slime-cursor-marker))
|
|
("(char= #\\( *HERE*"
|
|
("char=" "#\\(" "" ,slime-cursor-marker))
|
|
("(char= #\\) *HERE*"
|
|
("char=" "#\\)" "" ,slime-cursor-marker))
|
|
("(char= #\\*HERE*"
|
|
("char=" "#\\" ,slime-cursor-marker) t)
|
|
("(defun*HERE*"
|
|
("defun" ,slime-cursor-marker))
|
|
("(defun foo*HERE*"
|
|
("defun" "foo" ,slime-cursor-marker))
|
|
("(defun foo (x y)*HERE*"
|
|
("defun" "foo"
|
|
("x" "y") ,slime-cursor-marker))
|
|
("(defun foo (x y*HERE*"
|
|
("defun" "foo"
|
|
("x" "y" ,slime-cursor-marker)))
|
|
("(apply 'foo*HERE*"
|
|
("apply" "'foo" ,slime-cursor-marker))
|
|
("(apply #'foo*HERE*"
|
|
("apply" "#'foo" ,slime-cursor-marker))
|
|
("(declare ((vector bit *HERE*"
|
|
("declare" (("vector" "bit" "" ,slime-cursor-marker))))
|
|
("(with-open-file (*HERE*"
|
|
("with-open-file" ("" ,slime-cursor-marker)))
|
|
("(((*HERE*"
|
|
((("" ,slime-cursor-marker))))
|
|
("(defun #| foo #| *HERE*"
|
|
("defun" "" ,slime-cursor-marker))
|
|
("(defun #-(and) (bar) f*HERE*"
|
|
("defun" "f" ,slime-cursor-marker))
|
|
("(remove-if #'(lambda (x)*HERE*"
|
|
("remove-if" ("lambda" ("x") ,slime-cursor-marker)))
|
|
("`(remove-if ,(lambda (x)*HERE*"
|
|
("remove-if" ("lambda" ("x") ,slime-cursor-marker)))
|
|
("`(remove-if ,@(lambda (x)*HERE*"
|
|
("remove-if" ("lambda" ("x") ,slime-cursor-marker))))
|
|
(slime-check-top-level)
|
|
(with-temp-buffer
|
|
(lisp-mode)
|
|
(insert buffer-sexpr)
|
|
(search-backward "*HERE*")
|
|
(delete-region (match-beginning 0) (match-end 0))
|
|
(slime-check-buffer-form result-form)
|
|
(unless skip-trailing-test-p
|
|
(insert ")") (backward-char)
|
|
(slime-check-buffer-form result-form))
|
|
))
|
|
|
|
(provide 'slime-parse-tests)
|