|
Play Framework/Scala example source code file (PlayPositionMapper.scala)
The PlayPositionMapper.scala Play Framework example source code/* * Copyright (C) 2009-2013 Typesafe Inc. <http://www.typesafe.com> */ package play.sbtplugin import sbt._ import xsbti.Position /** * Maps positions from compile errors on generated sources to positions in the original sources */ trait PlayPositionMapper { val routesPositionMapper: Position => Option[Position] = position => { position.sourceFile collect { case play.router.RoutesCompiler.MaybeGeneratedSource(generatedSource) => { new xsbti.Position { lazy val line = { position.line.flatMap(l => generatedSource.mapLine(l.asInstanceOf[Int])).map(l => xsbti.Maybe.just(l.asInstanceOf[java.lang.Integer])).getOrElse(xsbti.Maybe.nothing[java.lang.Integer]) } lazy val lineContent = { line flatMap { lineNo => sourceFile.flatMap { file => IO.read(file).split('\n').lift(lineNo - 1) } } getOrElse "" } val offset = xsbti.Maybe.nothing[java.lang.Integer] val pointer = xsbti.Maybe.nothing[java.lang.Integer] val pointerSpace = xsbti.Maybe.nothing[String] val sourceFile = xsbti.Maybe.just(generatedSource.source.get) val sourcePath = xsbti.Maybe.just(sourceFile.get.getCanonicalPath) } } } } /** Sequence of position mappers. For using with SBT 0.13 sourcePositionMappers feature */ val playPositionMappers = Seq(routesPositionMapper) /** Single function for mapping positions. For use with reloader and now */ val playPositionMapper = routesPositionMapper } Other Play Framework source code examplesHere is a short list of links related to this Play Framework PlayPositionMapper.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.