-
-
Notifications
You must be signed in to change notification settings - Fork 370
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Metaprogramming interface to tactics #524
Closed
Closed
Changes from all commits
Commits
Show all changes
66 commits
Select commit
Hold shift + click to select a range
3527cd2
WIP recursion
isovector da2d729
Better scoring heuristic
isovector b805aa9
Don't trace scoring
isovector 1dbec5b
Add fromMaybe test
isovector 803c8d7
wtf; recursion stack frame doesnt seem to work
isovector fe468f3
Better debugging and smarter apply'
isovector 68cda51
filterT
isovector a480c19
Fix FilterT
TOTBWF 8fa2a83
derive foldr
isovector 6dee3a2
Merge branch 'recursion-frame-wtf' of github.com:isovector/haskell-la…
isovector a6e40e1
Test for foldr
isovector 7981a71
Fix JoinCont test
isovector 69d122b
Use generic-lens
isovector a781803
Positionally-aware recursion
isovector 60ebb74
almost generate fmap for binary tree
isovector 9714f7e
timeout tactic if it's too slow
isovector 3ac43d8
Simpler recursive hypothesis
isovector 89a488a
Remove current position from jdg
isovector c774fe1
Restrict homomorphic splits to positional args
isovector 4b682a2
Silence a trace
isovector ab2e592
Better data provenance
isovector 5ddd360
Support multiple positional binding sets
isovector a3dc935
Prune destructing on pattern vals if they don't introduce new types
isovector abd365f
Fix pruning to actually run the tactic
isovector 8d53032
Count duplicates
isovector b8b0d0d
?
isovector ec13e9f
Don't allow splitting if it doesn't buy you anything
isovector 683c791
Known fmap strategy
isovector 4114d03
Commit to a known solution if one exists
isovector 6ff6504
Compute top level position vals
isovector 29858b0
Add tophole to jdg
isovector 929bcc9
Cleanup ugly hack in intros! \o/
isovector 3272a1e
Fix improperly pruning split of split
isovector 30c9b58
Tracing
isovector 6b8a0b9
unpack introduced bindings
isovector 872cfec
Slightly better format
isovector 8a416d9
compress ppr tree
isovector 621a04d
Merge pull request #26 from isovector/tracing
isovector 8e69004
Fix splitAuto
isovector a84195c
Cleanup traces
isovector 5f44746
Fix autosplit
isovector 04774c1
Merge branch 'master' into recursion
isovector 4eca10d
Update refinery
isovector de0cfb9
Attempt GHC compatability
isovector 1b70cee
cpp nightmares
isovector b700c35
type syn of type syn
isovector 25b9133
wtfff
isovector baac450
maybe this time
isovector c6e10fd
omg plzz 810
isovector c26f9ba
dsgjdsgidgjis
isovector 0ac041b
Get known metaprogramming files
isovector 2ce3bf1
metaprogram and cache
isovector 5a04900
Shake rules for the metaprogram cache
isovector 0861f11
Hook up metaprograms
isovector d6f4617
Implement tactic parser
TOTBWF ec1ca17
fix loading metaprograms
isovector c5ff512
Parse annotations
isovector 232a0db
Connect @auto metaprograms to the auto tactic
isovector ea77d9c
Auto can use known strategies too
isovector 5de6c01
Merge branch 'master' of github.com:isovector/haskell-language-server…
isovector 333dc72
Merge branch 'master' into metaprogramming
isovector d33af43
Upgrade megaparsec to 9.0.0
isovector 63d115c
Properly split fun type
isovector 3f9668d
CPP for mkVisFunTys in older versions of GHC
isovector 9616404
Wrong comparison
isovector e79f238
Empty context for quickcheck tests
isovector File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GetMetaprogramCache
won't be recomputed when the result ofgetKnownFiles
changes.Also, there's already a function called
getKnownFiles
in ghcide, you should rename it to avoid confusion.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch. What's the right way to discover new files in shake?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Create an early cutoff rule for
getKnownFiles
, and usealwaysRerun
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Although that might not be such a good idea, since it would call
ls
every time a codeaction is generated, right?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess you need to register a file watcher with the client, like we were discussing earlier on IRC.