forked from FG42/FG42
1
0
Fork 0
FG42/nix/modules/clojure/lisp/fg42/clojure.el

84 lines
2.4 KiB
EmacsLisp

;;; FG42 --- The mighty editor for the emacsians -*- lexical-binding: t; -*-
;;
;; Copyright (c) 2010-2024 Sameer Rahmani & Contributors
;;
;; Author: Sameer Rahmani <lxsameer@gnu.org>
;; URL: https://devheroes.codes/FG42/FG42
;; Version: 4.0.0
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;
;;; Commentary:
;;; Code:
(eval-when-compile
(require 'fpkg))
(use! flycheck-clj-kondo
"flycheck linter for clojure using `clj-kondo'."
:ensure t)
(use! paredit
"Minor mode for editing parenthesis."
:commands enable-paredit-mode)
(use! cider
"Clojure(Script) Interactive Development Environment that Rocks!"
:ensure t)
(use! lsp-mode
"lsp-mode"
:init
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
(setq lsp-keymap-prefix "C-c l")
;; :hook ((clojure-ts-mode . lsp))
:commands lsp)
(use! lsp-ui
"lsp-ui"
:commands lsp-ui-mode)
(use! lsp-ui-doc-frame
"lsp-ui-doc-frame"
:commands lsp-ui-doc-frame-mode)
(defun fg42/clojure-ts-mode-setup ()
"A hook handler to setup cpp related configurations."
;; We set eglot's autoload command to `eglot-ensure'
(eglot-ensure))
(use! clojure-ts-mode
"Clojure mode"
;; :init
;; (add-to-list 'major-mode-remap-alist '(clojure-mode . clojure-ts-mode))
:mode (("\\.clj\\'" . clojure-ts-mode)
("\\.cljs\\'" . clojure-ts-mode)
("\\.cljc\\'" . clojure-ts-mode))
:config
(require 'flycheck-clj-kondo)
(require 'cider)
:hook
(clojure-ts-mode . company-mode)
(clojure-ts-mode . enable-paredit-mode)
(clojure-ts-mode . lsp)
;; (clojure-ts-mode . company-box)
;; (clojure-ts-mode . flycheck-clj-kondo)
;; (clojure-ts-mode . lsp)
;; (clojure-ts-mode . lsp-ui-mode)
;; (clojure-ts-mode . eglot-ensure)
;; (clojure-ts-mode . fg42/clojure-ts-mode-setup))
)
(provide 'fg42/clojure)
;;; clojure.el ends here