langs.sty
changeset 486 9c03b5e89a2a
parent 485 19b75e899d37
child 487 efad9725dfd8
equal deleted inserted replaced
485:19b75e899d37 486:9c03b5e89a2a
     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}