emacs.d/bundle/bundle--package.el

237 lines
7 KiB
EmacsLisp
Raw Normal View History

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/")
2022-08-11 14:25:54 +02:00
("elpa" . "https://elpa.gnu.org/packages/")
("nongnu" . "https://elpa.nongnu.org/nongnu/")))
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)
2022-05-06 19:31:15 +02:00
(load "bundle--gui")
2020-07-26 14:36:43 +02:00
2022-05-06 22:23:17 +02:00
(use-package shrface
:defer t
:config
(shrface-basic)
(shrface-trial)
(shrface-default-keybindings) ; setup default keybindings
2022-05-07 10:37:31 +02:00
(setq shrface-href-versatile t
shrface-toggle-bullets t
shr-width nil))
2022-05-06 22:23:17 +02:00
2020-07-26 14:36:43 +02:00
(use-package nov
2022-07-27 07:44:35 +02:00
:hook (nov-mode . visual-line-mode)
2021-12-15 18:11:48 +01:00
:mode ("\\.epub\\'" . nov-mode)
2022-08-24 19:35:40 +02:00
:init
(add-hook 'nov-mode-hook #'shrface-mode)
:config
2022-07-27 07:44:35 +02:00
(setq nov-text-width 82
nov-variable-pitch t)
2022-08-24 19:35:40 +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))
2022-05-06 19:31:15 +02:00
(when (eq system-type 'windows-nt)
(when (directory-name-p "c:/msys64/")
(setq nov-unzip-program "c:/msys64/usr/bin/unzip.exe"))))
2022-05-06 19:31:15 +02:00
2021-12-20 09:46:26 +01:00
(use-package eglot
2022-05-06 19:31:15 +02:00
:defer t
2021-12-20 09:46:26 +01:00
: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)))
2022-05-06 22:23:17 +02:00
(use-package geiser
:defer t
:config
(setq geiser-active-implementations '(racket guile)))
(use-package geiser-racket
:defer t
:after geiser
:config
(when (eq system-type 'windows-nt)
(setq geiser-racket-binary "c:/Program Files/Racket/Racket.exe")))
(use-package geiser-guile
:defer t
:after geiser
:config
(setq geiser-guile-binary "guile")
(when (eq system-type 'windows-nt)
(when (directory-name-p "c:/msys64/")
(setq geiser-guile-binary "c:/msys64/mingw64/bin/guile.exe"))))
2022-05-06 22:23:17 +02:00
2021-12-20 09:46:26 +01:00
(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
(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-08-24 19:35:40 +02:00
(add-hook 'c-mode-common-hook 'me/c-mode-style-hook))
;; (defun me/c-mode-compile-command-hook ()
;; ;; if no makefile use gcc for compile command
;; (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)))))
;; (add-hook 'c-mode-common-hook 'me/c-mode-compile-command-hook)
;; (defun me/c-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 '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)
2022-05-06 22:23:17 +02:00
:mode (("\\.webmanifest\\'" . js-mode)
("\\.js\\'" . js-mode)))
2021-04-22 16:06:12 +02:00
(use-package go-mode
2022-05-06 19:31:15 +02:00
:mode ("\\.go\\'" . 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 ()
2022-07-20 13:34:30 +02:00
;; if no makefile use go vet for compile command
2022-04-19 22:42:34 +02:00
(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))))
2022-07-22 18:13:20 +02:00
;; (add-hook 'go-mode-hook 'me/go-mode-compile-on-save))
)
2021-04-22 16:06:12 +02:00
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)
2022-09-10 20:28:25 +02:00
("\\.xhtml?\\'" . web-mode)
2021-12-15 18:11:48 +01:00
("\\.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
2022-05-06 19:31:15 +02:00
(use-package racket-mode
2022-05-06 22:23:17 +02:00
:mode "\\.rkt\\'")
2021-12-20 09:50:49 +01:00
(use-package python
:mode (("\\.py\\'" . python-mode)
("\\.wsgi$" . python-mode)
("\\.j2" . python-mode))
2022-05-06 19:31:15 +02:00
:init
(setq python-indent-offset 4)
(setq-default indent-tabs-mode nil)
:custom
(fill-column 79)
:config
(add-hook 'python-mode-hook 'eglot-ensure))
2021-12-20 09:50:49 +01:00
2020-07-26 14:36:43 +02:00
(use-package slime
2022-05-06 19:31:15 +02:00
:defer t
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-03 15:07:37 +02:00
(slime-setup '(slime-autodoc
2022-10-06 13:13:59 +02:00
slime-tramp
2021-06-03 15:07:37 +02:00
slime-fancy
slime-asdf
slime-indentation
2021-11-04 08:17:33 +01:00
slime-editing-commands
2022-05-06 19:31:15 +02:00
slime-sbcl-exts))
(when (eq system-type 'windows-nt)
2022-10-06 13:13:59 +02:00
(setq sbcl-exe "C:\\Program Files\\Steel Bank Common Lisp\\sbcl.exe"
sbcl-core "C:\\Program Files\\Steel Bank Common Lisp\\sbcl.core"
2022-05-06 19:31:15 +02:00
inferior-lisp-program "sbcl"
2022-10-06 13:13:59 +02:00
slime-lisp-implementations `((sbcl (,sbcl-exe "--core" ,sbcl-core)))))
(when (eq system-type 'gnu/linux)
(setq inferior-lisp-program "/usr/bin/sbcl --noinform"))
(let ((helper (expand-file-name "~/quicklisp/slime-helper.el")))
(if (file-exists-p helper)
(load helper)))
2022-10-06 13:13:59 +02:00
(add-to-list 'slime-filename-translations
(slime-create-filename-translator
:machine-instance "ubuntu-2gb-nbg1-1"
:remote-host "ubuntu-2.marcuskammer.de"
:username "marcus")))
2022-05-02 17:03:09 +02:00
2022-05-06 19:31:15 +02:00
(use-package simple-httpd
:defer t)
2022-05-05 09:15:55 +02:00
(use-package go-translate
2022-05-06 19:31:15 +02:00
:defer t
2022-05-05 09:15:55 +02:00
:config
(setq gts-translate-list '(("en" "de")))
(setq gts-default-translator
(gts-translator
:picker (gts-prompt-picker)
:engines (list (gts-google-engine) (gts-google-rpc-engine))
:render (gts-buffer-render))))
2022-05-06 19:31:15 +02:00
(use-package sql
:ensure nil
:defer t
:config
(when (eq system-type 'windows-nt)
(when (directory-name-p "c:/msys64/")
(setq sql-sqlite-program "c:/msys64/mingw64/bin/sqlite3.exe"))))
2022-05-06 19:31:15 +02:00
(use-package magit
:bind ("C-x g" . magit-status)
:config
(global-set-key (kbd "C-x M-g") 'magit-dispatch))
2022-05-11 08:46:21 +02:00
(use-package yaml-mode
:mode "\\.yml\\'")
2022-05-14 07:49:44 +02:00
(use-package csv-mode
:mode "\\.csv\\'")
2022-06-09 10:13:00 +02:00
(use-package markdown-mode
:mode "\\.md\\'")
2022-08-15 15:04:52 +02:00
(use-package clojure-mode)
(use-package cider)
(when (eq system-type 'gnu/linux)
(use-package spotify
:bind ("S-<pause>" . spotify-playpause)))
2022-05-06 19:31:15 +02:00
(load "bundle--irc")
(load "bundle--news")