/* 
 | 
Language: Julia REPL 
 | 
Description: Julia REPL sessions 
 | 
Author: Morten Piibeleht <morten.piibeleht@gmail.com> 
 | 
Website: https://julialang.org 
 | 
Requires: julia.js 
 | 
  
 | 
The Julia REPL code blocks look something like the following: 
 | 
  
 | 
  julia> function foo(x) 
 | 
             x + 1 
 | 
         end 
 | 
  foo (generic function with 1 method) 
 | 
  
 | 
They start on a new line with "julia>". Usually there should also be a space after this, but 
 | 
we also allow the code to start right after the > character. The code may run over multiple 
 | 
lines, but the additional lines must start with six spaces (i.e. be indented to match 
 | 
"julia>"). The rest of the code is assumed to be output from the executed code and will be 
 | 
left un-highlighted. 
 | 
  
 | 
Using simply spaces to identify line continuations may get a false-positive if the output 
 | 
also prints out six spaces, but such cases should be rare. 
 | 
*/ 
 | 
  
 | 
function juliaRepl(hljs) { 
 | 
  return { 
 | 
    name: 'Julia REPL', 
 | 
    contains: [ 
 | 
      { 
 | 
        className: 'meta', 
 | 
        begin: /^julia>/, 
 | 
        relevance: 10, 
 | 
        starts: { 
 | 
          // end the highlighting if we are on a new line and the line does not have at 
 | 
          // least six spaces in the beginning 
 | 
          end: /^(?![ ]{6})/, 
 | 
          subLanguage: 'julia' 
 | 
      }, 
 | 
      // jldoctest Markdown blocks are used in the Julia manual and package docs indicate 
 | 
      // code snippets that should be verified when the documentation is built. They can be 
 | 
      // either REPL-like or script-like, but are usually REPL-like and therefore we apply 
 | 
      // julia-repl highlighting to them. More information can be found in Documenter's 
 | 
      // manual: https://juliadocs.github.io/Documenter.jl/latest/man/doctests.html 
 | 
      aliases: ['jldoctest'] 
 | 
      } 
 | 
    ] 
 | 
  } 
 | 
} 
 | 
  
 | 
module.exports = juliaRepl; 
 |