diff options
Diffstat (limited to 'config.org')
| -rw-r--r-- | config.org | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/config.org b/config.org new file mode 100644 index 0000000..e564bb2 --- /dev/null +++ b/config.org @@ -0,0 +1,112 @@ +#+TITLE: My configuration +#+AUTHOR: Andrew Guschin +#+PROPERTY: tangle yes + +#+BEGIN_SRC emacs-lisp +(when (package-installed-p 'ayu-theme) + (load-theme 'ayu-grey t)) + +(add-to-list 'default-frame-alist + '(font . "FiraCode Nerd Font 15")) + +;;; GUI settings: +(when (eq system-type 'gnu/linux) + (menu-bar-mode -1)) +(when (eq system-type 'darwin) + (menu-bar-mode t)) +(tool-bar-mode -1) +(toggle-scroll-bar -1) +(xterm-mouse-mode 1) +(buffer-face-mode) +(global-set-key (kbd "C-<wheel-up>") 'ignore) +(global-set-key (kbd "C-<wheel-down>") 'ignore) +(setq-default display-line-numbers-mode nil) +(setq-default display-line-numbers nil) +(add-hook 'prog-mode-hook + (lambda () (display-line-numbers-mode t))) +(pixel-scroll-precision-mode t) +(setq frame-resize-pixelwise t) + +(setq-default indent-tabs-mode nil) +(setq-default tab-width 4) +(setq-default c-default-style "bsd") +(setq-default c-basic-offset 4) + +(add-to-list 'package-archives + '("melpa" . "https://melpa.org/packages/") t) + +(defun ensure-packages (packages) + (dolist (name packages) + (unless (package-installed-p name) + (package-install name)))) + +(ensure-packages '(evil)) +(use-package evil + :hook + (evil-insert-state-entry . (lambda () (setq display-line-numbers t))) + :hook + (evil-normal-state-entry . (lambda () (setq display-line-numbers 'relative))) + :config + (evil-mode 1)) + +(ensure-packages '(ayu-theme)) + +(ensure-packages '(magit)) + +(ensure-packages '(paredit rainbow-delimiters)) +(use-package paredit + :hook + (emacs-lisp-mode . paredit-mode)) +(use-package rainbow-delimiters + :hook + (emacs-lisp-mode . rainbow-delimiters-mode)) + + +(ensure-packages '(exec-path-from-shell)) +(use-package exec-path-from-shell + :config + (when (memq window-system '(mac ns x)) + (setenv "EMACS" "emacs") + (setq exec-path-from-shell-variables + '("PATH" "CARGO_HOME" "RUSTUP_HOME" "GOPATH" + "RYE_HOME" "NPM_CONFIG_USERCONFIG" + "STACK_ROOT" "GHCUP_USE_XDG_DIRS")) + (exec-path-from-shell-initialize))) + +(ensure-packages '(rust-mode + lsp-java + lsp-ui + company + helm + avy)) +(use-package lsp-mode + :init + ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") + (setq lsp-keymap-prefix "C-c l") + (use-package rust-mode) + (use-package lsp-java) + (setq lsp-java-server-install-dir + (concat (getenv "HOME") "/.local/share/jdtls/")) + ;; if you want which-key integration + ;;(lsp-mode . lsp-enable-which-key-integration)) + :hook ((rust-mode . lsp) + (java-mode . lsp) + (c++-mode . lsp)) + :commands lsp) +(use-package lsp-ui :commands lsp-ui-mode) +(use-package helm-lsp :commands helm-lsp-workspace-symbol) + + +(defun my-backup-file-name (fpath) + "Return a new file path of a given file path. If the new path's + directories does not exist, create them." + (let* ((backupRootDir (expand-file-name "backup" user-emacs-directory)) + (filePath (replace-regexp-in-string "[A-Za-z]:" "" fpath )) ; remove Windows driver letter in path, for example, “C:” + (backupFilePath (replace-regexp-in-string "//" "/" (concat backupRootDir filePath "~") ))) + (make-directory (file-name-directory backupFilePath) (file-name-directory backupFilePath)) + backupFilePath)) +(setq make-backup-file-name-function 'my-backup-file-name) + +(setq custom-file (expand-file-name "custom.el" user-emacs-directory)) +(load custom-file) +#+END_SRC |