Hacker News new | past | comments | ask | show | jobs | submit login
Elsa: Emacs Lisp Static Analyzer (github.com/emacs-elsa)
173 points by goranmoomin on July 16, 2019 | hide | past | favorite | 19 comments




Really interesting. Some of the project inspirations listed are tools to rewrite Clojure source code. Recently I wanted something equivalent for Lua so I started writing one[0]. Refactoring in dynamic languages is harder that in needs to be a lot of times, but static analysis combined with whitespace-preserving ASTs would really help.

[0] https://github.com/Ruin0x11/yalf


And spark joy it does!


Only Sun can sparc Joy.


Perfect product name.


Now we just need to wait for it to make your computer freeze over. Ba dum tss!


I can't find a reference to ELIZA even though I'm sure they (and maybe you) had this in mind.

https://en.m.wikipedia.org/wiki/ELIZA


> (Your favourite princess now in Emacs!)

Pretty sure they just had Elsa in mind.


I need this for Common Lisp.


The SBCL compiler already emits a lot of style-warnings and notes when it compiles code - these warnings serve as a good enough linter for me.


something something "Can we get a static analysis tool?" "No we already have a static analysis tool at home"

Static Analysis Tool At Home: sbcl --load


Not nearly enough, thought with safety declarations cranked up to 11 (to 3, really) and enough type declarations sprinkled around the code, it becomes serviceable as a tool.


> I need this for Common Lisp.

Maybe sblint[0] might help?

It's a pity that the CL userbase is so small and that most of the userbase doesn't think that the small userbase is a problem. :-(

[0] https://github.com/fukamachi/sblint


Why can't it be run directly in Emacs (instead of via cask)?


This is too complex. There is nice function elint-current-buffer that helps me with basic corrections.


What about it do you find complex?


Emacs is too complex. There is nice editor `ed` that helps me with basic corrections.


Line by line.


wow!!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: