diff options
author | Franck Cuny <franck@fcuny.net> | 2022-03-23 09:55:58 -0700 |
---|---|---|
committer | Franck Cuny <franck@fcuny.net> | 2022-03-23 09:55:58 -0700 |
commit | 1543ac66ba6f829082b745e6a11a9aeb9e8faec7 (patch) | |
tree | f06103de2e5d82426877595cd23d6201f2cdb000 /emacs/custom/my-prog.el | |
parent | rename fcuny-org to my-org (diff) | |
download | emacs.d-1543ac66ba6f829082b745e6a11a9aeb9e8faec7.tar.gz |
rename a few more libraries
Diffstat (limited to 'emacs/custom/my-prog.el')
-rw-r--r-- | emacs/custom/my-prog.el | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/emacs/custom/my-prog.el b/emacs/custom/my-prog.el new file mode 100644 index 0000000..ce41935 --- /dev/null +++ b/emacs/custom/my-prog.el @@ -0,0 +1,131 @@ +;;; my-prog.el --- Configures emacs for various programming languages +;;; Commentary: + +;;; Code: + +;; (require 'fcuny-vars) +(require 'use-package) + +(use-package man + :custom + (Man-notify-method 'aggressive) + (Man-fontify-manpage-flag t)) + +(use-package compile + :ensure nil + :custom + (compilation-scroll-output t) + ;; Skip over warnings and info messages in compilation + (compilation-skip-threshold 2) + ;; Don't freeze when process reads from stdin + (compilation-disable-input t) + ;; Show three lines of context around the current message + (compilation-context-lines 3)) + +(use-package flymake + :ensure nil + :hook ((prog-mode . flymake-mode) + (conf-mode . flymake-mode)) + :bind (:map flymake-mode-map (("C-c ! s" . flymake-start) + ("C-c ! d" . flymake-show-buffer-diagnostics) + ("C-c ! n" . flymake-goto-next-error) + ("C-c ! p" . flymake-goto-prev-error))) + :custom + (elisp-flymake-byte-compile-load-path load-path)) + +;; yasnippet is required to support place holders with eglot +(use-package yasnippet + :ensure t + :hook + ((prog-mode org-mode dap-ui-repl-mode conf-mode) . yas-minor-mode) + :config + (yas-reload-all)) + +(use-package auto-fill + :hook (prog-mode . auto-fill-mode) + :custom + ;; this does not seem to work .. + (comment-fill-column 80) + (comment-auto-fill-only-comments t)) + +(use-package company + :ensure t + :diminish company-mode + :hook (prog-mode . company-mode) + :custom + (company-minimum-prefix-length 2) + (company-tooltip-align-annotations t) + (company-tooltip-limit 12) + (company-idle-delay 1)) + +(use-package lispy + :ensure t + :config + (dolist (hook '(emacs-lisp-mode-hook)) + (add-hook hook #'lispy-mode))) + +(use-package eldoc + :ensure nil + :hook + ((prog-mode conf-mode) . eldoc-mode) + :bind ("C-c C-h" . eldoc)) + +(use-package eglot + :after (yasnippet company) + :commands (eglot eglot-ensure) + :ensure t + :bind (:map eglot-mode-map + ("C-c C-r" . eglot-rename) + ("C-c C-a" . eglot-code-actions)) + :hook ((go-mode . eglot-ensure) + (nix-mode . eglot-ensure) + (eglot-managed-mode-hook . turn-on-eldoc-mode)) + :init + (setq-default eglot-workspace-configuration + ;; List of settings for gopls: + ;; https://github.com/golang/tools/blob/master/gopls/doc/settings.md + '((:gopls . + ((staticcheck . t) + (matcher . "CaseSensitive") + (usePlaceholders . t)))))) + +(use-package sh-script + :mode ("bashrc" . sh-mode) + :hook (after-save . executable-make-buffer-file-executable-if-script-p) + :config + (setq-default sh-indentation 2 + sh-basic-offset 2)) + +(use-package python + :mode (("\\.py$" . python-mode)) + :commands python-mode + :hook ((python-mode . eldoc-mode)) + :custom (python-indent-offset 2)) + +(use-package make-mode + :config + (add-hook 'makefile-mode-hook (lambda () (setq-local tab-width 2)))) + +(use-package go-mode + :after (eglot) + :ensure t + :hook ((before-save . gofmt-before-save)) + :custom + (tab-width 4)) + +(use-package gotest + :after (go-mode) + :ensure t) + +(use-package lisp-mode + :bind + (("C-c C-e" . eval-buffer) + ("C-c C-r" . eval-region))) + +(use-package nix-mode + :ensure t + :mode "\\.nix\\'" + :hook ((before-save . nix-format-before-save))) + +(provide 'my-prog) +;;; my-prog.el ends here |