109 lines
3.5 KiB
Plaintext
109 lines
3.5 KiB
Plaintext
;******************************************************************************;
|
|
; ;
|
|
; ::: :::::::: ;
|
|
; .myemacs :+: :+: :+: ;
|
|
; +:+ +:+ +:+ ;
|
|
; By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ ;
|
|
; +#+#+#+#+#+ +#+ ;
|
|
; 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"))
|