Hoe filter je bestanden die sbt op veranderingen controleert?

Ik gebruik emacs als mijn editor en het heeft een vervelende gewoonte om sloten te maken voor bestanden in de buurt van die bestanden. Het lijkt erop dat sbt behandelt die ook als bronbestanden vergrendeld worden, en dit resulteert in een hoop onnodige herbouwingen.

Is er een manier om sbt te vertellen dat het niet moet letten op wijzigingen in de bestanden waarvan de namen beginnen met . # ?

Ik probeerde iets in de trant van:

watchSources in Compile <<= (watchSources in Compile) map { files =>
  println(files)
  files.filter(f => !f.getName.startsWith(".#"))
}

maar het werkt niet.

4

2 antwoord

SBT negeert Emacs Auto Save Mode-bestanden als ik de volgende regel toevoeg aan project/Build.scala in de ApplicationBuild :

excludeFilter in unmanagedSources := ".#*"
2
toegevoegd
Deze oplossing lijkt ook te werken bij gebruik in een build.sbt-bestand.
toegevoegd de auteur Metropolis, de bron

watchSources is not used as a scoped setting. Rewrite your example without in Compile and it will work.

2
toegevoegd
Het lijkt te werken, gedeeltelijk - ten minste de juiste bestandsnamen worden afgedrukt. Maar het lijkt erop dat sbt opnieuw laden triggert wanneer een nieuw ". #" Bestand wordt aangemaakt, en het wordt niet doorgegeven "watchSources". Is er een manier om te vertellen dat het niet nodig is om opnieuw te bouwen op nieuw gemaakte bestanden met die prefix?
toegevoegd de auteur Rogach, de bron