diff --git a/docs/manual.md b/docs/manual.md index 7dfd248..ecee8aa 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -70,7 +70,7 @@ The default `flsproject.fnl` settings are: {:fennel-path "./?.fnl;./?/init.fnl;src/?.fnl;src/?/init.fnl" :macro-path "./?.fnl;./?/init-macros.fnl;./?/init.fnl;src/?.fnl;src/?/init-macros.fnl;src/?/init.fnl" :lua-version "lua54" - :libraries {:love-2d false + :libraries {:love2d false :tic-80 false} :extra-globals "" :lints {:unused-definition true diff --git a/src/fennel-ls/docs.fnl b/src/fennel-ls/docs.fnl index e90287b..cbd11b0 100644 --- a/src/fennel-ls/docs.fnl +++ b/src/fennel-ls/docs.fnl @@ -25,9 +25,11 @@ table.sort))))) (. lua-versions version)) -(local libraries - {:love-2d (require :fennel-ls.docs.generated.love2d) - :tic-80 (require :fennel-ls.docs.generated.tic80)}) +(local libraries {:tic-80 (require :fennel-ls.docs.generated.tic80)}) + +;; can't just pcall require because we want to trigger require-as-include +(case (pcall #(require :fennel-ls.docs.generated.love2d)) + (true love2d) (set libraries.love2d love2d)) (fn get-library [library] (when (not (. libraries library)) @@ -47,9 +49,13 @@ &into result] name))) +(fn get-library-global [server global-name] + (accumulate [g nil library-name enabled? (pairs server.configuration.libraries) + &until g] + (and enabled? (. (get-library library-name) global-name)))) + (fn get-global [server global-name] - (or (and server.configuration.libraries.tic-80 - (. (get-library :tic-80) global-name)) + (or (get-library-global server global-name) (. (get-lua-version server.configuration.lua-version) global-name))) (fn get-builtin [_server builtin-name]