98 lines
2.9 KiB
TeX
98 lines
2.9 KiB
TeX
% This file contains some restricted keywords for highlighting the all the
|
|
% snippets in LaTeX. The main purpose is to easy reading the Scheme
|
|
% Domain-Specific code by coloring what is Guile-specific, user-specific and DSL-specific.
|
|
%
|
|
% The language shell is also trivially defined.
|
|
|
|
\usepackage{listings}
|
|
\usepackage{color}
|
|
|
|
\definecolor{someguile}{rgb}{0.0, 0.25, 0.8}
|
|
\definecolor{somestring}{rgb}{0.8, 0.25, 0.0}
|
|
\definecolor{somevariable}{rgb}{0.0, 0.5, 0.0}
|
|
\definecolor{somecomment}{rgb}{1.0, 0.0, 0}
|
|
\definecolor{bracket}{rgb}{0.6, 0.6, 0.6}
|
|
|
|
\lstdefinelanguage{Scheme}{
|
|
basicstyle=\normalsize\ttfamily\slshape\color{somevariable},
|
|
sensitive=true,
|
|
alsoletter={-,\#,:,>},
|
|
morestring = [b]",
|
|
stringstyle=\upshape\color{somestring},
|
|
morecomment=[l]{;},
|
|
commentstyle=\upshape\color{somecomment},
|
|
literate=
|
|
*{(}{{\textcolor{bracket}{(}}}{1}
|
|
{)}{{\textcolor{bracket}{)}}}{1},
|
|
classoffset=0,
|
|
% Guile
|
|
morekeywords={
|
|
define, define-public,
|
|
list, map, compose,
|
|
cons,
|
|
lambda,
|
|
let, let*, quote,
|
|
append, string-append,
|
|
use-modules, define-module, \#:use-module, \#:prefix
|
|
},
|
|
keywordstyle=\ttfamily\upshape\color{someguile},
|
|
classoffset=1,
|
|
% Fix
|
|
morekeywords={
|
|
guix, transformations,
|
|
gnu, srfi, srfi-1,
|
|
desktop, mcron, networking, xorg,
|
|
certs, fonts,
|
|
font-bitstream-vera, nss-certs,
|
|
xfce-desktop-service-type,
|
|
cron-jobs, mcron-service-type,
|
|
dhcp-client-service-type,
|
|
},
|
|
keywordstyle=\ttfamily\upshape\color{black},
|
|
classoffset=1,
|
|
% DSL
|
|
morekeywords={
|
|
package,
|
|
name, version,
|
|
build-system, gnu-build-system, arguments,
|
|
inputs,
|
|
synopsis, description, license,
|
|
source, origin,
|
|
method, url-fetch, git-fetch,
|
|
specifications->manifest, specification->package, packages->manifest,
|
|
options->transformation, with-c-toolchain,
|
|
},
|
|
% DSL VM
|
|
morekeywords={
|
|
use-service-modules, use-package-modules,
|
|
operating-system,
|
|
host-name, timezone, locale, keyboard-layout, label, firmware,
|
|
bootloader, bootloader-configuration, grub-bootloader, targets, terminal-outputs,
|
|
users, user-account, name, password, group, supplementary-groups,
|
|
file-systems, file-system, mount-point, device, type,
|
|
base-file-systems, % bug with %base-
|
|
base-user-accounts,
|
|
base-packages,
|
|
packages,
|
|
services, service, simple-service,
|
|
plain-file,
|
|
},
|
|
keywordstyle=\ttfamily\bfseries\upshape\color{black},
|
|
classoffset=0,
|
|
}
|
|
|
|
\lstdefinelanguage{shell}{
|
|
basicstyle=\normalsize\ttfamily,
|
|
sensitive=true,
|
|
morestring = [b]",
|
|
stringstyle=\upshape\color{red},
|
|
morecomment=[l]{\#},
|
|
commentstyle=\upshape\color{green},
|
|
}
|
|
|
|
% \lstdefinelanguage{text}{
|
|
% basicstyle=\normalsize\ttfamily,
|
|
% sensitive=true,
|
|
% commentstyle=\upshape\color{green},
|
|
% }
|