Comments (4)
Yeah, it's a bit confusing! You first need a CodeMap
, and then a FileMap
, and then get indices from there. I've been thinking of ways to make the simple cases easier for some time now seeing as it keeps tripping people up. 😬
Would definitely appreciate some help with the docs! You might also be interested in #52 which talks about some simplifications that we might be able to do as well. I'm also available to chat on https://gitter.im/codespan-rs/Lobby as well.
from codespan.
I get how it works now, the example could maybe be simplified to something like:
use {
codespan::{ByteIndex, ByteSpan, CodeMap},
codespan_reporting::{
emit,
termcolor::{ColorChoice, StandardStream},
Diagnostic, Label, Severity,
},
};
const SOURCE: &'static str = "fn main() { 1 + '3' }";
fn main() {
let mut code_map = CodeMap::new();
code_map.add_filemap("virtual_file".into(), SOURCE.to_string());
let error = Diagnostic::new(Severity::Error, "Unexpected type in `+` application")
.with_label(
Label::new_primary(ByteSpan::new(ByteIndex(13), ByteIndex(19)))
.with_message("Expected integer but got char"),
)
.with_code("E0001");
let writer = StandardStream::stderr(ColorChoice::Auto);
emit(&mut writer.lock(), &code_map, &error).unwrap();
println!();
}
from codespan.
Codespan is a lot less tricky to understand now that we don't use global byte indices. If you have any other problems feel free to make some more issues!
from codespan.
Awesome thanks 😊
from codespan.
Related Issues (20)
- Add an option to render more context around lines. HOT 11
- Order-preserving error reporting HOT 1
- Position is off by 2 characters with some strings HOT 6
- Add the ability to make multiline suggestions/notes HOT 4
- release tracking issue HOT 5
- codespan-reporting::Files not implemented for codespan::Files<String> HOT 3
- Display is broken on some platforms HOT 5
- Should non-`term` rendering backends live here? HOT 1
- Cut codespan release with fix? HOT 5
- Use of moved value: `blue` HOT 4
- Accessor for the location of a diagnostic HOT 3
- Implement `Ord` for `Severity` HOT 3
- Are there C bindings for codespan? HOT 2
- How to report inside `Display` implementation? HOT 3
- The destiny of `codespan` (and `codespan-reporting`)
- Make some functions `const`
- Request a new releases for including context before and after a label HOT 6
- Error when an error spans until EOF
- Wrong outer padding
- Move termcolor behind a feature flag
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from codespan.