aboutsummaryrefslogtreecommitdiff
path: root/home/.emacs.d/config/lang.el
blob: 8e1ac7b4cd02ef08e8974e1c46141ff2b1bdf902 (plain) (blame)
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
;;;; Settings for editing various text files and programing languages

;;; General text-editing

;; Markdown
(use-package markdown-mode
  :mode
  ("\\.markdown\\'" "\\.md\\'")
  :config
  (setq markdown-command "/usr/bin/pandoc"))

;; YML
(use-package yaml-mode
  :mode ("\\.yml\\'" "\\.yaml\\'"))

;; Completion
(use-package company
  :diminish company-mode)

;; Snippets
(use-package yasnippet
  :diminish yas-minor-mode)

;;; C
(setq c-default-style "linux")

;;; Scala
(use-package scala-mode
  :interpreter
  ("scala" . scala-mode)
  :config
  (add-hook 'scala-mode-hook
	    (lambda ()
	      (local-set-key (kbd "RET") '(lambda ()
					    (interactive)
					    (newline-and-indent)
					    (scala-indent:insert-asterisk-on-multiline-comment)))
	      (setq fill-column 100)
	      (ensime-mode)))
  :bind (:map scala-mode-map
	      ("C-<tab>" . dabbrev-expand)
	      ("<backtab>" . scala-indent:indent-with-reluctant-strategy)))

;; ENhanced Scala Interaction Mode for text Editors
(use-package ensime
  :pin melpa
  :commands ensime ensime-mode
  :init
  :config
  (setq ensime-startup-snapshot-notification nil))

;;; Java
(add-hook 'java-mode-hook (lambda ()
			    (setq c-basic-offset 4)))

;;; Web development
;; Different modes in html files
(use-package web-mode
  :mode "\\.html?\\'")

;; Javascript
(use-package js3-mode
  :mode "\\.js\\'")

;;; Haskell
(use-package haskell-mode)

;;; Docker
(use-package dockerfile-mode
  :mode "\\Dockerfile\\'")