Giter Site home page Giter Site logo

Deduplicate files about codespan HOT 4 CLOSED

jyn514 avatar jyn514 commented on June 4, 2024
Deduplicate files

from codespan.

Comments (4)

brendanzab avatar brendanzab commented on June 4, 2024

I think the original intention was for users to keep track of the FileId themselves, and use that to refer to and update files, but I understand that might be a bit confusing for people. Yet another reason why I think that maintaining our own file database is a bad idea… I think we should support single file reporting easily out of the box, and have an example of how to extend this to work with multiple files, but that's it. That way people can customise things to their use case πŸ€”

from codespan.

jyn514 avatar jyn514 commented on June 4, 2024

Well, I could be including the same file more than once, if this wasn't part of codespan I'd have to implement it myself. e.g.

main.c:

#include <stdio.h>
#include <limits.h>

stdio.h: #include <limits.h>

from codespan.

icsaszar avatar icsaszar commented on June 4, 2024

Now that the Files trait exists as of #164 users should be implement their own solutions and decide if they need deduplication or not, but I agree that supporting single file use cases would be very nice (especially for codespan-lsp since there a simple Vec for a file database wouldn't really cut it).

A bit unrelated, but I think it would be better if it was in the codespan crate, so if I only use codespan and codespan-lsp I don't need codespan-reporting. I'm working on a language server with tree-sitter and I need a way to convert points to byte positions for Tree::edit().

from codespan.

brendanzab avatar brendanzab commented on June 4, 2024

I'm going to say that this should be handled in a custom implementation of codespan_reporting::Files. I've tried to make implementing these relatively painless, but if you think I can do better, let me know!

For users of codespan, you can use the Files::update function to update files in-place. You will have to keep a hold of the FileId though - the file name is used purely for display purposes.

from codespan.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.