// Copyright (c) 2024, 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.

// THIS FILE IS GENERATED. DO NOT EDIT.
//
// Instead, run 'dart pkg/analysis_server/tool/generate_analyzer_version.dart'
// to update this file.

/// The version of the analyzer_plugin package that matches the analyzer_plugin
/// code used by the analysis_server package.
var analyzerPluginVersion = '0.12.0';

/// The version of the analyzer package that matches the analyzer code used by
/// the analysis_server package.
var analyzerVersion = '7.0.0';
