blob: d32ca39d0d8fca830d153f1cf068ac3ee08a465c [file] [log] [blame]
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/analysis_server.dart';
/// A class that can be used to configure an analysis server instance to better
/// support intermittent file systems.
///
/// See also [AnalysisServerOptions.detachableFileSystemManager].
abstract class DetachableFileSystemManager {
/// Indicate that the [DetachableFileSystemManager] and the containing
/// analysis server are being shut down.
void dispose();
/// Forward on the 'analysis.setAnalysisRoots' request.
///
/// This class can choose to pass through all [setAnalysisRoots] calls to the
/// underlying analysis server, it can choose to modify the given
/// [includedPaths] and other parameters, or it could choose to delays calls
/// to [setAnalysisRoots].
void setAnalysisRoots(String requestId, List<String> includedPaths,
List<String> excludedPaths, Map<String, String> packageRoots);
/// Called exactly once before any calls to [setAnalysisRoots].
void setAnalysisServer(AnalysisServer server);
}