blob: 94bec0fad27bbd5e7aa6765716cf9a64ba2688cb [file] [log] [blame]
// Copyright (c) 2017, 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.
// ignore_for_file: implementation_imports
import 'package:analyzer/src/lint/linter.dart';
import 'package:analyzer/src/lint/registry.dart';
import 'package:analyzer/src/lint/util.dart' as util;
export 'package:analyzer/dart/element/type_system.dart';
export 'package:analyzer/src/dart/ast/token.dart';
export 'package:analyzer/src/dart/element/inheritance_manager3.dart'
show InheritanceManager3, Name;
export 'package:analyzer/src/dart/error/lint_codes.dart';
export 'package:analyzer/src/dart/resolver/exit_detector.dart';
export 'package:analyzer/src/generated/engine.dart' show AnalysisErrorInfo;
export 'package:analyzer/src/generated/source.dart' show LineInfo, Source;
export 'package:analyzer/src/lint/lint_rule_timers.dart';
export 'package:analyzer/src/lint/linter.dart'
show
dart2_12,
dart3,
dart3_3,
Category,
LintFilter,
LintRule,
LinterContext,
LinterOptions,
NodeLintRegistry,
State;
export 'package:analyzer/src/lint/pub.dart' show PSEntry, PubspecVisitor;
export 'package:analyzer/src/lint/util.dart' show FileSpelunker;
export 'package:analyzer/src/utilities/extensions/ast.dart';
export 'package:analyzer/src/workspace/pub.dart' show PubPackage;
const loggedAnalyzerErrorExitCode = 63;
/// Facade for managing access to `analyzer` package APIs.
class Analyzer {
/// Shared instance.
static Analyzer facade = Analyzer();
/// Returns currently registered lint rules.
Iterable<LintRule> get registeredRules => Registry.ruleRegistry;
/// Create a library name prefix based on [libraryPath], [projectRoot] and
/// current [packageName].
String createLibraryNamePrefix(
{required String libraryPath,
String? projectRoot,
String? packageName}) =>
util.createLibraryNamePrefix(
libraryPath: libraryPath,
projectRoot: projectRoot,
packageName: packageName);
/// Register this [lint] with the analyzer's rule registry.
void register(LintRule lint) {
Registry.ruleRegistry.register(lint);
}
}