fennel-ls/test/settings-test.fnl
2022-09-23 00:03:10 -05:00

44 lines
1.7 KiB
Fennel

(import-macros {: is-matching : describe : it : before-each} :test)
(local is (require :luassert))
(local {: view} (require :fennel))
(local {: ROOT-URI
: open-file
: setup-server} (require :test.utils))
(local dispatch (require :fennel-ls.dispatch))
(local message (require :fennel-ls.message))
(describe "settings"
(it "can set the path"
(local self (doto [] (setup-server {:fennel-ls {:fennel-path "./?/?.fnl"}})))
(open-file self (.. ROOT-URI :/test.fnl) "(local {: this-is-in-modname} (require :modname))")
(let [[{:result {:range message}}]
(dispatch.handle* self
(message.create-request 2 :textDocument/definition
{:position {:character 12 :line 0}
:textDocument {:uri (.. ROOT-URI :/test.fnl)}}))]
(is.not.nil message)
"body")))
;; (it "can set the path"
;; (local self (doto [] (setup-server {:fennel-ls {:macro-path "./?/?.fnl"}}))))
;; (it "can infer the macro path from fennel-path"
;; (local self (doto [] (setup-server {:fennel-ls {:fennel-path "./?/?.fnl"}}))))
;; (it "can accept an allowed global"
;; (local self (doto [] (setup-server {:fennel-ls {:globals "vim"}}))))
;; (it "can accept a list of allowed globals"
;; (local self (doto [] (setup-server {:fennel-ls {:globals "GAMESTATE,SCREEN_CENTER_X,ETC"}}))))
;; (it "can accept a way to allow all globals that match a pattern"
;; (local self (doto [] (setup-server {:fennel-ls {:global-pattern "[A-Z]+"}}))))
;; (it "can turn off strict globals"
;; (local self (doto [] (setup-server {:fennel-ls {:globals "*"}}))))
;; (it "can treat globals as a warning instead of an error"
;; (local self (doto [] (setup-server {:fennel-ls {:diagnostics {:E202 "warning"}}})))))