Commit Graph

86 Commits

Author SHA1 Message Date
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
XeroOl
fe257c061a Add primitive support for renaming 2023-07-13 00:43:16 -05:00
XeroOl
9d534c161f Unused diagnostic now finds functions 2023-07-12 20:43:23 -05:00
XeroOl
5f701d8a6b Remove the word "mock" from the tests so that I feel better about myself
It isn't mocking if you don't call it mocking
2023-07-12 19:07:28 -05:00
XeroOl
1c2a1d3f6a fix bug with top level symbols 2023-07-12 01:29:53 -05:00
XeroOl
b011004988 Support utf16 offsets, and upgrade textdocumentsync to 2 2023-07-12 00:09:30 -05:00
XeroOl
f367914244 shuffle the macro searcher code a little bit ??? 2023-07-09 20:35:04 -05:00
XeroOl
cd37e05e54 Test changes, and fennel-ls now properly negotiates for utf-8 encoding
Unfortunately, fennel-ls still doesn't respect utf-16 rules if the
negotiations fail.
2023-07-09 19:51:20 -05:00
XeroOl
95245726e1 switch more "match" to "case" 2023-07-07 13:40:12 -05:00
XeroOl
21bd635123 treat lambda and λ as function definitions 2023-06-29 12:23:42 -05:00
XeroOl
2c61b5401a Various changes, and fix a searcher crash 2023-06-22 23:28:17 -05:00
XeroOl
3c79f480a8 macro-path and metadata for builtin macros and a couple bug fixes 2023-06-09 01:08:10 -05:00
XeroOl
20b9094592 Added hover and completion for specials
next on the todo list is macros and globals, and then I want to be able
to choose extra globals to add in.
2023-06-03 01:26:07 -05:00
XeroOl
957def8e42 Improve goto-definition 2023-06-02 20:58:02 -05:00
XeroOl
91d4e1e410 Multivals ruining everything 2023-06-02 18:10:35 -05:00
XeroOl
b2c3c04bfe Completions now come with some doc info 2023-06-02 17:34:19 -05:00
XeroOl
a3f787b008 clean up test code 2023-05-29 12:21:36 -05:00
XeroOl
74100ad8ec fix test when running with luajit 2023-05-29 12:19:48 -05:00
XeroOl
5e0a974e30 add some negative test cases for call completions 2023-05-27 21:35:19 -05:00
XeroOl
a1169308d3 completions on multisyms 2023-05-27 21:28:42 -05:00
XeroOl
7f8942fde6 Support completions of x: symbols 2023-05-27 21:10:49 -05:00
XeroOl
deb571092b Only suggest macros/specials in call position
I know that sometimes macros can sometimes take macro/special arguments
in places other than the call position, but I'm not supporting that for
now. If you're writing code like (-> 1 /), the / won't be offered as a
completion suggestion.
2023-05-27 14:14:40 -05:00
XeroOl
a521701dba Fix "unused variable" lint not counting mutating sets as a use 2023-05-26 18:17:15 -05:00
XeroOl
8c33a46d6d fix crash when compiling: (fn undefined.x []) 2023-05-05 16:45:17 -05:00
XeroOl
eab0769b06 Small changes 2023-05-03 00:16:04 -05:00
XeroOl
fbfd7cdaaa Options over LSP
Fennel-ls now can receive options from the language client over the
protocol. Future work still necessary to have project-local files.
2023-05-02 23:55:37 -05:00
XeroOl
f0b6a2672d textDocument/references, and an unused var lint 2023-04-14 16:18:10 -05:00