[source_span] Add a test covering the highlighting of non-contiguous spans
I ported this package to PHP as part of the scssphp project (as I'm porting dart-sass which uses this package). When collecting code coverage for the testsuite of my PHP port, I noticed that the code dealing with non-contiguous lines was not covered by the tests. This PR adds a test covering this case.
- [x] I’ve reviewed the contributor guide and applied the relevant portions to this PR.
Contribution guidelines:
- See our contributor guide for general expectations for PRs.
- Larger or significant changes should be discussed in an issue before creating a PR.
- Contributions to our repos should follow the Dart style guide and use
dart format. - Most changes should add an entry to the changelog and may need to rev the pubspec package version.
- Changes to packages require corresponding tests.
Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.
Originally submitted as https://github.com/dart-lang/source_span/pull/116
PR Health
Breaking changes :heavy_check_mark:
| Package | Change | Current Version | New Version | Needed Version | Looking good? |
|---|---|---|---|---|---|
| source_span | None | 1.10.1 | 1.10.1 | 1.10.1 | :heavy_check_mark: |
Changelog Entry :heavy_check_mark:
| Package | Changed Files |
|---|
Changes to files need to be accounted for in their respective changelogs.
Coverage :heavy_check_mark:
| File | Coverage |
|---|
This check for test coverage is informational (issues shown here will not fail the PR).
API leaks :heavy_check_mark:
The following packages contain symbols visible in the public API, but not exported by the library. Export these symbols or remove them from your publicly visible API.
| Package | Leaked API symbols |
|---|
License Headers :heavy_check_mark:
// Copyright (c) 2025, 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.
| Files |
|---|
| no missing headers |
All source files should start with a license header.
Unrelated files missing license headers
| Files |
|---|
| pkgs/bazel_worker/benchmark/benchmark.dart |
| pkgs/bazel_worker/example/client.dart |
| pkgs/bazel_worker/example/worker.dart |
| pkgs/benchmark_harness/integration_test/perf_benchmark_test.dart |
| pkgs/boolean_selector/example/example.dart |
| pkgs/clock/lib/clock.dart |
| pkgs/clock/lib/src/clock.dart |
| pkgs/clock/lib/src/default.dart |
| pkgs/clock/lib/src/stopwatch.dart |
| pkgs/clock/lib/src/utils.dart |
| pkgs/clock/test/clock_test.dart |
| pkgs/clock/test/default_test.dart |
| pkgs/clock/test/stopwatch_test.dart |
| pkgs/clock/test/utils.dart |
| pkgs/coverage/lib/src/coverage_options.dart |
| pkgs/coverage/test/collect_coverage_config_test.dart |
| pkgs/coverage/test/config_file_locator_test.dart |
| pkgs/html/example/main.dart |
| pkgs/html/lib/dom.dart |
| pkgs/html/lib/dom_parsing.dart |
| pkgs/html/lib/html_escape.dart |
| pkgs/html/lib/parser.dart |
| pkgs/html/lib/src/constants.dart |
| pkgs/html/lib/src/encoding_parser.dart |
| pkgs/html/lib/src/html_input_stream.dart |
| pkgs/html/lib/src/list_proxy.dart |
| pkgs/html/lib/src/query_selector.dart |
| pkgs/html/lib/src/token.dart |
| pkgs/html/lib/src/tokenizer.dart |
| pkgs/html/lib/src/treebuilder.dart |
| pkgs/html/lib/src/utils.dart |
| pkgs/html/test/dom_test.dart |
| pkgs/html/test/parser_feature_test.dart |
| pkgs/html/test/parser_test.dart |
| pkgs/html/test/query_selector_test.dart |
| pkgs/html/test/selectors/level1_baseline_test.dart |
| pkgs/html/test/selectors/level1_lib.dart |
| pkgs/html/test/selectors/selectors.dart |
| pkgs/html/test/support.dart |
| pkgs/html/test/tokenizer_test.dart |
| pkgs/pubspec_parse/test/git_uri_test.dart |
| pkgs/stack_trace/example/example.dart |
| pkgs/watcher/test/custom_watcher_factory_test.dart |
| pkgs/yaml_edit/example/example.dart |
Package publishing
| Package | Version | Status | Publish tag (post-merge) |
|---|---|---|---|
| package:bazel_worker | 1.1.3 | already published at pub.dev | |
| package:benchmark_harness | 2.3.1 | already published at pub.dev | |
| package:boolean_selector | 2.1.2 | already published at pub.dev | |
| package:browser_launcher | 1.1.3 | already published at pub.dev | |
| package:cli_config | 0.2.1-wip | WIP (no publish necessary) | |
| package:cli_util | 0.4.2 | already published at pub.dev | |
| package:clock | 1.1.2 | already published at pub.dev | |
| package:code_builder | 4.10.2-wip | WIP (no publish necessary) | |
| package:coverage | 1.12.0 | already published at pub.dev | |
| package:csslib | 1.0.2 | already published at pub.dev | |
| package:extension_discovery | 2.1.0 | already published at pub.dev | |
| package:file | 7.0.2-wip | WIP (no publish necessary) | |
| package:file_testing | 3.1.0-wip | WIP (no publish necessary) | |
| package:glob | 2.1.3 | already published at pub.dev | |
| package:graphs | 2.3.3-wip | WIP (no publish necessary) | |
| package:html | 0.15.5+1 | already published at pub.dev | |
| package:io | 1.1.0-wip | WIP (no publish necessary) | |
| package:json_rpc_2 | 3.0.3 | already published at pub.dev | |
| package:markdown | 7.3.1-wip | WIP (no publish necessary) | |
| package:mime | 2.0.0 | already published at pub.dev | |
| package:oauth2 | 2.0.4-wip | WIP (no publish necessary) | |
| package:package_config | 2.3.0-wip | WIP (no publish necessary) | |
| package:pool | 1.5.2-wip | WIP (no publish necessary) | |
| package:pub_semver | 2.2.0 | already published at pub.dev | |
| package:pubspec_parse | 1.5.0 | already published at pub.dev | |
| package:source_map_stack_trace | 2.1.3-wip | WIP (no publish necessary) | |
| package:source_maps | 0.10.14-wip | WIP (no publish necessary) | |
| package:source_span | 1.10.1 | already published at pub.dev | |
| package:sse | 4.1.8 | ready to publish | sse-v4.1.8 |
| package:stack_trace | 1.12.1 | already published at pub.dev | |
| package:stream_channel | 2.1.4 | already published at pub.dev | |
| package:stream_transform | 2.1.2-wip | WIP (no publish necessary) | |
| package:string_scanner | 1.4.1 | already published at pub.dev | |
| package:term_glyph | 1.2.3-wip | WIP (no publish necessary) | |
| package:test_reflective_loader | 0.2.3 | already published at pub.dev | |
| package:timing | 1.0.2 | already published at pub.dev | |
| package:unified_analytics | 8.0.1 | already published at pub.dev | |
| package:watcher | 1.1.1 | already published at pub.dev | |
| package:yaml | 3.1.3 | already published at pub.dev | |
| package:yaml_edit | 2.2.2 | already published at pub.dev |
Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.
Is there any chance to get a review on this PR ? I should be quite simple. /cc @devoncarew
Looks like the hope in https://github.com/dart-archive/source_span/pull/116#issuecomment-2535556896 did not work to avoid forgotten PRs thanks to the mono-repo.