+ sp: be quiet + popup: load *eval* rule earlier + evil-anzu: defer, due to long load time + Update makefile + Clean up core.el + line-spacing = 1, less rpadding on nlinum-format + Add *esup* popup rule + Refactor doom macro + Refactor doom-byte-compile + :big [SIZE] + use inconsolata in big-mode + :v TAB -> doom/yas-insert-snippet + eval: use pop-to-buffer instead of doom/popup-buffer + Refactor backspace fn; handle pair deletion issue with sp better + \#bringbackwindowsystem + db: remove unused var + Update init.el
43 lines
1.4 KiB
EmacsLisp
43 lines
1.4 KiB
EmacsLisp
;;; module-db.el
|
|
|
|
(use-package sql-mode
|
|
:mode "\\.sql$"
|
|
:config
|
|
(def-popup! "\\*SQL.*\\*" :align below :size 0.4 :noselect t :regexp t)
|
|
(evil-set-initial-state 'sql-interactive-mode 'emacs)
|
|
(push 'sql-interactive-mode doom-popup-protect-modes)
|
|
;; For my local development environment
|
|
(setq sql-pop-to-buffer-after-send-region nil
|
|
sql-server "docker.dev"
|
|
sql-user "root"
|
|
sql-password ""))
|
|
|
|
;; extract these
|
|
(evil-define-command doom:db-select (product)
|
|
(interactive "<a>")
|
|
(sql-set-product (intern product))
|
|
(message "sql-product set to %s" product))
|
|
|
|
(evil-define-operator doom:db (beg end &optional bang product)
|
|
"Open a db connection, reopen an old one, or send the selected region to the
|
|
open comint."
|
|
:type inclusive
|
|
(interactive "<r><!><a>")
|
|
(let ((sql-buf (get-buffer sql-buffer)))
|
|
(when (and bang sql-buf)
|
|
(message "Restarting connection")
|
|
(kill-buffer sql-buf))
|
|
(if sql-buf
|
|
(if (or (get-buffer-window sql-buf)
|
|
(evil-visual-state-p))
|
|
(sql-send-region beg end)
|
|
(doom/popup-buffer sql-buf))
|
|
(let ((product (if product (intern product) sql-product)))
|
|
(unless product
|
|
(user-error "No SQL product is set"))
|
|
(sql-set-product product)
|
|
(sql-product-interactive product 0)
|
|
(message "Started new %s connection" product)))))
|
|
|
|
(provide 'module-db)
|
|
;;; module-db.el ends here
|