langs.sty
author Christian Urban <christian dot urban at kcl dot ac dot uk>
Tue, 07 Oct 2014 09:37:47 +0100
changeset 224 b07777a393dc
parent 164 08a6e035223e
child 336 3cb200fa6d6a
permissions -rw-r--r--
added format string args

\usepackage{listings}
\usepackage{etoolbox}
\setmonofont[Scale=.95]{Consolas}
\newfontfamily{\consolas}{Consolas}

\definecolor{codered}{rgb}{0.6,0,0}            % for strings
\definecolor{codegreen}{rgb}{0.25,0.5,0.35}    % comments
\definecolor{codepurple}{rgb}{0.5,0,0.35}      % keywords
\definecolor{codedocblue}{rgb}{0.25,0.35,0.75} % doc
\definecolor{codeblue}{rgb}{0.25,0.35,0.75}    % types
\definecolor{darkgray}{rgb}{.4,.4,.4}

\BeforeBeginEnvironment{lstlisting}{\par\noindent\begin{minipage}{\linewidth}}
\AfterEndEnvironment{lstlisting}{\end{minipage}\par}

\lstdefinelanguage{JavaScript}{
  keywords={break,case,catch,continue,debugger,default,% 
    delete,do,else,false,finally,for,function,if,in,instanceof,% 
    new,null,return,switch,this,throw,true,try,typeof,var,void,while,with},
  morecomment=[l]{//},
  morecomment=[s]{/*}{*/},
  morestring=[b]',
  morestring=[b]",
  ndkeywords={class,export,boolean,throw,implements,import,this},
  keywordstyle=\color{codepurple}\bfseries,
  ndkeywordstyle=\color{darkgray}\bfseries,
  identifierstyle=\color{black},
  commentstyle=\color{codegreen}\ttfamily,
  stringstyle=\color{codegreen}\ttfamily,
  sensitive=true
}

\lstdefinelanguage{Scala}{
  morekeywords={abstract,case,catch,class,def,%
    do,else,extends,false,final,finally,%
    for,if,implicit,import,match,mixin,%
    new,null,object,override,package,%
    private,protected,requires,return,sealed,%
    super,this,throw,trait,true,try,%
    type,val,var,while,with,yield},%
  otherkeywords={=>,<-,<\%,<:,>:,\#,@},%
  sensitive=true,%
  %directives={Int,Char,Rexp,String,Boolean,BigInt,Unit,List,Set},%
  %moredelim=*[directive]:,%
  morecomment=[l]{//},%
  morecomment=[n]{/*}{*/},
  morestring=[b]",
  morestring=[b]',
  morestring=[b]"""
}[keywords,comments,strings]

\lstdefinelanguage{While}{
  morekeywords={if,then,else,while,do,true,false,write,upto,for,skip},
  otherkeywords={=,!=,:=,<,>,;},
  sensitive=true,
  morecomment=[n]{/*}{*/},
}

\lstdefinestyle{mystyle}
       {basicstyle=\ttfamily,
	keywordstyle=\color{codepurple}\bfseries,
        %directivestyle=\color{codeblue}\bfseries,
	stringstyle=\color{codegreen},
	commentstyle=\color{codegreen},
	morecomment=[s][\color{codedocblue}]{/**}{*/},
	numbers=left,
	numberstyle=\tiny\color{black},
	stepnumber=1,
	numbersep=10pt,
	tabsize=2,
	showspaces=false,
	showstringspaces=false,
        xleftmargin=8mm,
        emphstyle=\color{codeblue}\bfseries,
        keepspaces}

\lstset{language=Scala,
        style=mystyle}


\newcommand{\code}[1]{{\lstinline{#1}}}
\newcommand{\pcode}[1]{\mbox{\lstset{language={},keywordstyle=\color{black}}\lstinline!#1!}}
\makeatother