Evie Litherland-Smith
18479f82fb
Completely removes the need to call a shell.nix in .envrc now (I think)
221 lines
9.5 KiB
Plaintext
221 lines
9.5 KiB
Plaintext
;; ~/.config/emacs/templates
|
|
|
|
prog-mode
|
|
|
|
(fixme (if (derived-mode-p 'emacs-lisp-mode) ";; " comment-start) "FIXME ")
|
|
(todo (if (derived-mode-p 'emacs-lisp-mode) ";; " comment-start) "TODO ")
|
|
(bug (if (derived-mode-p 'emacs-lisp-mode) ";; " comment-start) "BUG ")
|
|
(hack (if (derived-mode-p 'emacs-lisp-mode) ";; " comment-start) "HACK ")
|
|
|
|
latex-mode
|
|
|
|
(abstract "\\begin{abstract}\n" r> n> "\\end{abstract}")
|
|
(align "\\begin{align}\n" r> n> "\\end{align}")
|
|
(alignn "\\begin{align*}\n" r> n> "\\end{align*}")
|
|
(gather "\\begin{gather}\n" r> n> "\\end{gather}")
|
|
(gatherr "\\begin{gather*}\n" r> n> "\\end{gather*}")
|
|
(appendix "\\begin{appendix}\n" r> n> "\\end{appendix}")
|
|
(begin "\\begin{" (s env) "}" r> n> "\\end{" (s env) "}")
|
|
(center "\\begin{center}\n" r> n> "\\end{center}")
|
|
(displaymath "\\begin{displaymath}\n" r> n> "\\end{displaymath}")
|
|
(document "\\begin{document}\n" r> n> "\\end{document}")
|
|
(enumerate "\\begin{enumerate}\n\\item " r> n> "\\end{enumerate}")
|
|
(equation "\\begin{equation}" r> n> "\\end{equation}")
|
|
(flushleft "\\begin{flushleft}" r> n> "\\end{flushleft}")
|
|
(flushright "\\begin{flushright}" r> n> "\\end{flushright}")
|
|
(frac "\\frac{" p "}{" q "}")
|
|
(fussypar "\\begin{fussypar}" r> n> "\\end{fussypar}")
|
|
(itemize "\\begin{itemize}\n\\item " r> n> "\\end{itemize}")
|
|
(letter "\\begin{letter}\n" r> n> "\\end{letter}")
|
|
(math "\\begin{math}\n" r> n> "\\end{math}")
|
|
(minipage "\\begin{minipage}[t]{0.5\linewidth}\n" r> n> "\\end{minipage}")
|
|
(quotation "\\begin{quotation}\n" r> n> "\\end{quotation}")
|
|
(quote "\\begin{quote}\n" r> n> "\\end{quote}")
|
|
(sloppypar "\\begin{sloppypar}\n" r> n> "\\end{sloppypar}")
|
|
(theindex "\\begin{theindex}\n" r> n> "\\end{theindex}")
|
|
(trivlist "\\begin{trivlist}\n" r> n> "\\end{trivlist}")
|
|
(verbatim "\\begin{verbatim}\n" r> n> "\\end{verbatim}")
|
|
(verbatimm "\\begin{verbatim*}\n" r> n> "\\end{verbatim*}")
|
|
|
|
texinfo-mode
|
|
|
|
(defmac "@defmac " p n> r> "@end defmac")
|
|
(defun "@defun " p n> r> "@end defun")
|
|
(defvar "@defvar " p n> r> "@end defvar")
|
|
(example "@example " p n> r> "@end example")
|
|
(lisp "@lisp " p n> r> "@end lisp")
|
|
(bullet "@itemize @bullet{}" n> r> "@end itemize")
|
|
(code "@code{" p "}")
|
|
(var "@var{" p "}")
|
|
|
|
emacs-lisp-mode
|
|
|
|
(autoload ";;;###autoload")
|
|
(pt "(point)")
|
|
(var "(defvar " p "\n \"" p "\")")
|
|
(local "(defvar-local " p "\n \"" p "\")")
|
|
(const "(defconst " p "\n \"" p "\")")
|
|
(custom "(defcustom " p "\n \"" p "\"" n> ":type '" p ")")
|
|
(face "(defface " p " '((t :inherit " p "))\n \"" p "\")")
|
|
(group "(defgroup " p " nil\n \"" p "\"" n> ":group '" p n> ":prefix \"" p "-\")")
|
|
(macro "(defmacro " p " (" p ")\n \"" p "\"" n> r> ")")
|
|
(alias "(defalias '" p " '" p ")")
|
|
(fun "(defun " p " (" p ")\n \"" p "\"" n> r> ")")
|
|
(iflet "(if-let (" p ")" n> r> ")")
|
|
(whenlet "(when-let (" p ")" n> r> ")")
|
|
(whilelet "(while-let (" p ")" n> r> ")")
|
|
(andlet "(and-let* (" p ")" n> r> ")")
|
|
(cond "(cond" n "(" q "))" >)
|
|
(pcase "(pcase " (p "scrutinee") n "(" q "))" >)
|
|
(let "(let (" p ")" n> r> ")")
|
|
(lett "(let* (" p ")" n> r> ")")
|
|
(pcaselet "(pcase-let (" p ")" n> r> ")")
|
|
(pcaselett "(pcase-let* (" p ")" n> r> ")")
|
|
(rec "(letrec (" p ")" n> r> ")")
|
|
(dotimes "(dotimes (" p ")" n> r> ")")
|
|
(dolist "(dolist (" p ")" n> r> ")")
|
|
(loop "(cl-loop for " p " in " p " do" n> r> ")")
|
|
(command "(defun " p " (" p ")\n \"" p "\"" n> "(interactive" p ")" n> r> ")")
|
|
(advice "(defun " (p "adv" name) " (&rest app)" n> p n> "(apply app))" n>
|
|
"(advice-add #'" (p "fun") " " (p ":around") " #'" (s name) ")")
|
|
(header ";;; " (file-name-nondirectory (or (buffer-file-name) (buffer-name)))
|
|
" -- " p " -*- lexical-binding: t -*-" n
|
|
";;; Commentary:" n ";;; Code:" n n)
|
|
(provide "(provide '" (file-name-base (or (buffer-file-name) (buffer-name))) ")" n
|
|
";;; " (file-name-nondirectory (or (buffer-file-name) (buffer-name)))
|
|
" ends here" n)
|
|
|
|
text-mode
|
|
|
|
(box "┌─" (make-string (length str) ?─) "─┐" n
|
|
"│ " (s str) " │" n
|
|
"└─" (make-string (length str) ?─) "─┘" n)
|
|
(abox "+-" (make-string (length str) ?-) "-+" n
|
|
"| " (s str) " |" n
|
|
"+-" (make-string (length str) ?-) "-+" n)
|
|
(cut "--8<---------------cut here---------------start------------->8---" n r n
|
|
"--8<---------------cut here---------------end--------------->8---" n)
|
|
(rot13 (p "plain text" text) n "----" n (rot13 text))
|
|
(calc (p "taylor(sin(x),x=0,3)" formula) n "----" n (format "%s" (calc-eval formula)))
|
|
|
|
org-mode
|
|
|
|
(title "#+title: " p n "#+author: " p n "#+email: " p n "#+language: en")
|
|
(babel "#+property: header-args:emacs-lisp :tangle yes :mkdirp yes :results output silent")
|
|
(caption "#+caption: ")
|
|
(drawer ":" p ":" n r ":end:")
|
|
(begin "#+begin_" (s name) n> r> n "#+end_" name)
|
|
(quote "#+begin_quote" n> r> n "#+end_quote")
|
|
(sidenote "#+begin_sidenote" n> r> n "#+end_sidenote")
|
|
(marginnote "#+begin_marginnote" n> r> n "#+end_marginnote")
|
|
(example "#+begin_example" n> r> n "#+end_example")
|
|
(center "#+begin_center" n> r> n "#+end_center")
|
|
(ascii "#+begin_export ascii" n> r> n "#+end_export")
|
|
(html "#+begin_export html" n> r> n "#+end_export")
|
|
(latex "#+begin_export latex" n> r> n "#+end_export")
|
|
(comment "#+begin_comment" n> r> n "#+end_comment")
|
|
(verse "#+begin_verse" n> r> n "#+end_verse")
|
|
(src "#+begin_src " q n r n "#+end_src")
|
|
(gnuplot "#+begin_src gnuplot :var data=" (p "table") " :file " (p "plot.png") n r n "#+end_src" :post (org-edit-src-code))
|
|
(elisp "#+begin_src emacs-lisp" n r n "#+end_src" :post (org-edit-src-code))
|
|
(inlsrc "src_" p "{" q "}")
|
|
|
|
nix-mode
|
|
|
|
(buildphase > "buildPhase= ''" n
|
|
(p "Build Instructions") n
|
|
" '';")
|
|
(checkPhase > "checkPhase= ''" n
|
|
(p "") n
|
|
" '';")
|
|
(configurephase > "configurePhase= ''" n
|
|
(p "") n
|
|
" '';")
|
|
(fixupphase > "fixupPhase= ''" n
|
|
(p "") n
|
|
" '';")
|
|
(distphase > "distPhase= ''" n
|
|
(p "") n
|
|
" '';")
|
|
(patchphase > "patchPhase= ''" n
|
|
(p "") n
|
|
" '';")
|
|
(unpackphase > "unpackPhase= ''" n
|
|
(p "") n
|
|
" '';")
|
|
(installCheckPhasephase > "installCheckPhasePhase= ''" n
|
|
(p "") n
|
|
" '';")
|
|
(installphase > "installphase= ''" n
|
|
p " mkdir -p $out/bin" n
|
|
> "for f in $(find . -executable -type f);" n
|
|
> "do" n
|
|
> "cp $f $out/bin" n
|
|
> "done}" n
|
|
> " '';")
|
|
|
|
(pkgs "pkgs = import " (p "<nixpkgs>") " {};")
|
|
(poetry2nix "poetry2nix = (builtins.getFlake \"github:nix-community/poetry2nix\").lib.mkPoetry2Nix {inherit pkgs;};")
|
|
|
|
(gitpackage "{ lib" n ", stdenv" n ", fetchFromGitHub" n ", " (p "inputs") n ", " (p "inputs") n "}:" n n>
|
|
"stdenv.mkDerivation rec {" n> "pname = \"" (p "" pkgn nil) "\";" n> "version = \"" p "\";" n n>
|
|
"src = fetchFromGitHub {" n> "owner = \"" (p "" own) "\";" n> "repo = \"" (s pkgn) "\";" n>
|
|
"rev = \"" "v${version}" "\";" n> "sha256 = \"" "${lib.fakeSha256}" "\";" n> "};" n n>
|
|
"nativeBuildInputs = [ " (p "makeWrapper") " ];" n n> "BuildInputs = [ " (p) " ];" n n>
|
|
"meta = with lib; {" n>
|
|
"homepage = \"" "https://github.com/" (s own) "/" (s pkgn) "\";" n>
|
|
"description = \"" (p) "\";" n>
|
|
"license = licenses." (p (completing-read "License: " '("agpl3" "asl20" "bsd1" "bsd2" "bsd3" "free" "gpl2" "gpl2Only" "gpl2Plus" "gpl3" "gpl3Only" "gpl3Plus" "isc" "lgpl21Only" "lgpl21Plus" "lgpl2Only" "lgpl2Plus" "lgpl3" "lgpl3Only" "mit" "mpl20" "ofl" "unfree"))) ";" n>
|
|
"maintainers = with maintainers; [ " (s own) " ];" n>
|
|
"platforms = platforms."
|
|
(p (completing-read "Platform: " '("all" "allBut" "arm" "cygwin" "darwin" "freebsd" "gnu" "i686" "illumos" "linux" "mesaPlatforms" "mips" "netbsd" "none" "openbsd" "unix" "x86"))) ";" n> q "};" n> "}"
|
|
)
|
|
(pythonshell "let" n
|
|
> "pkgs = import " (p "<nixpkgs>") " {};" n
|
|
> "python = pkgs." (p "python3") ";" n
|
|
> "in pkgs.mkShell {" n
|
|
> "packages = with pkgs; [ poetry uv " q "];" n
|
|
> "shellHook = ''" n
|
|
> "export LD_LIBRARY_PATH=${pkgs.stdenv.cc.cc.lib}/lib:${pkgs.libz}/lib" n
|
|
> "${pkgs.poetry}/bin/poetry env use ${python}/bin/python3" n
|
|
> "'';" n
|
|
> "}")
|
|
|
|
(poetryoverride "overrides = poetry2nix.defaultPoetryOverrides.extend" n
|
|
> "(self: super: {" n
|
|
> (s package) " =" n
|
|
> "super." package ".overridePythonAttrs" n
|
|
> "(old: {" n
|
|
> "buildInputs = (old.buildInputs or []) ++ [super." (p "setuptools" ) "];" n
|
|
> "});" n
|
|
> "});" q)
|
|
|
|
python-base-mode
|
|
|
|
(main "def main(" (p "*args, **kwargs") ") -> " (p "None") ":" n
|
|
> q "return" n n
|
|
"if __name__ == \"__main__\":" n
|
|
> "main()")
|
|
(args "def parse_arguments() -> argparse.Namespace:" n
|
|
> "parser = argparse.ArgumentParser(description=\"" p "\")" n
|
|
> p n
|
|
> "return parser.parse_args()")
|
|
(logg "logger = logging.getLogger(__name__)")
|
|
(nimp "raise NotImplementedError")
|
|
|
|
envrc-file-mode
|
|
|
|
(python "CC=\"$(nix build nixpkgs#stdenv.cc.cc.lib --print-out-paths --no-link)\"" n
|
|
"ZLIB=\"$(nix build nixpkgs#zlib --print-out-paths --no-link)\"" n
|
|
"export LD_LIBRARY_PATH=\"$CC/lib\":\"$ZLIB/lib\"" n
|
|
"VENV_DIR=.venv/" n
|
|
"if [ ! -f $VENV_DIR/bin/python3 ]; then" n
|
|
> "nix run nixpkgs#python3 -- -m venv $VENV_DIR" n
|
|
"fi" n
|
|
"source .venv/bin/activate")
|
|
|
|
;; Local Variables:
|
|
;; mode: lisp-data
|
|
;; outline-regexp: "[a-z]"
|
|
;; End:
|