---@meta

---Custom settings for launching DevTools. This setting is intended for use by Dart DevTools developers.
---@class _.lspconfig.settings.dartls.Dart.CustomDevTools
---Extra arguments to pass when running the `devtools_tool serve` command.
---
---```lua
---default = {}
---```
---@field args? string[]
---Any environment variables to set when spawning the command. 'LOCAL_DART_SDK' should usually be set to your Dart SDK checkout and 'FLUTTER_ROOT' to the version of Flutter that DevTools is pinned to.
---
---```lua
---default = {
---  FLUTTER_ROOT = "/path/to/devtools/tool/flutter-sdk",
---  LOCAL_DART_SDK = "/path/to/dart-sdk"
---}
---```
---@field env? table
---The root directory containing a clone of the flutter/devtools repository.
---
---```lua
---default = "/path/to/devtools"
---```
---@field path? string

---Where to open [Dart DevTools](https://dart.dev/tools/dart-devtools) pages.
---
---```lua
---default = {
---  default = "beside",
---  inspector = "sidebar"
---}
---```
---@class _.lspconfig.settings.dartls.Dart.DevToolsLocation
---@field ["cpu-profiler"]? "beside" | "active" | "external" | "sidebar"
---@field default? "beside" | "active" | "external" | "sidebar"
---@field inspector? "beside" | "active" | "external" | "sidebar"
---@field logging? "beside" | "active" | "external" | "sidebar"
---@field memory? "beside" | "active" | "external" | "sidebar"
---@field network? "beside" | "active" | "external" | "sidebar"
---@field performance? "beside" | "active" | "external" | "sidebar"

---@class _.lspconfig.settings.dartls.Dart
---Whether to add your selected Dart/Flutter SDK path to the `PATH` environment variable for the embedded terminal. This is useful when switching SDKs via `#dart.sdkPaths#` / `#dart.flutterSdkPaths#` to ensure commands run from the terminal are the same version as being used by the editor/debugger (requires restart).
---
---```lua
---default = true
---```
---@field addSdkToTerminalPath? boolean
---Whether to consider files ending `_test.dart` that are outside of the test directory as tests. This should be enabled if you put tests inside the `lib` directory of your Flutter app so they will be run with `flutter test` and not `flutter run`.
---@field allowTestsOutsideTestFolder? boolean
---An array of paths to be excluded from Dart analysis. This option should usually be set at the Workspace level. Excluded folders will also be ignored when detecting project types.
---
---```lua
---default = {}
---```
---@field analysisExcludedFolders? string[]
---Additional arguments to pass to the Dart Analysis Server. This setting is can be useful for troubleshooting issues with the Dart Analysis Server.
---
---```lua
---default = {}
---```
---@field analyzerAdditionalArgs? string[]
---The port number to be used for the Dart analyzer diagnostic server. This setting is can be useful for troubleshooting issues with the Dart Analysis Server.
---@field analyzerDiagnosticsPort? number
---The path to a log file for very detailed logging in the Dart Analysis Server that may be useful when trying to diagnose Analysis Server issues. Use `${workspaceName}` to insert the name of the current workspace in the file path. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows). Only the noted substitutions are supported, others will stay as-is.
---@field analyzerInstrumentationLogFile? string
---The path to a log file for communication between Dart Code and the Analysis Server. Use `${workspaceName}` to insert the name of the current workspace in the file path. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows). Only the noted substitutions are supported, others will stay as-is.
---@field analyzerLogFile? string
---The path to a custom Dart Analysis Server. This setting is intended for use by Dart Analysis Server developers. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows).
---@field analyzerPath? string
---An SSH host to run the Analysis Server.
---This can be useful when modifying code on a remote machine using SSHFS.
---@field analyzerSshHost? string
---Additional arguments to pass to the VM running the Dart Analysis Server. This setting is can be useful for troubleshooting issues with the Dart Analysis Server.
---
---```lua
---default = {}
---```
---@field analyzerVmAdditionalArgs? string[]
---The port number to be used for the Dart Analysis Server VM service. This setting is intended for use by Dart Analysis Server developers.
---@field analyzerVmServicePort? number
---Whether to include symbols that have not been imported in the code completion list and automatically insert the required import when selecting them (requires restart).
---
---```lua
---default = true
---```
---@field autoImportCompletions? boolean
---Determines when to insert comment slashes when pressing `<enter>` in the editor (requires restart).
---
---When using `tripleSlash`, double-slashes will still be included when breaking existing double-slash comments across additional lines.
---
---```lua
---default = "tripleSlash"
---```
---@field automaticCommentSlashes? "none" | "tripleSlash" | "all"
---Additional args to pass to the `build_runner` when building/watching/serving.
---
---```lua
---default = {}
---```
---@field buildRunnerAdditionalArgs? string[]
---Whether to check you are using the latest version of the Dart SDK at startup.
---
---```lua
---default = true
---```
---@field checkForSdkUpdates? boolean
---Additional args to pass to the `dart` command when running CLI scripts. Using the `args`/`toolArgs` fields in `launch.json` is usually better than this setting as this setting will apply to _all_ projects.
---
---```lua
---default = {}
---```
---@field cliAdditionalArgs? string[]
---Whether to run Dart CLI apps in the Debug Console or a terminal. The Debug Console has more functionality because the process is controlled by the debug adapter, but is unable to accept input from the user via stdin.
---
---```lua
---default = "debugConsole"
---```
---@field cliConsole? "debugConsole" | "terminal" | "externalTerminal"
---Whether to automatically close embedded DevTools tabs when a debug session ends.
---
---```lua
---default = "never"
---```
---@field closeDevTools? "never" | "ifOpened" | "always"
---Whether to show annotations against constructor, method invocations and lists that span multiple lines.
---
---```lua
---default = true
---```
---@field closingLabels? boolean
---The prefix to use in closing labels.
---
---```lua
---default = " // "
---```
---@field closingLabelsPrefix? string
---The text style to use in closing labels. Using _Italic_ requires a font that supports italic text.
---
---```lua
---default = "normal"
---```
---@field closingLabelsTextStyle? "normal" | "italic"
---Whether to insert parentheses and placeholders for positional and required arguments during code completions when using LSP. This feature is automatically disabled if commit characters are enabled.
---
---```lua
---default = true
---```
---@field completeFunctionCalls? boolean
---An array of glob patterns to exclude from code coverage results. Paths matching any of these patterns will still be collected by the Dart VM but not be included in coverage reported to VS Code.
---
---```lua
---default = {}
---```
---@field coverageExcludePatterns? string[]
---The path to a custom Dart Debug Adapter. This setting is intended for use by Dart Debug Adapter developers. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows).
---@field customDartDapPath? string
---Custom settings for launching DevTools. This setting is intended for use by Dart DevTools developers.
---@field customDevTools? _.lspconfig.settings.dartls.Dart.CustomDevTools
---The path to a custom Flutter Debug Adapter. This setting is intended for use by Dart Debug Adapter developers. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows).
---@field customFlutterDapPath? string
---EXPERIMENTAL: The port where flutter daemon can be accessed if daemon is run remotely. This setting is intended for use by Google developers.
---@field daemonPort? number
---The path to a log file for communication with the DAP debug adapters. This is useful when trying to diagnose issues with debugging such as missed breakpoints. Use `${name}` in the log file name to insert the Debug Session name to prevent concurrent debug sessions overwriting each others logs. Use `${workspaceName}` to insert the name of the current workspace in the file path. Use `${kind}` to insert a description of the kind of debug session ('dart', 'dart_test', 'flutter' etc.). Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows). Only the noted substitutions are supported, others will stay as-is.
---@field dapLogFile? string
---The protocol to use for the Dart Debug Extension backend service and injected client. Using WebSockets can improve performance but may fail when connecting through some proxy servers.
---
---```lua
---default = "ws"
---```
---@field debugExtensionBackendProtocol? "sse" | "ws"
---Whether to mark external pub package libraries (including `package:flutter`) as debuggable, enabling stepping into them while debugging.
---@field debugExternalPackageLibraries? boolean
---Whether to mark Dart SDK libraries (`dart:*`) as debuggable, enabling stepping into them while debugging.
---@field debugSdkLibraries? boolean
---Whether to launch external DevTools windows using Chrome or the system default browser. This setting is ignored for remote workspaces (including Docker, SSH, WSL).
---
---```lua
---default = "chrome"
---```
---@field devToolsBrowser? "chrome" | "default"
---Where to open [Dart DevTools](https://dart.dev/tools/dart-devtools) pages.
---
---```lua
---default = {
---  default = "beside",
---  inspector = "sidebar"
---}
---```
---@field devToolsLocation? _.lspconfig.settings.dartls.Dart.DevToolsLocation
---The path to a low-traffic log file for the Dart DevTools service. Use `${workspaceName}` to insert the name of the current workspace in the file path. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows). Only the noted substitutions are supported, others will stay as-is.
---@field devToolsLogFile? string
---The port number to be used for the Dart DevTools (requires restart).
---@field devToolsPort? number
---Whether to try to reuse existing DevTools windows instead of launching new ones. Only works for instances of DevTools launched by the DevTools server on the local machine.
---
---```lua
---default = true
---```
---@field devToolsReuseWindows? boolean
---The theme to use for Dart DevTools.
---
---```lua
---default = "dark"
---```
---@field devToolsTheme? "dark" | "light"
---What level of documentation to show in Hovers and Code Completion details. When `null`, defaults to 'full' when running locally and 'none' in remote workspaces. This setting is only supported for Dart SDKs after v2.18.
---@field documentation? "full" | "summary" | "none"
---How long (in ms) to delay sending editor location change events over the Dart Tooling Daemon. Increasing this results in less events which may improve performance, at the expensive of tools that use these events not updating as quickly after your location/editor changes (requires restart).
---
---```lua
---default = 200
---```
---@field dtdEditorActiveLocationDelay? integer
---Whether to use the new dynamic test tracking. This is a temporary setting that will be removed in an upcoming release.
---
---```lua
---default = true
---```
---@field dynamicTestTracking? boolean
---Whether to automatically commit the selected completion item when pressing certain keys such as . , ( and \[. This setting does not currently apply to LSP, see `#dart.previewCommitCharacters#`.
---@field enableCompletionCommitCharacters? boolean
---Whether to enable functionality for using Pub. Turning this setting off will prevent the extension from ever running pub and hide all commands relating to this. Use this if you are using an alternative package manager.
---
---```lua
---default = true
---```
---@field enablePub? boolean
---Whether to enable the [dart_style](https://pub.dev/packages/dart_style) formatter for Dart code.
---
---```lua
---default = true
---```
---@field enableSdkFormatter? boolean
---Whether to use code snippets from the Dart Analysis Server instead of those included in the extension. Server snippets are context and language-version aware and should be preferred.
---
---```lua
---default = true
---```
---@field enableServerSnippets? boolean
---Whether to include Dart and Flutter snippets in code completion.
---
---```lua
---default = true
---```
---@field enableSnippets? boolean
---Additional environment variables to be added to all Dart/Flutter processes spawned by the Dart and Flutter extensions.
---
---```lua
---default = {}
---```
---@field env? table
---Whether to evaluate getters in order to display them in debug views (such as the Variables, Watch and Hovers views).
---
---```lua
---default = true
---```
---@field evaluateGettersInDebugViews? boolean
---Whether to call toString() on objects when rendering them in debug views (such as the Variables, Watch and Hovers views). Only applies to views of 100 or fewer values for performance reasons.
---
---```lua
---default = true
---```
---@field evaluateToStringInDebugViews? boolean
---Whether to enable experimental (possibly unfinished or unstable) LSP handlers through DTD. This setting is passed to the analysis server in the connectToDtd request and therefore relies on DTD being supported and enabled for the analysis server (requires restart).
---@field experimentalDtdHandlers? boolean
---Whether to enable experimental (possibly unfinished or unstable) refactors on the lightbulb menu. This setting is intended for use by Dart Analysis Server developers or users that want to try out and provide feedback on in-progress refactors.
---@field experimentalRefactors? boolean
---The path to a low-traffic log file for basic extension and editor issues. Use `${workspaceName}` to insert the name of the current workspace in the file path. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows). Only the noted substitutions are supported, others will stay as-is.
---@field extensionLogFile? string
---Whether to automatically run `adb connect 100.115.92.2:5555` when spawning the Flutter daemon when running on Chrome OS.
---@field flutterAdbConnectOnChromeOs? boolean
---Additional args to pass to all `flutter` commands including `flutter daemon`. Do not use this to pass arguments to your Flutter app, use the `args` field in a `launch.json` or the `#dart.flutterRunAdditionalArgs#` setting.
---
---```lua
---default = {}
---```
---@field flutterAdditionalArgs? string[]
---Additional args to pass to the `flutter attach` command. Using the `args`/`toolArgs` fields in `launch.json` is usually better than this setting as this setting will apply to _all_ projects.
---
---```lua
---default = {}
---```
---@field flutterAttachAdditionalArgs? string[]
---The programming language to use for Android apps when creating new projects using the 'Flutter: Create New Project' command.
---
---```lua
---default = "kotlin"
---```
---@field flutterCreateAndroidLanguage? "java" | "kotlin"
---The programming language to use for iOS apps when creating new projects using the 'Flutter: Create New Project' command. This is only supported up until Flutter 3.22 after which it will be ignored.
---
---```lua
---default = "swift"
---```
---@field flutterCreateIOSLanguage? "objc" | "swift"
---The organization responsible for your new Flutter project, in reverse domain name notation (e.g. `com.google`). This string is used in Java package names and as prefix in the iOS bundle identifier when creating new projects using the 'Flutter: Create New Project' command.
---@field flutterCreateOrganization? string
---The platforms to enable for new projects created using the 'Flutter: Create New Project' command. If unset, all platforms will be enabled.
---@field flutterCreatePlatforms? string[]
---Whether to prompt for platforms when running 'Flutter: Create New Project'.
---
---```lua
---default = true
---```
---@field flutterCreatePromptForPlatforms? boolean
---Custom emulators to show in the emulator list for easier launching. If IDs match existing emulators returned by Flutter, the custom emulators will override them.
---
---```lua
---default = {}
---```
---@field flutterCustomEmulators? table[]
---The path to a log file for the `flutter daemon` service, which provides information about connected devices accessible from the status bar. Use `${workspaceName}` to insert the name of the current workspace in the file path. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows). Only the noted substitutions are supported, others will stay as-is.
---@field flutterDaemonLogFile? string
---Whether to automatically run the Generate Localizations command for Flutter apps when saving .arb files.
---
---```lua
---default = "never"
---```
---@field flutterGenerateLocalizationsOnSave? "never" | "manual" | "manualIfDirty" | "all" | "allIfDirty"
---Whether to show Flutter icons and colors in the editor gutter.
---
---```lua
---default = true
---```
---@field flutterGutterIcons? boolean
---Whether to automatically send a Hot Reload request to Flutter apps during a debug session when saving files. Dart apps are controlled by the hotReloadOnSave setting.
---
---```lua
---default = "manual"
---```
---@field flutterHotReloadOnSave? "never" | "manual" | "manualIfDirty" | "all" | "allIfDirty"
---Whether to remember which device was last (explicitly) selected for each project. When the remembered device is selected, it will prevent newly-connected mobile devices from being automatically selected (regardless of the `#dart.flutterSelectDeviceWhenConnected#` setting).
---
---```lua
---default = true
---```
---@field flutterRememberSelectedDevice? boolean
---Additional args to pass to the `flutter run` command. Using the `args`/`toolArgs` fields in `launch.json` is usually better than this setting as this setting will apply to _all_ projects.
---
---```lua
---default = {}
---```
---@field flutterRunAdditionalArgs? string[]
---The path to a directory to save Flutter screenshots. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows).
---@field flutterScreenshotPath? string
---The location of the Flutter SDK to use. If blank (or not a valid SDK), Dart Code will attempt to find it from the project directory, `FLUTTER_ROOT` environment variable and the `PATH` environment variable. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows).
---@field flutterSdkPath? string
---An array of paths that either directly point to a Flutter SDK or the parent directory of multiple Flutter SDKs that can be used for fast SDK switching. These paths are not used directly when searching for an SDK. When this setting is populated, the version number in the status bar can be used to quickly switch between SDKs. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows).
---
---```lua
---default = {}
---```
---@field flutterSdkPaths? string[]
---Whether to set newly connected devices as the current device in Flutter projects.
---
---```lua
---default = true
---```
---@field flutterSelectDeviceWhenConnected? boolean
---When to show the Flutter emulators. These are usually hidden for remote workspaces because it is usually not possible to see or interact with emulators in a remote session. If you are using remoting/containers in a way that you can interact with launched emulator processes, you may wish to set this to 'always'.
---
---```lua
---default = "local"
---```
---@field flutterShowEmulators? "local" | "always" | "never"
---When to show the Flutter headless web-server device. This requires using the Dart Debug extension for Chrome and is usually only used for remote environments where Chrome is not available such as browser/cloud-based IDEs (requires restart).
---
---```lua
---default = "remote"
---```
---@field flutterShowWebServerDevice? "remote" | "always"
---Additional args to pass to the `flutter test` command. Using the `args`/`toolArgs` fields in `launch.json` is usually better than this setting as this setting will apply to _all_ projects.
---
---```lua
---default = {}
---```
---@field flutterTestAdditionalArgs? string[]
---Sets the [Web renderer](https://flutter.dev/to/web-renderers) used for Flutter web apps.
---
---```lua
---default = "flutter-default"
---```
---@field flutterWebRenderer? "flutter-default" | "canvaskit" | "html" | "auto"
---Controls whether the Widget Preview is enabled, and if so whether it is started eagerly or lazily. Starting lazily will avoid consuming any resources until you first use the Widget Preview, but will cause the first load to be slower. Requires restart.
---
---```lua
---default = "startLazily"
---```
---@field flutterWidgetPreview? "startEagerly" | "startLazily" | "disabled"
---Where to display the Flutter Widget Preview. Requires restart.
---
---```lua
---default = "sidebar"
---```
---@field flutterWidgetPreviewLocation? "beside" | "sidebar"
---The path to a log file for the `flutter widget-preview` service. Use `${workspaceName}` to insert the name of the current workspace in the file path. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows). Only the noted substitutions are supported, others will stay as-is.
---@field flutterWidgetPreviewLogFile? string
---Get the Dart SDK path from a command. Useful when using tools such as direnv, asdf, mise... The command should exit with a 0 status code and it should print to the standard output just the path to the SDK. If the command fails (non zero exit or bad path), the extension will keep looking for other SDK paths. Some configuration examples can be found in: https://github.com/Dart-Code/Dart-Code/pull/5377
---@field getDartSdkCommand? table
---Get the Flutter SDK path from a command. Useful when using tools such as direnv, asdf, mise... The command should exit with a 0 status code and it should print to the standard output just the path to the SDK. If the command fails (non zero exit or bad path), the extension will keep looking for other SDK paths. Some configuration examples can be found in: https://github.com/Dart-Code/Dart-Code/pull/5377
---@field getFlutterSdkCommand? table
---Whether to automatically send a Hot Reload request to Dart apps during a debug session when saving files. Flutter apps are controlled by the flutterHotReloadOnSave setting.
---
---```lua
---default = "never"
---```
---@field hotReloadOnSave? "never" | "manual" | "manualIfDirty" | "all" | "allIfDirty"
---An array of glob patterns that should trigger Hot Reload when saved. The pattern is matched against the absolute path of the file. Use `**/assets/**` to trigger reloading for everything in the assets directory. Must always start with "**/" and use forward slashes (even on Windows) as backslashes are used for escaping.
---
---```lua
---default = {}
---```
---@field hotReloadPatterns? string[]
---Determines how to display Hot Restart and Hot Reload progress.
---
---```lua
---default = "notification"
---```
---@field hotReloadProgress? "notification" | "statusBar"
---Whether to include symbols from the SDK and package dependencies in the "Go to Symbol in Workspace" (`cmd/ctrl`+`T`) list. This can only be disabled when using Dart 3.0 / Flutter 3.10 or later.
---
---```lua
---default = true
---```
---@field includeDependenciesInWorkspaceSymbols? boolean
---Whether to show Inlay Hints. When set to `true`, enables all inlay hints with default settings. When set to `false`, disables all inlay hints. Can also be an object to configure individual hint types. Requires Dart 3.10.
---
---```lua
---default = true
---```
---@field inlayHints? boolean|table
---Whether to insert argument placeholders during code completions. This feature is automatically disabled when `enableCompletionCommitCharacters` is enabled.
---
---```lua
---default = true
---```
---@field insertArgumentPlaceholders? boolean
---Whether to enable the Interactive Forms feature used for accepting user input during refactors.
---
---```lua
---default = true
---```
---@field interactiveForms? boolean
---**LEGACY SETTING: Use `formatter.page_width` in `analysis_options.yaml` instead.**
---
---The maximum length of a line of code. This is used by the document formatter. If you change this value, you may wish to update `editor.rulers` (which draws vertical lines in the editor) in the `["dart"]` section of your settings to match.
---
---```lua
---default = 80
---```
---@field lineLength? integer
---Whether to enable [Snippet support in LSP TextEdits](https://github.com/rust-analyzer/rust-analyzer/blob/979e788957ced1957ee9ac1da70fb97abf9fe2b1/docs/dev/lsp-extensions.md#snippet-textedit).
---
---```lua
---default = true
---```
---@field lspSnippetTextEdits? boolean
---The maximum number of completion items to return from a code completion request. Updated results will be fetched as additional characters are typed. Lower numbers may improved performance. Defaults to a lower value in remote workspaces. Only affects LSP for > Dart SDK 2.17.
---@field maxCompletionItems? number
---The maximum length of a line in the log file. Lines longer than this will be truncated and suffixed with an ellipsis.
---
---```lua
---default = 2000
---```
---@field maxLogLineLength? number
---Whether to register the Dart SDK's MCP server with VS Code. This only applies to Dart SDKs >= v3.9.0 which added the server.
---
---```lua
---default = true
---```
---@field mcpServer? boolean
---The path to a log file for the Dart SDK's MCP server. Use `${workspaceName}` to insert the name of the current workspace in the file path. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows). Only the noted substitutions are supported, others will stay as-is.
---@field mcpServerLogFile? string
---A map of MCP tool names to booleans to enable/disable specific tools from the Dart MCP server. Tools set to `false` will be excluded (if supported). By default, tools that overlap with built-in VS Code functionality will be excluded.
---
---```lua
---default = {
---  analyze_files = false,
---  dart_fix = false,
---  dart_format = false,
---  run_tests = false
---}
---```
---@field mcpServerTools? table
---Whether to normalize file casings before sending them to the LSP server. This may fix issues with file_names lints not disappearing after renaming a file if the VS Code API continues to use the original casing.
---@field normalizeFileCasing? boolean
---Whether to show a notification the first few times an Analysis Server exception occurs.
---
---```lua
---default = true
---```
---@field notifyAnalyzerErrors? boolean
---Whether to use the --offline switch for commands like 'pub get' and 'Flutter: Create New Project'.
---@field offline? boolean
---**Deprecated**: Whether to ignore workspace folders and perform analysis based on the open files. This setting can make performance significantly worse when moving around a project and is not recommended.
---@field onlyAnalyzeProjectsWithOpenFiles? boolean
---Whether to automatically open DevTools at the start of a debug session. If embedded DevTools is enabled, this will launch the Widget Inspector embedded for Flutter projects, or launch DevTools externally in a browser for Dart projects.
---
---```lua
---default = "never"
---```
---@field openDevTools? "never" | "flutter" | "always"
---When to automatically switch focus to the test list (array to support multiple values).
---
---```lua
---default = { "testRunStart" }
---```
---@field openTestView? any[]
---EXPERIMENTAL: Whether to enable commit characters for the LSP server. In a future release, the dart.enableCompletionCommitCharacters setting will also apply to LSP.
---@field previewCommitCharacters? boolean
---EXPERIMENTAL: Whether to enable the [Flutter UI Guides preview](https://dartcode.org/releases/v3-1/#preview-flutter-ui-guides).
---@field previewFlutterUiGuides? boolean
---EXPERIMENTAL: Whether to enable custom tracking of Flutter UI guidelines (to hide some latency of waiting for the next Flutter Outline).
---@field previewFlutterUiGuidesCustomTracking? boolean
---Whether to perform hot reload on save based on a filesystem watcher for Dart files rather than using VS Code's `onDidSave` event. This allows reloads to trigger when external tools modify Dart source files.
---@field previewHotReloadOnSaveWatcher? boolean
---How many levels (including the workspace roots) down the workspace to search for Dart/Flutter projects. Increasing this number may help detect Flutter projects that are deeply nested in your workspace but slow down all operations that search for projects, including extension activation (requires restart).
---
---```lua
---default = 5
---```
---@field projectSearchDepth? number
---Whether to prompt to get/upgrade packages when opening a project with missing/out of date packages.
---
---```lua
---default = true
---```
---@field promptToGetPackages? boolean
---Whether to prompt before running if there are errors in your project. Test scripts will be excluded from the check unless they're the script being run.
---
---```lua
---default = true
---```
---@field promptToRunIfErrors? boolean
---Additional args to pass to all `pub` commands.
---
---```lua
---default = {}
---```
---@field pubAdditionalArgs? string[]
---Whether to rename files when renaming classes with matching names (for example renaming 'class Person' inside 'person.dart'). If set to 'prompt', will ask each time before renaming. If set to 'always', the file will automatically be renamed. This setting requires using LSP and a Dart SDK of at least v2.15.
---
---```lua
---default = "never"
---```
---@field renameFilesWithClasses? "never" | "prompt" | "always"
---Whether to run Pub operations across multiple folders concurrently.
---
---```lua
---default = true
---```
---@field runPubConcurrently? boolean
---Whether to automatically run `pub get` on nested projects above or below the one where the pubspec was changed.
---
---```lua
---default = "none"
---```
---@field runPubGetOnNestedProjects? "none" | "both" | "above" | "below"
---Whether to run `pub get` whenever `pubspec.yaml` is saved.
---
---```lua
---default = "always"
---```
---@field runPubGetOnPubspecChanges? "always" | "prompt" | "never"
---The location of the Dart SDK to use for analyzing and executing code. If blank (or not a valid SDK), Dart Code will attempt to find it from the `PATH` environment variable. When editing a Flutter project, the version of Dart included in the Flutter SDK is used in preference. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows).
---@field sdkPath? string
---An array of paths that either directly point to a Dart SDK or the parent directory of multiple Dart SDKs that can be used for fast SDK switching. These paths are not used directly when searching for an SDK. When this setting is populated, the SDK version number in the status bar can be used to quickly switch between SDKs. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows).
---
---```lua
---default = {}
---```
---@field sdkPaths? string[]
---Where to save SDK selections when using fast SDK switching from the language status entry.
---
---```lua
---default = "workspace"
---```
---@field sdkSwitchingTarget? "workspace" | "global"
---Whether to eagerly run DevTools for Flutter workspaces and share the spawned server with `flutter run`.
---
---```lua
---default = true
---```
---@field shareDevToolsWithFlutter? boolean
---Whether to show logs from the `dart:developer` `log()` function in the debug console.
---
---```lua
---default = true
---```
---@field showDartDeveloperLogs? boolean
---Whether to show CodeLens actions in the editor for opening online DartPad samples.
---
---```lua
---default = true
---```
---@field showDartPadSampleCodeLens? boolean
---Whether to show integers formatted as Hex in Variables, Watch, Debug Consoles.
---@field showDebuggerNumbersAsHex? boolean
---Whether to show DevTools buttons in the floating Debug toolbar.
---
---```lua
---default = true
---```
---@field showDevToolsDebugToolBarButtons? boolean
---Whether to show recommendations for other VS Code extensions based on the packages you're using.
---
---```lua
---default = true
---```
---@field showExtensionRecommendations? boolean
---Whether to show getters in order to display them in debug views (such as the Variables, Watch and Hovers views). If `evaluateGettersInDebugViews` is `true` getters will be eagerly evaluated, otherwise they will require clicking to evaluate.
---
---```lua
---default = true
---```
---@field showGettersInDebugViews? boolean
---Whether to show notifications for widget errors that offer Inspect Widget links. This requires that the `#dart.shareDevToolsWithFlutter#` setting is also enabled.
---
---```lua
---default = true
---```
---@field showInspectorNotificationsForWidgetErrors? boolean
---Whether to show CodeLens actions in the editor for quick running / debugging scripts with main functions.
---
---```lua
---default = true
---```
---@field showMainCodeLens? boolean
---Whether to show skipped tests in the test tree.
---
---```lua
---default = true
---```
---@field showSkippedTests? boolean
---Whether to show CodeLens actions in the editor for quick running / debugging tests.
---
---```lua
---default = true
---```
---@field showTestCodeLens? boolean
---Whether to show TODOs in the Problems list. Can be a boolean to enable all TODO comments (TODO, FIXME, HACK, UNDONE) or an array of which types to enable. Older Dart SDKs may not support some TODO kinds.
---
---```lua
---default = true
---```
---@field showTodos? boolean|string[]
---Whether to suppress test timeouts when running/debugging tests. To work properly this requires package:test version 1.20.1 or newer. For older versions, the default timeout will be increased to 1d but this will not affect tests that have explicit (non-factor) timeouts set with @timeout.
---
---```lua
---default = "debug"
---```
---@field suppressTestTimeouts? "never" | "debug" | "always"
---Additional args to pass to the `dart test` command. Using the `args`/`toolArgs` fields in `launch.json` is usually better than this setting as this setting will apply to _all_ projects.
---
---```lua
---default = {}
---```
---@field testAdditionalArgs? string[]
---How to identify tests when running/debugging. `name` is compatible with older versions of `package:test` but cannot handle some complex/dynamic test names. `line` will prefer to run tests by their line numbers (when available) and fall back to `name` only if the line number is unavailable.
---
---```lua
---default = "name"
---```
---@field testInvocationMode? "name" | "line"
---Additional args to pass to the `dart tooling-daemon` command that runs as a background service (requires restart).
---
---```lua
---default = {}
---```
---@field toolingDaemonAdditionalArgs? string[]
---The path to a log file for the `dart tooling-daemon` service, which coordinates between various Dart and Flutter tools and extensions. Use `${workspaceName}` to insert the name of the current workspace in the file path. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows). Only the noted substitutions are supported, others will stay as-is.
---@field toolingDaemonLogFile? string
---Whether to automatically update imports when moving or renaming files. Currently only supports single file moves / renames.
---
---```lua
---default = true
---```
---@field updateImportsOnRename? boolean
---Whether to use `flutter-dev` instead of `flutter`. This is a script for developers of the `flutter` tool to run from source and will run more slowly than the compiled tool.
---@field useFlutterDev? boolean
---Arguments to be passed to the Dart VM when running Dart CLI scripts/tests.
---
---These arguments appear after "dart" but before subcommands like "test":
---
---`dart (vmAdditionalArgs) test (toolArgs) test/my_test.dart (args)`
---
---```lua
---default = {}
---```
---@field vmAdditionalArgs? string[]
---Whether to show a warning when modifying files in the [system package cache](https://dart.dev/tools/pub/glossary#system-cache) directory.
---
---```lua
---default = true
---```
---@field warnWhenEditingFilesInPubCache? boolean
---Whether to show a warning when modifying files outside of the workspace.
---
---```lua
---default = true
---```
---@field warnWhenEditingFilesOutsideWorkspace? boolean
---**LEGACY SETTING: Only applies when using the legacy debug adapters.**
---
---The path to a log file for communication between Dart Code and the webdev daemon. This is useful when trying to diagnose issues with launching web apps. Use `${name}` in the log file name to insert the Debug Session name to prevent concurrent debug sessions overwriting each others logs. Use `${workspaceName}` to insert the name of the current workspace in the file path. Use `~` to insert the user's home directory (the path should then use `/` separators even on Windows). Only the noted substitutions are supported, others will stay as-is.
---@field webDaemonLogFile? string

---@class lspconfig.settings.dartls
---@field dart? _.lspconfig.settings.dartls.Dart
