Commit Graph

224 Commits

Author SHA1 Message Date
XeroOl
2d7c8b1ad7 Lints for doc fields, doc hovers on strings 2024-05-04 15:37:01 -05:00
XeroOl
926dff9267 Docs when completing string fields 2024-05-04 15:37:01 -05:00
XeroOl
de7ca2a5c1 clean things up 2024-05-04 15:37:01 -05:00
XeroOl
d06e0dfbe8
test function to check code actions don't exist 2024-05-04 01:27:37 -05:00
XeroOl
bd2d208724
Make if statements behave more normally
the fennel compiler someimes inserts ghost `nil symbols, and this code
will simply take those back out. It shouldn't be necessary.
2024-05-02 21:05:48 -05:00
XeroOl
944f57cc08 No duplicate scope completions 2024-04-30 21:42:00 -05:00
XeroOl
343777d301 eglot completion quirk tests 2024-04-30 21:40:07 -05:00
XeroOl
ac406e38d0 Next attempt to fix emacs 2024-04-30 16:56:41 -05:00
XeroOl
1135eee7ed attempt to fix the emacs completions again 2024-04-30 16:16:43 -05:00
Phil Hagelberg
80a43cab08 Avoid include warnings when compiling.
Also update the readme regarding Emacs; version 30 doesn't need any config.
2024-04-27 14:07:27 -05:00
XeroOl
a4251e5d21 single out the Eglot client because it does completions differently 2024-04-27 00:45:18 -05:00
XeroOl
f96620a028 Fix crash. Not sure when this broke. oops! 2024-04-24 16:21:00 -05:00
XeroOl
e22f2bba01 small refactor 2024-04-24 15:46:25 -05:00
XeroOl
40605c7bcb fix: Choose positionEncoding=utf-8 even if it isn't listed last 2024-04-07 23:26:17 -05:00
XeroOl
311ce2645e fix fennel-ls#22
This is getting messy, but now the same sym can reference multiple
places. (. file references mysym) only holds the last one, but
(. file definitions <x> :referenced-by) could still hold older
references.
2024-04-07 23:18:14 -05:00
XeroOl
5fa5a0a323 make repl runs a fennel repl with the path set correctly 2024-03-28 23:59:45 -05:00
XeroOl
59b966a25f Add a bunch of tests for compiler recovery
Ideally, any time you write:

(local x (<some form with compiler error>))
(print x)

I don't want it to say "unknown variable x". To make sure that's the
case, I need to do as much error recovery as possible. I don't have full
error recovery, but I've got the common cases, and I'm working down the
fennel.friends list
2024-03-28 23:51:22 -05:00
XeroOl
3bc530e11b in tests, separate compile error diagnostics from lints 2024-03-28 23:04:25 -05:00
XeroOl
b5750b1a8a rename diagnostic to lint 2024-03-28 23:01:20 -05:00
XeroOl
0fd6a48ed2 basic code action test for the (+) -> 0 lint 2024-03-28 22:41:23 -05:00
XeroOl
e81920585d add more tests for error recovery 2024-03-28 22:39:13 -05:00
XeroOl
e47ee55784 shuffle around how encoding works in the tests 2024-03-28 22:38:01 -05:00
XeroOl
c92ea1c3ca fix recovery from empty () call, because it didn't work 2024-03-28 22:37:10 -05:00
XeroOl
a1c4e84910 recovery from empty () call 2024-03-26 14:12:57 -05:00
XeroOl
7c81ffcbb3 First attempt at code actions, no tests yet 2024-03-26 14:12:34 -05:00
XeroOl
ca2dbf9237 let me hide keys using mt.__json_exclude_keys 2024-03-26 13:00:57 -05:00
XeroOl
c79c80cb41 fix the path with --check 2024-03-26 12:58:06 -05:00
XeroOl
549e240787 fixed links in readme 2024-03-23 20:24:52 -05:00
XeroOl
2f62761e37 unknown module in (include) doesn't propagate errors 2024-03-22 12:30:08 -05:00
XeroOl
cc05d7089f final attempt at fixing builds.sr.ht 2024-03-04 00:38:47 -06:00
XeroOl
80d0e297a1 more likely pass builds.sr.ht tests 2024-03-04 00:36:53 -06:00
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