File tree 1 file changed +30
-0
lines changed
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