;; PACKAGE (require 'package) (setq package-archives '(("melpa" . "https://melpa.org/packages/") ("org" . "https://orgmode.org/elpa/") ("elpa" . "https://elpa.gnu.org/packages/"))) (package-initialize) (unless package-archive-contents (package-refresh-contents)) (unless (package-installed-p 'use-package) (package-install 'use-package)) ;; USE-PACKAGE (require 'use-package) (setq use-package-always-ensure t) ;; ADDTIONAL MODES (use-package flyspell :config ;;(add-hook 'text-mode-hook #'flyspell-mode) ;;(add-hook 'prog-mode-hook #'flyspell-prog-mode) (setq ispell-dictionary "en_US")) ;; :hook (text-mode . flyspell-mode)) ;; (use-package company ;; :init ;; (global-company-mode)) (use-package nov :hook (nov-mode . olivetti-mode) :mode ("\\.epub\\'" . nov-mode) :init (add-hook 'nov-mode-hook #'shrface-mode) :config (require 'shrface) (setq nov-shr-rendering-functions '((img . nov-render-img) (title . nov-render-title))) (setq nov-shr-rendering-functions (append nov-shr-rendering-functions shr-external-rendering-functions)) (setq nov-text-width nil nov-variable-pitch nil)) (use-package projectile :init (projectile-mode +1) :config (setq projectile-completion-system (quote ivy))) (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map) (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) ;; (use-package elpy ;; :config (setq elpy-modules ;; '(elpy-module-autodoc ;; elpy-module-company ;; elpy-module-eldoc ;; elpy-module-pyvenv ;; elpy-module-yasnippet) ;; elpy-test-pytest-runner-command '("pytest"))) ;; (use-package pyvenv ;; :init (pyvenv-mode 1)) ;; LANGUAGE MODES (use-package eglot :config (add-to-list 'eglot-server-programs '((c++-mode c-mode) "ccls"))) (use-package lisp-mode :ensure nil :mode (("\\.lisp$" . lisp-mode) ("\\.lsp$" . lisp-mode) ("\\.cl$" . lisp-mode))) (use-package cc-mode :ensure nil ;; :hook (c-mode . eglot-ensure) :custom (c-basic-offset 2) (c-default-style '((c-mode . "gnu")))) (use-package js-mode :ensure nil :hook (js-mode . eglot-ensure) :mode ("\\.webmanifest\\'" . js-mode)) (use-package go-mode :config (add-hook 'before-save-hook #'gofmt-before-save) (add-hook 'go-mode-hook 'eglot-ensure)) (use-package rust-mode :hook (rust . eglot-ensure)) (use-package typescript-mode :config (add-hook 'typescript-mode-hook 'eglot-ensure)) (use-package web-mode ;; :hook html-mode :mode (("\\.html?\\'" . web-mode) ("\\.tmpl\\'" . web-mode)) :custom (web-mode-markup-indent-offset 2) (web-mode-css-indent-offset 2) (web-mode-code-indent-offset 2) (web-mode-enable-auto-pairing nil) (web-mode-enable-auto-closing t) (web-mode-enable-current-element-highlight t) (web-mode-enable-current-column-highlight t)) (use-package yaml) (use-package yaml-mode) (use-package racket-mode) (use-package markdown-mode) (use-package python :mode (("\\.py\\'" . python-mode) ("\\.wsgi$" . python-mode) ("\\.j2" . python-mode)) :init (setq python-indent-offset 4) (setq-default indent-tabs-mode nil) :custom (fill-column 79) :config (add-hook 'python-mode-hook 'eglot-ensure)) (use-package csv-mode :mode ("\\.[Cc][Ss][Vv]\\'" . csv-mode)) (use-package plantuml-mode :mode "\\.puml?\\'") ;; TOOLS MODE (use-package slime :custom (slime-autodoc-use-multiline-p 1) :config (setq inferior-lisp-program (executable-find "sbcl")) (slime-setup '(slime-autodoc slime-fancy slime-asdf slime-indentation slime-editing-commands slime-sbcl-exts))) (use-package powershell) ;; (use-package geiser ;; :config ;; (setq geiser-active-implementations '(racket))) ;; (use-package geiser-racket) (use-package webpaste) ;; (use-package slime-company ;; :after (slime company) ;; :custom (slime-company-after-completion 'slime-company-just-one-space)) (use-package pyvenv) (use-package simple-httpd) (use-package elpher)