;;; lang/lua/config.el -*- lexical-binding: t; -*- ;; sp's default rules are obnoxious, so disable them (provide 'smartparens-lua) ;; ;; Major modes (use-package! lua-mode :defer t :init ;; lua-indent-level defaults to 3 otherwise. Madness. (setq lua-indent-level tab-width) :config (set-lookup-handlers! 'lua-mode :documentation 'lua-search-documentation) (set-electric! 'lua-mode :words '("else" "end")) (set-repl-handler! 'lua-mode #'+lua/open-repl) (set-company-backend! 'lua-mode '(company-lua company-yasnippet))) (use-package! moonscript :when (featurep! +moonscript) :defer t :config (setq-hook! 'moonscript-mode-hook moonscript-indent-offset tab-width) (add-hook! 'moonscript-mode-hook #'+lua|moonscript-fix-single-quotes #'+lua|moonscript-fontify-interpolation)) ;; ;;; Frameworks (def-project-mode! +lua-love-mode :modes '(moonscript-mode lua-mode markdown-mode json-mode) :when #'+lua-love-project-root :on-load (progn (set-project-type! 'love2d :predicate #'+lua-love-project-root :run #'+lua-love-build-command) (map! :localleader :map +lua-love-mode-map "b" #'+lua/run-love-game)))