91 lines
3.7 KiB
EmacsLisp
91 lines
3.7 KiB
EmacsLisp
![]() |
;;; kubernetes-modes.el --- Base modes for Kubernetes. -*- lexical-binding: t; -*-
|
||
|
;;; Commentary:
|
||
|
;;; Code:
|
||
|
|
||
|
(require 'magit)
|
||
|
(require 'subr-x)
|
||
|
|
||
|
(autoload 'kubernetes-config-popup "kubernetes-popups")
|
||
|
(autoload 'kubernetes-copy-thing-at-point "kubernetes-commands")
|
||
|
(autoload 'kubernetes-describe-popup "kubernetes-popups")
|
||
|
(autoload 'kubernetes-exec-popup "kubernetes-popups")
|
||
|
(autoload 'kubernetes-execute-marks "kubernetes-commands")
|
||
|
(autoload 'kubernetes-labels-popup "kubernetes-popups")
|
||
|
(autoload 'kubernetes-logs-popup "kubernetes-popups")
|
||
|
(autoload 'kubernetes-mark-for-delete "kubernetes-commands")
|
||
|
(autoload 'kubernetes-navigate "kubernetes-commands")
|
||
|
(autoload 'kubernetes-overview-popup "kubernetes-popups")
|
||
|
(autoload 'kubernetes-refresh "kubernetes-commands")
|
||
|
(autoload 'kubernetes-unmark "kubernetes-commands")
|
||
|
(autoload 'kubernetes-unmark-all "kubernetes-commands")
|
||
|
|
||
|
;;;###autoload
|
||
|
(define-derived-mode kubernetes-display-thing-mode kubernetes-mode "Kubernetes Object"
|
||
|
"Mode for inspecting a Kubernetes object.
|
||
|
|
||
|
\\{kubernetes-display-thing-mode-map}"
|
||
|
:group 'kubernetes)
|
||
|
|
||
|
;;;###autoload
|
||
|
(defvar kubernetes-mode-map
|
||
|
(let ((keymap (make-sparse-keymap)))
|
||
|
;; Section controls
|
||
|
(define-key keymap (kbd "p") #'magit-section-backward)
|
||
|
(define-key keymap (kbd "n") #'magit-section-forward)
|
||
|
(define-key keymap (kbd "M-p") #'magit-section-backward-sibling)
|
||
|
(define-key keymap (kbd "M-n") #'magit-section-forward-sibling)
|
||
|
(define-key keymap (kbd "C-i") #'magit-section-toggle)
|
||
|
(define-key keymap (kbd "^") #'magit-section-up)
|
||
|
(define-key keymap [tab] #'magit-section-toggle)
|
||
|
(define-key keymap [C-tab] #'magit-section-cycle)
|
||
|
(define-key keymap [M-tab] #'magit-section-cycle-diffs)
|
||
|
(define-key keymap [S-tab] #'magit-section-cycle-global)
|
||
|
;; Misc
|
||
|
(define-key keymap (kbd "q") #'quit-window)
|
||
|
(define-key keymap (kbd "RET") #'kubernetes-navigate)
|
||
|
(define-key keymap (kbd "M-w") #'kubernetes-copy-thing-at-point)
|
||
|
(define-key keymap (kbd "h") #'describe-mode)
|
||
|
|
||
|
(define-key keymap (kbd "?") #'kubernetes-overview-popup)
|
||
|
(define-key keymap (kbd "c") #'kubernetes-config-popup)
|
||
|
(define-key keymap (kbd "d") #'kubernetes-describe-popup)
|
||
|
(define-key keymap (kbd "D") #'kubernetes-mark-for-delete)
|
||
|
(define-key keymap (kbd "e") #'kubernetes-exec-popup)
|
||
|
(define-key keymap (kbd "g") #'kubernetes-refresh)
|
||
|
(define-key keymap (kbd "l") #'kubernetes-logs-popup)
|
||
|
(define-key keymap (kbd "L") #'kubernetes-labels-popup)
|
||
|
(define-key keymap (kbd "u") #'kubernetes-unmark)
|
||
|
(define-key keymap (kbd "U") #'kubernetes-unmark-all)
|
||
|
(define-key keymap (kbd "x") #'kubernetes-execute-marks)
|
||
|
|
||
|
keymap)
|
||
|
"Keymap for `kubernetes-mode'. This is the base keymap for all derived modes.")
|
||
|
|
||
|
;;;###autoload
|
||
|
(define-derived-mode kubernetes-mode special-mode "Kubernetes"
|
||
|
"Base mode for Kubernetes modes.
|
||
|
|
||
|
\\{kubernetes-mode-map}"
|
||
|
:group 'kubernetes
|
||
|
(read-only-mode)
|
||
|
(buffer-disable-undo)
|
||
|
(setq truncate-lines t)
|
||
|
(setq-local line-move-visual t)
|
||
|
(setq show-trailing-whitespace nil)
|
||
|
(setq list-buffers-directory (abbreviate-file-name default-directory))
|
||
|
(hack-dir-local-variables-non-file-buffer)
|
||
|
(make-local-variable 'text-property-default-nonsticky)
|
||
|
(push (cons 'keymap t) text-property-default-nonsticky)
|
||
|
(push (cons 'kubernetes-nav t) text-property-default-nonsticky)
|
||
|
(push (cons 'kubernetes-copy t) text-property-default-nonsticky)
|
||
|
(add-hook 'post-command-hook #'magit-section-update-highlight t t)
|
||
|
(when (bound-and-true-p global-linum-mode)
|
||
|
(linum-mode -1))
|
||
|
(when (and (fboundp 'nlinum-mode)
|
||
|
(bound-and-true-p global-nlinum-mode))
|
||
|
(nlinum-mode -1)))
|
||
|
|
||
|
(provide 'kubernetes-modes)
|
||
|
|
||
|
;;; kubernetes-modes.el ends here
|