# Source map [![crates.io badge](https://img.shields.io/crates/v/source-map?style=flat-square)](https://crates.io/crates/source-map) [![docs.rs badge](https://img.shields.io/docsrs/source-map?style=flat-square)](https://docs.rs/source-map/latest) 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](https://docs.rs/crate/lsp-types/latest) - 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](https://github.com/kaleidawave/source-map/actions/workflows/example.yml). ```shell 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](https://evanw.github.io/source-map-visualization/)