#source-file #maps #compiler #position #representation #map #section

source-map

Utilities for building source maps (v3) for a compiler

28 releases (14 breaking)

0.15.0 May 21, 2024
0.14.10 Feb 10, 2024
0.14.9 Jan 19, 2024
0.14.7 Nov 24, 2023
0.2.0 Jul 26, 2021

#467 in Web programming

Download history 2/week @ 2024-07-22 164/week @ 2024-07-29 78/week @ 2024-08-05 37/week @ 2024-08-12 14/week @ 2024-08-19 70/week @ 2024-08-26 73/week @ 2024-09-02 14/week @ 2024-09-09 7/week @ 2024-09-16 27/week @ 2024-09-23 32/week @ 2024-09-30 146/week @ 2024-10-07 7/week @ 2024-10-14 7/week @ 2024-10-21 10/week @ 2024-10-28 21/week @ 2024-11-04

162 downloads per month
Used in 6 crates (4 directly)

MIT license

49KB
1K SLoC

Source map

crates.io badge docs.rs badge

Utilities for building source maps (v3), handling source location representations and source files.

Includes

  • SpanWithSource, a structure which represents a section of a specific source
  • SpanWithoutSource, a structure which represents a general section without a specific source
  • SourceId, a identifier for a source file
  • StringWithOptionalSourceMap, along with the ToString trait makes generating string representations with and adding source markings trivial
  • A lsp-types-morphisms feature which allows conversion of position type to lsp-types
  • The MapFileStore struct and the FileSystem trait for storing source files and other information
  • Utilities for turning byte indices into line and column information

Source map generation example

See generated example on GitHub actions.

git clone https://github.com/kaleidawave/source-map
cd source-map
cargo run -F inline-source-map --example source_map_creation -- LICENSE LICENSE.map

View pairings generated by uploading LICENSE.map to evan w's source map visualizer

Dependencies

~0–7.5MB
~50K SLoC