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