summaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/init-appearance.el5
-rw-r--r--lisp/init-dired.el18
-rw-r--r--lisp/init-editing.el4
-rw-r--r--lisp/init-eglot.el24
-rw-r--r--lisp/init-flyspell.el7
-rw-r--r--lisp/init-org.el8
-rw-r--r--lisp/init-vertico.el2
7 files changed, 45 insertions, 23 deletions
diff --git a/lisp/init-appearance.el b/lisp/init-appearance.el
index 1fea9af..df3d296 100644
--- a/lisp/init-appearance.el
+++ b/lisp/init-appearance.el
@@ -37,7 +37,6 @@
(dired-mode . hl-line-mode)
(ibuffer-mode . hl-line-mode)
(prog-mode . hl-line-mode)
- (restclient-mode . hl-line-mode)
(text-mode . hl-line-mode)))
;; highlight matching parentheses
@@ -54,6 +53,10 @@
(use-package prog-mode
:hook ((prog-mode . mpolden/prog-mode-buffer-local-variables)))
+;; render colors in compilation buffer
+(use-package ansi-color
+ :hook ((compilation-filter . ansi-color-compilation-filter)))
+
;; display line and column numbers in mode-line
(setq line-number-mode t
column-number-mode t)
diff --git a/lisp/init-dired.el b/lisp/init-dired.el
index 0fbe80e..8e7f77d 100644
--- a/lisp/init-dired.el
+++ b/lisp/init-dired.el
@@ -2,13 +2,31 @@
;;; Commentary:
;;; Code:
+(defun mpolden/dired-open-or-shell-command ()
+ "Open marked files with the default external program.
+
+If PATH does not contain a suitable command for opening external
+programs, or a prefix argument is given, this function instead
+prompts for a shell command."
+ (interactive)
+ (let ((open (and (not current-prefix-arg)
+ (or (executable-find "open")
+ (executable-find "xdg-open")))))
+ (if open
+ (dired-do-shell-command open nil (dired-get-marked-files t))
+ (call-interactively 'dired-do-shell-command))))
+
(use-package dired
:init
;; show human readable sizes in dired
(setq dired-listing-switches "-alh")
+ ;; register renames in version control
+ (setq dired-vc-rename-file t)
+
:bind (:map dired-mode-map
("C-c r" . dired-toggle-read-only)
+ ("C-c o" . mpolden/dired-open-or-shell-command)
("M-<up>" . dired-up-directory)
("<backspace>" . dired-up-directory)))
diff --git a/lisp/init-editing.el b/lisp/init-editing.el
index 20392b9..3099ffa 100644
--- a/lisp/init-editing.el
+++ b/lisp/init-editing.el
@@ -13,8 +13,8 @@
;; C-c @ opens a simple calculator
(global-set-key (kbd "C-c @") 'quick-calc)
-;; M-j joins line
-(global-set-key (kbd "M-j") 'join-line)
+;; M-j joins the next line to this
+(global-set-key (kbd "M-j") (lambda () (interactive) (join-line -1)))
;; C-c d duplicates the current line or region
(global-set-key (kbd "C-c d") 'duplicate-dwim)
diff --git a/lisp/init-eglot.el b/lisp/init-eglot.el
index c46fed4..02a1ae8 100644
--- a/lisp/init-eglot.el
+++ b/lisp/init-eglot.el
@@ -11,26 +11,37 @@
(defvar mpolden/inhibit-lsp nil
"List of modes where `eglot-ensure' should not be called to enable LSP integration.")
+(defvar mpolden/inhibit-lsp-doc nil
+ "List of modes where language documentation should not be displayed using `eldoc-box'.")
+
+(defun mpolden/major-mode-member (modes)
+ "Return non-nil if `major-mode' is an element of MODES."
+ (if (listp modes)
+ (member major-mode modes)
+ modes))
+
(defun mpolden/format-before-save ()
"Format buffer before saving."
- (unless (member major-mode mpolden/inhibit-format-before-save)
+ (unless (mpolden/major-mode-member mpolden/inhibit-format-before-save)
(eglot-format)))
(defun mpolden/organize-imports-before-save ()
"Organize imports before saving buffer."
- (unless (member major-mode mpolden/inhibit-organize-imports-before-save)
+ (unless (mpolden/major-mode-member mpolden/inhibit-organize-imports-before-save)
(call-interactively 'eglot-code-action-organize-imports)))
(defun mpolden/eglot-before-save ()
"All actions that may run before saving buffer."
- (unless (member major-mode mpolden/inhibit-lsp)
+ (unless (mpolden/major-mode-member mpolden/inhibit-lsp)
(mpolden/format-before-save)
(mpolden/organize-imports-before-save)))
(defun mpolden/eglot-ensure ()
"Enable Eglot for current `major-mode'."
- (unless (member major-mode mpolden/inhibit-lsp)
- (eglot-ensure)))
+ (unless (mpolden/major-mode-member mpolden/inhibit-lsp)
+ (eglot-ensure)
+ (unless (mpolden/major-mode-member mpolden/inhibit-lsp-doc)
+ (eldoc-box-hover-mode))))
(use-package eglot
:ensure t
@@ -59,6 +70,9 @@
;; C-c q shows code actions (quickfix)
("C-c q" . eglot-code-actions)))
+(use-package eldoc-box
+ :ensure t)
+
(provide 'init-eglot)
;;; init-eglot.el ends here
diff --git a/lisp/init-flyspell.el b/lisp/init-flyspell.el
index fccada5..e9cec76 100644
--- a/lisp/init-flyspell.el
+++ b/lisp/init-flyspell.el
@@ -7,12 +7,7 @@
:hook ((git-commit-mode . flyspell-mode)
(gfm-mode . flyspell-mode)
(org-mode . flyspell-mode)
- (latex-mode . flyspell-mode))
-
- :config
- ;; prefer hunspell
- (when (executable-find "hunspell")
- (setq ispell-program-name "hunspell")))
+ (latex-mode . flyspell-mode)))
(use-package flyspell-correct
:ensure t
diff --git a/lisp/init-org.el b/lisp/init-org.el
index 338e68f..dcc4a66 100644
--- a/lisp/init-org.el
+++ b/lisp/init-org.el
@@ -87,14 +87,6 @@ to `org-goto'."
;; include two weeks in agenda
(setq org-agenda-span 'fortnight)
- ;; customize agenda
- (setq org-agenda-custom-commands
- '(;; default view
- ("n" "Agenda and all TODOs" ((agenda "") (alltodo "")))
- ;; split by state
- ("m" "Agenda and all TODOs split by state"
- ((agenda "") (todo "TODO") (todo "WAIT")))))
-
;; set export backends
(setq org-export-backends '(ascii html md))
diff --git a/lisp/init-vertico.el b/lisp/init-vertico.el
index 36046fd..9695740 100644
--- a/lisp/init-vertico.el
+++ b/lisp/init-vertico.el
@@ -42,7 +42,7 @@ remote projects."
:init
;; enable fuzzy matching
;; https://github.com/minad/vertico/#completion-styles-and-tab-completion
- (setq completion-styles '(flex))
+ (setq completion-styles '(basic substring partial-completion flex))
:config
(vertico-mode 1))