summaryrefslogtreecommitdiff
path: root/emacs
diff options
context:
space:
mode:
authortslil clingman <>2021-01-04 22:35:02 -0500
committertslil clingman <>2021-01-04 22:35:02 -0500
commit6fddeab7525b8b284b5a22406a696894be89a307 (patch)
tree2f772ca074b7879fb46e997076b059f0918c1fe4 /emacs
parent43285c19998443753d64c0e41ff5b1f3fee520ae (diff)
Tabs for indentation, spaces for alignment
Diffstat (limited to 'emacs')
-rw-r--r--emacs/inits/01-basic.el96
-rw-r--r--emacs/inits/20-programming.el436
2 files changed, 315 insertions, 217 deletions
diff --git a/emacs/inits/01-basic.el b/emacs/inits/01-basic.el
index 090ff55..c3d540d 100644
--- a/emacs/inits/01-basic.el
+++ b/emacs/inits/01-basic.el
@@ -1,4 +1,4 @@
-;; Time-stamp: <2020-08-12 22:14:12 (user@hobbies)>
+;; Time-stamp: <2021-01-04 15h39 EST (hobbies)>
;; -----------------------------------------------------------------------------
;; Interface
@@ -9,41 +9,45 @@
(fset 'yes-or-no-p 'y-or-n-p)
(setq select-enable-clipboard t
- select-enable-primary t
- save-interprogram-paste-before-kill t
- require-final-newline t
- visible-bell nil)
+ select-enable-primary t
+ save-interprogram-paste-before-kill t
+ require-final-newline t
+ visible-bell nil)
(setq echo-keystrokes 0.1
- confirm-kill-emacs 'y-or-n-p
- disabled-command-function nil
- ring-bell-function 'ignore)
+ confirm-kill-emacs 'y-or-n-p
+ disabled-command-function nil
+ ring-bell-function 'ignore)
(size-indication-mode t)
(defun enlarge-to-fill ()
- "Stretch the buffer to accomodate `fill-column` many columns."
- (interactive)
- (let ((ww (window-width)))
- (when (< ww (+ 1 fill-column))
- (enlarge-window-horizontally (- (+ 1 fill-column) ww)))))
+ "Stretch the buffer to accomodate `fill-column` many columns."
+ (interactive)
+ (let ((ww (window-width)))
+ (when (< ww (+ 1 fill-column))
+ (enlarge-window-horizontally (- (+ 1 fill-column) ww)))))
(global-set-key (kbd "C-c 3") (lambda ()
- (interactive)
- (split-window-horizontally)
- (enlarge-to-fill)))
+ (interactive)
+ (split-window-horizontally)
+ (enlarge-to-fill)))
(blink-cursor-mode 0)
(setq cursor-type 'box)
(set-cursor-color "black")
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
-(when (eq 'x (window-system))
- (use-package gruvbox-theme
- :ensure t
- :config (load-theme 'gruvbox-dark-soft t))
- (set-face-attribute 'region nil :background "orange")
- (set-face-attribute 'default nil :font "Iosevka-14"))
+
+(use-package gruvbox-theme
+ :ensure t
+ :config
+ (when (eq 'x (window-system))
+ (load-theme 'gruvbox-dark-soft t)
+ ;; (set-face-attribute 'region nil :background "orange")
+ (set-face-attribute 'default nil :font "Iosevka-16")))
+
+
(set-fringe-style 0)
;; (set-fringe-mode 128)
@@ -52,11 +56,11 @@
;; Backups
(setq backup-by-copying t
- backup-directory-alist '((".*" . "~/store/backups/"))
- delete-old-versions t
- kept-new-versions 6
- kept-old-versions 2
- version-control t)
+ backup-directory-alist '((".*" . "~/store/backups/"))
+ delete-old-versions t
+ kept-new-versions 6
+ kept-old-versions 2
+ version-control t)
(setq create-lockfiles nil)
@@ -67,13 +71,13 @@
(setq standard-indent 2)
(setq-default tab-width 2
- indent-tabs-mode nil)
+ indent-tabs-mode t)
(add-hook 'before-save-hook #'whitespace-cleanup)
(show-paren-mode t)
(setq-default truncate-lines t
- truncate-partial-width-windows nil)
+ truncate-partial-width-windows nil)
(setq scroll-step 1)
(setq next-line-add-newlines nil)
@@ -86,14 +90,14 @@
;; Basic packages
(use-package recentf
- :demand t
- :config
- (setq recentf-max-saved-items 42)
- (recentf-mode))
+ :demand t
+ :config
+ (setq recentf-max-saved-items 42)
+ (recentf-mode))
(use-package uniquify
- :config
- (setq uniquify-buffer-name-style 'forward))
+ :config
+ (setq uniquify-buffer-name-style 'forward))
(require 'saveplace)
(save-place-mode)
@@ -104,19 +108,19 @@
;; (global-undo-tree-mode 1))
(use-package keyfreq
- :ensure t
- :config
- (setq keyfreq-file "~/.emacs.d/keyfreq"
- keyfreq-file-lock "~/.emacs.d/keyfreq.lock")
- (keyfreq-mode 1)
- (keyfreq-autosave-mode 1))
+ :ensure t
+ :config
+ (setq keyfreq-file "~/.emacs.d/keyfreq"
+ keyfreq-file-lock "~/.emacs.d/keyfreq.lock")
+ (keyfreq-mode 1)
+ (keyfreq-autosave-mode 1))
;; -----------------------------------------------------------------------------
;; Scratch buffer
(defun immortal-scratch ()
- (if (eq (current-buffer) (get-buffer "*scratch*"))
- (progn (bury-buffer) nil) t))
+ (if (eq (current-buffer) (get-buffer "*scratch*"))
+ (progn (bury-buffer) nil) t))
(add-hook 'kill-buffer-query-functions 'immortal-scratch)
@@ -124,8 +128,8 @@
(defun display-startup-echo-area-message () nil)
(setq initial-scratch-message nil
- initial-buffer-choice t)
+ initial-buffer-choice t)
(add-hook 'after-init-hook
- (lambda ()
- (setq default-directory "~/")))
+ (lambda ()
+ (setq default-directory "~/")))
diff --git a/emacs/inits/20-programming.el b/emacs/inits/20-programming.el
index da47f83..0ac6512 100644
--- a/emacs/inits/20-programming.el
+++ b/emacs/inits/20-programming.el
@@ -1,4 +1,4 @@
-;; Time-stamp: <2020-12-29 18h53 EST (hobbies)>
+;; Time-stamp: <2021-01-04 15h49 EST (hobbies)>
;; -----------------------------------------------------------------------------
;; General setup
@@ -15,15 +15,24 @@
;; (when (< ww (+ 5 fill-column))
;; (enlarge-window-horizontally (- (+ 5 fill-column) ww)))))
+(use-package smart-tabs-mode
+ :ensure t
+ :config
+ (smart-tabs-insinuate 'c 'c++ 'java 'javascript 'cperl 'ruby 'nxml))
+
+(use-package flycheck
+ :defer t
+ :ensure t)
+
(defun programming-setup ()
- (subword-mode 1)
- (electric-pair-local-mode)
- ;; Emacs25 compat
- (if (fboundp 'display-line-numbers-mode)
- (display-line-numbers-mode)
- (linum-mode))
- (setq auto-hscroll-mode t)
- (yas-minor-mode-on))
+ (subword-mode 1)
+ (electric-pair-local-mode)
+ ;; Emacs25 compat
+ (if (fboundp 'display-line-numbers-mode)
+ (display-line-numbers-mode)
+ (linum-mode))
+ (setq auto-hscroll-mode t)
+ (yas-minor-mode-on))
(add-hook 'prog-mode-hook #'programming-setup)
@@ -31,208 +40,293 @@
;; Specific packages
(use-package shift-number
- :ensure t
- :bind (("C-c s p" . shift-number-up)
- ("C-c s n" . shift-number-down)))
+ :ensure t
+ :bind (("C-c s p" . shift-number-up)
+ ("C-c s n" . shift-number-down)))
(use-package comment-dwim-2
- :ensure t
- :bind (("M-;" . comment-dwim-2))
- :config (setq comment-multi-line t))
+ :ensure t
+ :bind (("M-;" . comment-dwim-2))
+ :config (setq comment-multi-line t))
(use-package aggressive-indent
- :ensure t
- :defer t)
+ :ensure t
+ :defer t)
(use-package yasnippet
- :ensure t
- :defer t
- :commands yas-minor-mode-on)
+ :ensure t
+ :defer t
+ :commands yas-minor-mode-on)
(use-package elec-pair
- :defer t
- :config
- (setq electric-pair-delete-adjacent-pairs t
- electric-pair-skip-self 'electric-pair-default-skip-self
- electric-pair-preserve-balance t
- electric-pair-skip-whitespace t
- electric-pair-inhibit-predicate 'electric-pair-default-inhibit))
+ :defer t
+ :config
+ (setq electric-pair-delete-adjacent-pairs t
+ electric-pair-skip-self 'electric-pair-default-skip-self
+ electric-pair-preserve-balance t
+ electric-pair-skip-whitespace t
+ electric-pair-inhibit-predicate 'electric-pair-default-inhibit))
(use-package js-comint
- :ensure t
- :defer t
- :config
- (setq js-comint-program-command "node"
- js-comint-program-arguments nil))
+ :ensure t
+ :defer t
+ :config
+ (setq js-comint-program-command "node"
+ js-comint-program-arguments nil))
(use-package js2-mode
- :ensure t
- :defer t
- :after js-comint
- :mode "\\.js$"
- :bind (:map js2-mode-map
- ("TAB" . js2-indent-line)
- ("C-x C-e" . js-send-last-sexp)
- ("C-c C-b" . js-send-buffer)
- ("C-c C-l" . js-load-file))
- :hook (js2-mode . (lambda ()
- (auto-revert-mode -1)
- (yas-minor-mode-on))))
+ :ensure t
+ :defer t
+ :after js-comint
+ :mode "\\.js$"
+ :bind (:map js2-mode-map
+ ("TAB" . js2-indent-line)
+ ("C-x C-e" . js-send-last-sexp)
+ ("C-c C-b" . js-send-buffer)
+ ("C-c C-l" . js-load-file))
+ :hook (js2-mode . (lambda ()
+ (auto-revert-mode -1)
+ (yas-minor-mode-on))))
(use-package nodemcu-mode
- :ensure t
- :defer t
- :config
- (setq nodemcu-default-keybindings t
- nodemcu-port "/dev/ttyUSB0"
- nodemcu-backend "nodemcu-uploader")
-
- (defun nodemcu-better-upload-current-file (&optional noreset)
- (interactive "P")
- (let ((proc (get-process "nodemcu-terminal")))
- (when proc
- (delete-process proc))
- (shell-command
- (nodemcu--get-command "upload" (file-name-nondirectory (buffer-file-name))))
- (unless noreset
- (shell-command
- (nodemcu--get-command "node restart"))
- (when proc
- (nodemcu-terminal))))))
+ :ensure t
+ :defer t
+ :config
+ (setq nodemcu-default-keybindings t
+ nodemcu-port "/dev/ttyUSB0"
+ nodemcu-backend "nodemcu-uploader")
+
+ (defun nodemcu-better-upload-current-file (&optional noreset)
+ (interactive "P")
+ (let ((proc (get-process "nodemcu-terminal")))
+ (when proc
+ (delete-process proc))
+ (shell-command
+ (nodemcu--get-command "upload" (file-name-nondirectory (buffer-file-name))))
+ (unless noreset
+ (shell-command
+ (nodemcu--get-command "node restart"))
+ (when proc
+ (nodemcu-terminal))))))
(use-package lua-mode
- :after nodemcu-mode
- :ensure t
- :defer t
- :bind (:map lua-mode-map
- ("C-x C-e" . lua-send-current-line)
- ("C-c C-d" . lua-send-defun)
- ("C-c C-e" . lua-send-region)
- ("C-c C-u" . nodemcu-better-upload-current-file)
- ("C-c C-t" . nodemcu-terminal)
- ("M-n" . lua-forward-sexp)
- ("M-p" . lua-backwards-to-block-begin-or-end))
- :hook (lua-mode . (lambda ()
- (require 'nodemcu-mode)
- (use-package company-lua :ensure t :demand)
- (nodemcu-mode 1)
- (add-to-list 'company-backends 'company-lua))))
+ :after nodemcu-mode
+ :ensure t
+ :defer t
+ :bind (:map lua-mode-map
+ ("C-x C-e" . lua-send-current-line)
+ ("C-c C-d" . lua-send-defun)
+ ("C-c C-e" . lua-send-region)
+ ("C-c C-u" . nodemcu-better-upload-current-file)
+ ("C-c C-t" . nodemcu-terminal)
+ ("M-n" . lua-forward-sexp)
+ ("M-p" . lua-backwards-to-block-begin-or-end))
+ :hook (lua-mode . (lambda ()
+ (require 'nodemcu-mode)
+ (use-package company-lua :ensure t :demand)
+ (nodemcu-mode 1)
+ (add-to-list 'company-backends 'company-lua))))
+
+(use-package verilog-mode
+ :ensure t
+ :defer t
+ :mode "\\.vl$"
+ :hook (verilog-mode . (lambda ()
+ (setq verilog-tool 'verilog-compiler)
+ (verilog-set-compile-command)))
+ :config
+ (setq verilog-compiler "iverilog"
+ verilog-tool 'verilog-compiler))
+
+(use-package gforth
+ :commands forth-mode
+ :mode (("\\.fs$" . forth-mode)
+ ("\\.fb$" . forth-block-mode)
+ ("\\.4th$" . forth-mode)))
+
+(use-package clojure-mode
+ :ensure t
+ :defer t)
+
+;; -----------------------------------------------------------------------------
+;; C
;; What are these?
;; (setq gdb-show-threads-by-default nil
;; gdb-many-windows nil
;; gdb-show-main nil)
-
-(use-package flycheck
- :defer t
- :ensure t)
-
(use-package company-irony-c-headers
- :ensure t
- :defer t)
+ :ensure t
+ :defer t)
(use-package company-irony
- :ensure t
- :defer t)
+ :ensure t
+ :defer t)
(use-package irony
- :ensure t
- :defer t
- :hook (irony-mode . (lambda ()
- (require 'company)
- (company-mode-on)
- (irony-cdb-autosetup-compile-options)
-
- (require 'company-irony)
- (require 'company-irony-c-headers)
- (add-to-list 'company-backends '(company-irony-c-headers company-irony)))))
+ :ensure t
+ :defer t
+ :hook (irony-mode . (lambda ()
+ (require 'company)
+ (company-mode-on)
+ (irony-cdb-autosetup-compile-options)
+ (require 'company-irony)
+ (require 'company-irony-c-headers)
+ (add-to-list 'company-backends '(company-irony-c-headers company-irony)))))
(use-package flycheck-irony
- :ensure t
- :defer t)
+ :ensure t
+ :defer t)
(use-package cc-mode
- :defer t
- :config
- (c-set-offset 'case-label '+)
- (setq-default c-basic-offset 2))
-
-(add-hook 'c-mode-hook
- (lambda ()
- (abbrev-mode 0)
-
- (irony-mode)
+ :defer t
+ :bind (:map c-mode-map
+ ("M-/" . lh-matching-delim))
+ :hook (c-mode . (lambda ()
+ (auto-fill-mode)
+ (set-fill-column 70)
+ (abbrev-mode 0)
+ (irony-mode)
+ (flycheck-mode)
+ (flycheck-irony-setup)
+ (c-toggle-hungry-state 1)
+ (c-toggle-electric-state 1)
+ (c-toggle-syntactic-indentation 1)))
+ :config
+ (c-add-style "gnu-mod"
+ '("gnu"
+ (c-basic-offset . 2) ; Guessed value
+ (c-offsets-alist
+ (block-close . 0) ; Guessed value
+ (case-label . +) ; Guessed value
+ (defun-block-intro . +) ; Guessed value
+ (defun-close . 0) ; Guessed value
+ (defun-open . 0) ; Guessed value
+ (else-clause . 0) ; Guessed value
+ (statement . 0) ; Guessed value
+ (statement-block-intro . +) ; Guessed value
+ (statement-case-intro . +) ; Guessed value
+ (statement-cont . +) ; Guessed value
+ (substatement . +) ; Guessed value
+ (topmost-intro . 0) ; Guessed value
+ (topmost-intro-cont . 0) ; Guessed value
+ (access-label . -)
+ (annotation-top-cont . 0)
+ (annotation-var-cont . +)
+ (arglist-close . c-lineup-close-paren)
+ (arglist-cont c-lineup-gcc-asm-reg 0)
+ (arglist-cont-nonempty . c-lineup-arglist)
+ (arglist-intro . c-lineup-arglist-intro-after-paren)
+ (block-open . 0)
+ (brace-entry-open . 0)
+ (brace-list-close . 0)
+ (brace-list-entry . 0)
+ (brace-list-intro first c-lineup-2nd-brace-entry-in-arglist c-lineup-class-decl-init-+ +)
+ (brace-list-open . +)
+ (c . c-lineup-C-comments)
+ (catch-clause . 0)
+ (class-close . 0)
+ (class-open . 0)
+ (comment-intro . c-lineup-comment)
+ (composition-close . 0)
+ (composition-open . 0)
+ (cpp-define-intro c-lineup-cpp-define +)
+ (cpp-macro . -1000)
+ (cpp-macro-cont . +)
+ (do-while-closure . 0)
+ (extern-lang-close . 0)
+ (extern-lang-open . 0)
+ (friend . 0)
+ (func-decl-cont . +)
+ (inclass . +)
+ (incomposition . +)
+ (inexpr-class . +)
+ (inexpr-statement . +)
+ (inextern-lang . +)
+ (inher-cont . c-lineup-multi-inher)
+ (inher-intro . +)
+ (inlambda . 0)
+ (inline-close . 0)
+ (inline-open . 0)
+ (inmodule . +)
+ (innamespace . +)
+ (knr-argdecl . 0)
+ (knr-argdecl-intro . 5)
+ (label . 0)
+ (lambda-intro-cont . +)
+ (member-init-cont . c-lineup-multi-inher)
+ (member-init-intro . +)
+ (module-close . 0)
+ (module-open . 0)
+ (namespace-close . 0)
+ (namespace-open . 0)
+ (objc-method-args-cont . c-lineup-ObjC-method-args)
+ (objc-method-call-cont c-lineup-ObjC-method-call-colons c-lineup-ObjC-method-call +)
+ (objc-method-intro . [0])
+ (statement-case-open . +)
+ (stream-op . c-lineup-streamop)
+ (string . -1000)
+ (substatement-label . 0)
+ (substatement-open . +)
+ (template-args-cont c-lineup-template-args +))))
+ (setq c-default-style '((java-mode . "java")
+ (awk-mode . "awk")
+ (other . "gnu-mod"))))
- (flycheck-mode)
- (flycheck-irony-setup)
-
- (c-toggle-hungry-state 1)
- (c-toggle-electric-state 1)
- (c-toggle-syntactic-indentation 1)))
-
-(use-package verilog-mode
- :ensure t
- :defer t
- :mode "\\.vl$"
- :hook (verilog-mode . (lambda ()
- (setq verilog-tool 'verilog-compiler)
- (verilog-set-compile-command)))
- :config
- (setq verilog-compiler "iverilog"
- verilog-tool 'verilog-compiler))
-
-(use-package gforth
- :commands forth-mode
- :mode (("\\.fs$" . forth-mode)
- ("\\.fb$" . forth-block-mode)
- ("\\.4th$" . forth-mode)))
-
-(use-package clojure-mode
- :ensure t
- :defer t)
;; -----------------------------------------------------------------------------
;; Rust
(use-package lsp-mode
- :ensure t
- :defer t)
+ :ensure t
+ :defer t)
(use-package cargo
- :ensure t
- :defer t)
+ :ensure t
+ :defer t)
(use-package flycheck-rust
- :after flycheck
- :ensure t
- :defer t)
+ :after flycheck
+ :ensure t
+ :defer t)
(use-package rust-mode
- :ensure t
- :defer t
- :bind (:map rust-mode-map
- ("M-," . lh-backward-delim)
- ("M-." . lh-forward-delim)
- ("M-/" . lh-matching-delim)
- ("M-p" . beginning-of-defun)
- ("M-n" . end-of-defun)
- ("C-c C-c" . rust-compile)
- ("C-c C-r" . rust-run))
- :hook (rust-mode . (lambda ()
- (cargo-minor-mode)
- ;; For some reason this is not automatic
- (setq-local electric-pair-pairs
- (cons '(?' . ?') electric-pair-pairs))
- ;; Pair {} in rust format strings ... ?
- (setq-local electric-pair-text-pairs
- (cons '(?{ . ?}) electric-pair-pairs))
- (flycheck-rust-setup)
- (lsp)))
- :config
- (setq rust-indent-offset 4
- rust-indent-method-chain t
- rust-indent-where-clause t
- rust-format-on-save t)
- (setq lsp-rust-server 'rust-analyzer
- lsp-rust-analyzer-call-info-full nil))
+ :ensure t
+ :defer t
+ :bind (:map rust-mode-map
+ ("M-," . lh-backward-delim)
+ ("M-." . lh-forward-delim)
+ ("M-/" . lh-matching-delim)
+ ("M-p" . beginning-of-defun)
+ ("M-n" . end-of-defun)
+ ("C-c C-c" . rust-compile)
+ ("C-c C-r" . rust-run))
+ :hook (rust-mode . (lambda ()
+ (cargo-minor-mode)
+ ;; For some reason this is not automatic
+ (setq-local electric-pair-pairs
+ (cons '(?' . ?') electric-pair-pairs))
+ ;; Pair {} in rust format strings ... ?
+ (setq-local electric-pair-text-pairs
+ (cons '(?{ . ?}) electric-pair-pairs))
+ (flycheck-rust-setup)
+ (lsp)))
+ :config
+ (setq rust-indent-offset 4
+ rust-indent-method-chain t
+ rust-indent-where-clause t
+ rust-format-on-save t)
+ (setq lsp-rust-server 'rust-analyzer
+ lsp-rust-analyzer-call-info-full nil))
+
+;; -----------------------------------------------------------------------------
+;; Python
+
+(use-package elpy
+ :ensure t
+ :defer t
+ :init
+ (advice-add 'python-mode :before 'elpy-enable)
+ :config
+ (setq python-shell-interpreter "python3"))