-
-
Notifications
You must be signed in to change notification settings - Fork 887
Code actions to add and remove anonymous functions #4789
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
Open
treuherz
wants to merge
22
commits into
gleam-lang:main
Choose a base branch
from
treuherz:anon-fn-code-actions
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
50cbf19
add action to wrap a function ref in its own anonymous fn
treuherz 0d3af2d
add action to unwrap a trivial anonymous function
treuherz c20b981
tidy imports
treuherz b9d6754
remove chained if-let
treuherz 1bbf8ed
better naming, more docs and comments
treuherz aed14a6
add range checks for new code actions
treuherz e6ee64c
correctly indent gleam in tests
treuherz cb1bb1c
make unwrapping work within nested function literals
treuherz 8b43e4d
anonymous functions can't have labelled arguments!
treuherz f3eb218
make function-wrapping action wrap any uncalled function
treuherz 5c6aa88
add tests for unwrapping functions with labelled arguments
treuherz 5e926a4
don't try to unwrap functions with comments in
treuherz 6e01d2c
add test for wrapping record constructor
treuherz 3ec71f7
use iterators for comparing arguments instead of vecs
treuherz 9c69083
add failing tests for first_comment_between
treuherz 9a951b0
fix first_comment_between
treuherz c68ea9b
unwrap anonymous functions with comments in
treuherz 631d821
add changelog entry for new code actions
treuherz 8884ab1
don't offer to re-wrap anonymous functions
treuherz a4fd477
add tests for wrapping multi-argument pipeline steps
treuherz 6809596
don't copy comment location in a loop
treuherz 58626bf
get fn locations from parser
treuherz 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 hidden or 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 hidden or 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 hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -53,6 +53,7 @@ pub enum UntypedExpr { | |
| location: SrcSpan, | ||
| fun: Box<Self>, | ||
| arguments: Vec<CallArg<Self>>, | ||
| arguments_start: u32, | ||
| }, | ||
|
|
||
| BinOp { | ||
|
|
@@ -293,11 +294,18 @@ impl HasLocation for UntypedExpr { | |
| #[derive(Debug, Clone, Copy, PartialEq, Eq)] | ||
| pub enum FunctionLiteralKind { | ||
| Capture { hole: SrcSpan }, | ||
| Anonymous { head: SrcSpan }, | ||
| Anonymous { head: SrcSpan, body: SrcSpan }, | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Isn't the start of This data also is duplicating the data of the containing function data structure I think. It would be fab to not have that duplication there |
||
| Use { location: SrcSpan }, | ||
| } | ||
|
|
||
| impl FunctionLiteralKind { | ||
| pub fn is_anonymous(&self) -> bool { | ||
| match self { | ||
| FunctionLiteralKind::Anonymous { .. } => true, | ||
| FunctionLiteralKind::Capture { .. } | FunctionLiteralKind::Use { .. } => false, | ||
| } | ||
| } | ||
|
|
||
| pub fn is_capture(&self) -> bool { | ||
| match self { | ||
| FunctionLiteralKind::Capture { .. } => true, | ||
|
|
||
This file contains hidden or 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 hidden or 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 hidden or 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 hidden or 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.
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.
Why is this optional?