From 205a67e4a3bb58fc1fc131123a35e1f00b60f83d Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Mon, 27 Jun 2011 22:29:48 -0400 Subject: [PATCH] warn when reload discards session settings --- main/Project.scala | 1 + main/SessionSettings.scala | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) 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) }