Support :union as lua-version setting.
This commit is contained in:
parent
0d7e9b6183
commit
d23d36a414
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
### Features
|
### Features
|
||||||
* Support `:lua-version` settings like `"lua5.4"` rather than requiring `"lua54"`.
|
* Support `:lua-version` settings like `"lua5.4"` rather than requiring `"lua54"`.
|
||||||
|
* Support `"union"` in `:lua-version` for globals present in any Lua version.
|
||||||
* Support `"intersection"` in `:lua-version` for globals present in every Lua version.
|
* Support `"intersection"` in `:lua-version` for globals present in every Lua version.
|
||||||
* Show the kind of thing being completed better.
|
* Show the kind of thing being completed better.
|
||||||
* Add lints for unnecessary `tset` and `do`.
|
* Add lints for unnecessary `tset` and `do`.
|
||||||
|
|||||||
@ -119,7 +119,7 @@ The default `flsproject.fnl` settings are:
|
|||||||
|
|
||||||
extra-globals: Space separated list of allowed global identifiers; in addition to a set of predefined lua globals.
|
extra-globals: Space separated list of allowed global identifiers; in addition to a set of predefined lua globals.
|
||||||
|
|
||||||
version: One of lua51, lua52, lua53, or lua54.
|
version: One of lua51, lua52, lua53, lua54, intersection, or union.
|
||||||
|
|
||||||
libraries: This setting controls which extra documentation fennel-ls can load in to your environment. I've only done this for tic-80 for now.
|
libraries: This setting controls which extra documentation fennel-ls can load in to your environment. I've only done this for tic-80 for now.
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,6 @@
|
|||||||
:method "initialize"
|
:method "initialize"
|
||||||
:params {:capabilities {:general {:positionEncodings [:utf-8]}}
|
:params {:capabilities {:general {:positionEncodings [:utf-8]}}
|
||||||
:clientInfo {:name "fennel-ls"}
|
:clientInfo {:name "fennel-ls"}
|
||||||
; don't think this is a valid URI, but I want to operate in the current directory
|
|
||||||
:rootUri "file://."}}))]
|
:rootUri "file://."}}))]
|
||||||
(var should-err? false)
|
(var should-err? false)
|
||||||
(each [_ filename (ipairs filenames)]
|
(each [_ filename (ipairs filenames)]
|
||||||
|
|||||||
@ -7,8 +7,6 @@ There are no global settings. They're all stored in the `server` object.
|
|||||||
|
|
||||||
;; TODO: Settings to set the warning levels of lints
|
;; TODO: Settings to set the warning levels of lints
|
||||||
;; Setting to allow all globals
|
;; Setting to allow all globals
|
||||||
;; Have an option for "union of all lua versions" lua version.
|
|
||||||
;; Have an option for "intersection of all lua versions", ie disallow using (unpack) without saying (or table.unpack _G.unpack).
|
|
||||||
|
|
||||||
(local files (require :fennel-ls.files))
|
(local files (require :fennel-ls.files))
|
||||||
(local utils (require :fennel-ls.utils))
|
(local utils (require :fennel-ls.utils))
|
||||||
|
|||||||
@ -21,7 +21,8 @@
|
|||||||
{:lua5.1 (require :fennel-ls.docs.generated.lua51)
|
{:lua5.1 (require :fennel-ls.docs.generated.lua51)
|
||||||
:lua5.2 (require :fennel-ls.docs.generated.lua52)
|
:lua5.2 (require :fennel-ls.docs.generated.lua52)
|
||||||
:lua5.3 (require :fennel-ls.docs.generated.lua53)
|
:lua5.3 (require :fennel-ls.docs.generated.lua53)
|
||||||
:lua5.4 (require :fennel-ls.docs.generated.lua54)})
|
:lua5.4 (require :fennel-ls.docs.generated.lua54)
|
||||||
|
:union {}})
|
||||||
|
|
||||||
;; aliases
|
;; aliases
|
||||||
(set lua-versions.lua51 (. lua-versions "lua5.1"))
|
(set lua-versions.lua51 (. lua-versions "lua5.1"))
|
||||||
@ -41,6 +42,10 @@
|
|||||||
(set lua-versions.lua51.package.fields.config
|
(set lua-versions.lua51.package.fields.config
|
||||||
lua-versions.lua52.package.fields.config)
|
lua-versions.lua52.package.fields.config)
|
||||||
|
|
||||||
|
(each [_ version (pairs lua-versions)]
|
||||||
|
(each [k v (pairs version)]
|
||||||
|
(set (. lua-versions.union k) v)))
|
||||||
|
|
||||||
(set lua-versions.intersection
|
(set lua-versions.intersection
|
||||||
(collect [k v (pairs lua-versions.lua51)]
|
(collect [k v (pairs lua-versions.lua51)]
|
||||||
(if (. lua-versions.lua54 k) (values k v))))
|
(if (. lua-versions.lua54 k) (values k v))))
|
||||||
|
|||||||
@ -150,7 +150,12 @@
|
|||||||
(check "(print (unpack [_VERSION]))"
|
(check "(print (unpack [_VERSION]))"
|
||||||
[{:message "unknown identifier: unpack"}]
|
[{:message "unknown identifier: unpack"}]
|
||||||
[{:message "unknown identifier: _VERSION"}]
|
[{:message "unknown identifier: _VERSION"}]
|
||||||
{:lua-version "intersection"}))
|
{:lua-version "intersection"})
|
||||||
|
(check "(warn (unpack [_VERSION]))"
|
||||||
|
[]
|
||||||
|
[{:message "unknown identifier: unpack"}
|
||||||
|
{:message "unknown identifier: warn"}]
|
||||||
|
{:lua-version "union"}))
|
||||||
|
|
||||||
{: test-lua-versions
|
{: test-lua-versions
|
||||||
: test-compile-error
|
: test-compile-error
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user