source_span 1.8.0-nullsafety source_span: ^1.8.0-nullsafety copied to clipboard
A library for identifying source spans and locations.
1.8.0-nullsafety #
- Migrate to null safety.
- Apis have been migrated to reflect the existing assumptions in the code and are not expected to be breaking.
1.7.0 #
- Add a
SourceSpan.subspan()
extension method which returns a slice of an existing source span.
1.6.0 #
- Add support for highlighting multiple source spans at once, providing more
context for span-based messages. This is exposed through the new APIs
SourceSpan.highlightMultiple()
andSourceSpan.messageMultiple()
(both extension methods),MultiSourceSpanException
, andMultiSourceSpanFormatException
.
1.5.6 #
- Fix padding around line numbers that are powers of 10 in
FileSpan.highlight()
.
1.5.5 #
- Fix a bug where
FileSpan.highlight()
would crash for spans that covered a trailing newline and a single additional empty line.
1.5.4 #
FileSpan.highlight()
now properly highlights point spans at the beginning of lines.
1.5.3 #
- Fix an edge case where
FileSpan.highlight()
would put the highlight indicator in the wrong position when highlighting a point span after the end of a file.
1.5.2 #
-
SourceFile.span()
now goes to the end of the file by default, rather than ending one character before the end of the file. This matches the documented behavior. -
FileSpan.context
now includes the full line on which the span appears for empty spans at the beginning and end of lines. -
Fix an edge case where
FileSpan.highlight()
could crash when highlighting a span that ended with an empty line.
1.5.1 #
-
Produce better source span highlights for multi-line spans that cover the entire last line of the span, including the newline.
-
Produce better source span highlights for spans that contain Windows-style newlines.
1.5.0 #
-
Improve the output of
SourceSpan.highlight()
andSourceSpan.message()
:- They now include line numbers.
- They will now print every line of a multiline span.
- They will now use Unicode box-drawing characters by default (this can be
controlled using
term_glyph.ascii
).
1.4.1 #
- Set max SDK version to
<3.0.0
, and adjust other dependencies.
1.4.0 #
-
The
new SourceFile()
constructor is deprecated. This constructed a source file from a string's runes, rather than its code units, which runs counter to the way Dart handles strings otherwise. Thenew StringFile.fromString()
constructor (see below) should be used instead. -
The
new SourceFile.fromString()
constructor was added. This works likenew SourceFile()
, except it uses code units rather than runes. -
The current behavior when characters larger than
0xFFFF
are passed tonew SourceFile.decoded()
is now considered deprecated.
1.3.1 #
- Properly highlight spans for lines that include tabs with
SourceSpan.highlight()
andSourceSpan.message()
.
1.3.0 #
- Add
SourceSpan.highlight()
, which returns just the highlighted text that would be included inSourceSpan.message()
.
1.2.4 #
- Fix a new strong mode error.
1.2.3 #
- Fix a bug where a point span at the end of a file without a trailing newline would be printed incorrectly.
1.2.2 #
- Allow
SourceSpanException.message
,SourceSpanFormatException.source
, andSourceSpanWithContext.context
to be overridden in strong mode.
1.2.1 #
- Fix the declared type of
FileSpan.start
andFileSpan.end
. In 1.2.0 these were mistakenly changed fromFileLocation
toSourceLocation
.
1.2.0 #
-
Deprecated: Extending
SourceLocation
directly is deprecated. Instead, extend the newSourceLocationBase
class or mix in the newSourceLocationMixin
mixin. -
Dramatically improve the performance of
FileLocation
.
1.1.6 #
- Optimize
getLine()
inSourceFile
when repeatedly called.
1.1.5 #
- Fixed another case in which
FileSpan.union
could throw an exception for external implementations ofFileSpan
.
1.1.4 #
- Eliminated dart2js warning about overriding
==
, but nothashCode
.
1.1.3 #
-
FileSpan.compareTo
,FileSpan.==
,FileSpan.union
, andFileSpan.expand
no longer throw exceptions for external implementations ofFileSpan
. -
FileSpan.hashCode
now fully agrees withFileSpan.==
.
1.1.2 #
- Fixed validation in
SourceSpanWithContext
to allow multiple occurrences oftext
withincontext
.
1.1.1 #
- Fixed
FileSpan
's context to include the full span text, not just the first line of it.
1.1.0 #
- Added
SourceSpanWithContext
: a span that also includes the full line of text that contains the span.
1.0.3 #
- Cleanup equality operator to accept any Object rather than just a
SourceLocation
.
1.0.2 #
-
Avoid unintentionally allocating extra objects for internal
FileSpan
operations. -
Ensure that
SourceSpan.operator==
works on arbitraryObject
s.
1.0.1 #
- Use a more compact internal representation for
FileSpan
.
1.0.0 #
This package was extracted from the
source_maps
package, but the
API has many differences. Among them:
-
Span
has been renamed toSourceSpan
andLocation
has been renamed toSourceLocation
to clarify their purpose and maintain consistency with the package name. Likewise,SpanException
is nowSourceSpanException
andSpanFormatException
is notSourceSpanFormatException
. -
FixedSpan
andFixedLocation
have been rolled into theSpan
andLocation
classes, respectively. -
SourceFile
is more aggressive about validating its arguments. Out-of-bounds lines, columns, and offsets will now throw errors rather than be silently clamped. -
SourceSpan.sourceUrl
,SourceLocation.sourceUrl
, andSourceFile.url
now returnUri
objects rather thanString
s. The constructors allow eitherString
s orUri
s. -
Span.getLocationMessage
andSourceFile.getLocationMessage
are nowSourceSpan.message
andSourceFile.message
, respectively. Rather than taking both auseColor
and acolor
parameter, they now take a singlecolor
parameter that controls both whether and which color is used. -
Span.isIdentifier
has been removed. This property doesn't make sense outside of a source map context. -
SourceFileSegment
has been removed. This class wasn't widely used and was inconsistent in its choice of which parameters were considered relative and which absolute.