Giter Club home page Giter Club logo

Comments (6)

ostephens avatar ostephens commented on June 25, 2024

I wonder if this would or could open up options for supporting GREL syntax highlighting and/or help in the UI? See #153

from openrefine.

wetneb avatar wetneb commented on June 25, 2024

Good point! Having a clear definition of the grammar would likely make syntax highlighting easier, and perhaps auto-completion too. Assuming we can use the same sort of grammar definition within some JS library which would implement a client-side parser (which I haven't looked into).

from openrefine.

tfmorris avatar tfmorris commented on June 25, 2024

I have fixes in hand for all of the bugs/features listed. I've been kind of reluctant to put too much effort into getting them integrated because of the difficulty with #3257 which I abandoned.

Having a formal grammar would be a good start, but it would involve more than just codifying the current behavior. There are a bunch of tests with comments like "This seems wrong, but it's how the current code works" that should probably be evaluated and decided on.

I think syntax highlighting, code completion, etc would be implemented via a language server and the Language Server Protocol. I don't know if it works off the same type of grammar definition that you would feed a parser generator.

I guess I don't have a strong opinion for or against, but I'd add to the downsides that a new parser implementation would be a likely source of compatibility bugs.

from openrefine.

tfmorris avatar tfmorris commented on June 25, 2024

p.s. in the context of GSoC, it could be positioned as an exploratory investigation / prototyping exercise, rather than something which is intended to produce production code in one go.

from openrefine.

wetneb avatar wetneb commented on June 25, 2024

Thanks for the feedback!

I agree it's not just about codifying the existing behavior. From my perspective I think it would totally be expected that the new parser would differ from the existing one in certain ways, but those ways should be clear improvements or bug fixes over the existing one.

The Language Server Protocol looks like an interesting standard. I like the idea and the fact that it is language independent would intuitively make it a good candidate to enable features for all our expression languages in a unified way. But implementing it would likely require a lot more work as it seems to be much more ambitious in the features it exposes. Some of them, such as enabling refactoring actions, would probably be of marginal interest for an expression editor.

from openrefine.

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.