2020-07-26 14:36:43 +02:00
|
|
|
;; PACKAGE
|
|
|
|
(require 'package)
|
2020-10-07 14:32:54 +02:00
|
|
|
|
2021-04-29 22:30:49 +02:00
|
|
|
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
|
|
|
("org" . "https://orgmode.org/elpa/")
|
|
|
|
("elpa" . "https://elpa.gnu.org/packages/")))
|
2021-04-29 22:18:25 +02:00
|
|
|
|
2020-07-26 14:36:43 +02:00
|
|
|
(package-initialize)
|
2021-04-29 22:18:25 +02:00
|
|
|
(unless package-archive-contents
|
|
|
|
(package-refresh-contents))
|
|
|
|
|
|
|
|
(unless (package-installed-p 'use-package)
|
|
|
|
(package-install 'use-package))
|
2020-07-26 14:36:43 +02:00
|
|
|
|
2020-09-29 16:32:31 +02:00
|
|
|
;; USE-PACKAGE
|
2020-10-07 14:32:54 +02:00
|
|
|
(require 'use-package)
|
2020-09-29 16:32:31 +02:00
|
|
|
(setq use-package-always-ensure t)
|
|
|
|
|
2021-12-16 23:53:30 +01:00
|
|
|
;; 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))
|
|
|
|
|
2021-12-14 12:41:44 +01:00
|
|
|
;; (use-package company
|
|
|
|
;; :init
|
|
|
|
;; (global-company-mode))
|
2020-07-26 14:36:43 +02:00
|
|
|
|
|
|
|
(use-package nov
|
2021-06-05 16:55:11 +02:00
|
|
|
:hook (nov-mode . olivetti-mode)
|
2021-12-15 18:11:48 +01:00
|
|
|
:mode ("\\.epub\\'" . nov-mode)
|
2021-06-17 08:35:04 +02:00
|
|
|
:init
|
|
|
|
(add-hook 'nov-mode-hook #'shrface-mode)
|
2021-06-05 16:55:11 +02:00
|
|
|
:config
|
2021-06-17 08:35:04 +02:00
|
|
|
(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))
|
2021-06-05 16:55:11 +02:00
|
|
|
(setq nov-text-width nil
|
|
|
|
nov-variable-pitch nil))
|
2020-07-26 14:36:43 +02:00
|
|
|
|
2022-04-06 09:57:47 +02:00
|
|
|
;; (use-package projectile
|
|
|
|
;; :init
|
|
|
|
;; (projectile-mode +1)
|
|
|
|
;; :config
|
|
|
|
;; (setq projectile-completion-system (quote ivy)))
|
2020-07-26 14:36:43 +02:00
|
|
|
|
2022-04-06 09:58:33 +02:00
|
|
|
;; (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map)
|
|
|
|
;; (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
|
2020-07-26 14:36:43 +02:00
|
|
|
|
2021-06-03 13:48:19 +02:00
|
|
|
;; (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")))
|
2021-01-01 11:37:51 +01:00
|
|
|
|
2021-06-05 16:57:38 +02:00
|
|
|
;; (use-package pyvenv
|
|
|
|
;; :init (pyvenv-mode 1))
|
2020-07-26 14:36:43 +02:00
|
|
|
|
2021-12-20 09:46:26 +01:00
|
|
|
;; 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
|
2021-12-28 11:44:58 +01:00
|
|
|
;; https://www.gnu.org/prep/standards/html_node/Writing-C.html
|
2021-12-20 09:46:26 +01:00
|
|
|
:ensure nil
|
|
|
|
;; :hook (c-mode . eglot-ensure)
|
2021-12-28 11:44:58 +01:00
|
|
|
:hook (c-mode-common . c-toggle-auto-newline)
|
2021-12-20 09:46:26 +01:00
|
|
|
:custom
|
2021-12-28 11:44:58 +01:00
|
|
|
(fill-column 79) ; according to gnu style guide
|
|
|
|
(c-basic-offset 2) ; ""
|
|
|
|
:config
|
2022-01-01 13:09:29 +01:00
|
|
|
(defun me/c-mode-style-hook ()
|
|
|
|
;; if linux kernel source use linux style, else use gnu style
|
2021-12-28 11:44:58 +01:00
|
|
|
(c-set-style
|
|
|
|
(if (and (buffer-file-name)
|
|
|
|
(string-match "/usr/src/linux" (buffer-file-name)))
|
|
|
|
"linux"
|
|
|
|
"gnu")))
|
2022-01-01 13:09:29 +01:00
|
|
|
|
|
|
|
(add-hook 'c-mode-common-hook 'me/c-mode-style-hook)
|
|
|
|
|
2021-12-31 21:56:56 +01:00
|
|
|
(defun me/c-mode-compile-command-hook ()
|
2022-01-01 13:09:29 +01:00
|
|
|
;; if no makefile use gcc for compile command
|
2021-12-31 21:56:56 +01:00
|
|
|
(unless (or (file-exists-p "makefile")
|
|
|
|
(file-exists-p "Makefile"))
|
|
|
|
(set (make-local-variable 'compile-command)
|
|
|
|
(concat "gcc " "-Wall " "-g " buffer-file-name " -o "
|
|
|
|
(file-name-sans-extension buffer-file-name)))))
|
2022-01-01 13:09:29 +01:00
|
|
|
|
|
|
|
(add-hook 'c-mode-common-hook 'me/c-mode-compile-command-hook)
|
|
|
|
|
2021-12-31 21:56:56 +01:00
|
|
|
(defun me/c-mode-compile-on-save ()
|
2022-01-01 13:09:29 +01:00
|
|
|
;; compile on save hook
|
2021-12-31 21:56:56 +01:00
|
|
|
(make-local-variable 'after-save-hook)
|
|
|
|
(add-hook 'after-save-hook (lambda () (compile compile-command))))
|
2022-01-01 13:09:29 +01:00
|
|
|
|
|
|
|
(add-hook 'c-mode-common-hook 'me/c-mode-compile-on-save))
|
2021-12-20 09:46:26 +01:00
|
|
|
|
|
|
|
(use-package js-mode
|
|
|
|
:ensure nil
|
|
|
|
:hook (js-mode . eglot-ensure)
|
|
|
|
:mode ("\\.webmanifest\\'" . js-mode))
|
2021-04-22 16:06:12 +02:00
|
|
|
|
|
|
|
(use-package go-mode
|
2021-11-12 17:19:19 +01:00
|
|
|
:config
|
|
|
|
(add-hook 'before-save-hook #'gofmt-before-save)
|
2022-04-19 22:42:34 +02:00
|
|
|
(add-hook 'go-mode-hook 'eglot-ensure)
|
|
|
|
|
|
|
|
(defun me/go-mode-compile-command-hook ()
|
|
|
|
;; if no makefile use go build for compile command
|
|
|
|
(unless (or (file-exists-p "makefile")
|
|
|
|
(file-exists-p "Makefile"))
|
|
|
|
(set (make-local-variable 'compile-command)
|
2022-04-23 10:07:16 +02:00
|
|
|
(concat "go " "vet " buffer-file-name))))
|
2022-04-19 22:42:34 +02:00
|
|
|
|
|
|
|
(add-hook 'go-mode-hook 'me/go-mode-compile-command-hook)
|
|
|
|
|
|
|
|
(defun me/go-mode-compile-on-save ()
|
|
|
|
;; compile on save hook
|
|
|
|
(make-local-variable 'after-save-hook)
|
|
|
|
(add-hook 'after-save-hook (lambda () (compile compile-command))))
|
|
|
|
|
|
|
|
(add-hook 'go-mode-hook 'me/go-mode-compile-on-save))
|
2021-04-22 16:06:12 +02:00
|
|
|
|
2021-06-07 19:18:26 +02:00
|
|
|
(use-package rust-mode
|
|
|
|
:hook (rust . eglot-ensure))
|
|
|
|
|
|
|
|
(use-package typescript-mode
|
2021-11-15 12:01:59 +01:00
|
|
|
:config
|
|
|
|
(add-hook 'typescript-mode-hook 'eglot-ensure))
|
|
|
|
|
2020-07-26 14:36:43 +02:00
|
|
|
(use-package web-mode
|
2021-07-14 13:28:32 +02:00
|
|
|
;; :hook html-mode
|
2021-12-15 18:11:48 +01:00
|
|
|
:mode (("\\.html?\\'" . web-mode)
|
|
|
|
("\\.tmpl\\'" . web-mode))
|
2021-06-07 18:52:41 +02:00
|
|
|
: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))
|
2020-07-26 14:36:43 +02:00
|
|
|
|
2021-12-20 09:50:49 +01:00
|
|
|
(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
|
2020-07-26 14:36:43 +02:00
|
|
|
(use-package slime
|
2021-06-07 18:52:41 +02:00
|
|
|
:custom
|
|
|
|
(slime-autodoc-use-multiline-p 1)
|
2021-05-29 09:24:31 +02:00
|
|
|
:config
|
2021-06-09 21:09:41 +02:00
|
|
|
(setq inferior-lisp-program (executable-find "sbcl"))
|
2021-06-03 15:07:37 +02:00
|
|
|
(slime-setup '(slime-autodoc
|
|
|
|
slime-fancy
|
|
|
|
slime-asdf
|
|
|
|
slime-indentation
|
2021-11-04 08:17:33 +01:00
|
|
|
slime-editing-commands
|
2021-11-03 11:33:27 +01:00
|
|
|
slime-sbcl-exts)))
|
2020-07-26 14:36:43 +02:00
|
|
|
|
2021-05-30 18:10:55 +02:00
|
|
|
(use-package webpaste)
|
2021-06-03 15:07:37 +02:00
|
|
|
|
2021-11-03 11:33:27 +01:00
|
|
|
;; (use-package slime-company
|
|
|
|
;; :after (slime company)
|
|
|
|
;; :custom (slime-company-after-completion 'slime-company-just-one-space))
|
2021-06-05 16:57:05 +02:00
|
|
|
|
2022-04-19 22:45:15 +02:00
|
|
|
;; (use-package pyvenv)
|
2021-08-20 16:04:45 +02:00
|
|
|
|
2021-10-19 22:29:44 +02:00
|
|
|
(use-package simple-httpd)
|
2021-10-30 10:17:42 +02:00
|
|
|
|
2021-11-07 10:18:13 +01:00
|
|
|
(use-package elpher)
|
2022-04-30 15:24:56 +02:00
|
|
|
|
|
|
|
(load "bundle--gui")
|
|
|
|
(load "bundle--org")
|
|
|
|
(load "bundle--magit")
|
|
|
|
(load "bundle--irc")
|
|
|
|
(load "bundle--news")
|
2022-05-01 08:49:41 +02:00
|
|
|
(load "bundle--scheme")
|