maintenance/talks/fcc-inrae-2022/listings-scheme.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},
% }