Giter Club home page Giter Club logo

Comments (6)

shwestrick avatar shwestrick commented on May 25, 2024

Yes, that should be easy to set up! Although, smlfmt should already exit with a nonzero return code when it fails.

Could you show me the command you tried and what return code you got?

from smlfmt.

shwestrick avatar shwestrick commented on May 25, 2024

Oh wait, or maybe you're looking for a mode to check if a file has previously already been formatted by smlfmt?

from smlfmt.

ratsclub avatar ratsclub commented on May 25, 2024

Could you show me the command you tried and what return code you got?

  • smlfmt --preview-only src/railroad.sml: doesn't exit with a nonzero return code.
  • smlfmt src/railroad.sml: asks for [y/N], I don't think I can use it on CI

from smlfmt.

shwestrick avatar shwestrick commented on May 25, 2024

Hmm sorry, I'm still confused about what you're asking for.

It looks like you're trying to reformat src/railroad.sml and check whether or not it succeeds (e.g., check if there is an SML syntax error). If smlfmt --preview-only src/railroad.sml doesn't exit with nonzero return, then it succeeded.

Maybe you're trying to do something else? Are you trying to check if src/railroad.sml has already been formatted in the past? One way of doing this would be to run smlfmt on it again, and see if the result is different:

$ cat src/railroad.sml | smlfmt --stdio | diff src/railroad.sml -

This command has returncode 0 if src/railroad.sml has already previously been formatted, and returncode 1 otherwise.

from smlfmt.

ratsclub avatar ratsclub commented on May 25, 2024

Oh, yes! This is exactly what I wanted, I'm sorry if I was not clear enough. The idea would be to feed smlfmt my *.mlb file and have it return an error code if the code is not formatted. Do you know if I can do something like this?

from smlfmt.

shwestrick avatar shwestrick commented on May 25, 2024

Ah I see! I don't think it would be too difficult to implement, but realistically I probably won't have time to get to it right away.

Any chance you're interested in giving it a shot? I'd be happy to review a PR.

Here's some thoughts:

  • We would need to add a new command-line flag to smlfmt. Not sure what a good name would be; open to suggestions.
  • I think we would only need to modify formatOneSML.
    • When you pass a .mlb, it ultimately calls this function on every .sml file.
  • Idea would be: if the flag is turned on, run the formatter as normal, and then check if there is a difference between the new formatted code and the original contents of the file.
    • If there is a difference, then exit early with an error.
    • If no difference, then silently continue (i.e., don't do anything else for this .sml file)
    • This would find the first "offending" file. Alternatively, it wouldn't be too difficult to accumulate a list of offending files and print them all out.

from smlfmt.

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.