Commit Graph

543 Commits

Author SHA1 Message Date
XeroOl
65ea473197 new rockspec to make the luarocks rock work 2024-03-04 00:30:06 -06:00
XeroOl
146c994991 Release 0.1.2
== Features ==
* Completions and docs for `coroutine`, `debug`, `io`, `math`, `os`, `string`, `table`, `utf8` and their fields.
* Global metadata can follow locals: With `(local p print)`, looking up `p` will show `print`'s information.
* New lint for erroneous calls to (values) that are in a position that would get truncated immediately.
* Upgrade to Fennel 1.4.2

== Bug Fixes ==
* `(-?> x)` and similar macros no longer give a warning (even in fennel 1.4.1 before my -?> patch landed)
* Fixed off-by-one when measuring the cursor position on a multisym. For example, `table|.insert` (where `|` is the cursor) will correctly give information about `table` instead of `insert`.
* Can give completions in the contexts "(let [x " and "(if ", which previously failed to compile.
* Fields added to a table via `(fn t.field [] ...)` now properly appear in completions
* `(include)` is now treated like `(require)`

== Misc ==
* Switched testing framework to faith
* Tests abstract out the filesystem
* Tests use the "|" character to mark the cursor, instead of manually specifying coordinates
2024-03-03 23:26:04 -06:00
XeroOl
aca22dd755 update to Fennel 1.4.2 2024-03-03 23:14:47 -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
24dc75eacc
remove the rockspec, it shouldn't be here 2024-03-03 17:33:47 -06:00
XeroOl
c0e5a431ff fix ...; -> ... typo in docs 2024-03-02 20:30:18 -06:00
XeroOl
1b3a8b2ae3 fix makefile 2024-03-02 20:27:32 -06:00
XeroOl
d198db0414 Fill out the last docs 2024-03-02 20:20:07 -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
a2f233576e Change readme to reflect faith.fnl tests, and more diagnostics 2024-03-01 16:42:14 -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
cf794d4934 Flag that fennel-ls supports 1.4.2 2024-02-23 23:52:45 -06:00
XeroOl
a7d6122670 Fix completion problem in (if) conditions with no body 2024-02-23 23:52:27 -06:00
XeroOl
f54ddc6e08 luarocks garbage 2024-02-23 14:15:38 -06:00
XeroOl
44805cd675 Add lint for (values) in non-tail position of a call 2024-02-23 12:25:51 -06:00
XeroOl
9e4ca548e3 Release 0.1.1
=== Features ===
* Add [Nix(OS)](https://nixos.org) support
* Add LuaRocks build support
* Upgrade to Fennel 1.4.1, the first release of fennel that is compatible with fennel-ls without patches.
* Added a lint for operators with no arguments, such as (+)
* `textEdit` field is present in completions

=== Bug Fixes ===
* Fix bug with renaming variables in method calls
* Lots of work to improve multival tracking
* --check gives a nonzero exit code when lints are found
2024-02-20 00:05:41 -06:00
XeroOl
7588655b3e Update Fennel to 1.4.1 2024-02-19 23:32:05 -06:00
grenewode
112132cc5a feat: add nix(os) packaging &development support
* Adds `/flake.nix`, which allows the package to be installed & developed
  easily by most NixOS users.
* Adds `/default.nix`, which is an older way that some Nix(OS) users
  may expect software to be packaged.
* Adds `/nix/**/*.nix`, which defines various additional helpers used by
  `/flake.nix` and `/default.nix`.
* Updates `.gitignore` to include `/result`, which is the default output
  location when the package is built using

  `nix flake build .` or `nix-build .`
2024-02-19 23:14:52 -06:00
XeroOl
41adfc7099 Add more ops to diagnostics.fnl 2024-02-19 23:02:25 -06:00
XeroOl
7e1bde8d64 Readme changes 2024-02-19 22:56:00 -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
130f96a4ca Small changes to the lint instructions 2024-02-18 16:26:29 -06:00
XeroOl
5c19cb3a83 Instructions for creating lint rules 2024-02-18 16:08:23 -06:00
XeroOl
647421f21b clean up diagnostics 2024-02-18 16:03:13 -06:00
XeroOl
bc31279f41 Refactoring diagnostics 2024-02-17 23:51:34 -06:00
XeroOl
33a412e299 Lint for any call to any op with no arguments 2024-02-17 22:50:23 -06:00
XeroOl
67b1fbfbef minor microoptimizations 2024-02-17 22:38:25 -06:00
XeroOl
21500707de updated changelog and fixed lint 2024-02-16 23:29:50 -06:00
XeroOl
d8f0d396a9 fix diagnostics indent 2024-02-16 23:00:51 -06:00
XeroOl
ea89ecad9f Diagnostics with similar iterators are fused together 2024-02-16 22:12:50 -06:00
XeroOl
814ebb4dfa the --check flag gives nonzero exit code if it found anything 2024-02-12 21:58:23 -06:00
XeroOl
ddbed43a7d changing some comments and doc comments 2024-02-12 21:41:32 -06:00
XeroOl
b8565bd146 More language.fnl changes 2024-02-12 21:41:14 -06:00
XeroOl
2e1a2b74b5 Shuffle docs around 2024-02-12 18:59:41 -06:00
XeroOl
68bad4eaba last working in middle of refactor 2024-02-12 17:40:53 -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