;******************************************************************************; ; ; ; ::: :::::::: ; ; .myemacs :+: :+: :+: ; ; +:+ +:+ +:+ ; ; By: tmaze +#+ +:+ +#+ ; ; +#+#+#+#+#+ +#+ ; ; Created: 2018/07/09 18:59:05 by tmaze #+# #+# ; ; Updated: 2019/11/05 10:45:00 by tmaze ### ########.fr ; ; ; ;******************************************************************************; (load "package") (require 'package) (let* ((no-ssl (and (memq system-type '(windows-nt ms-dos)) (not (gnutls-available-p)))) (proto (if no-ssl "http" "https"))) (when no-ssl (warn "\ Your version of Emacs does not support SSL connections, which is unsafe because it allows man-in-the-middle attacks. There are two things you can do about this warning: 1. Install an Emacs version that does support SSL and be safe. 2. Remove this warning from your init file so you won't see it again.")) ;; Comment/uncomment these two lines to enable/disable MELPA and MELPA Stable as desired (add-to-list 'package-archives (cons "melpa" (concat proto "://melpa.org/packages/")) t) ;;(add-to-list 'package-archives (cons "melpa-stable" (concat proto "://stable.melpa.org/packages/")) t) (when (< emacs-major-version 24) ;; For important compatibility libraries like cl-lib (add-to-list 'package-archives (cons "gnu" (concat proto "://elpa.gnu.org/packages/"))))) (package-initialize) (setq package-initialize-at-startup nil) (defvar tmaze/packages '(lsp-treemacs flycheck ccls rust-mode company use-package lsp-mode lsp-ui company-lsp column-enforce-mode magit treemacs treemacs-magit jinja2-mode ox-twbs dakrone-theme) "Default packages") (defun tmaze/packages-installed-p () (cl-loop for pkg in tmaze/packages when (not (package-installed-p pkg)) do (cl-return nil) finally (cl-return t))) (unless (tmaze/packages-installed-p) (message "%s" "Refreshing package database...") (package-refresh-contents) (dolist (pkg tmaze/packages) (when (not (package-installed-p pkg)) (package-install pkg)))) (load-theme 'dakrone t) (global-set-key (kbd "C-x g") 'magit-status) (global-set-key (kbd "C-x t") 'treemacs) (menu-bar-mode -1) (xterm-mouse-mode 1) (global-git-commit-mode) (global-undo-tree-mode) (line-number-mode 1) (column-number-mode 1) (use-package rust-mode :mode "\\.rs\\'" :init (setq rust-format-on-save t)) (use-package lsp-mode :init (add-hook 'prog-mode-hook 'lsp-mode) :hook (rust-mode . (lambda () (lsp)))) (use-package ccls :hook ((c-mode c++-mode objc-mode cuda-mode) . (lambda () (require 'ccls) (lsp)))) (use-package lsp-ui :hook (lsp-mode . lsp-ui-mode)) (use-package flycheck :hook ((rust-mode c-mode c++-mode objc-mode cuda-mode) . flycheck-mode)) (use-package lsp-treemacs :commands lsp-treemacs-errors-list) (use-package cargo :hook (rust-mode . (lambda () (cargo-minor-mode)))) (setq lsp-prefer-flymake nil) (setenv "ESHELL" (expand-file-name "~/.emacs.d/eshell"))