mirror of
https://github.com/pestctrl/emacs-config.git
synced 2026-02-16 16:24:18 +00:00
8.4 KiB
8.4 KiB
- irony
- Yasnippets
- Projectile and dumb-jump
- hs-minor-mode
- Ensime (scala)
- SPACES
- Geiser
- Cider
- YAML
- Rainbow delimiters
- C#
- React js
- Golang
- Elpy
- EIN
- Web-mode
- Processing
- Treemacs
- Hy-mode
- glsl-mode
- indent-guide
- rust cargo
- maven support
- Setup-dev-environment
- skeletor project templates
- Erlang
irony
(use-package irony
:hook ((c++-mode . irony-mode)
(c-mode . irony-mode)
(objc-mode . irony-mode)))
;; (add-hook 'c++-mode-hook 'irony-mode)
;; (add-hook 'c-mode-hook 'irony-mode)
;; (add-hook 'objc-mode-hook 'irony-mode)
;; (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
;; (global-company-mode)
Yasnippets
(use-package yasnippet)
(use-package java-snippets)
(define-key yas/keymap (kbd "<backtab>") 'yas-expand)
(yas-global-mode 0)
Projectile and dumb-jump
(use-package projectile
:custom
(projectile-enable-caching t))
(use-package treemacs-projectile)
(use-package helm-projectile)
(use-package counsel-projectile)
(defun projectile-stop-project-running ()
(interactive)
(if-let (buf (get-buffer "*compilation*"))
(let ((kill-buffer-query-functions nil))
(kill-buffer buf)
(delete-window))
(message "Project is not running")))
(projectile-global-mode)
;; Deprecated?
(counsel-projectile-mode)
(ivy-set-occur 'counsel-projectile-switch-to-buffer 'ivy-switch-buffer-occur)
(cons 'projectile-root-bottom-up
(remove 'projectile-root-bottom-up
projectile-project-root-files-functions))
(setq projectile-indexing-method 'native)
(setq projectile-completion-system 'ivy)
(define-key projectile-mode-map (kbd "C-c C-p") 'projectile-command-map)
(define-key projectile-command-map (kbd "C-a") 'projectile-add-known-project)
(define-key projectile-command-map (kbd "C-r") 'projectile-remove-known-project)
(define-key projectile-command-map (kbd "C-f") 'counsel-projectile-find-file)
(define-key projectile-command-map (kbd "C-b") 'projectile-ibuffer)
(define-key projectile-command-map (kbd "C-c") 'projectile-compile-project)
(define-key projectile-command-map (kbd "C-d") 'projectile-stop-project-running)
(defun this-is-a-project (dir)
(interactive "f")
(setq projectile-project-root dir)
(set (make-local-variable 'dumb-jump-project) dir))
(define-key projectile-command-map (kbd "C-t") 'this-is-a-project)
(use-package dumb-jump)
(dumb-jump-mode)
hs-minor-mode
(defun set-hiding-indentation (column)
(interactive "P")
(set-selective-display
(or column
(unless selective-display
(1+ (current-column))))))
(defun set-hiding-indentation-to-point (column)
(interactive "P")
(if hs-minor-mode
(if (condition-case nil
(hs-toggle-hiding)
(error t))
(hs-show-all))
(set-hiding-indentation column)))
(global-set-key (kbd "C-=") 'hs-toggle-hiding)
(global-set-key (kbd "C--") 'set-hiding-indentation-to-point)
(add-hook 'c-mode-common-hook 'hs-minor-mode)
(add-hook 'emacs-lisp-mode-hook 'hs-minor-mode)
(add-hook 'java-mode-hook 'hs-minor-mode)
(add-hook 'lisp-mode-hook 'hs-minor-mode)
(add-hook 'perl-mode-hook 'hs-minor-mode)
(add-hook 'sh-mode-hook 'hs-minor-mode)
Ensime (scala)
(use-package ensime)
SPACES
(setq TeX-auto-untabify 't)
(setq indent-tabs-mode nil)
(add-hook 'java-mode-hook
(lambda ()
(setq indent-tabs-mode nil)))
(add-hook 'clojure-mode
(lambda ()
(setq indent-tabs-mode nil)))
Geiser
(use-package geiser)
(setq geiser-default-implementation 'chez)
Cider
(use-package clj-refactor)
(use-package cider)
(use-package clojure-mode)
YAML
(use-package yaml-mode)
Rainbow delimiters
(use-package rainbow-delimiters)
(rainbow-delimiters-mode)
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
(add-hook 'org-mode-hook #'rainbow-delimiters-mode)
(let ((rainbow-purple "#9E1CB2")
(rainbow-blue "#1194f6")
(rainbow-green "#47B04B")
(rainbow-yellow "#FFED18")
(rainbow-orange "#E7B500")
(rainbow-red "#C90067")
(rainbow-7 "#00AA5D")
(rainbow-8 "#FE7380"))
(set-face-attribute 'rainbow-delimiters-depth-1-face t :foreground rainbow-purple)
(set-face-attribute 'rainbow-delimiters-depth-2-face t :foreground rainbow-green)
(set-face-attribute 'rainbow-delimiters-depth-3-face t :foreground rainbow-blue)
(set-face-attribute 'rainbow-delimiters-depth-4-face t :foreground rainbow-red)
(set-face-attribute 'rainbow-delimiters-depth-5-face t :foreground rainbow-yellow)
(set-face-attribute 'rainbow-delimiters-depth-6-face t :foreground rainbow-blue)
(set-face-attribute 'rainbow-delimiters-depth-7-face t :foreground rainbow-red)
(set-face-attribute 'rainbow-delimiters-depth-8-face t :foreground rainbow-8)
(set-face-attribute 'rainbow-delimiters-depth-9-face t :foreground rainbow-purple))
C#
(use-package csharp-mode)
(use-package dotnet)
(use-package omnisharp
:bind (:map omnisharp-mode-map
([remap xref-find-definitions] . omnisharp-go-to-definition)
([remap xref-find-references] . omnisharp-find-usages)))
(add-hook 'csharp-mode-hook 'omnisharp-mode)
(add-hook 'csharp-mode-hook 'company-mode)
(add-hook 'csharp-mode-hook 'flycheck-mode)
(add-hook 'csharp-mode-hook 'auto-highlight-symbol-mode)
(add-hook 'csharp-mode-hook 'dotnet-mode)
React js
(use-package rjsx-mode)
Golang
(use-package go-mode)
(add-hook 'go-mode-hook
(lambda ()
(add-hook 'before-save-hook 'gofmt-before-save nil t)
(setq indent-tabs-mode nil)))
;; This is for lsp to work
(add-to-list 'exec-path "~/go/bin/")
Elpy
(use-package elpy)
(elpy-enable)
EIN
(use-package ein)
(add-to-list 'exec-path
"/home/benson/anaconda3/bin/")
Web-mode
(use-package web-mode
:commands web-mode
:init
(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.[agj]sp\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.cshtml\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
:config
(setq web-mode-auto-close-style 2))
Processing
(use-package processing-mode)
(setq processing-location "/usr/bin/processing-java")
Treemacs
(use-package treemacs)
Hy-mode
(use-package hy-mode)
glsl-mode
(autoload 'glsl-mode "glsl-mode" nil t)
(add-to-list 'auto-mode-alist '("\\.glsl\\'" . glsl-mode))
(add-to-list 'auto-mode-alist '("\\.vert\\'" . glsl-mode))
(add-to-list 'auto-mode-alist '("\\.frag\\'" . glsl-mode))
(add-to-list 'auto-mode-alist '("\\.geom\\'" . glsl-mode))
indent-guide
(use-package indent-guide)
;(indent-guide-global-mode)
rust cargo
(use-package cargo)
maven support
(use-package mvn)
Setup-dev-environment
(defun setup-devenv ()
(interactive)
(flycheck-list-errors)
(treemacs)
(dap-ui-locals)
(when (y-or-n-p "Enter lsp? ")
(lsp)))
skeletor project templates
(use-package skeletor)
(skeletor-define-template "java-maven"
:title "Java with Maven")
Erlang
(use-package erlang)
(add-to-list 'load-path
"~/.emacs.d/submodule/erlang_ls/")
(setq lsp-erlang-server-install-dir "~/.emacs.d/submodule/erlang_ls")
(defun my/erlang-keymap-hook ()
(local-set-key (kbd "C-c C-c") 'erlang-compile))
(add-hook 'erlang-mode-hook 'my/erlang-keymap-hook)