summaryrefslogtreecommitdiff
path: root/emacs.el
blob: 08bbd19ec08e5d20570c4914863f623759955d7d (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
;;; 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://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 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://github.com/nbfalcon/macrostep-geiser
;; Macrostep Configuration
;; Inactive Due to Missing Package

;;(eval-after-load 'geiser-mode '(add-hook 'geiser-mode-hook #'macrostep-geiser-setup))
;;(eval-after-load 'geiser-repl '(add-hook 'geiser-repl-mode-hook #'macrostep-geiser-setup))

;; https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html
;; Copyright Information

(setq user-full-name "Marek Paśnikowski")
(setq user-mail-address "marekpasnikowski@protonmail.com")

;; Startup Screen Inhibition

(setq inhibit-startup-screen t)

;; https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html
;; Add Local Guix Repository to Load Path

;; (with-eval-after-load 'geiser-guile
;;   (add-to-list 'geiser-guile-load-path "~/src/guix"))