blob: dc2ceadd8090339775d747990ebf8f4d161812ac [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 confirm 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);
}