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
|
||||
|
||||
#+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
|
||||
: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.
|
||||
(org-babel-load-file (expand-file-name "configuration.org" user-emacs-directory))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user