diff --git a/main/Project.scala b/main/Project.scala index 36ce12f8c..bfe528295 100644 --- a/main/Project.scala +++ b/main/Project.scala @@ -137,6 +137,7 @@ object Project extends Init[Scope] with ProjectExtra def setProject(session: SessionSettings, structure: BuildStructure, s: State): State = { + SessionSettings.checkSession(session, s) val previousOnUnload = orIdentity(s get Keys.onUnload.key) val unloaded = previousOnUnload(s.runExitHooks()) val (onLoad, onUnload) = getHooks(structure.data) diff --git a/main/SessionSettings.scala b/main/SessionSettings.scala index 3b9b4835f..cc8a7a86e 100644 --- a/main/SessionSettings.scala +++ b/main/SessionSettings.scala @@ -53,7 +53,14 @@ object SessionSettings else f(session) } - + + def pluralize(size: Int, of: String) = size.toString + (if(size == 1) of else (of + "s")) + def checkSession(newSession: SessionSettings, oldState: State) + { + val oldSettings = (oldState get Keys.sessionSettings).toList.flatMap(_.append).flatMap(_._2) + if(newSession.append.isEmpty && !oldSettings.isEmpty) + logger(oldState).warn("Discarding " + pluralize(oldSettings.size, " session setting") + ". Use 'session save' to persist session settings.") + } def removeRanges[T](in: Seq[T], ranges: Seq[(Int,Int)]): Seq[T] = { val asSet = (Set.empty[Int] /: ranges) { case (s, (hi,lo)) => s ++ (hi to lo) }