merged dotemacs
This commit is contained in:
parent
e4885c9101
commit
4e16a4bb19
|
|
@ -0,0 +1,22 @@
|
|||
transient
|
||||
.local
|
||||
\#*\#
|
||||
project-explorer-cache
|
||||
projectile-bookmarks.eld
|
||||
**/*.elc
|
||||
persp-confs
|
||||
elpa
|
||||
eshell
|
||||
auto-save-list
|
||||
quelpa
|
||||
*.*~
|
||||
.*~
|
||||
.lsp-session*
|
||||
projects
|
||||
*.cache
|
||||
/emms/
|
||||
bookmarks
|
||||
/.persistent-scratch
|
||||
bookmarks
|
||||
/var/
|
||||
.mc-lists.el
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
;; settings from customize
|
||||
|
||||
(custom-set-variables
|
||||
;; custom-set-variables was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(custom-safe-themes
|
||||
'("2078837f21ac3b0cc84167306fa1058e3199bbd12b6d5b56e3777a4125ff6851" "81f53ee9ddd3f8559f94c127c9327d578e264c574cda7c6d9daddaec226f87bb" "3770d0ae70172461ee0a02edcff71b7d480dc54066e8960d8de9367d12171efb" "f64189544da6f16bab285747d04a92bd57c7e7813d8c24c30f382f087d460a33" "f079ef5189f9738cf5a2b4507bcaf83138ad22d9c9e32a537d61c9aae25502ef" "835d934a930142d408a50b27ed371ba3a9c5a30286297743b0d488e94b225c5f" default))
|
||||
'(god-mode-alist '((nil . "C-") ("m" . "M-") ("M" . "C-M-")))
|
||||
'(mac-option-modifier '(:ordinary meta :function meta :mouse meta))
|
||||
'(mingus-mpd-host "192.168.178.67")
|
||||
'(mingus-stream-alist
|
||||
'(("CRo 1 - Radiozurnal (czech)" . "http://amp1.cesnet.cz:8000/cro1-256.ogg")
|
||||
("CRo 2 - Praha (czech)" . "http://amp1.cesnet.cz:8000/cro2-256.ogg")
|
||||
("CRo 3 - Vltava czech)" . "http://amp1.cesnet.cz:8000/cro3-256.ogg")
|
||||
("open radio" . "http://open-radio.nl:8000/org.ogg")
|
||||
("Radio Rota" . "http://streamer.radiorota.cz:8000/rota64.ogg")
|
||||
("anonradio" . "http://anonradio.net:8000/anonradio")))
|
||||
'(package-selected-packages
|
||||
'(realgud projectile dash async yasnippet ace-jump ace-jump-mode acme-theme async-status cape corfu deft dired-git dired-git-info doom-modeline doom-themes embark emojify eshell-toggle eshell-vterm fic-mode flycheck fzf git-lens git-link go-projectile go-scratch god-mode graphviz-dot-mode json-mode kotlin-mode ligature lsp-mode magit mastodon mingus mmm-mode multi-web-mode multifiles multiple-cursors multishell nerd-icons-completion nerd-icons-corfu nerd-icons-dired nerd-icons-ibuffer nlinum notmuch orderless org-ai org-context org-dashboard persistent-scratch php-mode plan9-theme plantuml-mode prescient project-explorer projectile-ripgrep protobuf-mode quelpa-use-package rego-mode scratch switch-window unicode-fonts vertico vterm-toggle wgrep which-key yaml-mode zenburn-theme zetteldeft))
|
||||
'(tab-width 4)
|
||||
'(tool-bar-mode nil)
|
||||
'(use-short-answers t))
|
||||
(custom-set-faces
|
||||
;; custom-set-faces was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(default ((t (:weight regular :height 150 :width normal :foundry " " :family "Go Mono" :slant normal)))))
|
||||
|
|
@ -0,0 +1 @@
|
|||
;; (setenv "LSP_USE_PLISTS" "true") ;; doesn't work
|
||||
|
|
@ -0,0 +1,520 @@
|
|||
(use-package emacs
|
||||
:init
|
||||
;; package management
|
||||
(require 'package)
|
||||
(add-to-list 'package-archives
|
||||
'("melpa" . "https://melpa.org/packages/") t)
|
||||
(unless (package-installed-p 'quelpa)
|
||||
(with-temp-buffer
|
||||
(url-insert-file-contents
|
||||
"https://raw.githubusercontent.com/quelpa/quelpa/master/quelpa.el")
|
||||
(eval-buffer)
|
||||
(quelpa-self-upgrade)))
|
||||
(quelpa
|
||||
'(quelpa-use-package
|
||||
:fetcher git
|
||||
:url "https://github.com/quelpa/quelpa-use-package.git"))
|
||||
(require 'quelpa-use-package)
|
||||
|
||||
;; basic cfg
|
||||
(tool-bar-mode -1)
|
||||
(require 'server)
|
||||
(unless (server-running-p) (server-start))
|
||||
(setq gc-cons-threshold 100000000
|
||||
read-process-output-max (* 1024 1024)
|
||||
custom-file (concat user-emacs-directory "custom.el")
|
||||
create-lockfiles nil
|
||||
tab-always-indent 'complete
|
||||
mac-command-modifier 'super
|
||||
backup-directory-alist `((".*" .
|
||||
,(concat user-emacs-directory "backup")))
|
||||
delete-old-versions t
|
||||
kept-new-versions 20
|
||||
kept-old-versions 2
|
||||
version-control t
|
||||
delete-old-versions t
|
||||
backup-by-copying t
|
||||
focus-follows-mouse t
|
||||
mouse-autoselect-window t
|
||||
enable-recursive-minibuffers t
|
||||
warning-minimum-level :emergency
|
||||
inhibit-startup-screen t
|
||||
completion-cycle-threshold 3
|
||||
text-mode-ispell-word-completion nil
|
||||
lsp-file-watch-threshold 3000
|
||||
read-extended-command-predicate #'command-completion-default-include-p
|
||||
minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt))
|
||||
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
|
||||
(when (file-exists-p custom-file)
|
||||
(load custom-file))
|
||||
(load-theme 'acme)
|
||||
(add-hook 'eshell-mode-hook
|
||||
(lambda ()
|
||||
(setq-local corfu-auto nil)
|
||||
(corfu-mode)))
|
||||
(with-eval-after-load 'lsp-mode
|
||||
(add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration)
|
||||
(add-hook 'lsp-mode-hook
|
||||
(lambda ()
|
||||
(remove-hook 'before-save-hook #'lsp-format-buffer t)
|
||||
(remove-hook 'before-save-hook #'lsp-organize-imports t)))
|
||||
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]plz-out\\'"))
|
||||
(add-to-list 'auto-mode-alist
|
||||
'("BUILD\\'" . python-mode))
|
||||
(setq lsp-clients-clangd-args
|
||||
'("-j=2"
|
||||
"--background-index"
|
||||
"--completion-style=bundled"
|
||||
"--pch-storage=memory"
|
||||
"--header-insertion=never"
|
||||
"--header-insertion-decorators=0"))
|
||||
(global-set-key (kbd "C-c r") 'replace-regexp)
|
||||
(global-set-key (kbd "C-c R") 'replace-string))
|
||||
|
||||
|
||||
(use-package async :ensure t)
|
||||
(use-package async-status :ensure t)
|
||||
(use-package dash :ensure t)
|
||||
(use-package nlinum :ensure t :defer t
|
||||
:init (global-nlinum-mode 1))
|
||||
(use-package multiple-cursors :ensure t :defer t
|
||||
:init (multiple-cursors-mode 1)
|
||||
:bind (("C-S-c C-S-c" . 'mc/edit-lines)
|
||||
("C->" . 'mc/mark-next-like-this)
|
||||
("C-<" . 'mc/mark-previous-like-this)
|
||||
("C-c C->" . 'mc/mark-all-like-this)))
|
||||
|
||||
;; minibuffer
|
||||
;; ===
|
||||
(use-package embark :ensure t :defer t)
|
||||
(use-package vertico :ensure t :defer t
|
||||
:init (vertico-mode))
|
||||
(use-package which-key :ensure t :defer t
|
||||
:init (which-key-mode)
|
||||
:config (which-key-enable-god-mode-support))
|
||||
|
||||
|
||||
;; mass editing
|
||||
;; ===
|
||||
(use-package multifiles :ensure t)
|
||||
(use-package wgrep :ensure t)
|
||||
|
||||
;; god-mode
|
||||
;; ===
|
||||
|
||||
(use-package god-mode :ensure t
|
||||
:config
|
||||
(defun my/god-mode-update-cursor-type ()
|
||||
(setq cursor-type (if (or god-local-mode buffer-read-only) 'box 'bar)))
|
||||
|
||||
(defun my/god-mode-update-mode-line ()
|
||||
(cond
|
||||
(god-local-mode
|
||||
(set-face-attribute 'mode-line nil
|
||||
:foreground "#604000"
|
||||
:background "#fff29a")
|
||||
(set-face-attribute 'mode-line-inactive nil
|
||||
:foreground "#3f3000"
|
||||
:background "#fff3da"))
|
||||
(t
|
||||
(set-face-attribute 'mode-line nil
|
||||
:foreground "#0a0a0a"
|
||||
:background "#d7d7d7")
|
||||
(set-face-attribute 'mode-line-inactive nil
|
||||
:foreground "#404148"
|
||||
:background "#efefef"))))
|
||||
(add-hook 'post-command-hook #'my/god-mode-update-mode-line)
|
||||
(add-hook 'post-command-hook #'my/god-mode-update-cursor-type)
|
||||
(define-key god-local-mode-map (kbd ".") #'repeat)
|
||||
(global-set-key (kbd "<escape>") #'god-local-mode)
|
||||
(global-set-key (kbd "C-x C-1") #'delete-other-windows)
|
||||
(global-set-key (kbd "C-x C-2") #'split-window-below)
|
||||
(global-set-key (kbd "C-x C-3") #'split-window-right)
|
||||
(global-set-key (kbd "C-x C-0") #'delete-window)
|
||||
(global-set-key (kbd "C-x C-5 C-0") #'delete-frame)
|
||||
(global-set-key (kbd "C-x C-5 C-u") #'undelete-frame)
|
||||
(global-set-key (kbd "C-x C-5 C-1") #'delete-other-frames)
|
||||
(global-set-key (kbd "C-x C-5 C-2") #'make-frame-command)
|
||||
(global-set-key (kbd "C-x C-b") #'switch-to-buffer)
|
||||
(global-set-key (kbd "C-x b") #'list-buffers)
|
||||
(define-key god-local-mode-map (kbd "i") #'god-local-mode)
|
||||
(add-to-list 'god-exempt-major-modes '(dired-mode
|
||||
notmuch-show-mode
|
||||
notmuch-message-mode)))
|
||||
|
||||
;; eye candy
|
||||
;; ===
|
||||
|
||||
(use-package acme-theme :ensure t :defer t)
|
||||
(use-package zenburn-theme :ensure t :defer t)
|
||||
(use-package doom-modeline :ensure t
|
||||
:init (doom-modeline-mode 1))
|
||||
(use-package doom-themes :ensure t
|
||||
:config
|
||||
(progn
|
||||
(setq doom-themes-enable-bold t
|
||||
doom-themes-enable-italic t)
|
||||
(doom-themes-visual-bell-config)
|
||||
(setq doom-themes-treemacs-theme "doom-atom")
|
||||
(doom-themes-treemacs-config)
|
||||
(doom-themes-org-config)))
|
||||
(use-package plan9-theme :ensure t :defer t)
|
||||
(use-package nerd-icons :ensure t :defer t)
|
||||
(use-package nerd-icons-corfu :ensure t :defer t)
|
||||
(use-package nerd-icons-dired :ensure t :defer t
|
||||
:hook (dired-mode . nerd-icons-dired-mode))
|
||||
(use-package nerd-icons-completion :ensure t :defer t)
|
||||
(use-package nerd-icons-ibuffer :ensure t :defer t)
|
||||
(use-package ligature :ensure t :defer t
|
||||
:init (global-ligature-mode 1))
|
||||
(use-package emojify :ensure t :defer t)
|
||||
(use-package unicode-fonts :ensure t)
|
||||
|
||||
;; scratch buffers
|
||||
;; ===
|
||||
(use-package persistent-scratch :ensure t :defer t
|
||||
:init
|
||||
(progn
|
||||
(persistent-scratch-setup-default)
|
||||
(persistent-scratch-autosave-mode 1)))
|
||||
(use-package scratch :ensure t :defer t
|
||||
:bind ("C-x ~" . 'scratch))
|
||||
(use-package go-scratch :ensure t :defer t)
|
||||
|
||||
|
||||
;; multimedia
|
||||
;; ===
|
||||
(use-package mingus :ensure t :defer t)
|
||||
|
||||
|
||||
;; terminal / shell
|
||||
;; ===
|
||||
(use-package multishell :ensure t :defer t)
|
||||
(use-package vterm-toggle :ensure t
|
||||
:bind (("C-c C-u C-t" . #'vterm-toggle)))
|
||||
(use-package eshell-toggle :ensure t
|
||||
:bind (("C-c C-t" . #'eshell-toggle)))
|
||||
(use-package eshell-vterm :ensure t :defer t
|
||||
:init (eshell-vterm-mode 1))
|
||||
|
||||
|
||||
;; org-mode
|
||||
;; ===
|
||||
|
||||
(use-package org :ensure t :defer t
|
||||
:mode (("\\.org$" . org-mode))
|
||||
:bind (("C-c C-o C-a" . org-agenda)
|
||||
("C-c C-o C-c" . org-capture))
|
||||
:config
|
||||
(defun my/notes-refile-targets ()
|
||||
(directory-files "~/notes" t ".*\\.org$"))
|
||||
(setq org-startup-indented t)
|
||||
(setq org-archive-location "%s_archive::datetree/")
|
||||
(setq org-src-tab-acts-natively t)
|
||||
(setq org-stuck-projects
|
||||
'("+proj-done-hold-maybe/-DONE"
|
||||
("STRT" "TODO") nil
|
||||
"SCHEDULED:\\|DEADLINE:"))
|
||||
(setq org-capture-templates
|
||||
'(("t" "TODO" entry
|
||||
(file+headline "~/notes/inbox.org" "Tasks")
|
||||
"* TODO %?\n%i\n%a")
|
||||
("n" "Note"
|
||||
entry (file+headline "~/notes/inbox.org" "Notes")
|
||||
"* %?\n%i\n%a")
|
||||
("j" "Journal"
|
||||
entry (file+datetree "~/notes/journal.org")
|
||||
"* %?\nEntered on %U\n")
|
||||
("w" "Waiting For"
|
||||
entry (file "~/org/waitingfor.org")
|
||||
"* %? :@wait:\nEntered on %U\n")
|
||||
("c" "Calendar"
|
||||
entry (file+headline "~/org/calendar.org" "Calendar")
|
||||
"* %?\n")))
|
||||
(setq org-agenda-files
|
||||
'("~/org/TODO.org"
|
||||
"~/org/projects.org"
|
||||
"~/org/calendar.org"
|
||||
"~/org/waitingfor.org"))
|
||||
(add-to-list 'org-refile-targets
|
||||
'(my/notes-refile-targets :maxlevel . 3))
|
||||
(add-to-list 'org-refile-targets
|
||||
'(org-agenda-files :maxlevel . 2))
|
||||
(setq org-refile-use-outline-path 'file)
|
||||
(setq org-tags-exclude-from-inheritance '("proj"))
|
||||
(setq org-outline-path-complete-in-steps nil)
|
||||
(setq org-agenda-custom-commands
|
||||
'(("w" "@work" tags "@work")
|
||||
("h" "@home" tags "@home")
|
||||
("W" "Waiting For" tags "@wait")))
|
||||
(setq org-todo-keywords
|
||||
'((sequence "TODO(t)" "|" "DONE(d)")))
|
||||
(setq org-agenda-todo-keywords
|
||||
'((sequence "TODO(t)" "|" "DONE(d)")))
|
||||
(setq org-hide-leading-stars nil
|
||||
org-startup-indented t)
|
||||
(setq org-mouse-1-follows-link nil)
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages '((plantuml . t)
|
||||
(dot . t)
|
||||
(go . t))))
|
||||
|
||||
(use-package org-dashboard :ensure t :defer t
|
||||
:after (:all org))
|
||||
|
||||
(use-package org-context :ensure t :defer t
|
||||
:after (:all org))
|
||||
|
||||
;; knowledge management
|
||||
;; ===
|
||||
|
||||
(use-package deft :ensure t
|
||||
:bind (("C-c C-n C-d" . #'deft)
|
||||
("C-c C-n C-f" . #'deft-find-file))
|
||||
:config
|
||||
(setq deft-directory "~/notes")
|
||||
(setq deft-recursive t)
|
||||
(setq deft-extensions '("org" "txt" "tex" "md"))
|
||||
(setq deft-text-mode 'org-mode))
|
||||
(use-package zetteldeft :ensure t)
|
||||
|
||||
|
||||
|
||||
;; email
|
||||
;; ===
|
||||
|
||||
(use-package notmuch :ensure t :defer t)
|
||||
|
||||
;; projects
|
||||
;; ===
|
||||
|
||||
(use-package projectile :ensure t :defer t
|
||||
:bind (:map projectile-mode-map
|
||||
("C-c C-p" . projectile-command-map)
|
||||
("C-c C-p C-f" . #'projectile-find-file)
|
||||
("C-c C-p C-p" . #'projectile-switch-project)
|
||||
("C-c C-p C-/" . #'projectile-ripgrep)
|
||||
("C-c C-p C-b" . #'projectile-switch-to-buffer)
|
||||
("C-c C-p C-4 C-b" . #'projectile-switch-to-buffer-other-window)
|
||||
("C-c C-p C-5 C-b" . #'projectile-switch-to-buffer-other-frame)
|
||||
("C-c C-p C-d" . #'projectile-dired)
|
||||
("C-c C-p C-4 C-d" . #'projectile-dired-other-window)
|
||||
("C-c C-p C-4 C-d" . #'projectile-dired-other-frame))
|
||||
:diminish projectile-mode
|
||||
:init (projectile-mode))
|
||||
|
||||
|
||||
|
||||
(use-package go-projectile :ensure t :defer t)
|
||||
(use-package projectile-ripgrep :ensure t :defer t
|
||||
:after (projectile))
|
||||
(use-package project-explorer :ensure t :defer t)
|
||||
|
||||
;; version control
|
||||
;; ===
|
||||
(use-package magit :ensure t :defer t
|
||||
:bind ("C-c C-g" . magit-status)
|
||||
:commands (magit-status-here magit-get-current-branch)
|
||||
:custom (magit-display-buffer-function
|
||||
#'magit-display-buffer-same-window-except-diff-v1))
|
||||
(use-package dired-git :ensure t :defer t)
|
||||
(use-package dired-git-info :ensure t :defer t)
|
||||
(use-package git-link :ensure t :defer t)
|
||||
(use-package git-lens :ensure t :defer t)
|
||||
|
||||
;; auto completion
|
||||
;; ===
|
||||
|
||||
|
||||
(use-package corfu :ensure t :defer t
|
||||
:bind (:map corfu-map
|
||||
("C-n" . corfu-next)
|
||||
("C-p" . corfu-previous)
|
||||
("SPC" . corfu-insert-separator))
|
||||
:custom
|
||||
(corfu-cycle t)
|
||||
(corfu-auto t)
|
||||
(corfu-separator ?\s)
|
||||
(corfu-preselect 'prompt)
|
||||
(corfu-quit-at-boundary t)
|
||||
(corfu-quit-no-match 'separator)
|
||||
(corfu-scroll-margin 5)
|
||||
:hook ((prog-mode . corfu-mode)
|
||||
(shell-mode . corfu-mode)
|
||||
(eshell-mode . corfu-mode))
|
||||
:init (global-corfu-mode)
|
||||
:config
|
||||
(defun corfu-send-shell (&rest _)
|
||||
"Send completion candidate when inside comint/eshell."
|
||||
(cond
|
||||
((and (derived-mode-p 'eshell-mode)
|
||||
(fboundp 'eshell-send-input))
|
||||
(eshell-send-input))
|
||||
((and (derived-mode-p 'comint-mode)
|
||||
(fboundp 'comint-send-input))
|
||||
(comint-send-input))))
|
||||
(advice-add #'corfu-insert
|
||||
:after #'corfu-send-shell)
|
||||
(global-set-key [remap dabbrev-expand]
|
||||
'hippie-expand)
|
||||
(add-to-list 'corfu-margin-formatters
|
||||
#'nerd-icons-corfu-formatter))
|
||||
|
||||
(use-package dabbrev :ensure t :defer t
|
||||
:bind (("M-/" . dabbrev-completion)
|
||||
("C-M-/" . dabbrev-expand))
|
||||
:config
|
||||
(add-to-list 'dabbrev-ignored-buffer-regexps "\\` ")
|
||||
(add-to-list 'dabbrev-ignored-buffer-modes 'doc-view-mode)
|
||||
(add-to-list 'dabbrev-ignored-buffer-modes 'pdf-view-mode)
|
||||
(add-to-list 'dabbrev-ignored-buffer-modes 'tags-table-mode))
|
||||
|
||||
(use-package orderless :ensure t :defer t
|
||||
:init
|
||||
(setq completion-styles '(orderless partial-completion basic)
|
||||
completion-category-defaults nil
|
||||
completion-category-overrides nil))
|
||||
|
||||
(setq text-mode-ispell-word-completion nil)
|
||||
(setq read-extended-command-predicate
|
||||
#'command-completion-default-include-p)
|
||||
(defun crm-indicator (args)
|
||||
(cons (format "[CRM%s] %s"
|
||||
(replace-regexp-in-string
|
||||
"\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
|
||||
crm-separator)
|
||||
(car args))
|
||||
(cdr args)))
|
||||
|
||||
(advice-add #'completing-read-multiple
|
||||
:filter-args #'crm-indicator)
|
||||
(setq read-extended-command-predicate
|
||||
#'command-completion-default-include-p)
|
||||
|
||||
|
||||
;; Add extensions
|
||||
(use-package cape :ensure t :defer t
|
||||
;; Bind dedicated completion commands
|
||||
;; Alternative prefix keys: C-c p, M-p, M-+, ...
|
||||
:bind (("C-c C-/ p" . completion-at-point) ;; capf
|
||||
("C-c C-/ t" . complete-tag) ;; etags
|
||||
("C-c C-/ d" . cape-dabbrev) ;; or dabbrev-completion
|
||||
("C-c C-/ h" . cape-history)
|
||||
("C-c C-/ f" . cape-file)
|
||||
("C-c C-/ k" . cape-keyword)
|
||||
("C-c C-/ s" . cape-elisp-symbol)
|
||||
("C-c C-/ e" . cape-elisp-block)
|
||||
("C-c C-/ a" . cape-abbrev)
|
||||
("C-c C-/ l" . cape-line)
|
||||
("C-c C-/ w" . cape-dict)
|
||||
("C-c C-/ :" . cape-emoji)
|
||||
("C-c C-/ \\" . cape-tex)
|
||||
("C-c C-/ _" . cape-tex)
|
||||
("C-c C-/ ^" . cape-tex)
|
||||
("C-c C-/ &" . cape-sgml)
|
||||
("C-c C-/ r" . cape-rfc1345))
|
||||
:init
|
||||
;; Add to the global default value of `completion-at-point-functions' which is
|
||||
;; used by `completion-at-point'. The order of the functions matters, the
|
||||
;; first function returning a result wins. Note that the list of buffer-local
|
||||
;; completion functions takes precedence over the global list.
|
||||
(add-hook 'completion-at-point-functions #'cape-dabbrev)
|
||||
(add-hook 'completion-at-point-functions #'cape-file)
|
||||
(add-hook 'completion-at-point-functions #'cape-elisp-block)
|
||||
(add-hook 'completion-at-point-functions #'cape-history)
|
||||
(add-hook 'completion-at-point-functions #'cape-keyword))
|
||||
;;(add-hook 'completion-at-point-functions #'cape-tex)
|
||||
;;(add-hook 'completion-at-point-functions #'cape-sgml)
|
||||
;;(add-hook 'completion-at-point-functions #'cape-rfc1345)
|
||||
;;(add-hook 'completion-at-point-functions #'cape-abbrev)
|
||||
;;(add-hook 'completion-at-point-functions #'cape-dict)
|
||||
;;(add-hook 'completion-at-point-functions #'cape-elisp-symbol)
|
||||
;;(add-hook 'completion-at-point-functions #'cape-line))
|
||||
|
||||
;; coding
|
||||
;; ===
|
||||
(use-package yasnippet :ensure t)
|
||||
(use-package fic-mode :ensure t :defer t)
|
||||
(use-package lsp-mode :ensure t
|
||||
:commands lsp
|
||||
:custom
|
||||
(lsp-completion-provider :none) ;; we use Corfu!
|
||||
:init
|
||||
(defun my/lsp-mode-setup-completion ()
|
||||
(lsp-enable-which-key-integration)
|
||||
(setf
|
||||
(alist-get 'styles
|
||||
(alist-get 'lsp-capf completion-category-defaults))
|
||||
'(orderless)))
|
||||
:config
|
||||
(setq lsp-prefer-flymake nil
|
||||
c-c++-enable-clang-format-on-save nil)
|
||||
:hook
|
||||
(prog-mode . lsp-mode)
|
||||
(lsp-completion-mode . my/lsp-mode-setup-completion))
|
||||
|
||||
|
||||
(use-package flycheck :ensure t :defer t)
|
||||
(use-package go-mode :ensure t :defer t
|
||||
:mode (("\\.go$" . go-mode))
|
||||
:hook ((go-mode . lsp-deferred)
|
||||
(before-save . lsp-format-buffer)
|
||||
(before-save . lsp-organize-imports)))
|
||||
(use-package yaml-mode :ensure t :defer t
|
||||
:mode (("\\.yml$" . yaml-mode)))
|
||||
(use-package json-mode :ensure t :defer t
|
||||
:mode (("\\.json$" . json-mode)))
|
||||
(use-package php-mode :ensure t :defer t
|
||||
:mode (("\\.php$" . php-mode)))
|
||||
(use-package mmm-mode :ensure t :defer t)
|
||||
(use-package multi-web-mode :ensure t :defer t)
|
||||
(use-package graphviz-dot-mode :ensure t :defer t)
|
||||
(use-package protobuf-mode :ensure t :defer t)
|
||||
(use-package rego-mode :ensure t :defer t)
|
||||
(use-package plantuml-mode :ensure t :defer t)
|
||||
(use-package kotlin-mode :ensure t :defer t)
|
||||
(use-package realgud :ensure t :defer t)
|
||||
(add-hook 'realgud-short-key-mode-hook
|
||||
(lambda ()
|
||||
(local-set-key "\C-c" realgud:shortkey-mode-map)))
|
||||
|
||||
|
||||
;; search & narrow
|
||||
;; ===
|
||||
(use-package prescient :ensure t :defer t)
|
||||
(use-package fzf :ensure t :defer t
|
||||
:bind
|
||||
;; TODO
|
||||
:config
|
||||
(setq fzf/args "-x --color bw --print-query --margin=1,0 --no-hscroll"
|
||||
fzf/executable "fzf"
|
||||
fzf/git-grep-args "-i --line-number %s"
|
||||
fzf/grep-command "rg --no-heading -nH"
|
||||
fzf/position-bottom t
|
||||
fzf/window-height 15))
|
||||
|
||||
|
||||
;; frame & window management
|
||||
;; ===
|
||||
(use-package switch-window :ensure t :defer t)
|
||||
(require 'switch-window)
|
||||
(global-set-key (kbd "C-x C-o") 'switch-window)
|
||||
(global-set-key (kbd "C-x C-1") 'switch-window-then-maximize)
|
||||
(global-set-key (kbd "C-x C-2") 'switch-window-then-split-below)
|
||||
(global-set-key (kbd "C-x C-3") 'switch-window-then-split-right)
|
||||
(global-set-key (kbd "C-x C-0") 'switch-window-then-delete)
|
||||
|
||||
;; navigation
|
||||
;; ===
|
||||
(use-package ace-jump-mode :ensure t :defer t
|
||||
:bind (("C-c SPC" . 'ace-jump-mode)
|
||||
("C-x SPC" . 'ace-jump-mode-pop-mark)))
|
||||
|
||||
;; antisocial
|
||||
;; ===
|
||||
|
||||
;; (use-package mastodon :ensure t :defer t)
|
||||
;; (setq mastodon-instance-url "https://mastodon.sdf.org"
|
||||
;; mastodon-active-user "me@lkn.uber.space")
|
||||
|
||||
|
||||
Loading…
Reference in New Issue