Commit Graph

112 Commits

Author SHA1 Message Date
XeroOl
cc05d7089f final attempt at fixing builds.sr.ht 2024-03-04 00:38:47 -06:00
XeroOl
80d0e297a1 more likely pass builds.sr.ht tests 2024-03-04 00:36:53 -06:00
XeroOl
65ea473197 new rockspec to make the luarocks rock work 2024-03-04 00:30:06 -06:00
XeroOl
888689a3a1 Make tests pass on old lua versions 2024-03-03 23:14:22 -06:00
XeroOl
f14d91b9c4
add test for hover over modules 2024-03-03 23:03:31 -06:00
XeroOl
0a766c6425 Finally, documentation for table.insert 2024-03-02 20:12:27 -06:00
XeroOl
308f7d9930 fix broken test 2024-03-02 10:55:15 -06:00
XeroOl
1eb4a770dd Make the multisym splitter tiebreak the right way 2024-03-01 21:36:00 -06:00
XeroOl
cb8dc29bed Analyze (include) the same way as (require) 2024-03-01 17:37:32 -06:00
XeroOl
be997dc7fb add diagnostic test for unknown module field 2024-03-01 17:32:51 -06:00
XeroOl
0dd9c0ff65 improved formatting for destructure 2024-03-01 17:29:01 -06:00
XeroOl
cab3bbc49d remove the dummy test project files 2024-03-01 17:01:10 -06:00
XeroOl
25375715c7 Restore hovering to globals 2024-03-01 16:48:07 -06:00
XeroOl
66bcfc65e5 fix completions for M style modules 2024-03-01 16:39:46 -06:00
XeroOl
45ab692db4 don't warn for symbols hidden in macros 2024-03-01 14:52:23 -06:00
XeroOl
284983657f continue compilation in broken let statements 2024-03-01 14:51:18 -06:00
XeroOl
186c388344 Change tests to faith 2024-03-01 14:43:26 -06:00
XeroOl
418e04edff fix tests to work again 2024-02-24 00:00:33 -06:00
XeroOl
a7d6122670 Fix completion problem in (if) conditions with no body 2024-02-23 23:52:27 -06:00
XeroOl
44805cd675 Add lint for (values) in non-tail position of a call 2024-02-23 12:25:51 -06:00
XeroOl
6152bed8a6 Move json dependency to fennel-ls/json, to represent that it's a modified version 2024-02-19 21:32:38 -06:00
XeroOl
b8565bd146 More language.fnl changes 2024-02-12 21:41:14 -06:00
XeroOl
d3f6d95c09 change the names to be more different 2024-02-11 23:55:05 -06:00
XeroOl
6f9935a781 Fix renames that cover method calls
That was a tough one to debug! I almost thought it was a bug in fennel,
but it, of course, turned out to be a fennel-ls problem.

When you have a symbol like (foo:bar), fennel compiles it by
"macroexpanding" it to (: foo :bar). When fennel macroexpands a macro,
it tries to clean up the output by giving it a best-guess
bytestart/byteend. Fennel-ls was picking up *both* the accurate
`foo:bar` sym and the best-guess virtual `foo` sym as separate
references to `foo`. When computing the renames, the best-guess values
were getting used, which made the replacement range inaccurate.
2024-02-11 23:45:08 -06:00
XeroOl
be5e167d67 very minor fix for completions 2024-02-11 23:11:45 -06:00
XeroOl
3a3b5d38d6 better multisym search, and hover tests to prove it
The search code is getting messy again. I may have to refactor it at
some point.
2024-02-10 01:07:43 -06:00
XeroOl
0e47eee5a4 test: completion edit range testing 2024-02-09 14:15:38 -06:00
XeroOl
3da1e6304b test: add check for unused diagnostic 2024-02-08 12:26:22 -06:00
XeroOl
b6b51698c4 added "セ" character to unicode tests
Although it was properly handled it before, there were no tests for
the unicode offset conversions that used characters that are 3 bytes
in utf8 and 2 bytes in utf16, so I added one. Now, every single
""type"" of charater is tested.
2024-02-03 01:34:41 -06:00
XeroOl
c1f9d43687 added a test for hovering over multival destructure 2024-02-03 01:31:46 -06:00
XeroOl
25e279eda3 completions textEdit initial code 2024-02-03 01:31:27 -06:00
XeroOl
8b6d905450 make multival definition tracking much better
there should now be no cases where multivals and table destructures are
confused. ie, (local [_ x] (values 1 2)) and (local (_ x) [1 2]) are recognized
as nonsense.
2024-02-02 02:12:30 -06:00
XeroOl
297f6c4fa9 fix set rename issue ~xerool/fennel-ls#8
Now unused variables and var-not-set lints use a different system.

References are now of type:
{:symbol sym :target ast :ref-type (or :read :write :mutate)}
instead of ast.

unused var will warn if all the references are :write references.
2024-01-25 00:06:59 -06:00
XeroOl
01035980b0 factoring 2024-01-25 00:06:59 -06:00
XeroOl
b2ec7e5a3a Add debug info to the test 2024-01-25 00:06:51 -06:00
Phil Hagelberg
5055fd31ef Add diagnostic for var-never-set.
This uses the isvar field from the opts map of the destructure hook.
2023-12-06 17:59:26 -06:00
adjuvant
e4ec4dc9c4 Configuration of extra allowed globals 2023-12-03 16:25:54 -06:00
XeroOl
6329fb6ea3 bad-unpack lint warns about (+ (unpack t))
Also, there's a special message for the .. operator to let people know
about table.concat
2023-12-01 14:13:34 -06:00
Phil Hagelberg
5acaac966e Ensure that defining a function on an arg counts as a reference.
Otherwise you get a warning here saying that t is unused:

    (fn f [t x] (fn t.f []) x)
2023-11-26 13:40:20 -06:00
XeroOl
b861812b24 Re-enable the : lint, but with better checks 2023-11-26 12:38:20 -06:00
Phil Hagelberg
c8f9b71057 Add diagnostic warning for unnecessary : call.
When you have a call to the `:` special which could just be a multisym
method call, emit a warning for that.
2023-11-25 18:16:28 -06:00
XeroOl
27d1df23eb Do not warn on fennel rest in function
I kept the test from Tibor Classen's patch, but the code is fixed by
preventing & from ever being a definition, instead of ignoring it only
in the diagnostic.

Co-authored-by: Tibor Claassen <tc@codebeige.net>
2023-11-25 17:55:06 -06:00
XeroOl
824525573a fix a crash
This isn't a great fix, but now finding the definition of a number
doesn't cause a crash.

It used to crash because there's no way to get metadata about the
source-code location of a number.
2023-09-18 17:00:29 -05:00
XeroOl
223976194e textDocument/rename Filter out when symbol references itself
When a symbol is recorded to be its own reference, fennel-ls
accidentally counts the reference twice. That's fine, but we don't want
to replace the same words multiple times
2023-09-16 13:02:14 -05:00
XeroOl
364d02b90d
Better completions for fields of tables
Now it does a two-level-deep search when creating competions for tables,
which means that a completion for module fields have better metadata.
the completion code is a bit of a mess, so I want to look into
refactoring it soon.
2023-09-03 10:23:33 -05:00
adjuvant
31ea7a1039 Allow configuration through initialization options 2023-08-26 20:02:07 -05:00
XeroOl
41a84c5540 fix test for json null 2023-08-21 12:18:26 -05:00
XeroOl
eb1fe781b8 attempt to make the CI more likely to pass 2023-07-20 09:26:36 -05:00
XeroOl
3c2bc8c35c refactor compiler.fnl 2023-07-18 23:53:19 -05:00
XeroOl
ee449df166 Support &as, and ignore & 2023-07-14 10:38:41 -05:00