summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/mm-editing.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/modules/mm-editing.el')
-rw-r--r--.config/emacs/modules/mm-editing.el69
1 files changed, 65 insertions, 4 deletions
diff --git a/.config/emacs/modules/mm-editing.el b/.config/emacs/modules/mm-editing.el
index 50be4ee..6054f5a 100644
--- a/.config/emacs/modules/mm-editing.el
+++ b/.config/emacs/modules/mm-editing.el
@@ -56,6 +56,7 @@
(go-ts-mode . (:extras go-ts-mode-indent-offset))
(gsp-ts-mode . (:width 2 :extras gsp-ts-mode-indent-rules))
(helpful-mode . (:width 8)) ; GNU code uses 8-column tabs
+ (json-ts-mode . (:extras json-ts-mode-indent-offset))
(latex-mode . (:width 2))
(lisp-data-mode . (:spaces t))
(lisp-interaction-mode . (:spaces t))
@@ -66,8 +67,12 @@
(python-ts-mode . (:extras python-indent-offset))
(sgml-mode . (:extras sgml-basic-offset))
(sh-mode . (:extras sh-basic-offset))
+ (sql-mode . (:extras sqlind-basic-offset))
(tex-mode . (:width 2))
- (vimscript-ts-mode . (:extras vimscript-ts-mode-indent-level)))
+ (typescript-ts-mode . (:extras typescript-ts-mode-indent-offset))
+ (vimscript-ts-mode . (:extras vimscript-ts-mode-indent-level))
+ (vue-ts-mode . (:extras (typescript-ts-mode-indent-offset
+ vue-ts-mode-indent-offset))))
"Alist of indentation settings.
Each pair in this alist is of the form (MODE . SETTINGS) where MODE
specifies the mode for which the given SETTINGS should apply.
@@ -122,6 +127,11 @@ those should be listed in `mm-editing-indentation-settings'."
extras))
(set (make-local-variable extra) tabsize)))))
+(use-package sh-mode
+ :custom
+ (sh-indent-for-case-label 0)
+ (sh-indent-for-case-alt #'+))
+
;;; Code Commenting
@@ -139,7 +149,7 @@ those should be listed in `mm-editing-indentation-settings'."
(add-hook (mm-mode-to-hook mode) #'mm-c-comment-no-continue)
(when-let ((ts-mode (mm-mode-to-ts-mode mode))
((fboundp ts-mode)))
- (add-hook (mm-mode-to-hook ts-mode) #'mm-c-comment-no-leading-stars)))
+ (add-hook (mm-mode-to-hook ts-mode) #'mm-c-comment-no-continue)))
(add-hook 'mhtml-mode #'mm-mhtml-comment-no-continue))
@@ -201,6 +211,7 @@ and *Messages* buffer. This forces that to not happen."
(use-package multiple-cursors
:ensure t
+ :demand t
:bind (("C->" . #'mc/mark-next-like-this)
("C-<" . #'mc/mark-previous-like-this)
("C-M-<" . #'mc/mark-all-like-this-dwim)
@@ -294,6 +305,18 @@ surround with spaces."
(push '("`" . "'") surround-pairs))))
+;;; Insert Webpage Contents
+
+(defun mm-insert-from-url (url)
+ "Insert the contents of URL at point."
+ (interactive
+ (let ((url-at-point (thing-at-point 'url)))
+ (list (read-string
+ (format-prompt "URL" url-at-point)
+ nil nil url-at-point))))
+ (call-process "curl" nil '(t nil) nil url))
+
+
;;; Emmet Mode
(defun mm-editing-emmet-dwim (arg)
@@ -314,6 +337,36 @@ is as described by `emmet-expand-line'."
(emmet-self-closing-tag-style ""))
+;;; JQ Manipulation in JSON Mode
+
+(defun mm-jq-filter (query &optional beg end)
+ "TODO"
+ (interactive
+ (list
+ (read-string (format-prompt "Query" nil))
+ (when (use-region-p) (region-beginning))
+ (when (use-region-p) (region-end))))
+ (let* ((beg (or beg (point-min)))
+ (end (or end (point-max)))
+ (temp-buffer (generate-new-buffer "* jq temp*"))
+ (exit-code (call-process-region beg end "jq" nil temp-buffer nil
+ "--tab" query))
+ (output (with-current-buffer temp-buffer (buffer-string))))
+ (if (zerop exit-code)
+ (atomic-change-group
+ (delete-region beg end)
+ (insert output)
+ (indent-region beg (point)))
+ (message "%s" output))
+ (kill-buffer temp-buffer)))
+
+(use-package json-ts-mode
+ :bind ( :map json-ts-mode-map
+ ("C-|" . #'mm-jq-filter))
+ :config
+ (require 'live-jq))
+
+
;;; Number Formatting
(use-package number-format-mode
@@ -325,7 +378,9 @@ is as described by `emmet-expand-line'."
;;; Additional Major Modes
(use-package awk-ts-mode :ensure t)
+(use-package cmake-mode :ensure t)
(use-package git-modes :ensure t)
+(use-package po-mode :ensure t)
(use-package sed-mode :ensure t)
(use-package csv-mode
@@ -357,6 +412,12 @@ is as described by `emmet-expand-line'."
;;; Add Missing Extensions
(dolist (pattern '("\\.tmac\\'" "\\.mom\\'"))
- (add-to-list 'auto-mode-alist (cons pattern 'nroff-mode)))
+ (add-to-list 'auto-mode-alist (cons pattern #'nroff-mode)))
+
+
+;;; Subword Navigation
+
+(use-package subword
+ :hook prog-mode)
-(provide 'mm-editing) \ No newline at end of file
+(provide 'mm-editing)