Packages

final class FileWatcher extends Cancelable

Handles file watching of interesting files in this build.

Tries to minimize file events by dynamically watching only relevant directories for the structure of the build. We don't use the LSP dynamic file watcher capability because

1. the glob syntax is not defined in the LSP spec making it difficult to deliver a consistent file watching experience with all editor clients on all operating systems. 2. we may have a lot of file watching events and it's presumably less overhead to get the notifications directly from the OS instead of through the editor via LSP.

Given we rely on file watching for critical functionality like Goto Definition and it's really difficult to reproduce/investigate file watching issues, I think it's best to have a single file watching solution that we have control over.

This class does not watch for changes in *.sbt files in the workspace directory and in the project/. Those notifications are nice-to-have, but not critical. The library we are using https://github.com/gmethvin/directory-watcher only supports recursive directory meaning we would have to watch the workspace directory, resulting in a LOT of redundant file events. Editors are free to send workspace/didChangedWatchedFiles notifications for these directories.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. FileWatcher
  2. Cancelable
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new FileWatcher(buildTargets: BuildTargets, didChangeWatchedFiles: (DirectoryChangeEvent) ⇒ Unit)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def cancel(): Unit
    Definition Classes
    FileWatcherCancelable
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. def restart(): Unit
  17. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Cancelable

Inherited from AnyRef

Inherited from Any

Ungrouped