Michele Campeotto
ed01d95c94
Add missing required LSP field CompletionList.isIncomplete
...
Strict clients (Zed editor) don't accept completions without this flag.
2025-11-08 11:58:16 -06:00
Michele Campeotto
515e40bd4c
Fix unknown field false positive
...
When attempting to search through a require, analyzer.search-list was
returning nil instead of indeterminate if it could not find the file.
Fixes #89
2025-11-08 11:58:14 -06:00
Phil Hagelberg
b08743f79e
Update manual
2025-10-27 18:40:25 -07:00
XeroOl
7036ce5f22
fix push diagnostics sending outdated diagnostics
2025-10-26 14:03:27 -05:00
XeroOl
eb80380ea7
change version to 0.2.3-dev
2025-10-25 15:32:41 -05:00
XeroOl
389de94d09
Release 0.2.2
2025-10-25 15:24:26 -05:00
XeroOl
f5ae8f1803
update to fennel version 1.6.0
2025-10-25 15:18:02 -05:00
XeroOl
148d90a0ba
update docs on packaging
...
the packaging situation has slightly changed since writing the
documentation, so it was out of date.
2025-10-25 14:56:16 -05:00
XeroOl
59b59b98fd
meta tests for selflint and release version
2025-10-25 14:12:50 -05:00
XeroOl
6aabd7797f
skip some unnecessary jsonrpc shennanigans in non-interactive code
...
The "initialize" jsonrpc method calls `config.initialize`, so
we can just call it directly.
2025-10-25 13:48:06 -05:00
Michele Campeotto
9ea6a0965b
Add documentSymbol support
...
Implements LSP documentSymbol request to provide a list of all symbols
defined in the current document. Clients use it to show an outline and
allow to jump to the symbol's definition.
2025-10-22 09:55:55 -05:00
Phil Hagelberg
53426c0a3e
Don't loop endlessly on EOF in server mode.
2025-10-19 13:32:38 -07:00
Phil Hagelberg
7313599907
Revert "Enable legacy-multival lint on fennel-ls itself and fix self-lints."
...
This reverts commit bf17771bab .
2025-10-19 13:32:38 -07:00
Michele Campeotto
1061db98d0
Don't drop multisym delimiters at the end of a symbol
...
added a test for completions
2025-10-19 15:24:33 -05:00
Phil Hagelberg
2b79a0955f
Add --fix command to CLI.
...
If the user declines a fix, it will stop fixing the file it's looking
at and go on to the next one.
If they accept the fix, we have to re-run diagnostics, because fixes
can change offsets and line numbers.
Add tests that invoke the `fennel-ls` executable as a subprocess.
2025-10-12 15:39:49 -07:00
Phil Hagelberg
bf17771bab
Enable legacy-multival lint on fennel-ls itself and fix self-lints.
2025-10-07 20:10:11 -07:00
Phil Hagelberg
2b2c31c577
Add legacy-multival/legacy-multival-case lint and fix.
...
As of Fennel 1.6.0, parens in destructuring is deprecated, and we want
to make it easy for people to convert to using table destructuring
instead since it's optimized to compile to the same thing.
2025-10-07 10:18:04 -07:00
XeroOl
467454f4e2
fennel-ls doesn't support workspace diagnostics
2025-10-03 19:52:22 -05:00
thacuber2a03
91d32f11d9
fix illegal shape of diagnosticProvider in handlers
...
for now, interFileDependencies and workspaceDiagnostics are enabled
2025-10-03 19:26:46 -05:00
XeroOl
b355e6d144
fix macro handling
2025-09-23 19:49:48 -05:00
XeroOl
03addbf312
prepare for message batching
2025-09-14 18:24:26 -05:00
XeroOl
cd9821cd80
fix fennel-ls#81
2025-08-29 16:09:27 -05:00
XeroOl
5c0894d57d
fix vararg issue in compiler environment
2025-08-29 15:41:07 -05:00
XeroOl
ca56679b3d
this changes nothing
2025-08-26 01:10:19 -05:00
XeroOl
6b5f787bc9
simplify unknown module code
2025-08-22 19:03:53 -05:00
XeroOl
13b75260b2
fix initialization options ignoring symbol splitting
2025-08-22 19:03:53 -05:00
Rudolf Adamkovič
fe3fd3340d
Add empty-do hint
2025-08-16 10:07:19 -07:00
XeroOl
bd81685887
adjust todo comments
2025-08-13 13:06:10 -05:00
XeroOl
dce69a2b24
test that functions don't evaluate to themselves
...
There was a bug at some point that fennel assumed a function call would
evaluate to the function being called, which is not true.
2025-08-13 13:03:21 -05:00
XeroOl
3c1e01da6f
fix selflint issues, and update changelog
2025-08-08 01:16:28 -05:00
XeroOl
bf3f353b8d
fix issue with duplicate errors
...
fixes #75
2025-08-08 01:12:57 -05:00
XeroOl
fce339f506
Clean up lint API - ast instead of range, and no severity
...
The "other" type lints are still unsolved.
Co-authored-by: Phil Hagelberg <phil@hagelb.org>
2025-08-07 23:30:12 -05:00
Phil Hagelberg
de784e91ad
Add zero-indexed lint.
2025-08-07 23:01:23 -05:00
XeroOl
a366e5996d
rewrite diagnostics to support pull diagnostics
2025-08-07 22:57:07 -05:00
XeroOl
c127c54937
sort text for completions
...
some cursed heuristics for completions, because nvim-cmp kept getting
them wrong. nvim-cmp actually prioritizes kind over sort text, so it
will still get it wrong, but I'm hoping that having a correct sort-text
helps other editors.
2025-08-01 19:28:23 -05:00
XeroOl
1fb27f876b
minor refactor
2025-07-30 17:12:15 -05:00
XeroOl
08e5d38b57
special? and op? shouldn't be in the compiler if we're not using them
2025-07-30 16:39:53 -05:00
XeroOl
38cfd9a249
tricky macro hidden scope completions
...
it's hard to tell which scope something is in. This makes completions a
little better but it misses docs during good completion
2025-07-30 15:59:43 -05:00
XeroOl
dfa42610f7
fix __pairs on older lua
2025-07-30 14:54:37 -05:00
XeroOl
9aba5baef2
pass in custom compiler environment
2025-07-30 14:45:19 -05:00
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