Commit Graph

503 Commits

Author SHA1 Message Date
XeroOl
735d8d5663 suppress warnings during tests 2025-07-30 14:25:55 -05:00
XeroOl
ce2b390f8d defeat grep, and make FENNEL depend on vendor instead of file presence 2025-07-30 14:24:53 -05:00
XeroOl
4167e02c30 save a line 2025-07-30 13:57:05 -05:00
XeroOl
48b4653a70 triggerCharacters 2025-07-30 13:49:41 -05:00
XeroOl
2a23d2f950 fix completion scope bug and fix completion macro call special case and add completions for nil and false and true and improve completion test speeds
I did a lot in one big commit.

fix bug where (each [foo (ipairs [])] |)  wouldn't suggest foo
fix bug with (doto foo |) wouldn't suggest specials and macros, even though it expands to | in a call position
completions for true, false, nil, .nan, .inf
docs for true, false, nil
clarify error message when passing a folder to --lint
improved test performance for completion tests
2025-07-30 00:29:32 -05:00
XeroOl
1733cbab94 compiler environment docs 2025-07-30 00:24:43 -05:00
XeroOl
27a7548453 fix max argument lint 2025-07-29 23:41:23 -05:00
XeroOl
c78f5411bf insert/replace completion support
LSP protocol describes two types of completion: insert, and replace.
It turns out its really easy to support this. The hard part is just
checking if the client actually wants it.
2025-07-26 19:21:26 -05:00
XeroOl
0828820097 completions no longer suggest invalid fields 2025-07-26 19:10:41 -05:00
XeroOl
251a7789a4 add undocumented :compiler-instruction-limit setting
Not sure if I want to keep this, but you can now configure fennel-ls
to cap how long it allows the compiler to compile each top level form.
It will stay undocumented for now.
2025-07-23 23:51:05 -05:00
XeroOl
ef9cf289c5 clean up configuration code a little bit 2025-07-22 21:11:15 -05:00
XeroOl
9be6628bf0 double underscore no longer counts as a leading underscore
Discussed in the user-group briefly. Symbols like __index technically
begin with an underscore but probably don't want to opt out of unused
variable checking.
2025-07-22 20:28:24 -05:00
XeroOl
4f3b89d7a9 get-field is unused 2025-07-19 15:16:55 -05:00
XeroOl
abce63e696 fix hover message 2025-07-19 15:16:37 -05:00
XeroOl
319a2ddf10 better messages for not-enough-arguments and too-many-arguments 2025-07-18 13:23:10 -05:00
XeroOl
284a760224 fix the | virtual cursor character appearing in completion output 2025-07-18 12:45:48 -05:00
Jason Shipman
7b92d6dc2e Detect if useBitLib flag should be passed to compiler options 2025-07-17 16:40:03 -05:00
XeroOl
0817af9488 New nested-associative-operator lint
I want to also get like (if a (if b c)) at some point, but this lint
only covers the ones where flattening fixes it always.
2025-07-17 16:37:44 -05:00
XeroOl
ea826576e3 clean up some documentation and code 2025-07-17 14:43:53 -05:00
XeroOl
5a2e6ef091 fix ci and add more changelog 2025-07-16 22:50:18 -05:00
XeroOl
1c3d7fbe21 make the completion tests run faster
performance is starting to bother me, but I've made completions faster (in tests).
2025-07-16 02:05:31 -05:00
XeroOl
8811454456 split mismatched-argument-count lint into not-enough-arguments and too-many-arguments 2025-07-15 22:56:20 -05:00
XeroOl
4671d50234 new lint invalid-flsproject-settings, and completely rewrite the way settings get checked 2025-07-15 00:57:06 -05:00
XeroOl
c0a740461b move documentation check to later 2025-07-14 22:56:49 -05:00
XeroOl
20b9381eda add a fix to pcall docs in 5.1 2025-07-14 22:53:50 -05:00
XeroOl
c5f36ac813 clean up documentation strings 2025-07-14 01:14:31 -05:00
XeroOl
b0760a2aad stop tracking doc/lints.md 2025-07-13 13:05:50 -05:00
XeroOl
ff601e4c17 docs/lints.md is now a generated file. maybe I shouldn't keep it tracked anymore, lol 2025-07-12 21:40:44 -05:00
XeroOl
dbc596d10f add stuff to changelog 2025-07-12 20:21:15 -05:00
XeroOl
3ce8cb9157 add lints to changelog 2025-07-12 16:44:32 -05:00
XeroOl
722a3a6089 make selflint now covers tests 2025-07-12 16:11:51 -05:00
XeroOl
d4c24b00f4 duplicate-table-keys lint 2025-07-12 16:11:36 -05:00
XeroOl
d219cfffcb clean up some lint documentation 2025-07-12 16:02:21 -05:00
XeroOl
a54745c581 make the arg comparator even more potent 2025-07-12 14:00:11 -05:00
XeroOl
561f199505 hardcode in some argument counting exceptions 2025-07-11 23:39:01 -05:00
XeroOl
5143310b90 introduce mismatched-argument-count lint 2025-07-11 19:16:06 -05:00
XeroOl
772d59fff1 more changes to the linting system 2025-07-11 18:22:16 -05:00
XeroOl
b4d2683c33 yet another lint refactor 2025-07-11 16:25:54 -05:00
XeroOl
7b215e15e8 fix completions in comments and strings, and more reliable binding completions 2025-07-11 14:06:33 -05:00
XeroOl
28e20f74cb better completions in destructure bindings 2025-07-08 23:01:11 -05:00
XeroOl
b7e497228f completions for "true" "false" and "nil" 2025-07-08 21:08:12 -05:00
XeroOl
e17ecef292 macroexpansion feature for hover and code action 2025-07-08 20:49:35 -05:00
XeroOl
3855e59cbf simplify dependencies and docs handling 2025-07-08 19:40:48 -05:00
XeroOl
777083f12f fix warnings and stack issue 2025-07-08 19:10:11 -05:00
Phil Hagelberg
f52962befc Allow FENNELFLAGS to be overridden in makefile. 2025-07-04 19:18:50 -07:00
XeroOl
7750afba4e change the CI to run the tests before doing linting 2025-07-02 22:41:11 -05:00
XeroOl
1e8784a55a rework hovering 2025-07-02 22:37:02 -05:00
XeroOl
0641b1b098 simplify completions 2025-07-02 19:11:10 -05:00
XeroOl
ad136b00ec use ? line numbers when position is unknown in --lint
I only did this for compile errors, not parse errors or lint errors.
2025-07-01 00:00:26 -05:00
XeroOl
e2e020e3ba slightly better hashfn support 2025-06-28 19:35:39 -05:00