summaryrefslogtreecommitdiff
path: root/emacs.el
blob: eeceae310403be8750997d0db4d9a60540eb4c76 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
;;; Enable MELPA repository
(require 'package)
(add-to-list 'package-archives
	     '("melpa" . "https://melpa.org/packages/")
	     t)
(package-initialize)

;;; https://github.com/fimblo/dot.emacs
;;; Theme Activation
(load-theme 'manoj-dark)

;;; https://www.lucacambiaghi.com/vanilla-emacs/readme.html
;;; =defvar= warnings fix
(setq-default enable-local-variables :all)

;;; https://elpa.gnu.org/packages/aggressive-indent.html
;;; Automatic Activation of Aggressive Indent
(global-aggressive-indent-mode 1)

;;; https://jeko.frama.io/en/emacs.html
;;; Jeko's suggested configuration

;; Highlight cursor line
(global-hl-line-mode +1)

;; Highlight the pair of delimiters under the cursor
(show-paren-mode 1)
(setq-default show-paren-delay
	      0)

;; Add Geiser and its auto-completion
(ac-config-default)
(require 'ac-geiser)
(add-hook 'geiser-mode-hook
	  'ac-geiser-setup)
(add-hook 'geiser-repl-mode-hook
	  'ac-geiser-setup)
(eval-after-load "auto-complete"
  '(add-to-list 'ac-modes
		'geiser-repl-mode))

;; Edit the code based on the S-expression structure
(require 'paredit)
(autoload 'enable-paredit-mode
  "paredit"
  "Turn on pseudo-structural editing of Lisp code."
  t)
(add-hook 'scheme-mode-hook
	  #'enable-paredit-mode)

;; Edit several strings of characters in the same way simultaneously
(require 'iedit)

;; Edit several places in the file in the same way simultaneously
;; (require 'multiple-cursors)
;; (global-set-key (kbd "C-S-c C-S-c")
;; 		'mc/edit-lines)
;; (global-set-key (kbd "C->")
;; 		'mc/mark-next-like-this)
;; (global-set-key (kbd "C-<")
;; 		'mc/mark-previous-like-this)
;; (global-set-key (kbd "C-c C-<")
;; 		'mc/mark-all-like-this)

;; Extract variables and functions
(if (not (package-installed-p 'emr))
    (progn (package-refresh-contents)
	   (package-install 'emr)))
(require 'emr)
(autoload 'emr-show-refactor-menu
  "emr")
(define-key prog-mode-map
  (kbd "M-RET")
  'emr-show-refactor-menu)
(eval-after-load "emr"
  '(emr-initialize))
(global-set-key (kbd "M-v")
		'emr-scm-extract-variable)
(global-set-key (kbd "M-f")
		'emr-scm-extract-function)

;;; https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html
;;; Copyright Information
(setq-default user-full-name
	      "Marek Paśnikowski")
(setq-default user-mail-address
	      "marekpasnikowski@protonmail.com")

;;; Startup Screen Inhibition
(setq-default inhibit-startup-screen
	      t)

;; Enable the column-80 line
(global-display-fill-column-indicator-mode 1)
(setq-default display-fill-column-indicator-column 79)