diff options
| author | tslil clingman <> | 2019-09-11 19:18:14 -0400 |
|---|---|---|
| committer | tslil clingman <> | 2019-09-11 19:18:14 -0400 |
| commit | ac1a4884d03fc0495c773500d8a13f84b695fa43 (patch) | |
| tree | 29e5ec49e0ce957d80d8f11a155b47840c74f488 /emacs/inits/20-programming.el | |
Init
Diffstat (limited to 'emacs/inits/20-programming.el')
| -rw-r--r-- | emacs/inits/20-programming.el | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/emacs/inits/20-programming.el b/emacs/inits/20-programming.el new file mode 100644 index 0000000..e2e0494 --- /dev/null +++ b/emacs/inits/20-programming.el @@ -0,0 +1,121 @@ +;; Time-stamp: <2019-09-11 11:30:39 (tslil@basingstoke)> + +;; ----------------------------------------------------------------------------- +;; General setup + +(defadvice compile (around split-horizontally activate) + (let ((split-width-threshold 0) + (split-height-threshold nil)) + ad-do-it)) + +(defadvice compile (after resize-window-properly activate) + (let ((ww (window-width))) + (when (< ww (+ 5 fill-column)) + (enlarge-window-horizontally (- (+ 5 fill-column) ww))))) + +(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)) + +(add-hook 'prog-mode-hook #'programming-setup) + +;; ----------------------------------------------------------------------------- +;; Specific packages + +(use-package shift-number + :ensure t + :bind (("C-c S-i" . shift-number-up) + ("C-c S-d" . shift-number-down))) + +(use-package comment-dwim-2 + :ensure t + :bind (("M-;" . comment-dwim-2))) + +(use-package aggressive-indent + :ensure t + :defer t) + +(use-package yasnippet + :ensure t + :defer t) + +(use-package elec-pair + :defer t + :config + (setq electric-pair-delete-adjacent-pairs t + electric-pair-skip-self t + electric-pair-preserve-balance t + electric-pair-skip-whitespace t)) + +(use-package js-comint + :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)))) + +;; 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 irony + :ensure t + :defer t + :hook (lambda () + (irony-cdb-autosetup-compile-options) + (company-irony-setup-begin-commands))) + +(use-package cc-mode + :defer t + :config + (c-set-offset 'case-label '+) + (setq-default c-basic-offset 2)) + +(add-hook 'c-mode-hook + (lambda () + (irony-mode) + (abbrev-mode 0) + (flycheck-mode) + (flycheck-irony-setup) + (c-toggle-hungry-state 1) + (c-toggle-electric-state 1) + (c-toggle-syntactic-indentation 1))) + +(use-package flycheck-rust + :after flycheck + :ensure t + :defer t) + +(use-package rust-mode + :ensure t + :defer t + :bind (:map rust-mode-map + ("C-c C-c" . rust-compile)) + :hook (rust-mode . (lambda () + (flycheck-mode) + (flycheck-rust-setup)))) |
