There are still a few things that need to be addressed to make the interface for defun, defautocmd and defcommand a bit simpler/more consistent for the user:
[x] placeholder gensyms used to properly parse the options passed by nvim should be made ignorable to avoid useless warnings
[x] we can probably figure out the nargs option by just checking if lambda-list contains &rest symbol or alternatively by counting how many symbols it contains
[x] if user specifies an option o in arglist after &opts, we can assume he wants the default in declare statement for o -- declare can be used only when user wants special behavior
[x] declares unrelated to opts should not just be ignored as they are now
[x] make return-from work
[x] synchronous versions should make sure return values are encodable by mpk
[x] I think there is still a problem with slime's indentation not working as one would expect
[x] booleans that get passed from neovim (such as those for bang) should be passed to user as T or NIL instead of 1 or 0
There are still a few things that need to be addressed to make the interface for
defun
,defautocmd
anddefcommand
a bit simpler/more consistent for the user:ignorable
to avoid useless warningsnargs
option by just checking if lambda-list contains&rest
symbol or alternatively by counting how many symbols it containsdeclare
s unrelated toopts
should not just be ignored as they are nowreturn-from
workbang
) should be passed to user asT
orNIL
instead of1
or0