Update TODOs and other associated docs.
This commit is contained in:
parent
80b4f9d29a
commit
aaf30a99be
@ -6,8 +6,8 @@ Provides intelligent editing features for fennel files.
|
|||||||
## Quick Links
|
## Quick Links
|
||||||
* [Install](docs/manual.md#installation)
|
* [Install](docs/manual.md#installation)
|
||||||
* [Configuration](docs/manual.md#configuration)
|
* [Configuration](docs/manual.md#configuration)
|
||||||
* [Features](docs/feature-matrix.md)
|
|
||||||
* [Packaging](docs/packaging.md)
|
* [Packaging](docs/packaging.md)
|
||||||
|
* [Writing your own lint](docs/linting.md)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
fennel-ls is licensed under the MIT license. See LICENSE for more info.
|
fennel-ls is licensed under the MIT license. See LICENSE for more info.
|
||||||
|
|||||||
55
TODO.md
55
TODO.md
@ -1,8 +1,4 @@
|
|||||||
# Wishlist of features
|
# Wishlist of features
|
||||||
([X] = complete, [ ] = planned)
|
|
||||||
|
|
||||||
My current goal is to work on completions a little bit more.
|
|
||||||
- [X] create a release
|
|
||||||
|
|
||||||
refactor brainstorm:
|
refactor brainstorm:
|
||||||
- [ ] get rid of `bytes` stuff and use "stack" everywhere
|
- [ ] get rid of `bytes` stuff and use "stack" everywhere
|
||||||
@ -23,15 +19,21 @@ refactor brainstorm:
|
|||||||
|
|
||||||
- [ ] make hovers look like (fn table.insert [t ?i v] ...)
|
- [ ] make hovers look like (fn table.insert [t ?i v] ...)
|
||||||
|
|
||||||
Here is my feature wishlist. I don't expect to ever get all of this done, but these are the sort of enhancements I am thinking about.
|
Here is my feature wishlist. I don't expect to ever get all of this
|
||||||
|
done, but these are the sort of enhancements I am thinking about.
|
||||||
|
|
||||||
- [X] Able to connect to a client
|
- [X] Able to connect to a client
|
||||||
- [X] Support for UTF-8 characters that aren't just plain ASCII. (especially `λ`) (perhaps just tell the IDE that I want to communicate with utf-8 offsets)
|
- [X] Support for UTF-8 characters that aren't just plain ASCII. (especially `λ`) (perhaps just tell the IDE that I want to communicate with utf-8 offsets)
|
||||||
- [ ] People have tried fennel-ls in:
|
- [ ] People have tried fennel-ls in:
|
||||||
- [X] Neovim (This project isn't a neovim plugin, but there are instructions on how to inform neovim of the fennel-ls binary once you build it.)
|
- [X] Neovim (This project isn't a neovim plugin, but there are instructions on how to inform neovim of the fennel-ls binary once you build it.)
|
||||||
- [X] emacs
|
- [X] emacs
|
||||||
- [X] helix
|
- [X] helix
|
||||||
- [ ] vscode (publish an extension)
|
- [X] vscode (publish an extension)
|
||||||
- [ ] vim+coc (publish a node thingy)
|
- [ ] vim+coc (publish a node thingy)
|
||||||
|
- [ ] Improved global checks
|
||||||
|
- [ ] (or table.unpack _G.unpack) should be allowed on any Lua version
|
||||||
|
- [ ] generate man page
|
||||||
|
- [ ] load lints from external sources (sandboxed)
|
||||||
- [x] Go-to-definition:
|
- [x] Go-to-definition:
|
||||||
- [X] literal table constructor
|
- [X] literal table constructor
|
||||||
- [X] table destructuring
|
- [X] table destructuring
|
||||||
@ -69,10 +71,10 @@ Here is my feature wishlist. I don't expect to ever get all of this done, but th
|
|||||||
- [X] Unused locals
|
- [X] Unused locals
|
||||||
- [X] Unknown fields of modules
|
- [X] Unknown fields of modules
|
||||||
- [ ] Discarding results from pcall/xpcall/other functions
|
- [ ] Discarding results from pcall/xpcall/other functions
|
||||||
- [.] `unpack` or `values` into a special
|
- [X] `unpack` or `values` into a special
|
||||||
- [ ] `do`/`values` with only one inner form
|
- [ ] `do`/`values` with only one inner form
|
||||||
- [ ] redundant `do` as the last/only item in a form that accepts a "body"
|
- [X] redundant `do` as the last/only item in a form that accepts a "body"
|
||||||
- [ ] `values`/`unpack` in a non tail position
|
- [X] `values`/`unpack` in a non tail position
|
||||||
- [ ] numbers and strings in a non tail position
|
- [ ] numbers and strings in a non tail position
|
||||||
- [ ] deprecated specials/macros
|
- [ ] deprecated specials/macros
|
||||||
- [X] `var` forms that could be `local`
|
- [X] `var` forms that could be `local`
|
||||||
@ -84,7 +86,6 @@ Here is my feature wishlist. I don't expect to ever get all of this done, but th
|
|||||||
- [ ] Code that matches the shape of `accumulate` or `icollect` or `collect`?? or other macros??
|
- [ ] Code that matches the shape of `accumulate` or `icollect` or `collect`?? or other macros??
|
||||||
- [ ] Dead code (I'm not sure what sort of things cause dead code)
|
- [ ] Dead code (I'm not sure what sort of things cause dead code)
|
||||||
- [ ] Unused fields (difficult)
|
- [ ] Unused fields (difficult)
|
||||||
- [ ] unification in a `match` pattern (difficult)
|
|
||||||
- [ ] unused values in `λ` (difficult)
|
- [ ] unused values in `λ` (difficult)
|
||||||
- [ ] Brainstorm more linting patterns (I spent a couple minutes brainstorming these ideas, other ideas are welcome of course)
|
- [ ] Brainstorm more linting patterns (I spent a couple minutes brainstorming these ideas, other ideas are welcome of course)
|
||||||
- [ ] Type Checking
|
- [ ] Type Checking
|
||||||
@ -103,11 +104,10 @@ Here is my feature wishlist. I don't expect to ever get all of this done, but th
|
|||||||
- [ ] global search across other files
|
- [ ] global search across other files
|
||||||
- [ ] Options / Configuration
|
- [ ] Options / Configuration
|
||||||
- [X] Configure over LSP
|
- [X] Configure over LSP
|
||||||
- [ ] Configure with some sort of per-project config file
|
- [X] Configure with some sort of per-project config file
|
||||||
- [ ] Configure with environment variables I guess??
|
|
||||||
- [X] fennel/lua path
|
- [X] fennel/lua path
|
||||||
- [ ] lua version
|
- [X] lua version
|
||||||
- [ ] allowed global list
|
- [X] allowed global list
|
||||||
- [X] enable/disable various linters
|
- [X] enable/disable various linters
|
||||||
- [X] rename
|
- [X] rename
|
||||||
- [X] local symbols
|
- [X] local symbols
|
||||||
@ -116,6 +116,33 @@ Here is my feature wishlist. I don't expect to ever get all of this done, but th
|
|||||||
- [ ] formatting with fnlfmt
|
- [ ] formatting with fnlfmt
|
||||||
- [ ] Type annotations? Global type inference?
|
- [ ] Type annotations? Global type inference?
|
||||||
|
|
||||||
|
- [ ] external docsets
|
||||||
|
- [X] load external docsets from ~/.local/share/fennel-ls/docsets/
|
||||||
|
- [X] warn on missing docset
|
||||||
|
- [ ] document how to download external docsets
|
||||||
|
- [ ] document how to create external docsets
|
||||||
|
- [ ] move love2d and tic80 to external docsets (published .... where?)
|
||||||
|
- [ ] automatic downloading of external docsets
|
||||||
|
- [ ] some kind of registry built-in?
|
||||||
|
|
||||||
|
- [ ] discard input if there are more edits coming
|
||||||
|
|
||||||
|
optional luaposix dependency for this?
|
||||||
|
|
||||||
|
```
|
||||||
|
local posix = require("posix")
|
||||||
|
|
||||||
|
-- Function to set non-blocking mode for a file descriptor
|
||||||
|
local function setNonBlocking(fd)
|
||||||
|
local flags = posix.fcntl(fd, posix.F_GETFL, 0)
|
||||||
|
posix.fcntl(fd, posix.F_SETFL, flags + posix.O_NONBLOCK)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Open stdin in non-blocking mode
|
||||||
|
setNonBlocking(0) -- 0 is the file descriptor for stdin
|
||||||
|
|
||||||
|
print( io.read(0) and "Data in stdin" or "No data in stdin")
|
||||||
|
```
|
||||||
|
|
||||||
fn-arg-nil: Function arguments are assumed to be nil in a function body, until there's a type system to give more information.
|
fn-arg-nil: Function arguments are assumed to be nil in a function body, until there's a type system to give more information.
|
||||||
|
|
||||||
|
|||||||
@ -101,4 +101,4 @@ The return value should have these fields:
|
|||||||
* `codeDescription`: Use the name of your function.
|
* `codeDescription`: Use the name of your function.
|
||||||
|
|
||||||
### Testing:
|
### Testing:
|
||||||
I will think about this later. :)
|
I will think about this later. :) For now see examples in `test/lint.fnl`.
|
||||||
|
|||||||
@ -3,6 +3,8 @@ Sorry packagers, I have committed two ultimate sins.
|
|||||||
1. I checked in some generated code into my repository.
|
1. I checked in some generated code into my repository.
|
||||||
2. I have copied others' code into my repository, also known as "vendoring" code.
|
2. I have copied others' code into my repository, also known as "vendoring" code.
|
||||||
|
|
||||||
|
Debian packaging is at https://git.sr.ht/~technomancy/fennel-ls/log/debian/latest
|
||||||
|
|
||||||
## Generated Code
|
## Generated Code
|
||||||
The files inside `src/fennel-ls/docs/generated/` are not hand-written, they are
|
The files inside `src/fennel-ls/docs/generated/` are not hand-written, they are
|
||||||
generated. The documentation embedded into `fennel-ls` needs to come from
|
generated. The documentation embedded into `fennel-ls` needs to come from
|
||||||
@ -15,23 +17,12 @@ any licensing issue.
|
|||||||
|
|
||||||
I understand if you want to build from source instead of relying on the output.
|
I understand if you want to build from source instead of relying on the output.
|
||||||
You can rebuild these by running `make rm-docs` to remove the docs, and
|
You can rebuild these by running `make rm-docs` to remove the docs, and
|
||||||
`make docs` to regenerate these files.
|
`make docs` to regenerate these files. However, this requires internet access.
|
||||||
```sh
|
```sh
|
||||||
$ make rm-docs
|
$ make rm-docs
|
||||||
$ make docs
|
$ make docs
|
||||||
```
|
```
|
||||||
|
|
||||||
## Including LÖVE documentation
|
|
||||||
Due to license incompatibility between fennel-ls and the official LÖVE
|
|
||||||
documentation, this repository cannot include the LÖVE documentation by
|
|
||||||
default. It must be generated manually.
|
|
||||||
|
|
||||||
This can be done by passing a flag to the `docs` target.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ make docs GET_DOCS_FLAGS=--generate-love2d
|
|
||||||
```
|
|
||||||
|
|
||||||
## Vendored Dependencies
|
## Vendored Dependencies
|
||||||
The vendored dependencies are very easy to solve. You delete the dependency
|
The vendored dependencies are very easy to solve. You delete the dependency
|
||||||
files by running `make rm-deps`.
|
files by running `make rm-deps`.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user