File tree Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Original file line number Diff line number Diff line change 1+ # line-index
2+
3+ This crate is developed as part of ` rust-analyzer ` .
4+
5+ line-index is a library to convert between text offsets and corresponding line/column coordinates.
6+
7+ ## Installation
8+
9+ To add this crate to a project simply run ` cargo add line-index ` .
10+
11+ ## Usage
12+
13+ The main structure is ` LineIndex ` .
14+
15+ It is constructed with an UTF-8 string, but also supports UTF-16 and UTF-32 offsets.
16+
17+ ### Example
18+
19+ ``` rust
20+ use line_index :: LineIndex ;
21+
22+ let line_index = LineIndex :: new (" This is a\ n multi-line\ n text." );
23+ line_index . line_col (3. into ()); // LineCol { line: 0, col: 3 }
24+ line_index . line_col (13. into ()); // LineCol { line: 1, col: 3 }
25+ line_index . offset (LineCol { line : 2 , col : 3 }); // Some (24)
26+ ```
27+
28+ ## SemVer
29+
30+ This crate uses [ semver] ( https://semver.org/ ) versioning.
You can’t perform that action at this time.
0 commit comments