179 lines
4.5 KiB
EmacsLisp
179 lines
4.5 KiB
EmacsLisp
;; 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
|
|
;; https://www.gnu.org/prep/standards/html_node/Writing-C.html
|
|
:ensure nil
|
|
;; :hook (c-mode . eglot-ensure)
|
|
:hook (c-mode-common . c-toggle-auto-newline)
|
|
:custom
|
|
(fill-column 79) ; according to gnu style guide
|
|
(c-basic-offset 2) ; ""
|
|
:config
|
|
(defun my-c-mode-hook ()
|
|
(c-set-style
|
|
(if (and (buffer-file-name)
|
|
(string-match "/usr/src/linux" (buffer-file-name)))
|
|
"linux"
|
|
"gnu")))
|
|
(add-hook 'c-mode-hook 'my-c-mode-hook))
|
|
|
|
(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)
|