Comments (2)
I too think that 3 is appealing. I have done something like 2 in the past to reduce the size of the input needed and it worked ok. I think that the main benefit of 3 is that the rule could make use of what it needs, rather than needing to declare what it needs upfront.
from regal.
Closing this as done, as we've largely settled on option #3 here. There are some limitations to the approach where we'll still need to perform multiple walk
s to satisfy some rule, but it's probably the best we can do for now.
If OPA ever gets support for dynamically invoked functions, we could investigate the cost of doing a single walk across the AST, and have each rule be a function that got invoked only when it's conditions were met, like "check prefer_snake_case whenever a variable declaration is encountered"... but it'd require that function invocations are cheap enough, and I'm not sure that would be the case. Doing this today with rules and with
makes linting take minutes rather than seconds.
from regal.
Related Issues (20)
- Reported parse error from empty module persists even after file is deleted HOT 1
- False positive: style/external-reference HOT 2
- Installing OPA - extension server exited HOT 20
- Fix CI to build for macos/amd64
- Better handling of CRLF HOT 2
- Implement signature help
- Unparseable document freezes inlay hints
- rule: Require ordering of default rule before other rule heads
- Add documentation template for new rules created with `regal new`
- Document symbol for rule erroneously marked as "constant rule" when using default assignment
- rule: add single file version of impossible-not rule
- lsp: parse error should highlight the whole line
- Regal's parser should be made schema-aware HOT 2
- Inconsistencies with external-reference warning HOT 2
- Rule to not use `=` HOT 2
- Add completion of references
- Add completion of `input`
- Add new OPA errors docs for more parse error classes
- Find definition doesn't honor ignore directive
- bugs/redundant-existence-check does not consider "with" HOT 2
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 regal.