Comments (6)
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.
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.
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.
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.
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)
- Null pointer exception in Wikibase edits operation
- Require Developer Certificate of Origin (DCO) signoff on all commits? HOT 1
- Sample extension's About page errors HOT 3
- MarcImporterTests inherits from XmlImporterTests
- Inconsistent location of Extract / Apply button HOT 2
- Column menu button icon has acquired a hard grey box HOT 5
- Refactor command class hierarchy to better support engine independent commands HOT 1
- Create vs. Edit Schema HOT 3
- cell.cross returns Error: “java.lang.NullPointerException” HOT 5
- JSON parse errors not reported to the user
- The error dialog box cannot be closed after an error is reported after creating the project. HOT 3
- New column is not shown in Wikibase schema unless application is reloaded
- Impossible to load a project again after manually matching reconciled cells with errors
- Remove the Denormalize operation from the backend
- Improve test coverage of our CalendarParser Java class HOT 6
- Enable source data display for JSON parser
- Generate deterministic project IDs correlated with creation date HOT 6
- Bundled extensions should declare slf4j and Jackson as "provided" HOT 5
- MacOS builds are not published as snapshot releases anymore HOT 1
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 openrefine.