1 \usepackage{listings} |
|
2 \usepackage{etoolbox} |
|
3 \setmonofont[Scale=.95]{Consolas} |
|
4 \newfontfamily{\consolas}{Consolas} |
|
5 |
|
6 \makeatletter |
|
7 \let\old@lstKV@SwitchCases\lstKV@SwitchCases |
|
8 \def\lstKV@SwitchCases#1#2#3{} |
|
9 \makeatother |
|
10 \usepackage{lstlinebgrd} |
|
11 \makeatletter |
|
12 \let\lstKV@SwitchCases\old@lstKV@SwitchCases |
|
13 |
|
14 \lst@Key{numbers}{none}{% |
|
15 \def\lst@PlaceNumber{\lst@linebgrd}% |
|
16 \lstKV@SwitchCases{#1}% |
|
17 {none:\\% |
|
18 left:\def\lst@PlaceNumber{\llap{\normalfont |
|
19 \lst@numberstyle{\thelstnumber}\kern\lst@numbersep}\lst@linebgrd}\\% |
|
20 right:\def\lst@PlaceNumber{\rlap{\normalfont |
|
21 \kern\linewidth \kern\lst@numbersep |
|
22 \lst@numberstyle{\thelstnumber}}\lst@linebgrd}% |
|
23 }{\PackageError{Listings}{Numbers #1 unknown}\@ehc}} |
|
24 \makeatother |
|
25 |
|
26 |
|
27 |
|
28 \definecolor{codered}{rgb}{0.6,0,0} % for strings |
|
29 \definecolor{codegreen}{rgb}{0.25,0.5,0.35} % comments |
|
30 \definecolor{codepurple}{rgb}{0.5,0,0.35} % keywords |
|
31 \definecolor{codedocblue}{rgb}{0.25,0.35,0.75} % doc |
|
32 \definecolor{codeblue}{rgb}{0.25,0.35,0.75} % types |
|
33 |
|
34 \BeforeBeginEnvironment{lstlisting}{\par\noindent\begin{minipage}{\linewidth}} |
|
35 \AfterEndEnvironment{lstlisting}{\end{minipage}\par} |
|
36 |
|
37 \lstdefinelanguage{Scala}{ |
|
38 morekeywords={abstract,case,catch,class,def,% |
|
39 do,else,extends,false,final,finally,% |
|
40 for,if,implicit,import,match,mixin,% |
|
41 new,null,object,override,package,% |
|
42 private,protected,requires,return,sealed,% |
|
43 super,this,throw,trait,true,try,% |
|
44 type,val,var,while,with,yield,write,read},% |
|
45 otherkeywords={=>,<-,<\%,<:,>:,\#},% |
|
46 sensitive=true,% |
|
47 %directives={Int,Char,Rexp,String,Boolean,BigInt,Unit,List,Set},% |
|
48 %moredelim=*[directive]:,% |
|
49 morecomment=[l]{//},% |
|
50 morecomment=[n]{/*}{*/}, |
|
51 morestring=[s]{"""}{"""}, |
|
52 morestring=[b]", |
|
53 morestring=[b]', |
|
54 }[keywords,comments,strings] |
|
55 |
|
56 \lstdefinelanguage{While}{ |
|
57 morekeywords={if,then,else,while,do,true,false,write,upto,read,for,skip}, |
|
58 morecomment=[l]{//}, |
|
59 morecomment=[n]{/*}{*/}, |
|
60 morestring=[b]", |
|
61 otherkeywords={=,!=,:=,<,>,\%;*,/}, |
|
62 }[keywords,comments,strings] |
|
63 |
|
64 |
|
65 \newcommand{\code}[1]{{\lstinline{#1}}} |
|
66 \newcommand{\pcode}[1]{\mbox{\lstset{language={},keywordstyle=\color{black}}\lstinline!#1!}} |
|
67 \newcommand{\scode}[1]{\mbox{\lstset{language={},basicstyle=\ttfamily\color{codegreen}}\lstinline!#1!}} |
|
68 \makeatother |
|
69 |
|
70 %%\lstset{escapeinside={(*@}{@*)}} |
|
71 \lstset{escapeinside={/*@}{@*/}} |
|
72 |
|
73 %% stripy code |
|
74 \usepackage{lstlinebgrd} |
|
75 \definecolor{capri}{rgb}{0.0, 0.75, 1.0} |
|
76 |
|
77 |
|
78 \lstdefinestyle{mystyle} |
|
79 {basicstyle=\ttfamily, |
|
80 keywordstyle=\color{codepurple}\bfseries, |
|
81 stringstyle=\color{codegreen}, |
|
82 commentstyle=\color{codegreen}, |
|
83 morecomment=[s][\color{codedocblue}]{/**}{*/}, |
|
84 numbers=none, |
|
85 numberstyle=\tiny\color{black}, |
|
86 stepnumber=1, |
|
87 numbersep=10pt, |
|
88 tabsize=2, |
|
89 showspaces=false, |
|
90 showstringspaces=false, |
|
91 xleftmargin=8mm, |
|
92 emphstyle=\color{codeblue}\bfseries, |
|
93 keepspaces, |
|
94 linebackgroundcolor={\ifodd\value{lstnumber}\color{capri!3}\fi} |
|
95 } |
|
96 |
|
97 \lstset{language=Scala, |
|
98 style=mystyle} |
|