Commit Graph

391 Commits

Author SHA1 Message Date
Phil Hagelberg
e48aa8af89 Generate man page using pandoc.
Needs a few tweaks to make it usable but we can just append/prepend
them in the makefile target.
2025-03-04 09:19:36 -08:00
Phil Hagelberg
48d939916c Compatibility with Lua 5.1 ... again. 2025-03-04 08:58:59 -08:00
Phil Hagelberg
f2f661cc73 A few more documentation tweaks. 2025-03-04 08:56:49 -08:00
Michele Campeotto
c993f83595 Added a quick start section to the configuration manual
I received feedback that the info on setting up libraries is a little
buried in all the other details.

Pulling it up, it's likely going to be the first and most frequent
configuration people will want to change.
2025-03-04 08:44:19 -08:00
Phil Hagelberg
3a30fc83ed Support (or table.unpack _G.unpack) pattern without unknown field lint.
Now we are selflint clean! We can enable it in the ci target now.
2025-03-02 22:05:33 -08:00
Phil Hagelberg
356c6bcae7 Fix indeterminate analyze search results. 2025-03-02 21:45:57 -08:00
Phil Hagelberg
1c2f5364be Use match-try instead of case-try to avoid a where clause.
Add changelog entry.
2025-03-02 09:01:35 -08:00
Michele Campeotto
0b979f1e78 documentHighlight should not show references in other files
documentHighlight was highlighting symbols that were defined in other
files (incorrectly, because the response only contains ranges, not
locations), but this feature is meant for the current document only.
2025-03-02 08:56:29 -08:00
Phil Hagelberg
2c71c403d4 Remove outdated mentions to love2d and link to vs-code extension. 2025-03-02 08:41:37 -08:00
Michele Campeotto
1f123c6baa Add docsets information and some reorg 2025-03-02 08:31:20 -08:00
Phil Hagelberg
32350ec44b Recognize deprecated functions that haven't been removed yet. 2025-02-28 04:18:36 -08:00
Phil Hagelberg
024083c7d2 Add test for config validation. 2025-02-28 02:30:59 -08:00
Phil Hagelberg
670f7d108b Only generate lua manual docs; move tic80/love2d to other repo.
https://git.sr.ht/~technomancy/fennel-ls-docsets
2025-02-28 02:30:55 -08:00
Phil Hagelberg
aaf30a99be Update TODOs and other associated docs. 2025-02-27 19:53:33 -08:00
Phil Hagelberg
80b4f9d29a Simplify some handlers case-try to avoid use of where clause. 2025-02-27 18:38:37 -08:00
Michele Campeotto
bb2ccd67c2 Add support for textDocument/documentHighlight 2025-02-27 18:18:35 -08:00
Phil Hagelberg
a7ce5f7826 Queue up validations during initialization and send later.
This is a dumb hack but the validation warnings aren't very useful
without it.

Still needs tests.
2025-02-27 02:30:25 -08:00
Phil Hagelberg
bc0898510e Missing Lua versions or libraries cause warnings, not crashes.
Unfortunately the experience here is not great, at least in emacs; the
spec states that the server may send showMessage during initialization,
but eglot displays these messages only for a brief flash, quickly
replacing them with the "Connected!" message.

We probably need a different solution here but it might get ugly; like
some kind of outbound queue.
2025-02-27 00:56:45 -08:00
Phil Hagelberg
3e4b96ff27 Validate config during initialization. 2025-02-27 00:04:30 -08:00
Phil Hagelberg
029aecd7cb Ensure --lint can print validation messages from initialization. 2025-02-26 23:56:44 -08:00
Phil Hagelberg
d23d36a414 Support :union as lua-version setting. 2025-02-26 23:09:11 -08:00
Phil Hagelberg
0d7e9b6183 Add test to ensure that evil docsets can't run evil code. 2025-02-26 22:54:42 -08:00
Phil Hagelberg
9b54f882c9 Add tests for tic80 docset and fake external docset. 2025-02-26 22:41:59 -08:00
Phil Hagelberg
6790a19fb5 Bring back tic80 built-in docset. 2025-02-26 22:39:57 -08:00
Michele Campeotto
9be8600275 Load libraries docsets from disk at runtime instead of bundling them
The docsets are the same .lua files that are currently being generated
by `make docs`, renamed to .fls to distinguish them from regular code
files.

The files should be copied to $XDG_DATA_HOME/fennel-ls/docsets/, the
subdirectory allows the directory to be used for other things in the
future, maybe some global configutation.

The docset are only loaded if the librarys are added to flsproject.fnl
with the same syntax used until now.
2025-02-26 21:15:52 -08:00
Phil Hagelberg
4020437c6d Update changelog. 2025-02-26 01:42:12 -08:00
Phil Hagelberg
98cd94d212 Add aliases for lua-versions.
Now you can specify "lua54" OR "lua5.4" and get what you need.
2025-02-26 01:38:58 -08:00
Phil Hagelberg
d7b88efe69 Only set default completion kind when it's not already present! 2025-02-26 01:12:02 -08:00
Phil Hagelberg
415c6e95c9 Regenerate docsets to include item kind field. 2025-02-25 05:55:39 -08:00
Michele Campeotto
1d2ea48c16 allow docs to set the item kind 2025-02-25 05:38:50 -08:00
Phil Hagelberg
bbc6ec4d62 Improve selflint results by fixing a few mistakes.
But selflint still does not pass. This appears to be due to bugs:

    src/fennel-ls/searcher.fnl:9:10: unknown field: path-sep
    src/fennel-ls.fnl:44:2: unknown field: table.unpack

The first one is a pretty clear issue with the field being exported
from fennel-ls.utils but somehow not picked up; reason is unclear.

The second is due to the macroexpansion of `case` making reference to
`table.unpack`, but I think it should be suppressed because the
unknown global is not in this code; it's in the macro.

Once these get fixed, we can add selflint to the ci target.
2025-02-25 01:26:21 -08:00
Phil Hagelberg
f6fecd7b0b Dates in the changelog. 2025-02-25 01:08:23 -08:00
Phil Hagelberg
78da9c2edc Add support for :intersection as lua version.
This will only accept globals which are present in every Lua version
from 5.1-5.4. Using this for selflint currently fails, so let's fix
that next.
2025-02-25 01:08:07 -08:00
Phil Hagelberg
93f6543e42 Factor out ci target into subtargets that can be run independently. 2025-02-23 22:56:45 -08:00
Phil Hagelberg
487f4ca6f2 Fix dependency checks in CI. 2025-02-23 22:53:13 -08:00
Phil Hagelberg
2edb9c4df5 Update to fennel 1.5.3 2025-02-16 17:20:32 -08:00
Phil Hagelberg
071154f92e Diagnostics aren't guaranteed to have ranges. 2025-02-16 14:14:14 -08:00
Phil Hagelberg
6cddd6a030 Explain that love2d support is opt-in for licensing reasons.
Booooooooo GFDL.

Also include a link to apt.technomancy.us.
2025-02-15 09:51:54 -08:00
Phil Hagelberg
54c3d5c6c3 Compatible with Fennel 1.5.2. 2025-02-15 09:51:54 -08:00
Phil Hagelberg
dc833b8db9 Disable failing tests. 2025-02-15 09:51:54 -08:00
Phil Hagelberg
b0e7921715 Add no-decreasing-comparison lint (off by default) 2025-02-15 09:51:54 -08:00
Phil Hagelberg
7da1c60e96 Tidy up lint.fnl file. 2025-02-15 09:51:54 -08:00
Phil Hagelberg
adcff56050 Fix warning in completion test; remove unused stuff from makefile. 2025-02-15 09:51:54 -08:00
Phil Hagelberg
e7a92df4cf Install luarocks in CI manifest, not in ci makefile target. 2025-02-15 09:51:54 -08:00
XeroOl
ae66e6d002 analyzer can search into macro expansions and functions
shoutouts to rudy for working with me on these changes.
2025-01-19 19:56:37 -06:00
XeroOl
bfc6d64237 docs: add a table for lspconfig to be happy 2025-01-16 20:55:30 -06:00
Phil Hagelberg
bf06506f92 Disable printing during compilation. 2025-01-05 13:29:45 -08:00
Phil Hagelberg
e5dc04764c Allow trailing underscores to bypass unused local warnings. 2025-01-05 12:40:25 -08:00
Phil Hagelberg
3979ab4c3c Strings beginning with digits can't be rewritten as syms.
Also fix a self-lint.
2025-01-05 12:39:10 -08:00
XeroOl
25196aeabf Make it so that Lua 5.1 works again 2025-01-05 13:31:13 -06:00