dart_language_server 0.1.8

  • README.md
  • Installing
  • Versions
  • 50

Dart Language Server

Wraps the dart analysis server and adapts its default protocol to the language server protocol.


This server supports:

  • Diagnostic notifications
  • Completion suggestions
  • Jump to definition
  • List references
  • Hover information


pub global activate dart_language_server

If you have the pub bin directory in your path (you should be warned during the previous command if not) the server can be run as dart_language_server.

Integration with an editor depends on the details of the editor. All communication with this server is through stdin/stdout.


  • Add support for textDocument/documentSymbol.


  • Add textDocument/documentHighlights.
  • Bug Fix: Calling textDocument/references on non-identifiers won't freeze up all operations for that document.
  • Add a 500ms time for operations that lock per-file.


  • Chunk writes to stdout.


  • Tolerate keys explicitly set to null instead of omitted.


  • Bug Fix: Remove usage of new Function type syntax so to restore compatibility with the stable SDK.


  • Only treat pubspec.yaml and BUILD files as indications of a package root.
  • Only send empty diagnostics for a file if it is clearing previous diagnostics.


  • Stop adding rootUri as an analysis root. When there are nested directories that 'look like' a package this can be very large (like with the SDK repo) and given the other tweaks to how didOpen analysis roots are handled this shouldn't be as useful anymore.


  • Add fixes to available code actions.
  • Add support for textDocument/rename.
  • Run requests for the same file serially rather than allowing them to interleave. Fixes some cases where bad overlays can stick around.
  • Add 'Organize imports' to every code actions list.
  • Never offer "Convert into block documentation comment"
  • Add dart/getServerPort extension method.
  • Strip trailing comma from completions since there is no cursor moving support.


  • Only add rootUri as an analysis root when it or a parent seems to be a package directory.
  • Add support for code actions.


  • Bug Fix: Restore analyzer wire log.
  • Set the client rootUri as an analysis root. Resolves some cases where opening a file in a subdirectory can fail to find symbols from directories higher up.
  • Bug Fix: Set priority files by path rather than URI.
  • Add ability to pass arguments to the analysis server.


  • Add support for TextDocumentSyncKind.Incremental.
  • Only send changed diagnostics.


  • Reduce memory usage by caching file line lengths instead of complete content.
  • Always reread files that the editor doesn't have open rather than cache their line lengths.
  • Bug Fix: URI decode file paths.


  • Report 'Hint' type analysis as a 'Hint' rather than 'Info' diagnostic.
  • Use package:analysis_server_lib.


  • Add element description to hover message.


  • Bug Fix: Report support for hover during initialization.


  • Add textDocument/hover - finds the dartdoc string for an element.


  • Include definition in list of element references.


  • Bug Fix: Conform to spec for headers - use a space after the colon.


  • Improved CompletionItemKind for completion suggestions.


  • Bug fix: Allow the process to exit when the server is done.


  • Add more information in completion item detail field. Add full doc comment to documentation field.
  • Bug fix: Avoid duplicates in reference list when the same file shows up in multiple analysis roots.
  • Only write logs when 'verbose' or 'message' trace level is used.


  • Add logging of uncaught asynchronous error logs to a hardcoded path in /tmp
  • Bug Fix: Support forwarding diagnostics for files that haven't already been opened in the editor
  • Add support for textDocument/references call.


  • Fix a bug for clients which do not send a trace parameter to initialize call


  • Fix an error with sdk 1.22 where lineMode cannot be set on stdin when it is a pipe
  • Separate logs by client. Log names are prefixed with client's directory and pid
  • Fix a buf causing a stack trace when attempting to jump to a token with no definition
  • Ignore updates to old file versions


  • Add the initialize method for better spec compliance


  • Add support for GoToDefinition


  • Add (almost entirely untested) support for completion suggestions.
  • Correct Range translation for diagnostics which span lines.


  • Initial experimental version. Starts up the sdk analysis server and forwards file state messages and errors. Can be used to show file diagnostics in an editor.

1. Depend on it

Add this to your package's pubspec.yaml file:

  dart_language_server: "^0.1.8"

2. Install it

You can install packages from the command line:

with pub:

$ pub get

with Flutter:

$ flutter packages get

Alternatively, your editor might support pub get or packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:dart_language_server/dart_language_server.dart';
Version Uploaded Documentation Archive
0.1.8 Jan 25, 2018 Go to the documentation of dart_language_server 0.1.8 Download dart_language_server 0.1.8 archive
0.1.7 Jan 16, 2018 Go to the documentation of dart_language_server 0.1.7 Download dart_language_server 0.1.7 archive
0.1.6 Jan 12, 2018 Go to the documentation of dart_language_server 0.1.6 Download dart_language_server 0.1.6 archive
0.1.5+2 Jan 10, 2018 Go to the documentation of dart_language_server 0.1.5+2 Download dart_language_server 0.1.5+2 archive
0.1.5+1 Jan 9, 2018 Go to the documentation of dart_language_server 0.1.5+1 Download dart_language_server 0.1.5+1 archive
0.1.5 Jan 7, 2018 Go to the documentation of dart_language_server 0.1.5 Download dart_language_server 0.1.5 archive
0.1.4 Jan 4, 2018 Go to the documentation of dart_language_server 0.1.4 Download dart_language_server 0.1.4 archive
0.1.3 Jan 1, 2018 Go to the documentation of dart_language_server 0.1.3 Download dart_language_server 0.1.3 archive
0.1.2 Dec 23, 2017 Go to the documentation of dart_language_server 0.1.2 Download dart_language_server 0.1.2 archive
0.1.1 Nov 25, 2017 Go to the documentation of dart_language_server 0.1.1 Download dart_language_server 0.1.1 archive

All 28 versions...


This feature is new.
We welcome feedback.
More details: scoring.

We analyzed this package, and provided a score, details, and suggestions below.

  • completed on Feb 3, 2018
  • Dart: 2.0.0-dev.20.0
  • pana: 0.10.1


Describes how popular the package is relative to other packages. [more]
0 / 100
Code health derived from static analysis. [more]
100 / 100
Reflects how tidy and up-to-date the package is. [more]
100 / 100
Overall score:
Weighted score of the above. [more]


Detected platforms: Flutter, other

Primary library: package:dart_language_server/dart_language_server.dart with components: io.


  • Package is pre-v1 release.

    While there is nothing inherently wrong with versions of 0.*.*, it usually means that the author is still experimenting with the general direction API.

  • Maintain an example.

    Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use dart_language_server.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev <2.0.0
analysis_server_lib ^0.1.2+1 0.1.2+2
args ^1.0.0 1.3.0
async ^1.11.3 1.13.3 2.0.3
json_rpc_2 ^2.0.3 2.0.7
logging ^0.11.3 0.11.3+1
meta ^1.1.0 1.1.2
path ^1.4.1 1.5.1
pool ^1.3.0 1.3.4
stream_channel ^1.5.0 1.6.3
stream_transform ^0.0.3 0.0.10
Transitive dependencies
collection 1.14.5
stack_trace 1.9.1
Dev dependencies
build_runner ^0.7.0
message_builder ^0.1.3
test ^0.12.18