 ;; rfc mode supports
 (use-package rfc-mode :pin melpa)
 
+;; R mode supports
+(use-package ess :pin melpa)
+
 ;; rust supports
-(use-package rust-mode :pin melpa :mode "\\.rs$")
+(use-package rust-mode :pin melpa :mode "\\.rs$"
+  :config (setq rust-format-on-save t))
+
 (use-package rust-playground :pin melpa )
+(use-package cargo :pin melpa)
+
+;; jsonnet
+(use-package jsonnet-mode :pin melpa)
 
 ;; go supports
-(use-package go-mode :pin melpa :mode "\\.go$")
+(use-package go-mode :pin melpa :mode "\\.go$"
+  :hook (before-save . gofmt-before-save))
 
 ;; ocaml supports
 (use-package tuareg :pin melpa)
 
+;; elixir supports
+(use-package elixir-mode :pin melpa)
+;; (use-package elixir-mix :pin melpa)
+(use-package flycheck-elixir :pin melpa)
+
 ;; scala supports
 (use-package scala-mode :pin melpa :mode "\\.s\\(c\\|cala\\|bt\\)$")
+
+;; elixir supports
+;; (use-package lsp-elixir :pin melpa :mode "\\.exs$")
+
+(use-package pug-mode :pin melpa)
+
+(use-package pkgbuild-mode :pin melpa)
+
+(global-auto-revert-mode t)
 
 ;; (use-package auto-complete :pin melpa
 ;;   :config


(use-package gruvbox-theme :pin melpa)
(use-package flatui-theme :pin melpa)

(load-theme 'gruvbox-dark-medium t)

;; multiple major modes in emacs
(use-package polymode :pin melpa)

(use-package poly-rst :pin melpa :mode "\\.rst$")
(use-package poly-slim :pin melpa :mode "\\.slim$")

(use-package markdown-mode :pin melpa
  :init
  (setq markdown-command "multimarkdown"))

(use-package mermaid-mode :pin melpa)

(add-to-list 'auto-mode-alist '("\\.md" . poly-markdown-mode))

;; magit
(use-package magit :pin melpa :commands magit-status magit-blame)
(use-package magit-todos :pin melpa)
(use-package magit-lfs :pin melpa)
(use-package forge :pin melpa :after magit)

;; tramp
