summaryrefslogtreecommitdiff
path: root/config.org
diff options
context:
space:
mode:
Diffstat (limited to 'config.org')
-rw-r--r--config.org112
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