summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-10-03llama--collect: Support spliceJonas Bernoulli
2024-10-03llama--collect: Optimize unquotingJonas Bernoulli
This avoids one call to `llama--collect' per ,unquote.
2024-10-03llama--fontify: Handle nilJonas Bernoulli
2024-10-03Address ##'s identity crisisJonas Bernoulli
When the file was evaluated, the previous code worked, but when the compiled file is loaded instead, then (eq '## X) where X's value is a "runtime '##", returns nil.
2024-10-03llama--{collect,fontify}: Stop at nested llama expressionJonas Bernoulli
2024-10-03Add tests for llama macroJonas Bernoulli
2024-10-03llama-font-lock-keywords-29: Use font-lock-keyword-face for llamaJonas Bernoulli
Make that the default, but do so via a new `llama-llama-macro' face to make it customizable. Rename `llama-macro' to `llama-\#\#-macro' for consistency.
2024-10-03llama--match-and-fontify: SimplifyJonas Bernoulli
2024-10-02Quote paren in docstringJonas Bernoulli
This is necessary at the beginning of a line, as otherwise `outline-minor-mode' gets confused.
2024-10-02Complete correction of outdated examplesJonas Bernoulli
Finish [1: cea812d]. 1: 2024-05-20 cea812d16129749deb524771e615a4a831604a83 Correct outdated examples
2024-10-02Be explicit about % and %N being mandatoryJonas Bernoulli
2024-10-02Fix quoting in primary docstringJonas Bernoulli
2024-09-20Improve font-lock for Emacs >= 29.1Jonas Bernoulli
Only highlight arguments within macro body. Do not highlight quoted arguments. While `##' or `llama' is highlighted instantly, arguments are only highlighted once closing parenthesis is in place. While this new variant takes care to rehighlight multiline constructs, it does not ensure correct identification of multiline constructs. Doing the latter seems too expensive.
2024-09-20llama--maybe-face: Handle llama as wellJonas Bernoulli
2024-09-20llama-font-lock-keywords: Also fontify llamaJonas Bernoulli
Use the same face as for `lambda' not the same as for `##'. The reason that `##' uses another face is that it might appear right next to another symbol using `font-lock-keyword-face' with no space in between. By using another face, we prevent them from looking like one symbol. The same cannot happen for `llama'.
2024-09-20Add alias that can be completed to in describe-functionMartin Edström
2024-09-20Reword documentation to avoid `%' being linkified in docstringJonas Bernoulli
Suggested-by: L. Andrew <flandrew@tutanota.com>
2024-09-20Remove a style recommendationJonas Bernoulli
Suggested-by: L. Andrew <flandrew@tutanota.com>
2024-09-20gitignore: /*-pkg.elJonas Bernoulli
2024-09-15No longer highlight % and & in function positionJonas Bernoulli
2024-09-15Support backquote construct in place of FNJonas Bernoulli
2024-09-15Add special handling of backquoteJonas Bernoulli
2024-09-15llama--collect: CosmeticsJonas Bernoulli
2024-09-15Handle explicit unused arguments in vectors and dotted-lists tooJonas Bernoulli
To do so, merge the code-paths for regular lists, dotted-lists and vectors.
2024-09-15Add more testsJonas Bernoulli
2024-09-15llama--collect: Change order of symbols in error messageJonas Bernoulli
Show them in the same order as they appear in the code. Suggested-by: L. Andrew <flandrew@tutanota.com>
2024-09-07No longer support shorthands in function positionJonas Bernoulli
2024-09-07llama--collect: Correct name of internal variableJonas Bernoulli
2024-09-07llama--collect: Fix return value for dotted listsJonas Bernoulli
Previously only the last cons-cell was returned. Now the expression is returned unchanged. That means that we still do not remove explicit unused arguments from the returned value. As before these have to be placed elsewhere.
2024-08-17Remove Package-Version headerJonas Bernoulli
I'll have to wait until the next release to be able to add this again. Closes #2.
2024-08-15Fix format of Package-Requires headerJonas Bernoulli
Closes #1.
2024-08-11Update homepage urlJonas Bernoulli
2024-08-11Convert readme to orgJonas Bernoulli
2024-08-10Add Package-Version and Package-Requires headersJonas Bernoulli
Emacs 26.1 is needed for `mapcan', but I wouldn't want to support older releases anyway.
2024-07-23Always advise elisp-mode-syntax-propertizeJonas Bernoulli
2024-06-09elisp--expect-function-p@llama: Add docstringJonas Bernoulli
2024-06-09Use define-advice instead of advice-addJonas Bernoulli
2024-05-30Hide the empty symbol from loaddefs-generate--compute-prefixesJonas Bernoulli
2024-05-20Hide the empty symbol from completing-readJonas Bernoulli
Re https://github.com/minad/vertico/discussions/481.
2024-05-20Correct outdated examplesJonas Bernoulli
2024-04-15Update contact informationJonas Bernoulli
2024-04-03llama-erased-argument: Rename to llama-deleted-argumentJonas Bernoulli
"Delete" and "remove" are the terms usually used in Emacs/Lisp, and the former seems more fitting, since I tend to think of this as a destructive transformation.
2024-04-03llama-erase-argument: Rearrange properties of box attributeJonas Bernoulli
The order should not matter, but a user reported privately that on Emacs 29.3 it does; we get an "Invalid face box" error otherwise.
2024-03-23Update documentationJonas Bernoulli
2024-03-23Add testsJonas Bernoulli
2024-03-23llama--collect: Signal error on all argument conflictsJonas Bernoulli
The assert was needlessly limited to the first argument, to catch specifically `%1'vs`%' and `&1'vs`&' (but also, e.g., `%1'vs`_&'). Now be also detect `%N'vs`&N', `%N'vs`_%N' and even conflicts were multiple aspects differ (e.g., `%2'vs`_&2'). We could just use `%N' in the arglist when both `%N' and `_%N' appear in the body. Since `_%N' is dropped from the body, that wouldn't result in an unbound variable error, as would happen in other cases. But that would both complicate the implementation and hide a user mistake, which could be of consequence (e.g., if they actually meant `_%N+1').
2024-03-23Make unused arguments at mandatoriness border optional by defaultJonas Bernoulli
Previously we turned (##list %1 &3) into (lambda (%1 _%2 &optional &3) (list %1 &3)) now we use (lambda (%1 &optional _&2 &3) (list %1 &3)) The new approach is better because even if the first form would have been "correct", the latter will nearly¹ always at least be "valid". The same isn't true for the old approach. If we make an argument mandatory that should be optional, and the callers does not pass that argument, that's an error. These cases are several magnitudes more likely. ¹ The exception being callers that check a functions *minimal* arity to determine what arguments to pass. In the unlikely case that one should ever encounter such a caller, one can use an explicit _%N, as one previously would frequently have had to use _&N.
2024-03-23##: Use while to drop trailing unused argumentsJonas Bernoulli
Using `seq-drop-while' would be nicer, but we want to avoid dependencies.
2024-03-23##: Order steps chronologicallyJonas Bernoulli
2024-03-23##: Completely separate handling of rest argumentsJonas Bernoulli