 (setq calendar-longitude -77.0164)
 (setq calendar-location-name "Washington, DC")
 ; Set text files to be utf-8 encoded
-(add-to-list 'file-coding-system-alist '("\\.txt" . utf-8-unix) )
-(add-to-list 'file-coding-system-alist '("\\.json" . utf-8-unix) )
+(modify-coding-system-alist 'file "\\.txt\\'"  'utf-8-unix)
+(modify-coding-system-alist 'file "\\.json\\'" 'utf-8-unix)
+(modify-coding-system-alist 'file "\\.bat\\'" 'us-ascii-dos)
 ;; Treat clipboard input as UTF-8 string first; compound text next, etc.
 (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
 ;; ;; for homebrew install of magit... waaaaay faster than building with melpa etc.

  :mode (("\\.yml\\'" . yaml-mode)
         ("\\.yaml\\'" . yaml-mode)))

(use-package cmake-mode
  :ensure t
  :commands (cmake-mode)
  :mode (("CMakeLists\\.txt\\'" . cmake-mode)
		("\\.cmake\\'" . cmake-mode)))

(use-package highlight-parentheses
  :ensure t

      (setq TeX-view-program-selection '((output-pdf "PDF Viewer")))
      (setq TeX-view-program-list
            '(("PDF Viewer" "/Applications/Skim.app/Contents/SharedSupport/displayline -b -g %n %o %b")))
    ;; ;;; Fira code
    ;;   (when window-system
    ;;     ;; This works when using emacs --daemon + emacsclient
    ;;     (add-hook 'after-make-frame-functions (lambda (frame) (set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")))
    ;;     ;; This works when using emacs without server/client
    ;;     (set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")
    ;;     ;; I haven't found one statement that makes both of the above situations work, so I use both for now

    ;;     (defconst fira-code-font-lock-keywords-alist
    ;;       (mapcar (lambda (regex-char-pair)
    ;;                 `(,(car regex-char-pair)
    ;;                   (0 (prog1 ()
    ;;                        (compose-region (match-beginning 1)
    ;;                                        (match-end 1)
    ;;                                        ;; The first argument to concat is a string containing a literal tab
    ;;                                        ,(concat "	" (list (decode-char 'ucs (cadr regex-char-pair)))))))))
    ;;               '(;("\\(www\\)"                   #Xe100)
    ;;                 ("[^/]\\(\\*\\*\\)[^/]"        #Xe101)
    ;;                 ("\\(\\*\\*\\*\\)"             #Xe102)
    ;;                 ("\\(\\*\\*/\\)"               #Xe103)
    ;;                 ("\\(\\*>\\)"                  #Xe104)
    ;;                 ("[^*]\\(\\*/\\)"              #Xe105)
    ;;                 ("\\(\\\\\\\\\\)"              #Xe106)
    ;;                 ("\\(\\\\\\\\\\\\\\)"          #Xe107)
    ;;                 ("\\({-\\)"                    #Xe108)
    ;;                 ("\\(\\[\\]\\)"                #Xe109)
    ;;                 ("\\(::\\)"                    #Xe10a)
    ;;                 ("\\(:::\\)"                   #Xe10b)
    ;;                 ("[^=]\\(:=\\)"                #Xe10c)
    ;;                 ("\\(!!\\)"                    #Xe10d)
    ;;                 ("\\(!=\\)"                    #Xe10e)
    ;;                 ("\\(/=\\)"                    #Xe10e) ;; For Fortran, will mess up some languages
    ;;                 ("\\(!==\\)"                   #Xe10f)
    ;;                 ("\\(-}\\)"                    #Xe110)
    ;;                 ("\\(--\\)"                    #Xe111)
    ;;                 ("\\(---\\)"                   #Xe112)
    ;;                 ("\\(-->\\)"                   #Xe113)
    ;;                 ("[^-]\\(->\\)"                #Xe114)
    ;;                 ("\\(->>\\)"                   #Xe115)
    ;;                 ("\\(-<\\)"                    #Xe116)
    ;;                 ("\\(-<<\\)"                   #Xe117)
    ;;                 ("\\(-~\\)"                    #Xe118)
    ;;                 ("\\(#{\\)"                    #Xe119)
    ;;                 ("\\(#\\[\\)"                  #Xe11a)
    ;;                 ("\\(##\\)"                    #Xe11b)
    ;;                 ("\\(###\\)"                   #Xe11c)
    ;;                 ("\\(####\\)"                  #Xe11d)
    ;;                 ("\\(#(\\)"                    #Xe11e)
    ;;                 ("\\(#\\?\\)"                  #Xe11f)
    ;;                 ("\\(#_\\)"                    #Xe120)
    ;;                 ("\\(#_(\\)"                   #Xe121)
    ;;                 ("\\(\\.-\\)"                  #Xe122)
    ;;                 ("\\(\\.=\\)"                  #Xe123)
    ;;                 ("\\(\\.\\.\\)"                #Xe124)
    ;;                 ("\\(\\.\\.<\\)"               #Xe125)
    ;;                 ("\\(\\.\\.\\.\\)"             #Xe126)
    ;;                 ("\\(\\?=\\)"                  #Xe127)
    ;;                 ("\\(\\?\\?\\)"                #Xe128)
    ;;                 ("\\(;;\\)"                    #Xe129)
    ;;                 ("\\(/\\*\\)"                  #Xe12a)
    ;;                 ("\\(/\\*\\*\\)"               #Xe12b)
    ;;                 ;;            ("\\(/=\\)"                    #Xe12c)
    ;;                 ("\\(/==\\)"                   #Xe12d)
    ;;                 ("\\(/>\\)"                    #Xe12e)
    ;;                 ("\\(//\\)"                    #Xe12f)
    ;;                 ("\\(///\\)"                   #Xe130)
    ;;                 ("\\(&&\\)"                    #Xe131)
    ;;                 ("\\(||\\)"                    #Xe132)
    ;;                 ("\\(||=\\)"                   #Xe133)
    ;;                 ("[^|]\\(|=\\)"                #Xe134)
    ;;                 ("\\(|>\\)"                    #Xe135)
    ;;                 ("\\(\\^=\\)"                  #Xe136)
    ;;                 ("\\(\\$>\\)"                  #Xe137)
    ;;                 ("\\(\\+\\+\\)"                #Xe138)
    ;;                 ("\\(\\+\\+\\+\\)"             #Xe139)
    ;;                 ("\\(\\+>\\)"                  #Xe13a)
    ;;                 ("\\(=:=\\)"                   #Xe13b)
    ;;                 ("[^!/]\\(==\\)[^>]"           #Xe13c)
    ;;                 ("\\(===\\)"                   #Xe13d)
    ;;                 ("\\(==>\\)"                   #Xe13e)
    ;;                 ("[^=]\\(=>\\)"                #Xe13f)
    ;;                 ("\\(=>>\\)"                   #Xe140)
    ;;                 ("\\(<=\\)"                    #Xe141)
    ;;                 ("\\(=<<\\)"                   #Xe142)
    ;;                 ("\\(=/=\\)"                   #Xe143)
    ;;                 ("\\(>-\\)"                    #Xe144)
    ;;                 ("\\(>=\\)"                    #Xe145)
    ;;                 ("\\(>=>\\)"                   #Xe146)
    ;;                 ("[^-=]\\(>>\\)"               #Xe147)
    ;;                 ("\\(>>-\\)"                   #Xe148)
    ;;                 ("\\(>>=\\)"                   #Xe149)
    ;;                 ("\\(>>>\\)"                   #Xe14a)
    ;;                 ("\\(<\\*\\)"                  #Xe14b)
    ;;                 ("\\(<\\*>\\)"                 #Xe14c)
    ;;                 ("\\(<|\\)"                    #Xe14d)
    ;;                 ("\\(<|>\\)"                   #Xe14e)
    ;;                 ("\\(<\\$\\)"                  #Xe14f)
    ;;                 ("\\(<\\$>\\)"                 #Xe150)
    ;;                 ("\\(<!--\\)"                  #Xe151)
    ;;                 ("\\(<-\\)"                    #Xe152)
    ;;                 ("\\(<--\\)"                   #Xe153)
    ;;                 ("\\(<->\\)"                   #Xe154)
    ;;                 ("\\(<\\+\\)"                  #Xe155)
    ;;                 ("\\(<\\+>\\)"                 #Xe156)
    ;;                 ("\\(<=\\)"                    #Xe157)
    ;;                 ("\\(<==\\)"                   #Xe158)
    ;;                 ("\\(<=>\\)"                   #Xe159)
    ;;                 ("\\(<=<\\)"                   #Xe15a)
    ;;                 ("\\(<>\\)"                    #Xe15b)
    ;;                 ("[^-=]\\(<<\\)"               #Xe15c)
    ;;                 ("\\(<<-\\)"                   #Xe15d)
    ;;                 ("\\(<<=\\)"                   #Xe15e)
    ;;                 ("\\(<<<\\)"                   #Xe15f)
    ;;                 ("\\(<~\\)"                    #Xe160)
    ;;                 ("\\(<~~\\)"                   #Xe161)
    ;;                 ("\\(</\\)"                    #Xe162)
    ;;                 ("\\(</>\\)"                   #Xe163)
    ;;                 ("\\(~@\\)"                    #Xe164)
    ;;                 ("\\(~-\\)"                    #Xe165)
    ;;                 ("\\(~=\\)"                    #Xe166)
    ;;                 ("\\(~>\\)"                    #Xe167)
    ;;                 ("[^<]\\(~~\\)"                #Xe168)
    ;;                 ("\\(~~>\\)"                   #Xe169)
    ;;                 ("\\(%%\\)"                    #Xe16a)
    ;;                 ;; ("\\(x\\)"                   #Xe16b) This ended up being hard to do properly so i'm leaving it out.
    ;;                 ("[^:=]\\(:\\)[^:=]"           #Xe16c)
    ;;                 ("[^\\+<>]\\(\\+\\)[^\\+<>]"   #Xe16d)
    ;;                 ("[^\\*/<>]\\(\\*\\)[^\\*/<>]" #Xe16f))))

    ;;     (defun add-fira-code-symbol-keywords ()
    ;;       (font-lock-add-keywords nil fira-code-font-lock-keywords-alist))

    ;;     (add-hook 'prog-mode-hook
    ;;               #'add-fira-code-symbol-keywords)
    ;;     )
      )
  )

