lissy
colisper
Our great sponsors
lissy | colisper | |
---|---|---|
4 | 6 | |
12 | 21 | |
- | - | |
9.3 | 0.0 | |
over 1 year ago | almost 2 years ago | |
HTML | Emacs Lisp | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
lissy
-
I made a term rewriting system "Rewrite" as a proof of concept. It is implemented in Javascript in less than 400 LOC.
Check out online playground with examples here. Visit the project homepage and read instructions here.
-
Rewrite (rule based Lisp (sort of))
To visit the project official site, read instructions, and review the source code, please refer to project GitHub pages. If you have any comments or suggestions, please feel free to drop them here.
- GitHub - contrast-zone/rewrite: s-expr based term rewriting system
-
A module system for Rewrite
I'd like to discuss a particular module system I want to implement for rewrite system.
colisper
-
Improving REPL experience in terminal?
Without Lem, how do you edit files? We need to edit and load files in the REPL. magic-ed could help. What if before loading the file, we added some style criticisms? The lisp-critic is waiting to be adopted and expanded (while colisper has too simple rules).
-
Rewrite (rule based Lisp (sort of))
Nice! Reminds me of Comby, which makes it easy to match & replace s-exprs too. https://comby.dev/ (I have this POC for predefined Lisp rules: colisper (warn: just a POC))
-
Anyone using code formatter for elisp?
It's also possible to run emacs in batch mode to indent a file: https://github.com/vindarel/colisper/blob/master/emacs-batch-indent.el I don't recall, maybe it won't fix very ill-indented files.
-
What are common mistakes or unidiomatic patterns you see beginners write in lisp ?
You can find examples here: https://github.com/g000001/lisp-critic (lisp-rules.lisp) and to a smaller extent, here: https://github.com/vindarel/colisper (src/catalogue directory). The lisp-critic is available by default on this custom readline REPL: https://ciel-lang.github.io/CIEL/#/repl?id=friendly-lisp-critic so it can be tried at the terminal (in conjunction with the %edit command). It would be nice if it had better editor integration though. (it shouldn't be too hard, there's one function (critique-file pathname) to call on a file).
-
TIL sort is destructive
This kind of stuff should be checked by static analysis tools. I added a rule in colisper (Comby underneath) to check that sort is followed by copy-seq. (best case right now, it doesn't match global vars with earmuffs). I looked at the lisp-critic, it has no check for sort but is a good candidate.
-
Common Lisp code quality assessment
I started colisper, based on Comby, whose goals are 1) to warn about code smells, according to rules you can also define (not unlike the lisp-critic) and 2) rewrite code, including from Emacs. So, it doesn't answer your examples (see sblint), but it might help for the "other metrics".
What are some alternatives?
hiccup - Fast library for rendering HTML in Clojure
emacs-elisp-autofmt
lisp-format - A tool to format lisp code. Designed to mimic clang-format.
aggressive-indent-mode - Emacs minor mode that keeps your code always indented. More reliable than electric-indent-mode.
slime-critic - SLIME extension for Lisp Critic
emacs-refactor - language-specific refactoring in Emacs
cl-indentify - Automatic indentation for Common Lisp
RLWRAP-SBCL-LISP-COMPLETIONS - How to enable TAB completions of common lisp commands using SBCL
lisp-critic - The Lisp Critic scans your code for instances of bad Lisp programming practice.
sblint - A linter for Common Lisp source code using SBCL
slime-doc-contribs - Documentation contribs for SLIME (the Superior Lisp Interaction Mode for Emacs)
lisp-system-browser - Smalltalk-like system browser for Common Lisp.