Skip to content

Instantly share code, notes, and snippets.

@spacekitteh
Created August 21, 2015 11:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save spacekitteh/8ae3bc93f054d59fdf1b to your computer and use it in GitHub Desktop.
Save spacekitteh/8ae3bc93f054d59fdf1b to your computer and use it in GitHub Desktop.
;;; Directory Local Variables
;;; For more information see (info "(emacs) Directory Variables")
((nil
(eval progn
(setq default-directory
(locate-dominating-file buffer-file-name ".dir-locals.el"))
(load-file "./shell.el"))))
(message "shell.el evaluating")
;;;;;;;;;;;
;;;Magit;;;
;;;;;;;;;;;
(require 'magit)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Autocomplete with company;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'company)
(add-hook 'haskell-mode-hook 'company-mode)
(add-to-list 'company-backends 'company-ghc)
(custom-set-variables '(company-ghc-show-info t))
;;;;;;;;;;;;;
;;;ghc-mod;;;
;;;;;;;;;;;;;
(add-hook 'haskell-mode-hook (lambda () (ghc-init)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Structured Haskell Mode;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(add-hook 'haskell-mode-hook 'structured-haskell-mode)
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Rainbow parentheses;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'rainbow-delimiters)
(add-hook 'haskell-mode-hook #'rainbow-delimiters-mode)
;;;;;;;;;;;;;;
;;;CUA mode;;;
;;;;;;;;;;;;;;
(cua-mode t)
(message "shell.el finished evaluating")
{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc7102" }:
let
inherit (nixpkgs) pkgs;
ghc = pkgs.haskell.packages.${compiler}.ghcWithPackages (ps: with ps;
[ ghc-mod mtl lens parsec QuickCheck ansi-wl-pprint text text-format
alex
happy monad-logger hlint unordered-containers ekg haskeline
/*smartcheck*/ sbv tasty optparse-applicative configurator structured-haskell-mode]);
texlive = pkgs.texLiveFull;
emacs = let withGTK3 = true; in pkgs.emacsWithPackages (with
pkgs.emacsPackagesNg; [ghc-mod haskell-mode structured-haskell-mode rainbow-delimiters company-ghc flycheck-haskell magit]);
llvm = pkgs.llvm_35;
polly = pkgs.llvmPackages_35.polly;
git = pkgs.git;
z3 = pkgs.z3;
cabal2nix = pkgs.cabal2nix;
in
pkgs.stdenv.mkDerivation {
name = "haskell-env-1";
buildInputs = [ghc
texlive
emacs
llvm
polly
git
z3
cabal2nix
];
shellHook = "eval $(egrep ^export ${ghc}/bin/ghc)";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment