Move programming language related packages from configuration.org to init.el
This commit is contained in:
parent
f724ba27c7
commit
e23fb67b30
@ -1,335 +1,3 @@
|
|||||||
* Programming-language specific packages
|
|
||||||
|
|
||||||
** Python
|
|
||||||
|
|
||||||
*** Set up pretty symbols
|
|
||||||
|
|
||||||
Because they are fancy.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(add-hook 'python-mode-hook
|
|
||||||
(lambda ()
|
|
||||||
(add-to-list 'prettify-symbols-alist
|
|
||||||
'("not in" . ?∉))
|
|
||||||
(add-to-list 'prettify-symbols-alist
|
|
||||||
'("in" . ?∈))
|
|
||||||
(add-to-list 'prettify-symbols-alist
|
|
||||||
'("def" . ?ƒ))
|
|
||||||
(add-to-list 'prettify-symbols-alist
|
|
||||||
'("is not" . ?≭))
|
|
||||||
(add-to-list 'prettify-symbols-alist
|
|
||||||
'("is" . ?≍))
|
|
||||||
))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** ~poetry~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package poetry
|
|
||||||
:config
|
|
||||||
(poetry-tracking-mode)
|
|
||||||
(remove-hook 'post-command-hook 'poetry-track-virtualenv)
|
|
||||||
:hook
|
|
||||||
(poetry-tracking-mode . (lambda () (remove-hook 'post-command-hook 'poetry-track-virtualenv)))
|
|
||||||
(python-mode . poetry-track-virtualenv)
|
|
||||||
(projectile-after-switch-project-hook . poetry-track-virtualenv)
|
|
||||||
:bind (:map gpolonkai/pers-map
|
|
||||||
("pp" . poetry)))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** C
|
|
||||||
|
|
||||||
Because that’s still my favourite language.
|
|
||||||
|
|
||||||
*** Set up my indentation style
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(defconst my-c-style
|
|
||||||
'((c-tab-always-indent . t)
|
|
||||||
(c-comment-only-line-offset . 4)
|
|
||||||
(c-hanging-braces-alist . ((substatement-open after)
|
|
||||||
(brace-list-open)))
|
|
||||||
(c-hanging-colons-alist . ((member-init-intro before)
|
|
||||||
(inher-intro)
|
|
||||||
(case-label after)
|
|
||||||
(label after)
|
|
||||||
(access-label after)))
|
|
||||||
(c-cleanup-list . (scope-operator
|
|
||||||
empty-defun-braces
|
|
||||||
defun-close-semi))
|
|
||||||
(c-offsets-alist . ((arglist-close . +)
|
|
||||||
(arglist-intro . +)
|
|
||||||
(substatement-open . 0)
|
|
||||||
(case-label . 4)
|
|
||||||
(block-open . 0)
|
|
||||||
(knr-argdecl-intro . -)
|
|
||||||
(comment-intro . 0)
|
|
||||||
(member-init-intro . ++)))
|
|
||||||
(c-echo-syntactic-information-p . t))
|
|
||||||
"My C Programming Style.")
|
|
||||||
(c-add-style "PERSONAL" my-c-style)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** Set indentation levels to the same as the tab width
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp :tangle no
|
|
||||||
(defvaralias 'c-basic-offset 'tab-width)
|
|
||||||
(defvaralias 'cperl-indent-level 'tab-width)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** Some common initialisation for C mode
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(add-hook 'c-mode-common-hook
|
|
||||||
(lambda ()
|
|
||||||
(local-set-key (kbd "C-c o") 'ff-find-other-file)
|
|
||||||
(c-set-style "PERSONAL")
|
|
||||||
(customize-set-variable 'c-basic-offset 4)
|
|
||||||
(customize-set-variable 'tab-width 4)
|
|
||||||
(customize-set-variable 'indent-tabs-mode nil)
|
|
||||||
(c-toggle-auto-newline 1)))
|
|
||||||
(add-hook 'c-initialization-hook
|
|
||||||
(lambda ()
|
|
||||||
(define-key c-mode-base-map (kbd "C-m") 'c-context-line-break)))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Web
|
|
||||||
|
|
||||||
*** ~web-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package web-mode
|
|
||||||
:mode "\\.html?\\'"
|
|
||||||
:custom
|
|
||||||
(web-mode-enable-auto-indentation nil)
|
|
||||||
(web-mode-enable-engine-detection t))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** ~emmet-mode~ for easier HTML/CSS writing
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package emmet-mode
|
|
||||||
:custom
|
|
||||||
(emmet-self-closing-tag-style "")
|
|
||||||
:hook
|
|
||||||
(web-mode . emmet-mode)
|
|
||||||
(css-mode . emmet-mode))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** ~enlive~, to query HTML tags by CSS selectors
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package enlive)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~json-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package json-mode
|
|
||||||
:mode "\\.json\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~yaml-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package yaml-mode
|
|
||||||
:mode (("\\.yml\\'" . yaml-mode)
|
|
||||||
("\\.yaml\\'" . yaml-mode))
|
|
||||||
:init
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode)))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~dockerfile-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package dockerfile-mode)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~systemd~, for editing systemd unit files
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package systemd
|
|
||||||
:mode ("\\.\\(?:automount\\|mount\\|path\\|s\\(?:ervice\\|lice\\|ocket\\)\\|t\\(?:arget\\|imer\\)\\|wants\\)\\'" . systemd-mode))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~terraform-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package terraform-mode
|
|
||||||
:mode "\\.tf\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~bats-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package bats-mode
|
|
||||||
:mode "\\.bats\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~fish-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package fish-mode
|
|
||||||
:hook
|
|
||||||
(fish-mode . (lambda () (add-hook 'before-save-hook 'fish_indent-before-save)))
|
|
||||||
:mode "\\.fish\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~gitlab-ci-mode~ and ~gitlab-ci-mode-flycheck~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package gitlab-ci-mode
|
|
||||||
:mode "\\.gitlab-ci.yml\\'")
|
|
||||||
|
|
||||||
(use-package gitlab-ci-mode-flycheck
|
|
||||||
:after flycheck gitlab-ci-mode
|
|
||||||
:init
|
|
||||||
(gitlab-ci-mode-flycheck-enable))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~csv-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package csv-mode
|
|
||||||
:mode "\\.csv\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Rust
|
|
||||||
|
|
||||||
*** ~rust-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package rust-mode
|
|
||||||
:mode "\\.rs\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** ~cargo~ and ~cargo-mode~ for Cargo usage
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package cargo)
|
|
||||||
|
|
||||||
(use-package cargo-mode
|
|
||||||
:mode "Cargo\\.toml\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~arduino-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package arduino-mode
|
|
||||||
:mode "\\.ino\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~nginx-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package nginx-mode)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~js2-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package js2-mode
|
|
||||||
:pin melpa-stable
|
|
||||||
:mode "\\.js\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~typescript-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package typescript-mode
|
|
||||||
:mode "\\.ts\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~less-css-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package less-css-mode
|
|
||||||
:mode "\\.less\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~sass-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package sass-mode
|
|
||||||
:mode "\\.sass\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~vue-html-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package vue-html-mode
|
|
||||||
:mode "\\.vue\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~jinja2-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package jinja2-mode
|
|
||||||
:mode "\\.j2\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~markdown-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package markdown-mode
|
|
||||||
:mode (("\\.md\\'" . markdown-mode)
|
|
||||||
("\\.markdown\\'" . markdown-mode)))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~vala-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package vala-mode
|
|
||||||
:mode "\\.vala\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~po-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package po-mode
|
|
||||||
:ensure nil
|
|
||||||
:mode "\\.po\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~meson-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package meson-mode
|
|
||||||
:mode "\\.meson\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~ggtags~, an interfaco for GNU Globals
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(defun gpolonkai/cond-enable-ggtags-mode ()
|
|
||||||
(when (derived-mode-p 'c-mode 'c++-mode 'java-mode)
|
|
||||||
(ggtags-mode t)))
|
|
||||||
|
|
||||||
(use-package ggtags
|
|
||||||
:hook
|
|
||||||
(c-mode-common . gpolonkai/cond-enable-ggtags-mode))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~yuck-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package yuck-mode
|
|
||||||
:mode "\\.yuck\\'")
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~ebnf-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package ebnf-mode
|
|
||||||
:commands (ebnf-mode))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** ~ansible-vault-mode~
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package ansible-vault)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
* Key bindings
|
* Key bindings
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
183
init.el
183
init.el
@ -1661,6 +1661,189 @@ Intended as a value for `bug-referecne-url-format'."
|
|||||||
(use-package tidal
|
(use-package tidal
|
||||||
:mode "\\.tidal\\'")
|
:mode "\\.tidal\\'")
|
||||||
|
|
||||||
|
;; Programming-language specific packages
|
||||||
|
|
||||||
|
;; Python
|
||||||
|
|
||||||
|
(add-hook 'python-mode-hook
|
||||||
|
(lambda ()
|
||||||
|
(add-to-list 'prettify-symbols-alist
|
||||||
|
'("not in" . ?∉))
|
||||||
|
(add-to-list 'prettify-symbols-alist
|
||||||
|
'("in" . ?∈))
|
||||||
|
(add-to-list 'prettify-symbols-alist
|
||||||
|
'("def" . ?ƒ))
|
||||||
|
(add-to-list 'prettify-symbols-alist
|
||||||
|
'("is not" . ?≭))
|
||||||
|
(add-to-list 'prettify-symbols-alist
|
||||||
|
'("is" . ?≍))
|
||||||
|
))
|
||||||
|
|
||||||
|
(use-package poetry
|
||||||
|
:config
|
||||||
|
(poetry-tracking-mode)
|
||||||
|
(remove-hook 'post-command-hook 'poetry-track-virtualenv)
|
||||||
|
:hook
|
||||||
|
(poetry-tracking-mode . (lambda () (remove-hook 'post-command-hook 'poetry-track-virtualenv)))
|
||||||
|
(python-mode . poetry-track-virtualenv)
|
||||||
|
(projectile-after-switch-project-hook . poetry-track-virtualenv)
|
||||||
|
:bind (:map gpolonkai/pers-map
|
||||||
|
("pp" . poetry)))
|
||||||
|
|
||||||
|
(defconst my-c-style
|
||||||
|
'((c-tab-always-indent . t)
|
||||||
|
(c-comment-only-line-offset . 4)
|
||||||
|
(c-hanging-braces-alist . ((substatement-open after)
|
||||||
|
(brace-list-open)))
|
||||||
|
(c-hanging-colons-alist . ((member-init-intro before)
|
||||||
|
(inher-intro)
|
||||||
|
(case-label after)
|
||||||
|
(label after)
|
||||||
|
(access-label after)))
|
||||||
|
(c-cleanup-list . (scope-operator
|
||||||
|
empty-defun-braces
|
||||||
|
defun-close-semi))
|
||||||
|
(c-offsets-alist . ((arglist-close . +)
|
||||||
|
(arglist-intro . +)
|
||||||
|
(substatement-open . 0)
|
||||||
|
(case-label . 4)
|
||||||
|
(block-open . 0)
|
||||||
|
(knr-argdecl-intro . -)
|
||||||
|
(comment-intro . 0)
|
||||||
|
(member-init-intro . ++)))
|
||||||
|
(c-echo-syntactic-information-p . t))
|
||||||
|
"My C Programming Style.")
|
||||||
|
(c-add-style "PERSONAL" my-c-style)
|
||||||
|
|
||||||
|
(defvaralias 'c-basic-offset 'tab-width)
|
||||||
|
(defvaralias 'cperl-indent-level 'tab-width)
|
||||||
|
|
||||||
|
(add-hook 'c-mode-common-hook
|
||||||
|
(lambda ()
|
||||||
|
(local-set-key (kbd "C-c o") 'ff-find-other-file)
|
||||||
|
(c-set-style "PERSONAL")
|
||||||
|
(customize-set-variable 'c-basic-offset 4)
|
||||||
|
(customize-set-variable 'tab-width 4)
|
||||||
|
(customize-set-variable 'indent-tabs-mode nil)
|
||||||
|
(c-toggle-auto-newline 1)))
|
||||||
|
(add-hook 'c-initialization-hook
|
||||||
|
(lambda ()
|
||||||
|
(define-key c-mode-base-map (kbd "C-m") 'c-context-line-break)))
|
||||||
|
|
||||||
|
(use-package web-mode
|
||||||
|
:mode "\\.html?\\'"
|
||||||
|
:custom
|
||||||
|
(web-mode-enable-auto-indentation nil)
|
||||||
|
(web-mode-enable-engine-detection t))
|
||||||
|
|
||||||
|
(use-package emmet-mode
|
||||||
|
:custom
|
||||||
|
(emmet-self-closing-tag-style "")
|
||||||
|
:hook
|
||||||
|
(web-mode . emmet-mode)
|
||||||
|
(css-mode . emmet-mode))
|
||||||
|
|
||||||
|
(use-package enlive)
|
||||||
|
|
||||||
|
(use-package json-mode
|
||||||
|
:mode "\\.json\\'")
|
||||||
|
|
||||||
|
(use-package yaml-mode
|
||||||
|
:mode (("\\.yml\\'" . yaml-mode)
|
||||||
|
("\\.yaml\\'" . yaml-mode))
|
||||||
|
:init
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode)))
|
||||||
|
|
||||||
|
(use-package dockerfile-mode)
|
||||||
|
|
||||||
|
(use-package systemd
|
||||||
|
:mode ("\\.\\(?:automount\\|mount\\|path\\|s\\(?:ervice\\|lice\\|ocket\\)\\|t\\(?:arget\\|imer\\)\\|wants\\)\\'" . systemd-mode))
|
||||||
|
|
||||||
|
(use-package terraform-mode
|
||||||
|
:mode "\\.tf\\'")
|
||||||
|
|
||||||
|
(use-package bats-mode
|
||||||
|
:mode "\\.bats\\'")
|
||||||
|
|
||||||
|
(use-package fish-mode
|
||||||
|
:hook
|
||||||
|
(fish-mode . (lambda () (add-hook 'before-save-hook 'fish_indent-before-save)))
|
||||||
|
:mode "\\.fish\\'")
|
||||||
|
|
||||||
|
(use-package gitlab-ci-mode
|
||||||
|
:mode "\\.gitlab-ci.yml\\'")
|
||||||
|
|
||||||
|
(use-package gitlab-ci-mode-flycheck
|
||||||
|
:after flycheck gitlab-ci-mode
|
||||||
|
:init
|
||||||
|
(gitlab-ci-mode-flycheck-enable))
|
||||||
|
|
||||||
|
(use-package csv-mode
|
||||||
|
:mode "\\.csv\\'")
|
||||||
|
|
||||||
|
(use-package rust-mode
|
||||||
|
:mode "\\.rs\\'")
|
||||||
|
|
||||||
|
(use-package cargo)
|
||||||
|
|
||||||
|
(use-package cargo-mode
|
||||||
|
:mode "Cargo\\.toml\\'")
|
||||||
|
|
||||||
|
(use-package arduino-mode
|
||||||
|
:mode "\\.ino\\'")
|
||||||
|
|
||||||
|
(use-package nginx-mode)
|
||||||
|
|
||||||
|
(use-package js2-mode
|
||||||
|
:pin melpa-stable
|
||||||
|
:mode "\\.js\\'")
|
||||||
|
|
||||||
|
(use-package typescript-mode
|
||||||
|
:mode "\\.ts\\'")
|
||||||
|
|
||||||
|
(use-package less-css-mode
|
||||||
|
:mode "\\.less\\'")
|
||||||
|
|
||||||
|
(use-package sass-mode
|
||||||
|
:mode "\\.sass\\'")
|
||||||
|
|
||||||
|
(use-package vue-html-mode
|
||||||
|
:mode "\\.vue\\'")
|
||||||
|
|
||||||
|
(use-package jinja2-mode
|
||||||
|
:mode "\\.j2\\'")
|
||||||
|
|
||||||
|
(use-package markdown-mode
|
||||||
|
:mode (("\\.md\\'" . markdown-mode)
|
||||||
|
("\\.markdown\\'" . markdown-mode)))
|
||||||
|
|
||||||
|
(use-package vala-mode
|
||||||
|
:mode "\\.vala\\'")
|
||||||
|
|
||||||
|
(use-package po-mode
|
||||||
|
:ensure nil
|
||||||
|
:mode "\\.po\\'")
|
||||||
|
|
||||||
|
(use-package meson-mode
|
||||||
|
:mode "\\.meson\\'")
|
||||||
|
|
||||||
|
(defun gpolonkai/cond-enable-ggtags-mode ()
|
||||||
|
"Conditionally enable `ggtags-mode'."
|
||||||
|
(when (derived-mode-p 'c-mode 'c++-mode 'java-mode)
|
||||||
|
(ggtags-mode t)))
|
||||||
|
|
||||||
|
(use-package ggtags
|
||||||
|
:hook
|
||||||
|
(c-mode-common . gpolonkai/cond-enable-ggtags-mode))
|
||||||
|
|
||||||
|
(use-package yuck-mode
|
||||||
|
:mode "\\.yuck\\'")
|
||||||
|
|
||||||
|
(use-package ebnf-mode
|
||||||
|
:commands (ebnf-mode))
|
||||||
|
|
||||||
|
(use-package ansible-vault)
|
||||||
|
|
||||||
;; I started moving my configuration to this Org file. It’s easier to document this way.
|
;; I started moving my configuration to this Org file. It’s easier to document this way.
|
||||||
(org-babel-load-file (expand-file-name "configuration.org" user-emacs-directory))
|
(org-babel-load-file (expand-file-name "configuration.org" user-emacs-directory))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user